Oracle 10.2.0.4数据库与Win2K3上的逻辑备用数据库。 最近在生产实例上执行了一个相当大的删除操作。 我在使用逻辑备用数据库时遇到了困难,因为它有几百(58M大小)的归档日志进入操作,申请过程失败,出现内存不足的错误。 不幸的是,每次失败都必须从交易开始时重新开始应用。 这是每次需要几天。 无论如何,在试图解决这个问题时,我注意到生产系统中的每个归档日志在备用服务器上生成5或6个日志切换。 我不明白为什么这应该是。 有人有主意吗?
一个相关的问题,我还没有find答案:没有人知道逻辑备用数据库是否必须在archivelog模式下运行? 我真的不需要保留日志。
我不会在archivelog模式下运行备用数据库。 我会先closures它,然后重试看看会发生什么。 至于内存不足的错误:我假设你得到“ORA-04030”错误。 如果没有,请在这里发布错误号码。 如果是这样的话,请在oracle“我的支持”网站上看看下面的内容。 MS-Windows:快速解决10G上的ORA-04030错误[ID 762031.1]
您的主存储器和备用存储器的参数设置是否相同? 显然你的主要可以成功地完成大型交易,我想知道是否有任何参数差异,可能会导致这个问题的备用方。
我从来没有从这方面得到Oracle的解释。 最后,我不能再等了,只是重新创build了备用,绕过了这个问题。 自那以后,我还没有看到这个问题,但是,我也没有遇到类似的情况。
正如我在对@Claran的评论中所指出的那样,有一个asktom.com问题 ,他在答复中指出,备用服务器必须以归档日志模式运行。 所以你有它。
感谢David和Claran的回答,为他们的努力+1。
更新(12/24/2009):
看起来在SQL应用程序进程中有一个内存泄漏的补丁。 它在CPUJul2009补丁中。 我需要一个窗口升级,所以这将是一段时间。 这个问题在过去一周再度出现。 这似乎与日志挖掘程序将整个事务保存在内存中直到它看到提交有关。 对我来说,这是一个失败的秘诀!
归档日志模式对于备用数据库是强制性的 – 相信我这个(我运行了几个逻辑备用数据库)。 您需要增加可用于逻辑重做应用的SGA数量,或者如果表格不重要,则可以将其从备用数据库中排除。 最简单的方法是使用企业pipe理器。