导入时禁用/减少存档的redolog文件的生成

时间:2012-02-13 14:12:11

标签: oracle oracle11g impdp

我们有一个shell脚本,用于将转储文件导入数据库。这个脚本字面上称为impdp实用程序。但在此之前,它会禁用目标数据库上的Archivelog,以便在此操作期间禁用生成的归档redolog文件。

最近,我们无法在impdp(技术要求)之前关闭数据库。这样就无法禁用存档日志模式: - (

我的问题是,即使数据库处于存档日志模式,我们如何能够在导入时减少生成的归档重做日志文件的数量?

我试图将所有永久表空间放在NOLOGGING模式中,但我仍然生成了大量存档的redolog文件....

3 个答案:

答案 0 :(得分:2)

使用 Oracle 12c ,您可以禁用重做日志的使用(请参阅Oracle Documentation

impdp [...] transform=disable_archive_logging:y

This来自" Burleson"的文章为您提供全面的概述。

答案 1 :(得分:0)

禁用每个索引(通过禁用所有主要/唯一约束以及ALTER将所有索引设置为UNUSABLE)可以提供帮助。然后,您可以在NOLOGGING模式下重建所有不可用的索引。

答案 2 :(得分:0)

最后我找到了解决问题的方法。首先,我找到了为什么在NOLOGGING模式下设置tabespace没有任何影响的原因。 实际上,在检查转储文件时,我发现表是使用LOGGING模式创建的。这会覆盖表空间的设置。

解决方案是分两个阶段导入:

  • 第一阶段:仅导入元数据(impdp CONTENT = METADATA_ONLY ....)
  • 将所有表/索引设置为NOLOGGING模式
  • 第二阶段:仅导入数据(impdp CONTENT = DATA_ONLY ....)
  • 将所有表/索引设置为LOGGING模式