归档日志从 Oracle 9i 传输到 Oracle 10g
我遇到过这样的情况:我需要将 Oracle 9i 存档日志传输到 Oracle 10g 数据库,日志挖掘程序将从那里挖掘日志,然后由 Oracle 流捕获/应用进程使用。
(Oracle 9 归档日志可以由 Oracle 10 logminer 读取 - 我可以手动复制归档日志,手动注册它们并挖掘、捕获然后应用它们)。
困难在于,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)。
I have a situation where I need to transfer Oracle 9i archive logs to an Oracle 10g database, from where they are to be mined by a log-miner and then used by an Oracle streams capture/apply processes.
(Oracle 9 archive logs can be read by the Oracle 10 logminer - I can manually copy the archive logs across, manually register them and have them mined, captured then applied).
The difficulty is that the way Oracle does archive log transfer changed quite a bit between 9i and 10g and setting up the 9i database to transfer to the remote machine like so:
log_archive_dest_state_2 = enable
log_archive_dest_2 = "service=OTHERMACHINE arch optional"
no longer works.
I get this in the 9i logs:
*** 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
And in the 10g log I get:
Fri May 22 04:07:42 2009
WARNING: inbound connection timed out (ORA-3136)
My question is:
Does anyone know how I could configure my 9i or 10g server such that the 10g server will accept the 9i connection in such a way that I can transfer the 9i archive logs to the 10g server. It would be a bonus if the archive logs would be automatically registered in the 10g server.
Note I have not set up a full DataGuard configuration here and the 10g database is not a secondary server.
Thanks for any suggestions.
Edit
Note that I can log on to the 10g server from the 9i server via sqlplus, so connectivity is not the problem
Edit 2
After a large amount of time searching for a solution, I've finally decided that such a mechanism doesn't work, and that a non-Oracle method of transferring archive logs from 9i to 10g will need to be used (e.g. rsync).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的数据库是否有最新补丁?
另外,您的连接通常需要一段时间才能进行身份验证吗? 在V10.1之后,默认的SQLNET.INBOUND_CONNECT_TIMEOUT设置为60秒。 在该版本之前,它默认为无限期。
参考 Metalink 345197.1:曾经在 Oracle 10.1 中正常工作的连接现在在 10.2 中间歇性失败,并出现 ORA-3113、ORA-3106 或 ORA-3136
Are your databases current with patches?
Also, do your connections typically take a while to authenticate? After V10.1, the default SQLNET.INBOUND_CONNECT_TIMEOUT is set to 60 seconds. Prior to that version it defaults to indefinite.
Ref Metalink 345197.1: Connections that Used to Work in Oracle 10.1 Now Intermittently Fail with ORA-3113,ORA-3106 or ORA-3136 in 10.2