失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Replication--镜像+复制

Replication--镜像+复制

时间:2022-02-16 01:14:31

相关推荐

Replication--镜像+复制

场景:

主服务器:Server1

从服务器:Server2

订阅服务器: Server3

镜像DB: RepDB

配置:

1>配置SERVER3为分发服务器,在Server3上指定发布服务器SERVER1和SERVER2

2>在SERVER1和SERVER2上配置订阅服务器为Server3,并制定相同的快照文件夹

3>如果需要建立多种类型的复制,需要在SERVER1上运行

exec sp_replicationdboption @dbname='<PublicationDatabase>', @optname='publish', @value=true

exec sp_replicationdboption @dbname='<PublicationDatabase>', @optname='mergepublish', @value=true

4>为下列代理设置–PublisherFailoverPartner

快照代理(对于所有发布)

日志读取器代理(对于所有事务发布)

队列读取器代理(对于支持排队更新订阅的事务发布)

合并代理(对于合并订阅)

SQL Server 复制侦听器(replisapi.dll:用于使用 Web 同步进行同步的合并订阅)

SQL 合并 ActiveX 控件(对于与控件同步的合并订阅)

删除镜像后的维护

1>如果移除镜像数据库,复制继续在住数据库上运行,则无需做任何设置

2>如果移除主数据库,复制在镜像数据库上运行,则建议重新搭建复制

可以使用一下脚本来设置publisherfailoverpartner

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

参考:

/stswordman/archive//04/22/2024544.html

如果觉得《Replication--镜像+复制》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。