日期:2014-05-19  浏览次数:20625 次

两个独立的数据库间的连接问题
前提:
两台独立运行的服务器,各自有自己的数据库,相互独立的。(服务器A和C,分别在不同的网络中)
连接方式为 A服务器--(连接)B服务器--(连接)C服务器
B服务器定时在A服务器中取数据,C又定时在B中取数据
问题一:
这样做的好处是什么?有没有更好的方法呢?(不能从C服务器直接向A服务器取数据吗?)
问题二:
现在,由于业务原因,当需要更新A服务器的m表时,需要同时更新C服务器的n表,m、n表的结构不同,A服务器和C服务器通过什么方法可以连通呢?
可以使用触发器吗?还是把更新n表也写入客户端程序好呢?
还有没有其他更好的方法呢?


------解决方案--------------------
可以使用触发器吗?还是把更新n表也写入客户端程序好呢?
------------------------------------------------------
触发器,恐怕不能直接更新C,毕竟没有连接到C,只是到B而已。

写入客户端程序,不好控制是否两者同时写入成功,如果一个出现问题,没有办法回滚数据的,这样就是数据的不匹配。
------解决方案--------------------
.....是不是使用触发器好一点?
如果使用触发器遇到网络不通时,是否会导致出现阻塞呢?

-------------------------------------------------------
触发器并不好, 如果条件允许, 用事务发布好一些(如果网络可用, 是实时的, 网络不可用会重试, 直到网络可用)

触发器实现的话, 阻塞是肯定的, 因为是在一个事务中去完成, 如果网络不可用, 会等待直到检查出连接不到服务器, 一般得几秒错误, 然后抛出异常