第16章 重做日志介绍以及日志组管理
- 格式:ppt
- 大小:38.50 KB
- 文档页数:4
Oracle重做⽇志⽂件⼀、Oracle中的⼏类⽇志⽂件Redo log files -->联机重做⽇志Archive log files -->归档⽇志Alert log files -->告警⽇志Trace files -->跟踪⽇志user_dump_dest -->⽤户跟踪⽇志backupground_dump_dest -->进程跟踪⽇志⼆、联机重做⽇志的规划管理1.联机重做⽇志记录了数据的所有变化(DML,DDL或管理员对数据所作的结构性更改等)提供恢复机制(对于意外删除或宕机利⽤⽇志⽂件实现数据恢复)可以被分组管理2.联机重做⽇志组由⼀个或多个相同的联机⽇志⽂件组成⼀个联机重做⽇志组⾄少两个⽇志组,每组⼀个成员(建议每组两个成员,分散放开到不同的磁盘),由LGWR后台进程同时将⽇志内容写⼊到⼀个组的所有成员LGWR的触发条件在事务提交的时候(COMMIT)Redo Log Buffer 三分之⼀满Redo Log Buffer 多于⼀兆的变化记录在DBWn写⼊数据⽂件之前3.联机重做⽇志成员重做⽇志组内的每⼀个联机⽇志⽂件称为⼀个成员⼀个组内的每⼀个成员具有相同的⽇志序列号(log sequence number),且成员的⼤⼩相同每次⽇志切换时,Oracle服务器分配⼀个新的LSN号给即将写⼊⽇志的⽇志⽂件组LSN号⽤于唯⼀区分每⼀个联机⽇志组和归档⽇志处于归档模式的联机⽇志,LSN号在归档时也被写⼊到归档⽇志之中4.⽇志⽂件的⼯作⽅式⽇志⽂件采⽤按顺序循环写的⽅式当⼀组联机⽇志组写满,LGWR则将⽇志写⼊到下⼀组,当最后⼀组写满则从第⼀组开始写⼊写⼊下⼀组的过程称为⽇志切换切换时发⽣检查点过程检查点的信息同时写⼊到控制⽂件5.联机⽇志⽂件的规划总原则分散放开,多路复⽤⽇志所在的磁盘应当具有较⾼的I/O⼀般⽇志组⼤⼩应满⾜⾃动切换间隔⾄少15-20分钟左右业务需求建议使⽤rdo结尾的⽇志⽂件名,避免误删⽇志⽂件。
6.1 背 景 知 识Oracle数据库中的数据实际上也是以文件的形式来保存的,文件中除了保存用户数据外,还保存管理数据和日志数据等。
DBA首先应该知道自己的数据分别保存在什么位置上,而且经验丰富的管理员还应该在设计数据库时合理地规划文件的保存位置、初始大小和增量等属性,既能满足用户应用程序的需要,又能保证数据库高效地运行。
6.1.1 Oracle数据库物理结构Oracle数据库的物理结构由构成数据库的操作系统文件所决定。
每个Oracle数据库都由3种类型的文件组成,即控制文件、数据文件和日志文件。
这些文件为数据提供真正的物理存储。
1.控制文件每个Oracle数据库都有一个控制文件,记录数据库的物理结构信息。
控制文件包含数据库名、数据库数据文件和日志文件的名字、位置和数据库建立日期等信息。
数据库的控制文件用于标识数据库和日志文件,当开始数据库操作时它们必须被打开。
当数据库的物理组成更改时,Oracle自动更改该数据库的控制文件。
数据恢复时,也要使用到控制文件。
当数据库打开时,Oracle数据库服务器必须可以写控制文件。
没有控制文件,数据库将无法装载,恢复数据库也很困难。
2.数据文件Oracle数据库有一个或多个的数据文件,其中保存数据库中全部的用户数据。
数据文件具有下列特征。
一个数据文件仅与一个数据库联系。
当数据库容量越界时,数据文件能够自动扩展。
一个或多个数据文件组成一个表空间。
进行数据库操作时,系统将从数据文件中读取数据,并存储在Oracle的内存缓冲区中。
新建或更新的数据不必立即写入到数据文件中,而是把数据临时存放在内存中,由数据库写入进程(DBWn)决定在适当的时间一次性写入到数据文件中。
这样可以大大降低访问磁盘的次数,从而增加系统性能。
3.日志文件每个数据库都有两个或更多的日志文件组,用于收集数据库日志。
日志的主要功能是记录对数据所作的修改,所有对数据库进行的修改都记录在日志中。
在出现故障时,如果不能将修改数据永久地写入数据文件,则可以通过日志得到修改后的记录,从而保证已经发生的操作结果不会丢失。
第十六章 日志审计由于防火墙在使用过程中将产生大量的日志,为了在繁多的日志中进行查询和分析,有必要对这些进行审计和管理,以便于分析,并且防火墙本身存储空间较小,因此单独安装一台服务器用来存放和审计管理防火墙的各种日志将是必要的。
网御防火墙提供防火墙本地日志查询和日志审计服务器查询、审计两种日志记录方式。
1. 防火墙本地日志查询由于防火墙本身存储空间较小,存储日志量也比较小,只能存储最近时间段内的日志,并且关机重启后,日志消失,所以防火墙本地日志只提供简单的查询功能,提供按时间和类型查询的方式。
更详细的查询和审计功能由联想网御安全管理平台和联想网御日志服务器(Linux版)提供。
日志查看用于查看防火墙上当前日志信息。
当防火墙允许此管理主机访问日志服务器时,也可以从此界面中直接进入日志服务器的配置管理界面中查看和管理防火墙传送给它的日志信息。
图16.1 日志查看◇按时间搜索可选择日志的起始、终止时间。
(注意:起始和终止时间不能跨年度)◇按类型搜索按日志的类型进行搜索。
◇查看查看本地(防火墙上)的符合搜索条件的全部日志内容。
◇清空将本地(防火墙上)的全部日志内容清空。
在这里可以查看系统的日志。
有两种查看策略,按时间查看和按日志类型查看,按时间查看需指明起始和终止时间,可精确到分。
按日志类型查看则指明日志的类型。
2. 日志审计由于防火墙在使用过程中将产生大量的日志,为了在繁多的日志中进行查询和分析,有必要对这些进行审计和管理,以便于分析,并且防火墙本身存储空间较小,因此单独安装一台服务器用来存放和审计管理防火墙的各种日志将是必要的。
联想网御安全管理平台审计服务器和日志审计服务器(Linux版),用于管理员对各种类型日志进行查询和审计。
联想网御安全管理平台审计服务器使用内容请参考《联想网御2000防火墙配置使用手册》第八章相关内容。
日志审计服务器(Linux版)使用内容请参考《联想网御2000防火墙配置使用手册》第九章相关内容。
重做日志文件(redo log file)对于Oracle数据库至关重要。
它们是数据库的事务日志。
通常只用于恢复,不过也可以用于以下工作:q 系统崩溃后的实例恢复q 通过备份恢复数据文件之后恢复介质q 备用(standby)数据库处理q 输入到流中,这是一个重做日志挖掘过程,用于实现信息共享(这也是一种奇特的复制)重做日志文件的主要目的是,万一实例或介质失败,重做日志文件就能派上用场,或者可以作为一种维护备用数据库(standby database)的方法来完成故障恢复。
如果数据库所在主机掉电,导致实例失败,Oracle会使用在线重做日志将系统恢复到掉电前的那个时刻。
如果包含数据文件的磁盘驱动器出现了永久性故障,Oracle会使用归档重做日志以及在线重做日志,将磁盘驱动器的备份恢复到适当的时间点。
另外,如果你“无意地”删除了一个表,或者删掉了一些重要的信息,而且提交了操作,则可以恢复一个备份,并让Oracle使用这些在线和归档重做日志文件将其恢复到意外发生前的那个时刻。
你在Oracle中完成的每个操作几乎都会生成一定的redo信息,并写入在线重做日志文件。
向表中插入一行时,插入的最终结果会写入重做日志。
删除一行时,则会在重做日志中写入你删除了这一行这一事实。
删除一个表时,删除的效果会写入重做日志。
从表中删除的数据不会写入;不过,Oracle删除表时执行的递归SQL确实会生成redo。
例如,Oracle从SYS.OBJ$表(和其他内部字典对象)中删除一行时,这就会生成redo,另外如果支持不同模式的补充日志(supplemental logging ),还会把具体的DROP TABLE语句写入重做日志流。
有些操作可能会以尽量少生成redo的模式完成。
例如,可以使用NOLOGGING属性创建一个索引。
这说明,最初创建索引数据的操作不会记入日志,但是Oracle完成的所有递归SQL会写入日志。
例如,创建索引后,将向SYS.OBJ$表中插入一行表示索引存在,这个插入会记入日志,以后使用SQL插入、更新和删除等操作完成的修改也会记入日志。
Oracle学习笔记八:重做日志与归档模式管理一、重做日志文件的介绍1.1、重做日志文件记录数据所有的修改信息并提供一种数据库失败时的恢复机制。
重做日志文件分组管理一个Oracle数据库要求至少有两组重做日志文件组中每个日志文件被称作一个组成员二、重做日志文件的结构三、重做日志文件如何工作3.1、重做日志文件循环使用。
3.2、当一个重做日志文件充满时,LGWR将日志写入到下个重组日志组。
这个被叫做日志切换检查点执行动作被触发相关信息写入控制文件3.3、重做日志文件的手工切换:alter system switch logfile;四、在线重做日志组4.1、增加在线重做日志组ALTER DATABASE ADD LOGFILE GROUP 3 ('/oracle/oradata/test/log3a.rdo','/oracle/oradata/test/log3b.rdo') SIZE 10M;4.2、增加在线重做日志组成员ALTER DATABASE ADD LOGFILE MEMBER '/oracle/oradata/test/log1c.rdo' TO GROUP 1,'/oracle/oradata/test/log2c.rdo' TO GROUP 2,'/oracle/oradata/test/log3c.rdo' TO GROUP 3;4.3、删除在线重做日志组成员ALTER DATABASE DROP LOGFILE MEMBER '/oracle/oradata/test/log3c.rdo';4.1、删除在线重做日志组ALTER DATABASE DROP LOGFILE GROUP 3;五、获取日志组及其成员信息V$LOGV$LOGFILE六、重做日志案例一6.1、案例说明:由于性能问题,目前redo日志组不足,请再增加3组重做日志。
Oracle重做日志文件管理技巧Oracle重做日志文件管理技巧重做日志文件是Oracle数据库中一种非常重要的日志文件,也是其一个很有特色的功能。
重做日志文件会纪录对于数据库的任何操作,如利用DML语句或者DDL语句对数据进行更改,或者数据库管理员对数据库结构进行更改,都会在重做日志中进行记录。
可见,当数据被意外的删除或者修改,我们可以利用重新日志文件进行恢复;当出现例程失败或者介质失败的情况下,也可以利用日志文件实现例程恢复或者介质恢复。
所以说,我们若能够管理好重做日志文件的话,对于保障数据库数据的安全是非常重要的。
下面笔者谈谈管理好Oracle数据库日志文件的几点经验技巧,或许,能够给大家在重做日志文件的管理中带来一些启示。
一、合理确定重做日志文件的存放位置我们知道,当数据库内部数据丢失或者被意外更改的情况下,数据库管理员可以利用重做日志文件实现数据库数据的恢复工作。
当数据库出现意外事故,如硬盘物理损坏、数据丢失时怎么办?我们第一个就会想到利用数据库重做日志对数据进行恢复。
可是当数据库重做日志跟数据库数据文件放在同一个硬盘的话,很明显,当硬盘损坏的时候,数据文件将跟日志文件共赴黄泉。
此时,连天皇老子都救不了我们。
所以,此时,我们就有必要把重做日志文件跟数据库数据文件放在两个不同的硬盘上面。
此时,任何一个硬盘若发生损坏,我们都可以凭借另外一块硬盘的数据,来挽回损失。
如存放数据文件的硬盘损坏时,我们就可以利用存放在另外一块硬盘上的数据重做日志文件进行修复,挽回损失。
鸡蛋不能放在同一个篮子里,故重做日志文件与数据文件也不要放在同一块硬盘上。
那时非常危险一个动作。
其实,这个重做日志文件就跟数据库的备份文件类似。
我们在对数据库进行备份的时候,都知道需要进行异地备份。
可惜的是,很多数据库管理员,在进行Oracle数据库管理的时候,没有注意到这一点,结果当出现问题的时候,就来不及了。
故,对于数据重做日志文件,保存时,要跟数据库备份文件一样,进行异地保存。
Oracle 重做日志简介日志文件也称为重做日志文件(Redo Log File),重做日志文件用于记载事务操作所引起的数据库变化。
执行DDL或DML操作时,Oracle会将事务变化的信息顺序写入重做日志。
当丢失或损坏数据库中的数据时,Oracle会根据重做日志文件中的记录,恢复丢失的数据。
1.重做记录重做日志文件是由重做记录组成,重做记录又称为重做条目,它由一组修改向量组成。
每个修改向量都记录了数据库中某个数据块所做的修改。
例如,如果用户执行了一条UPDATE语句对某个表中的一条记录进行修改,同时将生成一条重做记录。
这条重做记录可能由多个变更向量组成,在这些变更向量中记录了所有被这条语句修改过的数据块中的信息,被修改的数据块包括表中存储这条记录的数据块,以及回退段中存储的相应的回退条目的数据块。
如果由于某种原因导致数据库丢失了这条UPDA TE语句操作的结果,则可以通过与这条UPDATE语句对应的重做记录找到被修改结果并复制到各个数据块中,从而完成数据恢复。
利用重做记录,不仅能够恢复对数据文件所做的修改操作,还能够恢复对回退段所做的修改操作。
因此,重做日志文件不仅可以保护用户数据库,还能够保护回退段数据。
在进行数据库恢复时,Oracle会读取每个变更向量,然后将其中记录的修改信息重新应用到相应的数据块上。
重做记录将以循环方式在SGA区的重做日志高速缓存中进行缓存,并且由后台进程LGWR写入到重做日志文件中。
当一个事条被提交时,LGWR进程将与该事务相关的所有重做记录全部写入重做日志文件中,同时生成一个“系统变更码SCN”。
系统变更码SCN 会随重做记录一起保存到重做日志文件中,以标识与重做记录相关的事务。
只有当某个事务所产生的重做记录全部被写入重做日志文件后,Oracle才会认为该事务提交成功。
2.写入重做日志文件在Oracle中,用户对数据库所做的修改首先被保存在内存中,这样可以提高数据库的性能,因为对内存中的数据进行操作要比对磁盘进行操作快得多。