在Hibernate事务中禁用Oracle中的重做日志有什么影响?

时间:2009-09-08 15:39:51

标签: oracle hibernate transactions redo-logs

如果我们在Oracle中禁用表空间的“重做日志”,它们会影响Hibernate的事务吗? 这些是表空间级别上Oracle EM中的选项:

启用日志记录 是 生成重做日志以创建表,索引和分区以及后续插入。可采 没有 重做日志条目较小,上述操作未记录且无法恢复。

此外,Oracle的提交/回滚功能是否依赖于这些重做日志?

2 个答案:

答案 0 :(得分:8)

重做日志与事务无关。它们用于在发生崩溃或操作系统文件损坏时恢复数据库。如果您没有重做日志记录,那么如果数据库出现任何问题,您的用户将丢失自上次备份以来的所有工作。

通常我们只想在批量数据加载之前禁用对表空间的日志记录。该负载之后的第一个操作是进行备份,然后重新启用日志记录。不登录交易系统是个坏主意。

答案 1 :(得分:7)

重做日志是Oracle RDBMS的集成部分,您可以在少数特殊情况下禁用它们:

  • 批量加载数据,
  • 创建/重新创建索引

如果您为其中一个操作禁用了重做日志的生成,则在此之后您将无法完全恢复数据库(即:您应该在完成这些批处理作业后立即备份数据库)。

您无法为简单交易禁用重做生成。您不会想要,因为它们允许数据库在崩溃的实例(在线重做日志,即使您在NOARCHIVELOG中)后恢复,并允许在崩溃的磁盘后恢复介质(归档重做日志,仅在ARCHIVELOG中)