配置Mirror+Repl
参见
http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-a026-5bfcf076d9b9/replicationanddbm.docx
P为主题,M为镜像,D为分发,S为订阅.
当P和M发生切换是,如果要想让P上的自动迁移到M并正常工作 ,需要进行如下设置:
1. 在D中将P和M添加为发布服务器
2. 在P和M中,将D添加为分发服务器.
3. 为相应的代理设置设置Failoverpartner参数
4. P和M发生切换, 相应的代理(例如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