Oracle数据库从入门到精通系列之四:重做日志文件
一、重做日志文件
重做日志文件(redo log file):数据库的事物日志。通常情况下,重做日志是用于恢复的,但也可以用于
- 系统崩溃后的实例恢复
- 从备份复原出来的数据文件的介质恢复
- 备用数据库处理
- Streams和Golden Gate这两个工具可以对重做日志进行挖掘,从而实现信息共享,即复制。
- 让管理员能够通过Oracle LogMiner功能查看数据库的历史事务。
二、重做日志文件主要用处
重做日志文件的主要目的是,当实例或存储介质出问题时,就能派上用场。也可以用于维护备用数据库从而实现故障时的切换。
- 数据库主机掉电,导致实例失败,Oracle会使用在线重做日志系统恢复到断电前的那个状态。
- 如果数据文件所在磁盘驱动器出现了故障,Oracle可以使用归档重做日志、在线重做日志、以及数据库的备份将涉及的文件恢复到适当的时间点上。
- 如果无意删除了一个表,或者删掉了一些重要的信息,而且提交了操作,可以利用备份以及在线/归档重做日志来将数据恢复到错误操作之前的那个状态。
在Oracle数据库中完成的所有操作都会生成redo,并写入到在线重做日志文件中。当向表中插入一行时,这一行也会写入到重做日志中去。当删除表时,表中的数据不会记到重做日志中,但删除表这个动作本身会执行一些递归的SQL,这些递归SQL会产生redo。例如,删除表时Oracle会从SYS.OBJ$表(和其他内部字典对象)中删除一行,这个动作会产生redo。如果在数据库中启用了补充日志,那么DROP TABLE语句也会写入到重做日志中。
有些操作可能会尽量少