Oracle如何管理重做日志?

问题描述:

任何机构可以给我一个关于重做日志的想法吗?一个例子将不胜感激。Oracle如何管理重做日志?

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

在灾难恢复的情况下,您可以还原最后一个完整数据库备份,然后应用自从上次备份后采取的重做日志得到数据库恢复。如果没有这些重做日志,只能恢复到最后一次完整备份,并且此后所做的更改将会丢失。

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

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

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

+1

甲骨文通常写入到重做日志##写入数据文件之前。提交可以在不将脏块刷新到数据文件的情况下执行。 – 2009-12-01 16:32:00

为了扩大对@ DCP的回答是:从技术上讲,@dcp指的是归档重做日志。这些是可选的,并且只有在以归档日志模式运行数据库时才会生成。每个Oracle数据库至少有两个必需文件,即联机重做日志文件。这些跟踪数据库的所有更改。如果数据库意外崩溃,它们对恢复至关重要,而归档日志则不是。 Oracle使用在线重做日志文件在系统崩溃时透明地将数据库恢复到最近提交的状态。归档日志在备份恢复过程中使用 - 备份被恢复,然后归档日志应用于备份,使数据库恢复到当前状态或某个先前的时间点。

在线日志是以循环的方式写入的,因为一个在下一个日志中被填充。如果设置了存档日志模式,则将这些较早的日志写入存档日志目标。如果不是,那么一旦它们跟踪的更改写入数据文件,它们将根据需要被覆盖。

备份和恢复Oracle的网站This overview是相当不错的给一个整个事情是如何放在一起的想法。