随笔 - 229  文章 - 2  评论 - 511  阅读 - 84万

Publisherfailoverparnter

配置Mirror+Repl

参见

http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-a026-5bfcf076d9b9/replicationanddbm.docx

P为主题,M为镜像,D为分发,S为订阅.

PM发生切换是,如果要想让P上的自动迁移到M并正常工作 ,需要进行如下设置:

1.         D中将PM添加为发布服务器

2.   PM,D添加为分发服务器.

3.   为相应的代理设置设置Failoverpartner参数

4.   PM发生切换, 相应的代理(例如log reader agent)会尝试读取备份的发布服务器,failoverpartner指定的服务器.

5.   即使logreaer agent重启,分发复制也可以正常工作. 如果镜像断开(set partner off),log reader agent重启,则分发复制无法继续工作,需要在分发服务器中指定alias

下面这个脚本在分发服务器上执行,更改其中的@publisherfailoverpartner,设置成实际的镜像服务器,执行脚本后会生成添加failoverpartner的配置语句,执行即可

 在分发服务器上执行

 

复制代码
declare @publisherfailoverpartner nvarchar(30)
 
set @publisherfailoverpartner='@publisherfailoverpartner'

if @publisherfailoverpartner='@publisherfailoverpartner'
 
begin
     
print 'Please change the value of @publisherfailoverpartner'
     
return
 
end


 
drop table #profiles
 
CREATE TABLE #profiles (
     profile_id 
int
    profile_name sysname,
     agent_type 
int,
     
[type] int,
     description 
varchar(3000),
     def_profile 
bit)

--snapshot agent
 INSERT INTO #profiles (profile_id, profile_name, 
    agent_type, 
[type],description, def_profile)
     
EXEC sp_help_agent_profile @agent_type = 1;

--log reader agent
 INSERT INTO #profiles (profile_id, profile_name, 
    agent_type, 
[type],description, def_profile)
     
EXEC sp_help_agent_profile @agent_type = 2;

--Replication Merge Agent
 INSERT INTO #profiles (profile_id, profile_name, 
    agent_type, 
[type],description, def_profile)
     
EXEC sp_help_agent_profile @agent_type = 4;
     
--Replication Queue Reader Agent
 INSERT INTO #profiles (profile_id, profile_name, 
    agent_type, 
[type],description, def_profile)
     
EXEC sp_help_agent_profile @agent_type = 9;


 
--add parameter PublisherFailoverPartner
 select 'exec sp_add_agent_parameter @profile_id='+CAST(profile_id as varchar(10))+', @parameter_name=publisherfailoverpartner,@parameter_value=['+@publisherfailoverpartner+']' From #profiles where def_profile=1

--check the result
 select 'exec sp_help_agent_parameter @profile_id='+CAST(profile_id as varchar(10)) From #profiles where def_profile=1
复制代码

 

 

 

 输出结果如下:

 

exec sp_add_agent_parameter @profile_id=1@parameter_name=publisherfailoverpartner,@parameter_value=[servername\instancename]
exec sp_add_agent_parameter @profile_id=2@parameter_name=publisherfailoverpartner,@parameter_value=[servername\instancename]
exec sp_add_agent_parameter @profile_id=6@parameter_name=publisherfailoverpartner,@parameter_value=[servername\instancename]
exec sp_add_agent_parameter @profile_id=11@parameter_name=publisherfailoverpartner,@parameter_value=[servername\instancename]

exec sp_help_agent_parameter @profile_id=1
exec sp_help_agent_parameter @profile_id=2
exec sp_help_agent_parameter @profile_id=6
exec sp_help_agent_parameter @profile_id=11

 

Replication and Database Mirroring

 http://msdn.microsoft.com/en-us/library/ms151799.aspx

 

posted on   stswordman  阅读(616)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
< 2011年4月 >
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
1 2 3 4 5 6 7

点击右上角即可分享
微信分享提示