【发布时间】:2020-02-18 08:52:08
【问题描述】:
我们的数据库是 Oracle 12c,我们有一些使用 NOLOGGING 选项创建的临时表。
我关心的是在数据库恢复的情况下,我们能否恢复那些表(当然我只对 DDL 结构感兴趣,没有数据)?
谢谢。
【问题讨论】:
我们的数据库是 Oracle 12c,我们有一些使用 NOLOGGING 选项创建的临时表。
我关心的是在数据库恢复的情况下,我们能否恢复那些表(当然我只对 DDL 结构感兴趣,没有数据)?
谢谢。
【问题讨论】:
当您将表或索引创建为NOLOGGING 时,数据库不会为该操作生成重做日志记录。因此,您无法恢复使用NOLOGGING 创建的对象,即使您在ARCHIVELOG 模式下运行,也只会将一小部分元数据写入重做日志。
请查看this,其中提供了当nologging 模式设置为开启时如何检索数据的过程。
【讨论】:
nologging in 子句创建表/索引时,会将实际的创建语句发送到重做日志(数据字典中需要此信息),但在此期间将所有行加载到表中该操作不发送到重做日志。所以你可以从那里得到表结构的信息。但是请注意,你必须在所有nologging操作之前和之后进行备份