比如 有 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台,做从主服务器做联接服务器,通过触发器或者其他的过程来实现