我遇到的情况是,我需要将Oracle 9i归档日志传输到Oracle 10g数据库,由日志挖掘人员从中挖掘日志,然后由Oracle streams捕获/应用流程使用。
(Oracle 10 logminer可以读取Oracle 9归档日志——我可以手动复制归档日志,手动注册并对其进行挖掘、捕获和应用)。
困难在于,Oracle归档日志传输的方式在9i和10g之间发生了很大的变化,设置9i数据库以传输到远程机器,如下所示:
log_archive_dest_state_2 = enable
log_archive_dest_2 = "service=OTHERMACHINE arch optional"
不再有效。
我在9i日志中看到:
*** 2009-05-22 04:03:44.149
RFS network connection lost at host 'OTHERMACHINE'
Error 3113 attaching RFS server to standby instance at host 'OTHERMACHINE'
Error 3113 attaching to destination LOG_ARCHIVE_DEST_2 standby host 'OTHERMACHINE'
Heartbeat failed to connect to standby 'OTHERMACHINE'. Error is 3113.
*** 2009-05-22 04:03:44.150
kcrrfail: dest:2 err:3113 force:0
ORA-03113: end-of-file on communication channel
在10g日志中,我得到:
Fri May 22 04:07:42 2009
WARNING: inbound connection timed out (ORA-3136)
我的问题是:
有人知道我如何配置9i或10g服务器,使10g服务器能够接受9i连接,从而将9i存档日志传输到10g服务器吗。如果归档日志能够自动在10g服务器中注册,那将是一个额外的好处。
注意:我没有在这里设置完整的DataGuard配置,而且10g数据库不是辅助服务器。
谢谢你的建议。
编辑
请注意,我可以通过sqlplus从9i服务器登录到10g服务器,因此连接不是问题
编辑2
在花了大量时间寻找解决方案后,我终于决定,这种机制不起作用,需要使用非Oracle的方法将归档日志从9i传输到10g(例如rsync)。