☰
SQL Server replication在AG上的配置
2026/9/29 1:55:42 网站建设 项目流程

Publisher数据的来源

Distributor相当于搬运工

Subscriber复制数据的目地

首先配置Distributor,其次Publisher,最后Subscriber

一、配置Distributor

https://learn.microsoft.com/en-us/sql/relational-databases/replication/configure-distribution-availability-group?view=sql-server-ver17

--1.在每个distributor实例上运行

--这一步会创建1个repl_distributor的linked server,且会在instance上创建一个distributor_admin的sql账号:

use master

exec sp_adddistributor @distributor = @@servername

GO

--2.只在第1个distributor运行

exec sp_adddistributiondb @database = N'distribution'

GO

--上面语句会创建1个叫distribution的数据库,将它的Recovery mode从simple改为full,并马上做一下备份

--将该数据库添加到AG,注意图形界面看不到distributor,只能用命令

USE [master];

GO

ALTER AVAILABILITY GROUP [agccc] ADD DATABASE [distribution];

GO

--3.只在从节点运行:

EXEC sys.sp_adddistributiondb @database = 'distribution';

--4.在所有节点上运行:distributor上面添加publisher:如果publisher是AG,则把AG中的每个instance都加进来。

第一次添加publisher会要求设置Administrative link password的密码,不管之前有没有设置都要再设一次。

同时它会自动把publisher添加到linked server:

重要:distributor主节点上的sql server agent jobs,在没发生主从切换时,你在从节点是看不到。只有当切换时,"监视和同步复制代理作业"自动运行后才会创建出来。

二、配置publisher,subscriber

https://learn.microsoft.com/en-us/sql/database-engine/availability-groups/windows/configure-replication-for-always-on-availability-groups-sql-server?view=sql-server-ver17

将distribution对应的 AG listener 当做distributor, 添加到每个publisher

创建publication,subscription

在创建subscription时,对应的linked server会自动在主节点上创建,publisher和distributor的从节点都需要手动添加subscriber作为linked server。subscriber如果是AG,则直接用subscriber的listener

以下这步很重要,涉及到主从切换AG时,让复制也能工作:

Redirect the original publisher to the AG listener name

USE distribution;
GO

EXECUTE sys.sp_redirect_publisher
@original_publisher = 'MyPublisher',
@publisher_db = 'MyPublishedDB',
@redirected_publisher = 'MyPublisherAGListenerName';

验证一下:

DECLARE @redirected_publisher AS sysname;

EXEC sys.sp_validate_replica_hosts_as_publishers
@original_publisher = 'XMTESTAG1\ERRFIX',
@publisher_db = 'ccc',
@redirected_publisher = @redirected_publisher OUTPUT;


SELECT @redirected_publisher AS [重定向生效的侦听器];
GO

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询