您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > ORACLE数据库管理基础7
维护重做日志文件目标完成这一课的学习后,您应该能达到下列目标:•解释联机重做日志文件的用途•概述联机重做日志文件的结构•控制日志切换和检查点•对联机重做日志文件进行多元备份和维护使用重做日志文件重做日志文件具有以下特征:•记录对数据所做的所有更改•提供恢复机制•可以划分成组•至少需要两个组使用重做日志文件利用重做日志文件,在数据库发生故障时,可以重新处理事务。每个事务在处理的同时也会写入重做日志缓冲区,然后刷新到重做日志文件,这样,如果发生介质故障,重做日志文件将提供恢复机制。(但也存在例外情况,例如,在启用NOLOGGING子句的情况下对象中的直接加载插入。)写入的信息包括尚未提交的事务处理、还原段信息以及方案和对象管理语句。重做日志文件用来在例程失败等情况下恢复尚未写入数据文件的提交数据。重做日志文件只用于恢复。重做日志文件的结构重做日志文件的结构数据库管理员可设置Oracle数据库以维护联机重做日志文件副本,来避免由于单点故障丢失数据库信息。联机重做日志文件组:•一组相同的联机重做日志文件副本称作联机重做日志组。•LGWR后台进程向组内所有联机重做日志文件并发写入相同信息。•为保证数据库的正常操作,Oracle服务器最少需要两个联机重做日志文件组。联机重做日志文件成员:•组内的每个联机重做日志文件称为成员。•组内的每个成员都有相同的日志序列号和同样的大小。Oracle服务器每次写入日志组时,都分配一个日志序列号以唯一地识别每个重做日志文件。当前日志序列号存储在控制文件和所有数据文件的标头内。创建初始重做日志文件联机重做日志文件组和成员的初始集是在数据库创建时创建的。下面的参数限制了联机重做日志文件的数量:•CREATEDATABASE命令中的MAXLOGFILES参数指定联机重做日志文件组的绝对最大数量。•MAXLOGFILES的最大值和缺省值取决于您的操作系统。•CREATEDATABASE命令所使用的MAXLOGMEMBERS参数决定每个组的成员的最大数量。MAXLOGMEMBERS的最大值和缺省值取决于您的操作系统。重做日志文件如何发挥作用•重做日志文件是以循环方式使用的。•一旦某个重做日志文件被写满,LGWR就会移动到下一个日志组。–这称为日志切换–同时还将执行检查点操作–将信息写入控制文件重做日志文件如何发挥作用Oracle服务器将对数据库所做的所有更改按顺序记录到重做日志缓冲区中。LGWR进程把重做条目从重做日志缓冲区写入联机重做日志组的其中一个组,这个组叫做当前联机重做日志组。LGWR进程将在以下情况下写入:•当提交事务处理时•当重做日志缓冲区被写满三分之一时•当重做日志缓冲区内的已更改记录超过1MB时•在DBWn将数据库缓冲区高速缓存中修改的块写入数据文件之前重做日志文件是以循环方式使用的。每个重做日志文件组用一个日志序列号来标识,每次重新使用日志时就会覆盖原来的序列号。重做日志文件如何发挥作用日志切换:LGWR按顺序向联机重做日志文件写入重做信息。一旦当前联机重做日志文件组被写满,LGWR就开始写入下一个组。这称为日志切换。当最后一个可用联机重做日志文件已满时,LGWR将返回第一个联机重做日志文件组并开始重新写入。重做日志文件如何发挥作用检查点:在检查点期间:•大量的灰数据库缓冲区数据(由正在经历检查点事件的日志所覆盖)被DBWn写入到数据文件中。DBWn写入的缓冲区的数量是由参数FAST_START_MTTR_TARGET决定的(如果已指定)。缺省值为零。注:Oracle9i数据库管理基础II课程中详细介绍了FAST_START_MTTR_TARGET参数。•检查点后台进程CKPT更新控制文件以反映该进程已成功完成。如果检查点是由日志切换引起的,CKPT还会更新数据文件的标头。可以针对数据库中的所有数据文件执行或者只针对特定数据文件执行检查点操作。重做日志文件如何发挥作用例如,检查点可发生在下面情况中:•每次日志切换时•当已通过正常、事务处理或者立即选项关闭例程时•通过设置初始化参数FAST_START_MTTR_TARGET强制执行时•数据库管理员通过手动方式请求时•ALTERTABLESPACE[OFFLINENORMAL|READONLY|BEGINBACKUP]命令导致对特定数据文件执行检查点操作时如果初始化参数LOG_CHECKPOINTS_TO_ALERT设置为TRUE,则有关每个检查点的信息都记录在alert_SID.log文件内。该参数缺省值为FALSE,表示不记录检查点。强制执行日志切换和检查点•强制执行日志切换:ALTERSYSTEMSWITCHLOGFILE;•可使用以下方式强制执行检查点操作:–设置FAST_START_MTTR_TARGET参数FAST_START_MTTR_TARGET=600–ALTERSYSTEMCHECKPOINT命令ALTERSYSTEMCHECKPOINT;强制执行日志切换和检查点如前所述,日志切换和检查点操作是在数据库运行中的某些特定点自动执行的,但DBA可以强制执行日志切换或检查点操作。强制执行检查点:FAST_START_MTTR_TARGET参数取代了不赞成使用的参数:•FAST_START_IO_TARGET•LOG_CHECKPOINT_TIMEOUT如果使用参数FAST_START_MTTR_TARGET,就不能再使用这两个不赞成使用的参数。在上面的示例中,已设置了FAST_START_MTTR_TARGET参数,因此例程恢复所用的时间不应超过600秒。数据库将根据这一目标来调整其它参数添加联机重做日志文件组ALTERDATABASEADDLOGFILEGROUP3('$HOME/ORADATA/u01/log3a.rdo','$HOME/ORADATA/u02/log3b.rdo')SIZE1M;添加联机重做日志文件组在某些情况下,您可能需要创建其它日志文件组。例如,添加组可以解决可用性问题。要创建一个新的联机重做日志文件组,请使用下面的SQL命令:ALTERDATABASE[database]ADDLOGFILE[GROUPinteger]filespec[,[GROUPinteger]filespec]...]您可以通过文件说明来指定成员名称和位置。可以选择每个重做日志文件组的GROUP参数值。如果您省略了该参数,Oracle服务器自动生成其值。添加联机重做日志文件成员ALTERDATABASEADDLOGFILEMEMBER'$HOME/ORADATA/u04/log1c.rdo'TOGROUP1,'$HOME/ORADATA/u04/log2c.rdo'TOGROUP2,'$HOME/ORADATA/u04/log3c.rdo'TOGROUP3;添加联机重做日志文件成员您可以使用下面的ALTERDATABASEADDLOGFILEMEMBER命令向现有的重做日志文件组添加新成员:ALTERDATABASE[database]ADDLOGFILEMEMBER['filename'[REUSE][,'filename'[REUSE]]...TO{GROUPinteger|('filename'[,'filename']...)}]...请使用日志文件成员的完全指定名;否则将在数据库服务器缺省目录下创建该文件。如果该文件已经存在,其大小必须与指定值相同,并且必须指定REUSE选项。您可以通过指定一个或多个组内成员或者指定组号来识别目标组。添加联机重做日志文件成员使用OracleEnterpriseManager添加重做日志文件组和成员从“OEM控制台”(OEMConsole):1.导航到“数据库”(Databases)“存储”(Storage)。2.单击“重做日志组”(RedoLogGroups)文件夹。3.单击鼠标右键,从弹出的菜单中选择“创建”(Create)。4.在“常规”(General)选项卡中,填写创建重做日志文件组和成员所需的信息。5.单击“创建”(Create)。删除联机重做日志文件组ALTERDATABASEDROPLOGFILEGROUP3;删除联机重做日志文件组若要增大或者减小联机重做日志文件组的大小,请添加新的联机重做日志文件组(具有新的大小),然后删除旧组。可以使用下面的ALTERDATABASEDROPLOGFILE命令删除整个联机重做日志文件组:ALTERDATABASE[database]DROPLOGFILE{GROUPinteger|('filename'[,'filename']...)}[,{GROUPinteger|('filename'[,'filename']...)}]...限制:•一个例程至少需要两组联机重做日志文件。•无法删除活动组或者当前组。•删除联机重做日志文件组时并不删除操作系统文件。删除联机重做日志文件成员ALTERDATABASEDROPLOGFILEMEMBER'$HOME/ORADATA/u04/log3c.rdo';删除联机重做日志文件成员如果联机重做日志文件成员无效,则最好删除它。如果要删除一个或多个特定的联机重做日志文件成员,请使用下面的ALTERDATABASEDROPLOGFILEMEMBER命令:ALTERDATABASE[database]DROPLOGFILEMEMBER'filename'[,'filename']...限制:•如果要删除的是组内的最后一个有效成员,那么您不能删除该成员。•如果该组是当前组,那么必须先强制执行日志文件切换,然后才能删除该成员。•如果数据库正运行在ARCHIVELOG模式下并且未将该成员所属日志文件组归档,那么您无法删除该成员。•删除联机重做日志文件成员时,如果没有使用OMF功能,则不会删除操作系统文件。删除联机重做日志文件成员使用OracleEnterpriseManager删除重做日志文件组和成员:从“OEM控制台”(OEMConsole):1.导航到“数据库”(Databases)“存储”(Storage)。要删除组,请执行以下操作:1.展开“重做日志组”(RedoLogGroups)文件夹,然后选择要删除的重做日志文件组。2.单击鼠标右键,从弹出的菜单中选择“删除”(Remove)。3.确认删除。要删除成员,请执行以下操作:1.展开“重做日志组”(RedoLogGroups)文件夹,然后导航到包含要删除的成员的组。2.在“常规”(General)页中,突出显示该成员,然后单击鼠标右键,从弹出的菜单中选择“删除”(Remove)。3.确认删除。重定位或重命名联机重做日志文件使用以下两种方法之一重定位或重命名联机重做日志文件:•ALTERDATABASECLEARLOGFILE命令–将联机重做日志文件复制到新的位置–执行该命令ALTERDATABASECLEARLOGFILE'$HOME/ORADATA/u01/log2a.rdo';•添加新成员并删除旧成员重定位或重命名联机重做日志文件可以通过重命名联机重做日志文件来更改联机重做日志文件的位置。在重命名联机重做日志文件之前,请确保新的联机重做日志文件已存在。Oracle服务器仅更改控制文件内的指针,并不从物理上重命名或创建任何操作系统文件。下面的ALTERDATABASERENAMEFILE命令可更改联机重做日志文件的名称:SQLALTERDATBASE[database}2RENAMEFILE‘filename’[,’filename’]…3TO‘filename’]…重定位或重命名联机重做日志文件使用OracleEnterprise重定位或重命名重做日志文件组和成员从“O
本文标题:ORACLE数据库管理基础7
链接地址:https://www.777doc.com/doc-12567 .html