在
Oracle
数
据库
中,
主要有两种
日志
操作模式,分别为非归
档模式与归档模式。默认情况下,数据库
采
用的是非归档模式
。作为一个合格的数据库管
理
员,应当深入了解这两种日志操作模式的特点,并且在数据库建立时,选
择合适的操作模式。
笔者
今天就谈谈自己对这两种操作模式的理解,并且给出一些可行的建议,跟大家一起来提高Oracle数据库的安全性
。
一、非归
档模式的利与弊。
非归档模式是指不保留重做历史的日志操作模式,只能够用于保护例程失败,而不能够保护介质
损坏。如果数据库采用的是日志操作模式的话,则进行日志切换时,新的日志会直接覆盖原有日志文件的内容,不会保留原有日志文件中的数据。
这么说听起来可能比较难理解。笔者举一个简单的例子,就会清楚许多。如现在Oracle
数据库中有四个日志组,日志序列号分别为10、11、
12、13。当数据库事务变化写满第一个日志组文件(序列号为11)时,Oracle数据库就会自动切换到第二个日志组文件(序列号为12)中。依次类
推。当第三个日志组文件(序列号为13)写满时,就会切换到第四个日志组(序列号为14)。当第四个日志组(序列号为14)满时,其就会切换到第一个日志
组(序列号为15)。这里,序列号虽然与刚才第一个日志文件组不同,但是日志组仍然是同一个。此时,由于数据库的操作模式选择为非归档模式,所以第一组日
志文件(序列号为11)中的内容并没有归档。新的日志文件的内容将直接覆盖第一个日志组文件中的内容。若第一个日志组文件(序列号为15)满时,切换到第
二个日志文件组时,新的内容又会在第二个日志文件组没有归档的情况下,直接覆盖日志文件20中的原有数据。
通过以上的分析,我们可以归纳出非归档操作日志模式的一些特点。
一是当检查点完成之后,后台进程可以覆盖原有重做日志的内容。也就是说,在日志切换时,
后来的日志文件内容可以在以前的日志文件内容没有归档的情况下,覆盖原有日志文件的内容
。如此的话,当出现数据文件损坏时,数据库管理员只能够恢复到过去
的完全被分点。如数据库有四个日志组。如果在日志组序列号为16的时候数据库管理员进行了完全备
份
。而在日志组序列号为28
的时候数据文件出现了损坏。此时,由于中间的日志文件内容被覆盖掉了。所以,此时数据库管理员只能够恢复到完全备份的那个点,而不能够恢复数据库文件损坏
时的点的数据(即序列号为28)的数据。如果在序列号为18的