接着 重启SQL Server 代理
?
3. 配置发布和订阅
登录到服务器
?
| kk-db1 |
192.168.2.10 |
主机(Replication + Mirror) |
?
创建本地发布,选择分发服务器。(只有分发中添加了发布服务器的信息,此处才能访问)

这里需要输入在分发服务器设置的管理密码。


注:此时在分发服务器( 192.168.2.12 )生成的复制相关作业代理,所有者改为 [sa]
登录到服务器
?
| kk-db4 |
192.168.2.13 |
订阅 |
?
创建订阅:(发布选择 “kk-db1”)


创建完成订阅后,初始化订阅,登录到服务器:
?
| kk-db1 |
192.168.2.10 |
主机(Replication + Mirror) |
?


登录到服务器:
?
| kk-db3 |
192.168.2.12 |
见证机(WITNESS)+ 分发 |
?
右键 “复制”—“启动复制监视器”,右键 “添加发布服务器”,将 发布服务器 “kk-db1” 添加,即可看到复制监控情况


配置已完成!~
4. 测试
现在把主体(Replication + Mirror)服务停止:

停止后,到原来的镜像(kk-db2)查看,镜像变成了主体,本地发布也出现了(原来镜像是不存在的)

但是,当我从现在的主体(kk-db2)插入数据时,数据并没有同步到订阅!~
难道是哪里配置不对??!~~
网上查找后,发现是BUG,原因是:
This problem occurs because Log Reader Agent does not copy the transactions that are marked for replication from the transaction log into the distribution database. Log Reader Agent cannot read past a specific log sequence number (LSN). This specific LSN represents the last LSN that has been hardened to the transaction log of the mirror database.
FIX: Changes in the publisher database are not replicated to the subscribers in a transactional replication if the publisher database runs exposed in a database mirroring session in SQL Server 2005
暂时不修复,用其他方法设置也可以:
(先启动 kk-db1 的SQLserver 服务)
在主体 和 镜像中,设置服务启动参数,添加 -T1448,重启服务即可。

此时停止主体实例,镜像变成主体,操作数据可正常和订阅同步了!~
至此,就算完成了,个人测试,也可能有不对的地方。