问题是这样的:在2台机器上各有1个数据库实例A和B,我要将保存到A上面的数据推到B上面去,目前采用的方式是建A到B的dblink,当有保存到A上面的数据时就利用触发器同时将数据通过Dblink推到B实例上去。但是连接B实例所在的机器比较特殊,要经过一步认证才能从A机器连接到B机器,这个认证的过程比较费时,大概1分钟左右,不过连接建立之后数据库操作就很快了,就想问问这个A到B的dblink连接能否保持住,保持住的话这样保存的速度就会比较快了?
哪位大侠或者有其他的推数据的方法,也可以指点小弟一下?
哪位大侠或者有其他的推数据的方法,也可以指点小弟一下?
保证一次连接 写多条,能提高些速度或者
在认证的机器上对 A数据库服务器做特殊处理,给A机器一个高级授权来。
oracle本身貌似没有这个功能,不过应该可以变通解决。忘记dblink丢失时的错误码了。不过LZ你自己可以模拟出来。
(1)建立dblink联接后
(2)断开网线
(3)尝试向dblink查点东东,这时oracle将报告一个错误代码 假定为A
貌似这个:ORA-01012: not logged on
(4)在应用中判断为该错误代码,则自动重新联接。如果LZ的程序存在一个统一错误处理的入口点,则可以把错误代码检测以及重新联接放在那里处理。
02068, 00000, "following severe error from %s%s"
// *Cause: A severe error (disconnect, fatal Oracle error) received from
// the indicated database link. See following error text.
// *Action: Contact the remote system administrator.
DBLINK只是个链路,一旦这个链路建立了,就不需要再次认证了环境如何的?
DBLINK建立的时候是否有使用密码建立连接?
建议先将要同步的数据存放在本地表,再由一个后台进程长连数据库,定期将数据通过DBLINK同步。