当前位置: 代码迷 >> Sql Server >> 向多个数据库服务器插入相同结构的表 怎么同步
  详细解决方案

向多个数据库服务器插入相同结构的表 怎么同步

热度:6   发布时间:2016-04-24 09:13:02.0
向多个数据库服务器插入相同结构的表 如何同步?
比如 有  3个数据库服务器
DB_A 、 DB_B、  DB_C

三个服务器都有 相同的数据源 db_source  数据源下有相同表名的表  table  数据结构也相同  都有字段  name和age

如何用事务同步 向三个数据库服务器 修改数据 

目前我对一个数据库操作 如下

begin tran " +
                "declare @count1 int " 
                "select @count1=count(*) from table where name='张三' " 
                "if @count1!= 0 " 
                    "begin " 
                        "delete from table where name='张三' " 
                    "end " 
                    "insert into table(name,age) values('张三',30) " 
                "if @@error>0 " +
                    "rollback;" +
                "else " +
                    "commit

表里永远只有一条数据 每次现判断是否有数据 有的话先删除 然后新添加一条,如今我要同时这样操作三个数据库 想要同步一下。

我是用C# ADO.NET 操作数据库的
------解决思路----------------------
个人觉得可以这样,没有实际操作经验,只供参考!路过大神欢迎指正。
方案一:
一台作为发布服务器,另外两台作为订阅服务器,只要处理发布服务器,然后同步到另外两台订阅服务器

方案二:
一台作为发布服务器,另外一台订阅第一台发布服务器,并将第二台也做发布服务器,第三台订阅第二台服务器,
语句操作还是对第一台进行

------解决思路----------------------
可以利用分布式事务,BEGIN DISTRIBUTED TRANSACTION语句。
SQL Server跨数据库访问及分布式事务的使用及配置 
------解决思路----------------------
最简单的,应该把其中一台作为主服务器,你的程序只对主服务器操作;剩下的2台,做从主服务器做联接服务器,通过触发器或者其他的过程来实现
  相关解决方案