从 Oracle 9i 到 Oracle 10g 的归档日志传输

Posted

技术标签:

【中文标题】从 Oracle 9i 到 Oracle 10g 的归档日志传输【英文标题】:Archive log transfer from Oracle 9i to Oracle 10g 【发布时间】:2009-05-22 04:20:09 【问题描述】:

我有一种情况,我需要将 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)。

【问题讨论】:

可以通过dblink从9i服务器到达10g服务器吗? 或者,从 9i 尝试 tnsping:tnsping OTHERMACHINE 我可以 tnsping 并通过 DB 链接和 sqlplus 到达另一台机器。 【参考方案1】:

您的数据库是否有最新的补丁?

另外,您的连接通常需要一段时间来进行身份验证吗?在 V10.1 之后,默认 SQLNET.INBOUND_CONNECT_TIMEOUT 设置为 60 秒。在该版本之前,它默认为无限期。

参考 Metalink 345197.1:以前在 Oracle 10.1 中工作的连接现在在 10.2 中出现 ORA-3113、ORA-3106 或 ORA-3136 时断时续

【讨论】:

以上是关于从 Oracle 9i 到 Oracle 10g 的归档日志传输的主要内容,如果未能解决你的问题,请参考以下文章

Oracle9i和10g区别

oracle 10g 和 9i 之间巨大的查询执行时间差异

网易博客迁移(2011-05-27)

Oracle 9i & 10g编程艺术-深入数据库体系结构-学习笔记(持续更新中)

expdp在oracle 9.0里能用吗

求解如何在windows7上安装oracle 9i?