现在有两个数据库服务器A 和 B .我现在要将A的数据同步到B中。方法如下:
1、我在A数据库建立了一个Sync_Table,在A数据库的所有表上建立了触发器,如果数据有增、改、删的操作就触发到Sync_Table表中。
2、我做了一个Windows服务每隔10秒钟扫描一次Sync_Table表看是否有无数据同步,如果有则连接B数据库把数据同步过去。现在的问题是我不想用Windows服务去不停的扫描Sync_Table表(因为这个太耗资源,而且觉得挺笨的)。我想是有什么办法让数据库(或其他方法)去通知我的Windows服务有数据需要同步,你来取吧!
1、我在A数据库建立了一个Sync_Table,在A数据库的所有表上建立了触发器,如果数据有增、改、删的操作就触发到Sync_Table表中。
2、我做了一个Windows服务每隔10秒钟扫描一次Sync_Table表看是否有无数据同步,如果有则连接B数据库把数据同步过去。现在的问题是我不想用Windows服务去不停的扫描Sync_Table表(因为这个太耗资源,而且觉得挺笨的)。我想是有什么办法让数据库(或其他方法)去通知我的Windows服务有数据需要同步,你来取吧!
解决方案 »
- Oracle数据表的字段前加#是什么意思?
- 请问oracle中两个字段相除结果能否用百分数显示保留两位小数,并且以该结果排序
- 我安装Oracle10g 后没有找到Pro COBOL的demo目录啊?
- 请教一个SQL语句?
- 这个查询怎么做?
- 请教sql语句,将数值分为几个区间,统计每个区间的记录数,一条sql可以实现吗?
- 紧急求助,执行pl/sql的时候,说协议适配器错误
- 只有dbf文件了,能否恢复ORACLE数据库?敬请帮助!
- 下面的创建函数的语句那里错了?
- 做一个以图形图象(包括quick t vr的图像,及动话图像)为主要数据的网络数据库,用oracle好还是sql server好??(新手盼指教)
- oracle PLSQL 中cursor 可以作为函数的参数吗?下边有例子。
- 请教多表查询语句写法?
2、dataguard
3、rman增量导入
4、找开发商取出每天的增量数据导入备库。
5、每天全库的导出导入当然了,最后一种方法完全不用考虑(虽然操作过程简单,但数据量大的话相当耗时,而且实时性就没办法咯),(方案四是要收费滴)
如果你的备库只需要进行查询操作,那么以上方案均可考虑(注意用方案二的话数据库版本只能是oracle11以上,这样备库才能open);如果你的备库还需要进行修改等的其他操作的话那么建议采用方案一或方案四。
以上方案实时性最好的是方案二其次是方案一。其它几个方案实时性较差。
2、dataguard到是非常接近。但是对于我的环境最也不能实现。
3、4、5还不如我的方法还有最重要的一点。以上的同步只是基于数据A和数据库能通讯的情况下,但是实际情况是,这两台服务器中间有隔离设备,只能通过Windows服务 + 网络操作来实现。还有就是我现在同步没有问题,只是想解决一个问题,就是能不能不用这种大多数情况做无用功的方式(定时扫描).而是能让数据库去通知Windows服务(不管是消息还是什么)。
通过创建DBLINK使得B库联接A库,然后在B库上创建A库的物化视图。
然后每天定点使用JOB将物化视图的最新内容存入B库里。
B库日常查询使用的其实是A库的内容。