数据库版本 Sql Server 2012
建立发布服务器
1、登录 SQL Server Management Studio
2、选中 “复制” 节点
3、右键,配置分发,下一步
4、选择默认服务器充当分发服务器,下一步
5、切换到文件夹管理,新建 “Replication” 文件夹,并开启共享
6、其他服务器上测试 “Replication” 能否正常访问
7、将共享目录拷贝到快照文件夹,下一步
8、Sql Server 会创建内部 “distribution”
分发数据库,默认即可,下一步
9、选择服务器作为发布人,默认即可,下一步
10、最后选择配置发布
注,完成后数据库已经成为配置数据库,再点击 “复制” 节点,没有配置分发选项了
发布数据库
1、复制、本地发布,右键,新建发布
2、选择需要发布的数据库,下一步
3、选择发布类型,大数据库情况下推荐事务发布,即将主库执行的操作以事务状态发布出去,在从库再次执行
4、选择需要发布的对象,下一步
5、筛选表行,默认即可,下一步
6、选中立即创建快照并使快照保持可用状态,下一步
7、点击安全设置,设置域用户账号,设置好后确定,下一步
8、默认选中创建发布即可,下一步
9、新建发布名称 test_sync,点击完成
注,事务发布中的所有表都需要主键列
订阅数据库
1、登录从服务器,选中 “复制” 节点,本地订阅
2、右键,新建订阅
3、选择发布服务器,查找 Sql Server 发布服务器
4、登录发布服务器账号,选择 test_sync,下一步
5、默认请求订阅即可,下一步
6、选择订阅服务器,新建数据库,选择新建的数据库,下一步
7、分发代理安全性,选择设置域账号
8、同步计划,默认连续运行即可,下一步
9、初始化订阅,默认立即开始即可,下一步直至完成
异常
无法配置分发
SQL Server 复制需要有实际的服务器名称才能连接到服务器。请指定实际的服务器名称“WIN-B19DTEL2B4T”。 (Replication.Utilities)
问题分析
安装Sql Server 后,修改机器名,导致数据库中指定系统名与实际机器名不一致
# 执行修改数据库系统名称
use master
go
select @@servername
select serverproperty('servername')
IF serverproperty('servername')<>@@servername
BEGIN
DECLARE @server SYSNAME
SET @server=@@servername
EXEC sp_dropserver @server=@server
SET @server=cast(serverproperty('servername') AS SYSNAME)
EXEC sp_addserver @server=@server,@local='LOCAL'
END
ELSE
PRINT '实例名与主机名一致,无需修改!'
# 重启 Sql Server 服务
# 运行,services.msc,找到SQL Server (MSSQLSERVER),重启
网友评论