分类: Oracle
2010-09-23 11:07:53
重做日志文件是Oracle数据库中一种非常重要的日志文件,也是其一个很有特色的功能。重做日志文件会纪录对于数据库的任何操作,如利用DML语句或者DDL语句对数据进行更改,或者数据库管理员对数据库结构进行更改,都会在重做日志中进行记录。
可见,当数据被意外的删除或者修改,我们可以利用重新日志文件进行恢复; 当出现例程失败或者介质失败的情况下,也可以利用日志文件实现例程恢复或者介质恢复。所以说,我们若能够管理好重做日志文件的话,对于保障数据库数据的安全是非常重要的。
下面笔者谈谈管理好Oracle 数据库日志文件的几点经验技巧,或许,能够给大家在重做日志文件的管理中带来一些启示。
一、合理确定重做日志文件的存放位置
我们知道,当数据库内部数据丢失或者被意外更改的情况下,数据库管理员可以利用重做日志文件实现数据库数据的恢复工作。当数据库出现意外事故,如硬盘物理损坏、数据丢失时怎么办?
我们第一个就会想到利用数据库重做日志对数据进行恢复。可是当数据库重做日志跟数据库数据文件放在同一个硬盘的话,很明显,当硬盘损坏的时候,数据文件将跟日志文件共赴黄泉。此时,连天皇老子都救不了我们。
所以,此时,我们就有必要把重做日志文件跟数据库数据文件放在两个不同的硬盘上面。此时,任何一个硬盘若发生损坏,我们都可以凭借另外一块硬盘的数据,来挽回损失。如存放数据文件的硬盘损坏时,我们就可以利用存放在另外一块硬盘上的数据重做日志文件进行修复,挽回损失。
鸡蛋不能放在同一个篮子里,故重做日志文件与数据文件也不要放在同一块硬盘上。那时非常危险一个动作。
其实,这个重做日志文件就跟数据库的备份文件类似。我们在对数据库进行备份的时候,都知道需要进行异地备份。可惜的是,很多数据库管理员,在进行Oracle 数据库管理的时候,没有注意到这一点,结果当出现问题的时候,就来不及了。故,对于数据重做日志文件,保存时,要跟数据库备份文件一样,进行异地保存。
二、合理设置数据库的归档模式
因为数据重做日志会纪录数据库所有的修改动作,所以,当数据库频繁修改时,如那些ERP系统需要频繁对数据库进行修改操作,此时,数据库的重做日志文件就会很庞大。为了便于日志文件的管理,Oracle 数据库默认情况下,在安装的时候,会有三个重做日志文件。当第一个重做日志文件达到一定容量时,就会停止写入,而会转向第二个日志文件; 第二个也满时,就会转向第三个。当第三个满时,就会往第一个日志文件中写入。在往这原来的纪录中写入重做日志文件的时候,是否需要对原有的纪录进行备份呢?根据用户需求的不同,就存在这两种处理模式。一种是不需要数据库进行自动备份,这种模式就叫做非归档模式; 而当重做日志改写原有的重做日志文件以前,数据库会自动对原有的日志文件进行备份的话,这种操作模式就叫做归档模式。
现在摆在数据库管理员面前有两个选择。选择归档模式或者非归档模式呢?
这要根据企业对于数据完整性的要求不同而采取不同的操作模式。笔者的建议是,采用归档模式。因为现在硬盘非常的便宜,故我们可以花比较少的代价,换取比较齐全的数据库重做日志文件,个人认为这对于企业来说,是很值得的。、
笔者现在的做法是,重做日志文件至少保存一年。也就是说,当一年过后,就可以重写原来的日志文件。这主要是跟企业所处的行业以及对于数据的安全性程度不同而有所区别。如银行就不同,他们可能要求重新日志保留十年甚至更长的时间。要知道,对于他们来说,任何一条记录可能都涉及到很大的资金。