【问题标题】:What are the effects of disabling the redo logs in Oracle on Hibernate transactions?在 Oracle 中禁用重做日志对 Hibernate 事务有什么影响?
【发布时间】:2010-11-26 13:17:50
【问题描述】:

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

启用日志记录 是的 为创建表、索引和分区以及后续插入生成重做日志。可恢复 不 重做日志条目更小,上述操作不被记录且不可恢复。

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

【问题讨论】:

    标签: oracle hibernate transactions redo-logs


    【解决方案1】:

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

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

    【讨论】:

    • 为什么要禁用事务日志?
    • 我不想,但很高兴知道这个选项。而且我怀疑它们可以单独禁用:)
    • 你说得对,我们不能在事务级别隔离重做日志。这会成为对恢复过程的嘲弄。
    【解决方案2】:

    重做日志是 Oracle RDBMS 的一个组成部分,您只能在少数特殊情况下禁用它们:

    • 大量数据,
    • 创建/重新创建索引

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

    您不能为简单事务禁用重做的生成。无论如何,您都不想这样做,因为它们允许数据库在崩溃实例后恢复(在线重做日志,即使您在 NOARCHIVELOG 中)并允许在磁盘崩溃后进行媒体恢复(存档重做日志,仅在 ARCHIVELOG 中) .

    【讨论】:

      猜你喜欢
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      相关资源
      最近更新 更多