1

我们有一个用于将转储文件导入数据库的 shell 脚本。该脚本实际上调用了 impdp 实用程序。但在此之前,它会禁用目标数据库上的存档日志,以便在此操作期间禁用存档重做日志文件的生成。

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

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

我试图将所有永久表空间置于 NOLOGGING 模式,但我仍然生成了很多归档重做日志文件......

4

3 回答 3

2

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

impdp [...] transform=disable_archive_logging:y

来自“Burleson”的这篇文章为您提供了一个全面的概述。

于 2016-10-05T08:21:25.737 回答
0

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

于 2012-02-13T17:27:17.453 回答
0

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

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

  • 第一阶段:仅导入元数据(impdp CONTENT=METADATA_ONLY ....)
  • 将所有表/索引设置为 NOLOGGING 模式
  • 第二阶段:仅导入数据(impdp CONTENT=DATA_ONLY ....)
  • 将所有表/索引设置为 LOGGING 模式
于 2012-02-21T07:50:09.207 回答