根据公司领导要求,为了减轻数据库服务器上的压力。特将其中一部分数据分离出来,放到另外一台数据库服务器上。因此需要对基础数据进行一个同步操作。
要进行数据同步,可以通过代码、触发器、日志复制等。因为此处涉及到的数据量不大,且不方便修改程序代码。所有采取的是Sql Server中触发器的一个同步。
下面就对触发器进行数据同步的一些配置做下说明:
环境:Sql Server 2008
Windows Server 2008
1.确定两台数据库服务器上要进行同步的数据库及表结构
2.在作为数据源的数据库服务器上对应的表上创建触发器:(204.17是数据源服务器,201.17是要同步的服务器)
例子中的触发器的作用是将102.1.204.17服务器上test数据库中user表中的数据同步到201.17上的表中去(触发条件是任何添加、修改、删除操作)。
3.启动两台服务器上的Distributed Transaction Coordinator服务(开始--运行--services.msc 回车,找到前面的这个服务--启动)
4.MSDTCMSDTC设置
windows server 2003设置:
windows server 2008设置:
5.检查防火墙。可以关闭防火墙或把MSDTC加入例外。
6.检查两台服务器通信是否正常:
a) telnet DbIP 135是否可以通;
b) 然后相互Ping IP;
c) 再ping 相互的NetBios名称(输入ping -a ip就可以看到对应的NetBios名称),还不通的话
d) 可以修改%windir%/system32/etc/hosts,或%windir%/system32/etc/lmhost.sam去掉文件扩展名,进行DB服务和IP的绑定即可,如下图所示:
到这里通过触发器进行数据库分布式开发的环境就准备好了。