首页 新闻 会员 周边 捐助

异地服务器数据库同步

0
悬赏园豆:80 [已解决问题] 解决于 2014-02-17 08:31

两台服务器,都装有 MSSQL 2008 ,都有数据库 A,一个服务器在陆地上,一个服务器在船上。现在想让两台服务器上的数据同步。因为船上网络信号不好或者没有信号,所以定时通过网络同步数据库不能实现。现在想用 C# 实现一个操作界面,让操作员通过这个界面,来导入或者导出数据,来实现这个数据库的同步(不想让操作员直接操作MsSQL,在这期间,两台服务器上的数据都有更新)。请问各位有没有什么好方法或者思路,请帮忙解决下!

S-U-N的主页 S-U-N | 初学一级 | 园豆:44
提问于:2014-01-18 23:07
< >
分享
最佳答案
0

建议做法: 

情况一:船上数据库做更改

1.对船上数据库直接作更改, 然后保存修改sql语句。

2.在船上的电脑写个window service 服务, 定时检查网络是否联通, 如是连接状态,则更新保存且未执行的sql。

情况二:陆上数据库做更改

1.对陆上数据库直接更改, 然后保存sql语句。

2.在船上的电脑的window service 服务,定时检查网络是否联通, 如是连接状态, 读取陆地上的数据库更改sql并执行,并记录是否成功。

ps: 这里的日志功能很重要,要记录好

收获园豆:40
Jerry柯 | 菜鸟二级 |园豆:496 | 2014-01-21 16:57
其他回答(6)
0

http://kb.cnblogs.com/page/103975/ 可以通过发布与订阅来实现

Zery | 园豆:6151 (大侠五级) | 2014-01-19 21:02

现在这个有两个主要的难点:

1. 两台服务器之间通过网络同步很困难,因为船上的网络信号很弱或者无信号。

2. 客户那没有比较熟悉数据库的人员,最好能做一个操作界面来让他们自己进行操作。

再有没有好点的办法,请告诉下,谢谢!

支持(0) 反对(0) S-U-N | 园豆:44 (初学一级) | 2014-01-19 21:48

@S-U-N: 既然是没有网络的情况下去操作,那你的情况是隔多少天在线下同步一次,就直接两个数据库用软件一同步就行了

支持(0) 反对(0) Zery | 园豆:6151 (大侠五级) | 2014-01-20 21:11
0

1. 两台服务器之间通过网络同步很困难,因为船上的网络信号很弱或者无信号。 没信号,还要求远距离同步,谈同步就是扯淡。

2.数据同步还是自动化的好,尽量避免手工操作。

3.有信号,或者信号较弱的情况同步,可以允许慢,但不能没信号。

SmartBooks | 园豆:264 (菜鸟二级) | 2014-01-20 08:48
0

双机热备

[秦时明月] | 园豆:738 (小虾三级) | 2014-01-20 11:21
0

我们现在做的离线客户端(WPF+Sqlite)与你现在的使用场景类似 (客户端也是在船上使用)。网络不通或信号不好时保存在本地的数据库, 网络正常后使用接口进行数据同步(通过WCF接口与服务器进行数据交互)。尽量避免让用户直接操作数据库进行备份,通过接口进行隔离这样更安全。定义成接口以后跨平台使用时很方便,扩展性更强。供参考

收获园豆:40
北斗清合 | 园豆:244 (菜鸟二级) | 2014-01-20 23:12
0

对于糟糕的网络环境的两个数据库同步,这个很简单做的,不管是添加,修改,还是删除,各自记录操作的sql语句,然后再根据时间排序,在两个数据库中分别执行,对于删除,我的建议是用软删除。

amityat | 园豆:476 (菜鸟二级) | 2014-02-07 16:24
0

数据库同步软件DBSync,能满足你的需求。它支持异地同步,支持全自动同步,支持断点续传。因此,即使网络不好、甚至电脑断电,都没关系,一旦供电恢复、网络恢复,就会自动继续,而且不会遗漏数据。

bhguo | 园豆:208 (菜鸟二级) | 2024-04-20 21:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册