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 2011-04-22 09:43  stswordman  阅读(612)  评论(0编辑  收藏  举报