【问题标题】:How does Oracle manage Redo logs?Oracle 如何管理重做日志?
【发布时间】:2009-11-30 16:06:48
【问题描述】:

任何人都可以给我关于重做日志的想法吗?一个例子将不胜感激。

【问题讨论】:

    标签: oracle redo-logs


    【解决方案1】:

    当 Oracle 更改数据文件中的数据时,它会将信息写入重做日志。如果发生数据库故障,您可以使用此信息将数据库恢复到数据库故障之前的状态。

    在灾难恢复方案中,您可以恢复上次完整的数据库备份,然后应用自上次备份以来获取的重做日志以恢复数据库。如果没有这些重做日志,您只能恢复到最后一次完整备份,此后所做的更改将会丢失。

    在Oracle中,你也可以在“无归档日志模式”下运行,这基本上意味着“重做日志可以被覆盖而不被保存”。这通常只适用于您不关心自上次备份以来丢失数据的开发数据库。您通常不会在生产环境中以这种模式运行,因为这可能是灾难性的。

    这是一个包含更多信息的参考链接,以及如何找出生成的重做量的示例。

    http://www.adp-gmbh.ch/ora/concepts/redo_log.html

    【讨论】:

    • Oracle 通常会写入重做日志 #before# 写入数据文件。可以在完全不将脏块刷新到数据文件的情况下执行提交。
    【解决方案2】:
    【解决方案3】:

    扩展@dcp 的答案:从技术上讲,@dcp 指的是归档重做日志。这些是可选的,并且如上所述仅在以归档日志模式运行数据库时生成。每个 Oracle 数据库至少有两个必需的在线重做日志文件。这些跟踪对数据库的所有更改。如果数据库意外崩溃,它们对于恢复至关重要,而归档日志则不然。在系统崩溃的情况下,Oracle 使用在线重做日志文件透明地使数据库恢复到最近提交的状态。归档日志用于从备份恢复期间 - 备份被还原,然后归档日志应用到备份以使数据库恢复到当前状态或某个之前的时间点。

    在线日志以循环方式写入 - 一个填满下一个“交换”到。如果设置了归档日志模式,则这些较旧的日志将写入归档日志目标。如果没有,一旦它们跟踪的更改被写入数据文件,它们就会根据需要被覆盖。

    This overview Oracle 站点的备份和恢复非常好,可以让人们了解整个事情是如何组合在一起的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-02
      • 2020-02-22
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 2020-09-17
      • 2020-05-10
      相关资源
      最近更新 更多