资源预览内容
第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
第9页 / 共28页
第10页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1第11章 控制文件与日志文件的管理 Oracle数据库包含三种类型的物理文件数据文件、控制文件和重做日志文件,其中数据文件是用来存储数据的,而控制文件和日志文件则是用于维护Oracle数据库的正常运行。保证控制文件和重做日志文件的可用性和可靠性是确保Oracle数据库正常、可靠运行的前提条件。2本章知识要点: 了解控制文件的用途 理解控制文件的内容 管理控制文件 了解日志文件的用途 掌握对日志文件的基本管理 理解归档的概念 切换数据库到归档模式 设置归档参数 使用LogMiner分析日志文件311.1 管理控制文件 每个Oracle数据库都必须至少具有一个控制文件。控制文件是一个很小的二进行格式的操作系统文件,在其中记录了关于数据库物理结构的基本信息,包括数据库的名称、相关的数据文件和重做日志文件的名称和位置、当前的日志序列号等内容。在加载数据库时,Oracle实例将读取控制文件中的内容。如果无法找到可用的控制文件,数据库将无法加载,并且很难恢复。11.1.1 控制文件简介 控制文件是Oracle数据库最重要的物理文件,它以二进制文件的形式在。不仅记载了数据库的特理结构信息(即构成数据库的数据文件和日志文件),在装载和打开数据时也需要这些文件,而且它们还记载了日志序列号、检查点和日志历史信息,同步和恢复数据库时需要这些信息。在创建数据库时会创建控制文件,如果数据库发生改变,则系统会自动修改控制文件,以记录当前数据库的状态。411.1.2 复合控制文件 因为控制文件非常重要,所以为了防止控制文件的损坏或丢失,应用将控制文件复合。Oracle建议每个数据库应该包含两个或两个以上的控制文件。但需要注意,Oracle数据库最多可以包含8个控制文件。当复合控制文件时,为了防止磁盘损坏导致控制文件丢失或损坏。5611.1.3 建立控制文件 在一般情况下,如果使用了复合控制文件,并且将各个控制文件分别存储在不同的磁盘中,则丢失全部控件文件的可能性将非常小。但是,如果数据库的所有控制文件全部丢失,这时惟一的补救方法就是以手动方式重新创建控制文件。711.1.4 控制文件的备份与恢复 为了提高数据库的可靠性,降低由于丢失控制文件而造成灾难性后果的可能性,DBA需要经常对控制文件进行备份。特别是当修改了数据库结构之后,需要立该对控制文件进行备份。11.1.5 删除控制文件 为了防止控制文件被损坏,应该启用复合控制文件。但是,当多个复合控制文件中任意一个被损坏后,都将导致无法装载Oracle数据库。这时为了使得数据库可以正常工作,只需要删除损坏的控制文件即可。811.1.6 查看控制文件信息 控制文件是一个二制文件,其中被分隔为许多部分,分别记录各种类型的信息。每一类信息称为一个记录文档段。控制文件的大小在创建时即被确定,其中各个记录文档段的大小也是固定的。91011.2 管理重做日志文件 在Oracle中,事务对数据库所做的修改将以重做记录的形式保存在重做日志缓存中。当事务提交时,由LGWR进程将缓存中与该事务相关的重做记录全部写入重做日志文件,此时该事务被认为成功提交。重做日志对数据库恢复来说是至关重要的,因此,对日志的管理也是DBA的日常工作的一部分。1111.2.1 重做日志简介 日志文件也称为重做日志文件(Redo Log File),重做日志文件用于记载事务操作所引起的数据库变化。执行DDL或DML操作时,Oracle会将事务变化的信息顺序写入重做日志。当丢失或损坏数据库中的数据时,Oracle会根据重做日志文件中的记录,恢复丢失的数据。11.2.2 增加重做日志 如果发现LGWR经常处于等待状态,则就需要考虑添加日志组及其成员,一个数据库最多可以拥有MAXLOGFILES个日志组。增加重做日志是使用ALTER DATABASE语句完成的,执行该语句时要求用户必须具有ALTER DATABASE系统权限。1211.2.3 删除重做日志 当日志成员出现损坏或丢失时,后台进程LGWR不能将事务变化写入到该日志成员中,在这种情况下应该删除该日志成员;当日志组尺寸不合适时,需要重新建立新日志组,并删除原有的日志组。删除重做日志是使用ALTER DATABASE语句来完成的,执行该语句要求数据库用户必须具有ALTER DATABASE系统权限。1311.2.4 改变重做日志位置或名称 在数据库文件、控制文件和重做日志这3种文件中,重做日志的I/O操作最频繁。为了提高I/O性能,应将重做日志分布到I/O操作相对较少、速度最快的磁盘设备上。规划重做日志时,应将同一个日志组的不同日志成员尽可能地分布到不同磁盘上,以防止磁盘损坏而导致所有日志成员丢失。141511.2.5 显示重做日志信息 对于DBA而言,可能经常要查询重做日志文件,以了解其使用情况。要了解Oracle数据库的日志文件信息,可以查询下表所示的数据字典视图和动态性能视图。视图说明V$LOG包含从控制文件中获取的所有重做日志文件的基本信息V$LOGFILE包含各个成员日志文件的信息,例如成员的状态和所属的重做日志组V$LOG_HISTROY包含重做日志文件的历史信息1611.3 管理归档日志 归档日志是非活动重做日志的备份。通过使用归档日志,可以保留所有重做历史记录。当数据库处于ARCHIVELOG模式并进行日志切换时,后台进程ARCH会将重做日志的内容保存到归档日志中。当数据库出现介质故障时,使用数据文件的备份、归档日志和重做日志可以完成数据库的完全恢复。11.3.1 日志操作模式 日志操作模式是指Oracle数据库处理重做日志的方式,它决定了是否保存重做日志,以保留重做日志所记载的事务变化。Oracle数据库包括非归档日志(NOARCHIVELOG)模式和归档日志(ARCHIVELOG)模式。1711.3.2 控制归档 在安装Oracle 11g时,默认为数据库运行在非归档模式下,这样可以避免在创建数据库的过程中对生成的重做日志进行归档。当数据库开始正常运行后,就可以将它切换到归档模式中。要将数据库在归档模式与非归档式之间进行切换,需要使用带ARCHIVELOG或NOARCHIVELOG子句的ALTER DATABAS语句。1811.3.3 配置归档文件格式 当数据库处理ARCHIVELOG模式时,如果进行日志切换,后台进程将自动生成归档日志。归档日志的默认位置为%ORACLE_HOEM%RDBMS,在Oracle 11g中,归档日志的默认文件名格式为ARC%S%_%R%T。为了改变归档日志的位置和名称格式,必须改变相应的初始化参数。1911.3.4 配置归档位置 归档日志文件保存的位置称为“归档目标”,档目标在初始化参数中进行设置。DBA可以为数据库设置多个归档目标,不同的归档目标最好位于不面的磁盘中,以分布归档时磁盘的I/O操作。2011.3.5 显示归档日志信息 查询关于归档的信息有两种方法:一种是使用数据字典和动态性能视图;使用ARCHIVE LOG LIST命令。在SQL*Plus中执行ARCHIVE LOG LIST命令,将显示当前数据库的归档信息。21数据字典视图描述V$DATABASE可以用于查询数据库是否处理归档模式V$ARCHIVED_LOG包含从控制文件中所有已经归档的日志信息V$ARCHIVED_DEST包含所有归档目标信息V$ARCHIVE_PROCESSES包含已启动的ARCn进程状态信息V$BACKUP_REDOLOG包含所有已经备份的归档日志信息V$LOG包含所有重做日志组的信息,在其中可以查看日志组是否需要归档11.4 查看日志信息 在重做日志文件中记录了数据库中曾经过发生过的操作,当对重做日志进行了归档后,所有已经执行的操作都将被记录在案。DBA可以利用这些归档日志将数据库恢复到任意时刻的状态,还可以利用一些工具对日志进行分析,以便对数据库操作进行跟踪和统计分析。2211.4.1 LogMiner概述 使用LogMiner工具可以对重做日志文件或归档重做日志文件进行分析,以便DBA对数据库用户的操作进行审计,或者撤销数据库中已经执行过的、指定的操作。此外,DBA还能够通过分析日志文件来追踪某个用户的所有操作,或者追踪某个数据库对象的变更过程,并且由引生成统计信息。2311.4.2 创建LogMiner使用的字典文件 创建字典文件的目的就是让LogMiner引用所涉及到内部数据字典,提供他们实际的名字,而不是系统内部的对象编号。数据字典文件是一个文本文件,用于存放表及对象ID号之间的对应关系。当使用字典文件时,它会在表名和对象ID号之间建立一一对应的关系。如果要分析的数据库中的表有变化,则会影响到数据库的数据字典也发生变化,这时就需要重新创建该字典文件。2411.4.3 指定分析的日志文件 在使用LogMiner进行日志分析之前,必须指定它将对哪些重做日志文件进行分析。LogMiner可以一次对多个重做日志文件进行分析。2511.4.4 启动LogMiner 启动LogMiner非常方便,只需要执行DBMS_LOGMNR.START_LOGMNR过程即可。在执行该过程时,需要为参数DICTFILENAME中指定一个已经建立的字典文件。例如,下面的语句在执行DBMS_LOGMNR.START_LOGMNR过程时,指定了前面所创建的字典文件e:orcldatalogminersqltrace.ora:26SQL execute dbms_logmnr.start_logmnr(dictfilename=e:orcldatalogminersqltrace.ora);PL/SQL 过程已成功完成。11.4.5 查看分析结果 动态性能视图V$LOGMNR_CONTENTS中包含LogMiner分析得到的所有的信息。分析的结果中包含了执行的SQL语句、数据库对象名、会话信息、回退信息以及用户名等信息。2711.4.6 结束LogMiner 过程DBMS_LOGMNR.END_LOGMNR将终止日志分析事务,并且释放PGA内存区域,分析结果也将随之不再存在。如果没有执行该过程,则LogMiner将保留所有它分配的资源,直到启动LogMiner的会话结束为止。28
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号