
--先在2个DB之间建立dblink,然后可参考以下代码进行编写:
--说明:一般的更新都是增删改3个 *** 作,我这只写了改的 *** 作给你作参考。
Create Trigger tri_testabc
After Update On tb_student_db1 For Each Row
Declare
Begin
If updating Then
Update tb_score_db2@dblink Set
tb_score_db2stu_id = :Newstu_id
Where tb_score_db2tud_id = Oldsut_id;
End If;
Exception
When Others Then
--异常处理
Null;
End;
源表中有没有一个自然增长的、与写入顺序相关的字段,比如ID、写入时间?如果有,就做一个定时运行的JOB,如每小时或每6小时,间隔根据你的需要而定;再建一个同步记录表,记录每次同步时已经同步的数据,比如ID、时间,下次JOB运行时,从上次同步过的记录往后继续追加到新库。
如果是唯一的ID,可以在JOB启动时读取源表当前最大的ID,然后追加上次同步的ID+1到最大ID范围的数据到新库,成功后在同步记录里记录当前最大的ID,作为下次同步的起始依据。
如果有时间,那就根据你的JOB运行间隔,每次只追加在时间间隔内写入的数据,比如12:00:00000到12:00:00999时间范围内的数据,然后下次追加13:00:00000到13:00:00999。
如果啥都没有,那就只好定时全表刷新,先TRUNCATE目标表,然后源表整个复制过来,不过这样做随着时间推移数据激增,效率是相当可怕的。
昏。楼上所说的所有方法,统统不适用于楼主的情况。
楼主你也是没经验吧。你要及时同步做什么。你的测试服务器不修改数据么?不修改表结构么?你修改了怎么可能还从生产上同步过来。
最好最简单的一种方法,就是逻辑导出和落导入。而且支持跨版本。
具体的方法就是,在你的生产数据库上执行
exp userid=system/password file=expdmp log=explog statistics=none buffer=800000 full=y
这样就生成了一个叫expdmp的导出文件。此时需要注意你的环境变量,包括NLS之类的。如果你懂了就看下一步,否则自己去研究一下。如果没看清到时候出了乱码别怪我。
把那个expdmp拷贝到你的测试服务器上去,然后在同一个目录下执行
imp userid=system/password file=expdmp log=implog statistics=none
buffer=800000 full=y
做完就可以了,你的测试库就和生产库同步了。相同用户密码一样。
这才是最简单最行之有效的数据库同步办法。
当然,如果是我我现在还喜欢用热备份直接恢复。也很好很强大。可惜不能跨平台跨版本。
能实现,
sqlserver 到oracle可以用触发器实现,前提是你需要先在sql server上创建到oracle的连接。
之后oracle 到外网你可用通过程序或别的方法实现。
有时候项目开发的需要,必须将sqlServer中的某县表同步到Oracle数据库汇总,有其他系统来读取这些数据,不同数据库类型之间的数据同步我们可以使用连接服务器和sqlAgent来实现。加入我们泽凯有一个和听合同管理系统,其中有表contract和contract_project是需要同步到一个MIS系统中的ORACLE,那么我们可以按照以下步骤实现数据的同步
1在oracle数据库中建立对应的contract和contract_project表,需要同步那些数据字段我们就建立那些字段到oralce表中
需要注意哦的是oralce的数据类型和SQLServer的数据类型是不一样的,那么他们之间是什么样的关系,我们可以再sqlServer下运行:
SELECT
FROM msdbdboMSdatatype_mappings
来查看sqlServcer和oralce数据库的的类型类型对应
2建立连接服务器,我们将oralce系统作为SQLserver的链接服务器加入到SQLserver中
有时候我们需要在sqlsercer下访问另外一个sqlserver数据库上的数据或者访问其他oracel数据库就上的数据吗,想要完成这些 *** 作,我首先要创建一个数据库链接。
数据库链接能够让本地的一个sqlservwer登录用户勇摄到远程的一个数据库服务器上,并且像 *** 作本地数据库一样,那么怎样创建数据库链接?
创建一个sqlserver对应的oracle的数据库链接,
以上就是关于Oracle 利用触发器在2个数据库之间同步进行update全部的内容,包括:Oracle 利用触发器在2个数据库之间同步进行update、oracle10 数据库单表如何进行同步到另外一个oracle10数据库中、oracle数据库同步等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)