Oracle 逻辑备用重做生成

Oracle 逻辑备用重做生成

Win2K3 上具有逻辑备用数据库的 Oracle 10.2.0.4 数据库。最近在生产实例上执行了一个相当大的删除操作。我在使用逻辑备用数据库时遇到了困难,因为它将几百个(58M 大小)存档日志放入操作中,并且应用过程因内存不足错误而失败。不幸的是,每次失败时都必须从事务的开头重新启动应用。每次都要花几天时间。无论如何,在尝试解决这个问题时,我注意到生产系统中的每个存档日志都会在备用数据库上生成 5 或 6 次日志切换。我不明白为什么会这样。有人有什么想法吗?

一个相关问题我还没有找到答案:有人知道逻辑备用数据库是否必须以归档日志模式运行吗?我真的不需要保留日志。

答案1

我不会在归档日志模式下运行备用数据库。我会先关闭它,然后重试看看会发生什么。至于内存不足错误:我假设您收到“ORA-04030”错误。如果没有,请在此处发布错误号。如果是,请查看 Oracle“我的支持”网站上的以下内容。MS-Windows:解决 10G 上 ORA-04030 错误的快速步骤 [ID 762031.1]

答案2

主服务器和备用服务器的内存参数设置是否相同?显然,您的主服务器可以成功完成大型事务,我想知道是否存在任何参数差异可能会导致备用服务器出现此问题。

答案3

我从来没得到 Oracle 对此的解释。最终,我等不及了,只是重新创建了备用数据库,绕过了这个问题。从那以后我就没再见过这个问题,不过,我也没遇到过类似的情况。

正如我在对@Claran的评论中指出的那样,一个 asktom.com 问题他在回答中指出,备用数据库必须以归档日志模式运行。所以就是这样。

感谢 David 和 Claran 的回答,对他们每个人的努力表示+1。

更新(2009年12月24日):

似乎有一个针对 SQL 应用过程中内存泄漏的补丁。它位于 CPUJul2009 补丁中。我需要一个窗口来升级,所以需要一段时间。这个问题在过去一周再次出现。这似乎与日志挖掘器进程将整个事务保存在内存中直到它看到提交的事实有关。对我来说,这是失败的秘诀!

答案4

存档日志模式对于备用数据库是强制性的 - 相信我(我运行了几个这样的逻辑备用数据库)。您需要增加可用于逻辑重做应用的 SGA 数量,或者如果表不重要,您可以将其从备用数据库中排除。最简单的方法是使用企业管理器。

相关内容