第6章控制文件和日志文件ppt课件_第1页
第6章控制文件和日志文件ppt课件_第2页
第6章控制文件和日志文件ppt课件_第3页
第6章控制文件和日志文件ppt课件_第4页
第6章控制文件和日志文件ppt课件_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第6章章 控制文件和日志文件的管理控制文件和日志文件的管理本章概述本章概述 本章的学习目的本章的学习目的主要内容主要内容本章概述本章概述 Oracle数据库包含的文件类型有三种数据库包含的文件类型有三种数据文件、数据文件、控制文件和重做日志文件。数据文件主要存储数据库中的控制文件和重做日志文件。数据文件主要存储数据库中的数据,包括各种数据库对象和数据。控制文件存放数据库数据,包括各种数据库对象和数据。控制文件存放数据库的构造信息。重做日志文件存放用户执行数据库定义和数的构造信息。重做日志文件存放用户执行数据库定义和数据库支配言语命令的记录。保证控制文件和重做日志文件据库支配言语命令的记录。保

2、证控制文件和重做日志文件的可用性和可靠性是确保的可用性和可靠性是确保Oracle数据库正常可靠运转的前数据库正常可靠运转的前提。提。 在第在第5章主要引见了数据文件的相关知识点,本章重章主要引见了数据文件的相关知识点,本章重点引见控制文件和日志文件的管理和维护。点引见控制文件和日志文件的管理和维护。本章的学习目的:本章的学习目的:了解控制文件的作用了解控制文件的作用了解控制文件的内容了解控制文件的内容掌握如何控制文件,包括创建、删除和查看等操作掌握如何控制文件,包括创建、删除和查看等操作了解日志文件的作用了解日志文件的作用掌握如何对日志文件进展管理,包括创建、查看、切换、删掌握如何对日志文件进

3、展管理,包括创建、查看、切换、删除等操作除等操作了解归档的概念了解归档的概念切换数据库到归档方式切换数据库到归档方式设置归档参数设置归档参数主要内容主要内容6.1 控制文件管理控制文件管理6.2 重做日志管理重做日志管理6.3 归档日志管理归档日志管理6.4 小结小结 6.5 习题习题6.1 控制文件管理控制文件管理 控制文件是控制文件是Oracle数据库中最重要的物理文件,每个数据库中最重要的物理文件,每个Oracles数据库都必需有一个控制文件,一个控制文件只属于数据库都必需有一个控制文件,一个控制文件只属于一个数据库。在启动数据库实例时,一个数据库。在启动数据库实例时,Oracle会根据

4、初始化参会根据初始化参数定位控制文件;然后数定位控制文件;然后Oracle会根据控制文件在实例和数据会根据控制文件在实例和数据库直接建立关联。假设控制文件被损坏,那么会呵斥整个库直接建立关联。假设控制文件被损坏,那么会呵斥整个Oracle数据库无法启动。本节重点引见控制文件的管理。数据库无法启动。本节重点引见控制文件的管理。6.1.1 控制文件概述控制文件概述 控制文件是一个很小的二进制文件,它包含了数据控制文件是一个很小的二进制文件,它包含了数据库的构造信息即构成数据库的数据文件和日志文件。库的构造信息即构成数据库的数据文件和日志文件。在创建数据库时会创建控制文件,在数据库发生改动时在创建数

5、据库时会创建控制文件,在数据库发生改动时会自动修正控制文件,以记录当前数据库的形状。会自动修正控制文件,以记录当前数据库的形状。控制文件主要包含以下信息:控制文件主要包含以下信息: 数据库称号。数据库称号。 数据文件和重做日志文件的位置和称号。数据文件和重做日志文件的位置和称号。 数据库创建的时间戳。数据库创建的时间戳。 当前日志序列号。当前日志序列号。 检查点信息。检查点信息。 表空间称号。表空间称号。 备份和恢复信息。备份和恢复信息。 Oracle数据库的控制文件是在数据库创建的同时创建的。数据库的控制文件是在数据库创建的同时创建的。默许情况下,在数据库创建期间至少有一个控制文件副本。默许

6、情况下,在数据库创建期间至少有一个控制文件副本。 总之,控制文件用来描画总之,控制文件用来描画Oracle实体构造,在启动实体构造,在启动Oracle数据库时读取控制文件才干获得一切数据库文件的相数据库时读取控制文件才干获得一切数据库文件的相关信息。一旦控制文件被损坏,数据库就无法顺利启动。可关信息。一旦控制文件被损坏,数据库就无法顺利启动。可见,控制文件的管理与维护任务非常重要且必不可少。见,控制文件的管理与维护任务非常重要且必不可少。6.1.2 创建控制文件创建控制文件 控制文件是在创建数据库时自动创建的,在数据库效力控制文件是在创建数据库时自动创建的,在数据库效力器运转的过程中,重新创建

7、控制文件的时机普通不是很多。器运转的过程中,重新创建控制文件的时机普通不是很多。需求重新创建控制文件的时机有以下几种情况:需求重新创建控制文件的时机有以下几种情况: 控制文件全部损坏,而且没有可用的备份。控制文件全部损坏,而且没有可用的备份。 修正某些永久性参数,如:修正某些永久性参数,如:MAXLOGFILES、 MAXLOGMEMBERS、MAXLOGHISTORY、MAXINSTANCES等。等。 修正数据库称号。修正数据库称号。创建控制文件的命令是创建控制文件的命令是CREATE CONTROLFILE。普。普通创建控制文件的义务由通创建控制文件的义务由SYS用户完成,假设以普通用户完

8、成,假设以普通用户的身份创建控制文件,那么需求有用户的身份创建控制文件,那么需求有SYSDBA权限。权限。创建控制文件的语法格式及部分语法阐明注释如下:创建控制文件的语法格式及部分语法阐明注释如下: CREATE CONTROLFILE REUSE DATABASE database_name NORESETLOGS| RESETLOGS NOARCHIVELOG| ARCHIVELOG MAXLOGFILES /最大日志文件大小最大日志文件大小MAXLOGMENBERS /日志文件组的成员数日志文件组的成员数MAXINSTANCES /最大实例个数最大实例个数MAXLOGHISTORY /最

9、大历史日志文件个数最大历史日志文件个数LOGFILE GROUP 1 logfile_name 1 SIZE size, GROUP n logfile_name n1 SIZE size DATAFILE datafile_name 1, datafile_name n CHARACTER SET WE8DEC /指定字符集指定字符集 其中,其中,NORESETLOGS| RESETLOGS代表能否重代表能否重做日志或重命名数据库,做日志或重命名数据库,NOARCHIVELOG|ARCHIVELOG代表归档形状。代表归档形状。LOGFILE子句制定了日志文件称号和位置,子句制定了日志文件称号

10、和位置,DATAFILE指定了数据文件的称号和位置大小。指定了数据文件的称号和位置大小。 创建控制文件必需严厉遵照创建的步骤,下面以例创建控制文件必需严厉遵照创建的步骤,下面以例如阐明。如阐明。【例【例6-1】创建一控制文件。】创建一控制文件。 (1)获取数据库的数据文件和重做日志文件列表。获取数据库的数据文件和重做日志文件列表。 当控制文件没有损坏,那么可以从控制文件中直接当控制文件没有损坏,那么可以从控制文件中直接获取。假设控制文件损坏了,可以从系统视图获取。假设控制文件损坏了,可以从系统视图V$DATAFILE和和V$LOGFILE中获取数据文件和重做日志中获取数据文件和重做日志文件的信

11、息。前面的途径要求数据库可以正常启动,假设文件的信息。前面的途径要求数据库可以正常启动,假设数据库不能正常启动,那么此时可以根据查看警告文件中数据库不能正常启动,那么此时可以根据查看警告文件中的内容来找缘由。假设数据库可以启动,可以经过执行下的内容来找缘由。假设数据库可以启动,可以经过执行下面的查询来生成文件列表。面的查询来生成文件列表。 从视图从视图V$DATAFILE中获取数据文件的信息,代码中获取数据文件的信息,代码如下:如下:SQL SELECT NAME FROM V$DATAFILE; 从视图从视图V$LOGFILE中获取日志文件的信息,代码如中获取日志文件的信息,代码如下:下:S

12、QL SELECT MEMBER FROM V$LOGFILE;执行结果如图执行结果如图6-1。图图6-1 查询查询datafile和和logfile(2)封锁数据库。封锁数据库。在创建控制文件之前要封锁数据库,普通采用正常方式在创建控制文件之前要封锁数据库,普通采用正常方式封锁封锁(SHUTDOWN IMMEDIAE),可以减少数据库重新启,可以减少数据库重新启动过程中能够出现的问题。为保证数据库的平安,在封锁动过程中能够出现的问题。为保证数据库的平安,在封锁数据库后,应该把数据库的日志文件、数据文件、参数文数据库后,应该把数据库的日志文件、数据文件、参数文件的等备份到其他磁盘上。件的等备份

13、到其他磁盘上。(3)备份一切的数据文件和重做日志文件。备份一切的数据文件和重做日志文件。(4)运用运用STARTUP NOMOUNT启动数据库实例。执行结启动数据库实例。执行结果如图果如图6-2。图图6-2 启动启动NOMOUNT实例实例 (5)运用运用CREATE CONTROLFILE语句创建控制文件。语句创建控制文件。假设需求重命名数据库,那么运用假设需求重命名数据库,那么运用RESETLOGS子句,否那子句,否那么运用么运用NORESETLOGS子句。执行结果如图子句。执行结果如图6-3。图图6-3 创建控制文件创建控制文件(6)将新的控制文件备份到其他不在线的存储介质中,如将新的控制

14、文件备份到其他不在线的存储介质中,如U盘、挪动硬盘或磁带等。盘、挪动硬盘或磁带等。 (7)修正修正CONTROL_FILE参数,使其指向新建的控制参数,使其指向新建的控制文件;假设修正了数据库称号,那么还需求修正文件;假设修正了数据库称号,那么还需求修正DB_NAME参数。参数。SQL ALTER SYSTEM SET CONTROL_FILES=2 G:appAdministrtororadataorclCONTROL01.CTL,3 G:appAdministrtororadataorclCONTROL02.CTL,4 G:appAdministrtororadataorclCONTROL

15、03.CTL5 SCOPE=SPFILE;系统已更改。系统已更改。 (8)假设需求的话,那么恢复数据库。假设需求的话,那么恢复数据库。 (9)假设在第假设在第8步中进展了恢复数据库的操作,那么需步中进展了恢复数据库的操作,那么需求执行求执行ALTER DATABASE OPEN语句翻开数据库。语句翻开数据库。SQL ALTER DATABASE OPEN; 假设在创建控制文件时运用了假设在创建控制文件时运用了RESETLOGS子句,那子句,那么需求运用么需求运用ALTER DATABASE OPEN RESETLOGS语句。语句。SQL ALTER DATABASE OPEN RESETLOG

16、S; 新的控制文件曾经创建胜利,并且数据库曾经被新新的控制文件曾经创建胜利,并且数据库曾经被新创建的控制文件翻开。创建的控制文件翻开。6.1.3 控制文件备份和恢复控制文件备份和恢复 由于控制文件本身具有特殊的重要性,为了提高数据库的由于控制文件本身具有特殊的重要性,为了提高数据库的可靠性,可靠性,DBA要经常对控制文件进展备份,尤其是修正了数要经常对控制文件进展备份,尤其是修正了数据库构造之后,需求立刻对控制文件进展备份。据库构造之后,需求立刻对控制文件进展备份。 备份控制文件的方法有两种:在操作系统下进展和在数备份控制文件的方法有两种:在操作系统下进展和在数据库中进展。假设是在操作系统下备

17、份,需求先停顿数据据库中进展。假设是在操作系统下备份,需求先停顿数据库效力器的运转,然后将控制文件复制到备份设备上,最库效力器的运转,然后将控制文件复制到备份设备上,最后重新启动数据库效力器。用该方法备份时,数据库效力后重新启动数据库效力器。用该方法备份时,数据库效力器暂时停顿的这段时间内用户无法访问数据库。假设运用器暂时停顿的这段时间内用户无法访问数据库。假设运用数据库备份控制文件,那么不需求封锁数据库效力器。可数据库备份控制文件,那么不需求封锁数据库效力器。可以将控制文件备份为一个二进制文件,也可以在跟踪文件以将控制文件备份为一个二进制文件,也可以在跟踪文件中生成一条中生成一条SQL语句。

18、语句。【例【例6-2】备份控制文件,运用如下语句可以把控制文件】备份控制文件,运用如下语句可以把控制文件备份为一个二进制文件,即复制当前的控制文件:备份为一个二进制文件,即复制当前的控制文件:SQL ALTER DATABASE BACKUP CONTROLFILE TO 2 G:ORACLE_BACKUPBACKUP_CONTROLFILECONTROL_12-2-5;数据库已更改。数据库已更改。运用下面语句可以讲控制文件备份为可读的文本文运用下面语句可以讲控制文件备份为可读的文本文件:件:SQL ALTER DATABASE BACKUP CONTROLFILE TO TRACE;数据库已

19、更改。数据库已更改。需求留意的是,将控制文件以文本方式备份时,需求留意的是,将控制文件以文本方式备份时,所创建的文件也为跟踪文件,该文件实践上是一个所创建的文件也为跟踪文件,该文件实践上是一个SQL脚本,可以利用它来重新创建新的控制文件。跟脚本,可以利用它来重新创建新的控制文件。跟踪文件的存放位置由参数踪文件的存放位置由参数USER_DUMP_DEST决议。决议。经过下面的代码可以查看,执行结果如图经过下面的代码可以查看,执行结果如图6-4。SQLSHOW PARAMETER USER_DUMP_DEST; 图图6-4 6-4 查看跟踪文件查看跟踪文件 备份任务完成后,即使发出了特殊情况,如控

20、备份任务完成后,即使发出了特殊情况,如控制文件损坏或丧失时,可以按照下面的方法恢复控制文制文件损坏或丧失时,可以按照下面的方法恢复控制文件。件。 假设控制文件被损坏,但是存储目录依然是可访问的,并假设控制文件被损坏,但是存储目录依然是可访问的,并且存在控制文件副本,且存在控制文件副本, 那么可以首先封锁数据库实例,然后那么可以首先封锁数据库实例,然后运用操作系统命令将控制文件副本复制到控制文件目录下,覆运用操作系统命令将控制文件副本复制到控制文件目录下,覆盖被损坏的控制文件,最后重新启动数据库。盖被损坏的控制文件,最后重新启动数据库。SQLSHUTDOWN IMMEDIATE; -运用控制文件

21、副本覆盖当前控制文件运用控制文件副本覆盖当前控制文件 SQLSTARTUP; 控制文件副本的创建方法很简单,控制文件副本的创建方法很简单, 首先封锁数据库,首先封锁数据库,然后将当前的控制文件复制到其他目录下,接着修正初始化参然后将当前的控制文件复制到其他目录下,接着修正初始化参数数CONTROL_FILES,添加新的控制文件或者修正原有的控,添加新的控制文件或者修正原有的控制文件,最后启动数据库即可。制文件,最后启动数据库即可。 假设由于永久性介质缺点的缘由,不能访问假设由于永久性介质缺点的缘由,不能访问CONTROL_FILES参数指定的某个控制文件,并且有这个控参数指定的某个控制文件,并

22、且有这个控制文件的副本。那么可首先封锁数据库实例,然后运用操作制文件的副本。那么可首先封锁数据库实例,然后运用操作系统命令把当前控制文件的副本复制到一个新的可访问位置。系统命令把当前控制文件的副本复制到一个新的可访问位置。接着编辑初始化参数接着编辑初始化参数CONTROL_FILES,用新的控制文件的,用新的控制文件的位置交换原来被损坏的位置。最后运用位置交换原来被损坏的位置。最后运用STARTUP命令重新命令重新翻开数据库。翻开数据库。6.1.4 删除控制文件删除控制文件 假设部分控制文件损坏,或者希望减少假设部分控制文件损坏,或者希望减少控制文件的数目,就需求删除无用的控制文控制文件的数目

23、,就需求删除无用的控制文件。删除步骤如下:件。删除步骤如下: (1)运用运用SHUTDOWN命令封锁数据库;命令封锁数据库; (2)编辑初始化参数编辑初始化参数CONTROL_FILES,使其中不再包含要删除的控制文件的称号;使其中不再包含要删除的控制文件的称号; (3)重新启动数据库。重新启动数据库。6.1.5 查看控制文件信息查看控制文件信息 在创建数据库的同时控制文件自动被创建,当数据库的在创建数据库的同时控制文件自动被创建,当数据库的信息发生改动时,控制文件也随之被改动;控制文件不能手信息发生改动时,控制文件也随之被改动;控制文件不能手动修正,只能由动修正,只能由Oracle数据库本身

24、本人来修正。控制文件在数据库本身本人来修正。控制文件在数据库启动和封锁时都要运用,数据库启动和封锁时都要运用,Oracle提供了包含控制文件提供了包含控制文件信息的数据字典视图和动态性能视图。如表信息的数据字典视图和动态性能视图。如表6-1所示。所示。【例【例6-3】查询控制文件数据字典的描画信息,代码如下,】查询控制文件数据字典的描画信息,代码如下,结果如图结果如图6-5。SQLdesc v$controlfile图图6-5 数据字典数据字典v$controlfile留意:在数据字典前面加上留意:在数据字典前面加上v$符号,代表的是当前实例的符号,代表的是当前实例的动态视图。动态视图。【例【

25、例6-4】经过查询视图】经过查询视图V$CONTROLFILE_RECORD_SECTION获取控制文件的获取控制文件的记录类型、记录大小、记录总数量和运用记录数量等信息,记录类型、记录大小、记录总数量和运用记录数量等信息,结果如下:结果如下:SQLSELECT TYPE, RECORD_SIZE, RECORDS_TOTAL, RECORDS_USED 2 FROM V$CONTROLFILE_RECORD_SECTION;图图6-6 数据字典数据字典v$controlfile_RECORD_SECTION6.1.6 运用运用OEM工具管理控制文件工具管理控制文件 启动启动OEMOEM,单击

26、,单击“效力器效力器| |“控制文件超链接,即可显控制文件超链接,即可显示出当前数据库中的控制文件信息,如图示出当前数据库中的控制文件信息,如图6-76-7所示。所示。图图6-7 OEM显示的控制文件信息显示的控制文件信息 “普通讯息页面中,显示了一切的控制文件信息,包括普通讯息页面中,显示了一切的控制文件信息,包括控制文件的称号与位置。假设需求查看控制文件中记录文档控制文件的称号与位置。假设需求查看控制文件中记录文档段的信息,那么可进入段的信息,那么可进入“记录文档段页面。假设单击记录文档段页面。假设单击“备份备份到跟踪文件按钮,就可以将控制文件备份到跟踪文件中。到跟踪文件按钮,就可以将控制

27、文件备份到跟踪文件中。 控制文件是控制文件是Oracle非常重要的文件之一,如何平安地非常重要的文件之一,如何平安地管理这个文件对数据库的日常维护、备份和恢复都具有重要管理这个文件对数据库的日常维护、备份和恢复都具有重要意义。意义。6.2 重做日志管理重做日志管理 在在Oracle中,事务对数据库所作的修正将以重做记录的中,事务对数据库所作的修正将以重做记录的方式保管在重做日志缓存中。当事务提交时,由方式保管在重做日志缓存中。当事务提交时,由LGWR进程进程将缓存中与该事务相关的重做记录全部写入重做日志文件,将缓存中与该事务相关的重做记录全部写入重做日志文件,此时该事务被以为胜利提交。重做日志

28、对数据库恢复来说是此时该事务被以为胜利提交。重做日志对数据库恢复来说是至关重要的。本节将重点引见重做日志的根本概念,以及如至关重要的。本节将重点引见重做日志的根本概念,以及如何管理重做日志。何管理重做日志。6.2.1 重做日志概述重做日志概述 重做日志文件由重做记录组成,而每个重做记录由一重做日志文件由重做记录组成,而每个重做记录由一组变化元素组成,变化元素中记录了数据库中每个单独的组变化元素组成,变化元素中记录了数据库中每个单独的数据块的变化情况。数据块的变化情况。 重做日志文件是由重做记录组成的,重做记录由一组重做日志文件是由重做记录组成的,重做记录由一组修正向量组成。每个修正向量都记录了

29、数据库中某个数据修正向量组成。每个修正向量都记录了数据库中某个数据块所做的修正。可以运用重做记录不仅可以恢复对数据文块所做的修正。可以运用重做记录不仅可以恢复对数据文件所做的修正操作,还可以恢复对回滚段所做的修正操作。件所做的修正操作,还可以恢复对回滚段所做的修正操作。当运用重做数据恢复数据库时,数据库将从重做记录中读当运用重做数据恢复数据库时,数据库将从重做记录中读取变化元素,然后将变化运用到相关的数据块中。取变化元素,然后将变化运用到相关的数据块中。 在在Oracle中,用户对数据库所做的修正首先被保管中,用户对数据库所做的修正首先被保管在内存中,这样可以提高数据库的性能,由于对内存中的在

30、内存中,这样可以提高数据库的性能,由于对内存中的数据进展操作要比对磁盘进展操作快得多。数据进展操作要比对磁盘进展操作快得多。Oracle每隔一段每隔一段时间就会启动时间就会启动LGWR进程将内存中的重做记录保管到重做进程将内存中的重做记录保管到重做日志文件中。因此,即使发生缺点导致数据库解体,日志文件中。因此,即使发生缺点导致数据库解体,Oracle也可以利用重做信息恢复丧失的数据。也可以利用重做信息恢复丧失的数据。 每个每个Oracle数据库至少两个重做日志文件,数据库至少两个重做日志文件,Oracle以循以循环方式运用重做日志文件的。即当一个重做日志文件被写满环方式运用重做日志文件的。即当

31、一个重做日志文件被写满后,后台进程后,后台进程LGWR开场写入下一个重做日志文件;当一切开场写入下一个重做日志文件;当一切重做日志文件都写满后,重做日志文件都写满后,LGWR进程再重新写入第一个重做进程再重新写入第一个重做日志文件中。在安装日志文件中。在安装Oracle 11g时,默许创建三组重做日志文时,默许创建三组重做日志文件。图件。图6-8显示了重做日志的循环写入方式。显示了重做日志的循环写入方式。图图6-8 LGWR写入重做日志的过程写入重做日志的过程 为了提高数据库的可靠性,为了提高数据库的可靠性,Oracle提供了多路复用联机提供了多路复用联机重做日志文件的功能。也就是说,系统在不

32、同的位置上自动重做日志文件的功能。也就是说,系统在不同的位置上自动维护重做日志的两个或更多副本。从平安角度出发,这些副维护重做日志的两个或更多副本。从平安角度出发,这些副本的保管位置应该在不同的磁盘上。多路复用指经过创建重本的保管位置应该在不同的磁盘上。多路复用指经过创建重做日志组来实现,组包括一个重做日志文件和它的多元副本。做日志组来实现,组包括一个重做日志文件和它的多元副本。每个重做日志组由数字来定义,如图每个重做日志组由数字来定义,如图6-9所示。所示。 图图6-9 多路复用重做日志文件多路复用重做日志文件 图中,图中,A、B、C分别属于不同的组,分别属于不同的组,A_LOG1和和A_L

33、OG2都是组都是组1的成员。每个日志文件组的成员必需同时的成员。每个日志文件组的成员必需同时处于激活形状,这样处于激活形状,这样LGWR进程就可以同时写入这两个日志进程就可以同时写入这两个日志文件。文件。LGWR不会同时写入不同组的日志文件。假设不会同时写入不同组的日志文件。假设LGWR写入不同组中的一个成员文件,那么数据库将此成员标志为写入不同组中的一个成员文件,那么数据库将此成员标志为INVALID,并在,并在LGWR追踪文件和数据库警告日志中写入追踪文件和数据库警告日志中写入一条错误信息,记录下它的日志文件组编号和成员编号,以一条错误信息,记录下它的日志文件组编号和成员编号,以协助协助D

34、BA确定缺点,并进一步排除缺点。确定缺点,并进一步排除缺点。在设置或更改数据库实例的重做日志文件之前,需求思索数在设置或更改数据库实例的重做日志文件之前,需求思索数据库对重做日志文件的限制:据库对重做日志文件的限制: 参数参数MAXLOGFILES:在创建数据库:在创建数据库CREATE DATABASE语句中运用该参数可以为数据库指定重做日语句中运用该参数可以为数据库指定重做日志文件的最大组数。志文件的最大组数。 参数参数MAXLOGMEMBERS:在创建数据库:在创建数据库CREATE DATABASE语句中运用该参数可以为每个组指定成员的语句中运用该参数可以为每个组指定成员的最大数量。最

35、大数量。假设需求修正以上两个参数的值的独一方法是重新创建数假设需求修正以上两个参数的值的独一方法是重新创建数据库的控制文件。据库的控制文件。6.2.2 创建重做日志组及成员创建重做日志组及成员 在创建数据库的时候,可以规划数据库的重做日志,在创建数据库的时候,可以规划数据库的重做日志,并创建重做日志组及其成员文件。但在数据库创建后,有并创建重做日志组及其成员文件。但在数据库创建后,有时也需求添加新的重做日志。要创建新的重做日志组及其时也需求添加新的重做日志。要创建新的重做日志组及其成员,用户必需拥有成员,用户必需拥有ALTER DATABASE的系统权限。的系统权限。1. 创建重做日志组创建重

36、做日志组运用运用ALRER DATABASE语句创建重做日志组。语法如语句创建重做日志组。语法如下:下:ALTER DATABASE database_nameADD LOGFILE GROUP nfilename SIXE sizedatabase_name:需求修正的数据库名,省略表示当前数:需求修正的数据库名,省略表示当前数据库。据库。n:表示创建重做日志组的组号,组号在重做日志组中是:表示创建重做日志组的组号,组号在重做日志组中是独一的。独一的。filename:日志文件组存储的位置。:日志文件组存储的位置。m:日志文件组的大小,默许的大小是:日志文件组的大小,默许的大小是50MB。【

37、例【例6-5】运用】运用ALTER DATABASE语句中的语句中的ADD LOGFILE子句创建重做日志组,代码如下,执行结果如图子句创建重做日志组,代码如下,执行结果如图6-10。SQLALTER DATABASE 2 ADD LOGFILE GROUP 5 3 G:appAdministratororadataorclNEWLOG5-1.LOG SIZE 10M;图图6-10 创建重做日志文件组创建重做日志文件组图中所示,在数据库中曾经创建了新的重做日志文件组。图中所示,在数据库中曾经创建了新的重做日志文件组。2. 创建重做日志成员创建重做日志成员在在ALRER DATABASE语句中运

38、用语句中运用ADD LOGFILE MEMBER关键字创建重做日志成员。语法如下:关键字创建重做日志成员。语法如下:ALTER DATABASE database_nameADD LOGFILE MEMBERfilename TO GROUP n【例【例6-6】运用】运用ALTER DATABASE语句中的语句中的ADD LOGFILE子句添加重做日志文件到重做日志文件组中子句添加重做日志文件到重做日志文件组中5,代码如下,执行结果如图代码如下,执行结果如图6-11。SQLALTER DATABASE 2 ADD LOGFILE MEMBER 3 G:appAdministratororada

39、taorclNEWLOG5-2.LOG 4 TO GROUP 5;图图6-11 创建重做日志文件成员创建重做日志文件成员经过查看操作系统文件夹,发现日志文件经过查看操作系统文件夹,发现日志文件NEWLOG5-2.LOG文件已添加到指定文件夹下。文件已添加到指定文件夹下。6.2.3 修正重做日志文件的存储位置和称号修正重做日志文件的存储位置和称号 在数据库的运转过程中,有时能够会根据需求修正重做在数据库的运转过程中,有时能够会根据需求修正重做日志文件的存储位置或称号。重做日志文件的信息是记录在日志文件的存储位置或称号。重做日志文件的信息是记录在控制文件中的,修正重做日志文件的存储位置或称号实践上

40、控制文件中的,修正重做日志文件的存储位置或称号实践上意味着修正控制文件中的信息。修正之前,还要保证用户拥意味着修正控制文件中的信息。修正之前,还要保证用户拥有有ALTER DATABASE系统权限、复制文件到指定位置的操系统权限、复制文件到指定位置的操作系统权限以及翻开和备份数据库的权限。作系统权限以及翻开和备份数据库的权限。【例【例6-7】修正当前数据库的重做日志文件的存储位置和】修正当前数据库的重做日志文件的存储位置和称号,详细操作步骤如下:称号,详细操作步骤如下:(1) 运用运用SHUTDOWN命令封锁数据库。命令封锁数据库。SQL SHUTDOWN;(2) 在操作系统中重命名重做日志文

41、件或将重做日志文件在操作系统中重命名重做日志文件或将重做日志文件复制到新的位置上。复制到新的位置上。(3) 重启数据库实例,加载数据库但不翻开数据库。重启数据库实例,加载数据库但不翻开数据库。SQL STARTUP MOUNT;(4) 运用运用RENAME FILE子句的子句的ALTER DATABASE语句语句重新设置重做日志文件的称号和途径。重新设置重做日志文件的称号和途径。SQL ALTER DATABASE RENAME FILE2 G:appAdministratororadataorclREDO01.LOG,3 G:appAdministratororadataorclREDO02

42、.LOG,4 G:appAdministratororadataorclREDO03.LOG5 TO6 G:appAdministratororadataorclREDONEW01.LOG,7 G:appAdministratororadataorclREDONEW02.LOG,8 G:appAdministratororadataorclREDONEW03.LOG;数据库已更改。数据库已更改。(5) 翻开数据库。翻开数据库。SQL ALTER DATABASE OPEN; (6) 备份控制文件。备份控制文件。重启启动数据库,经过查询数据字典重启启动数据库,经过查询数据字典V$LOGFILE可

43、可以查看数据库如今所运用的重做日志文件。以查看数据库如今所运用的重做日志文件。SQL SELECT MEMBER FROM V$LOGFILE;6.2.4 删除重做日志文件删除重做日志文件 在某些情况下,需求将某个重做日志组或日志成员删除。在某些情况下,需求将某个重做日志组或日志成员删除。例如,由于某个日志成员损坏而导致整个重做日志组不可用,例如,由于某个日志成员损坏而导致整个重做日志组不可用,这时需求将损坏的日志成员删除。这时需求将损坏的日志成员删除。1. 删除日志文件删除日志文件删除成员日志文件之前,需求留意以下几种情况:删除成员日志文件之前,需求留意以下几种情况: 删除重做日志文件是合理

44、的,每个重做日志组中至少要删除重做日志文件是合理的,每个重做日志组中至少要包含一个可有的成员。包含一个可有的成员。 当删除日志文件属于当删除日志文件属于INACTIVE日志组时,才可以删除。日志组时,才可以删除。假设不是,可以先强迫进展日志切换。假设不是,可以先强迫进展日志切换。 删除日志文件,假设是归档方式,那么要确保曾经归档,删除日志文件,假设是归档方式,那么要确保曾经归档,才可以删除。才可以删除。删除日志文件的语法如下:删除日志文件的语法如下:ALTER DATABASE database_nameDROP LOGFILE MEMBERfilename其中,其中,filename是指日志

45、文件的名字,包括途径。是指日志文件的名字,包括途径。【例【例6-8】在】在SQL *Plus中删除名为中删除名为NEWLOG5-2的日志文的日志文件,执行结果如图件,执行结果如图6-12。图图6-12 删除重做日志文件成员删除重做日志文件成员2. 删除日志文件组删除日志文件组假设某个重做日志组不再需求运用,可以将整个日志组假设某个重做日志组不再需求运用,可以将整个日志组删除。删除一个日志组时,其中的成员文件也将被一同删删除。删除一个日志组时,其中的成员文件也将被一同删除。删除日志组时,也需求留意如下几点:除。删除日志组时,也需求留意如下几点: 无论日志组中有多少个成员,一个数据库至少需求两无论

46、日志组中有多少个成员,一个数据库至少需求两个日志组。个日志组。 只能删除处于只能删除处于INACTIVE形状的日志组。假设要删除形状的日志组。假设要删除CURRENT形状的重做日志组,那么必需执行一个手工切形状的重做日志组,那么必需执行一个手工切换日志,使其切换到换日志,使其切换到INACTIVE形状。形状。 假设数据库处于归档方式下,在删除重做日志组之前假设数据库处于归档方式下,在删除重做日志组之前必需确定它曾经被归档。可以经过查询必需确定它曾经被归档。可以经过查询V$LOG数据字典数据字典视图,查看能否曾经对日志组进展过归档。可以参考如下视图,查看能否曾经对日志组进展过归档。可以参考如下代

47、码:代码:SQL SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;删除重做日志文件组的语法如下:删除重做日志文件组的语法如下:ALTER DATABASE database_nameDROP LOGFILE GROUP n【例【例6-9】在】在SQL *Plus中删除组号是中删除组号是5的日志文件组,执行的日志文件组,执行结果如图结果如图6-12。图图6-13 删除重做日志文件组删除重做日志文件组需求留意的是,删除重做日志文件成员和删除重做日志需求留意的是,删除重做日志文件成员和删除重做日志文件组的操作只是在数据字典和控制文件中将它们的记录信文件组的操作只

48、是在数据字典和控制文件中将它们的记录信息删除,并不会物理地删除操作系统中相应的文件,这需求息删除,并不会物理地删除操作系统中相应的文件,这需求手工在操作系统中将相应的文件删除。手工在操作系统中将相应的文件删除。6.2.5 清空重做日志文件清空重做日志文件 在数据库运转过程中,假设由于重做日在数据库运转过程中,假设由于重做日志文件的损坏而导致归档操作无法进展,数志文件的损坏而导致归档操作无法进展,数据库效力器的运转最终将停顿。在这种情况据库效力器的运转最终将停顿。在这种情况下,可以将重做日志文件的内容全部清空。下,可以将重做日志文件的内容全部清空。清空重做日志文件的操作可以在不封锁数据清空重做日

49、志文件的操作可以在不封锁数据库的情况下手工清空日志文件中的内容。库的情况下手工清空日志文件中的内容。清空重做日志文件的语法构造如下:清空重做日志文件的语法构造如下: ALTER DATABASE database_name CLEAR LOGFILE GROUP n【例【例6-10】在】在SQL *Plus中清空组号是中清空组号是4的日志文件组,的日志文件组,代码如下:代码如下:SQL ALTER DATABSE CLEAR LOGFILE GROUP 4;数据库已更改。数据库已更改。假设重做日志没有归档,那么可以在语句中添加假设重做日志没有归档,那么可以在语句中添加UNARCHIVED关键字

50、,代码如下:关键字,代码如下:SQL ALTER DATABSE CLEAR UNARCHIVED LOGFILE GROUP 4;数据库已更改。数据库已更改。需求留意的是,假设被清空的重做日志组还没有归档,需求留意的是,假设被清空的重做日志组还没有归档,有能够呵斥数据丧失。所以,应提早创建数据库的另一个有能够呵斥数据丧失。所以,应提早创建数据库的另一个备份。备份。6.2.6 重做日志文件的切换重做日志文件的切换 数据库效力器在运转过程中,数据库效力器在运转过程中,LGWR后后台进程将重做日志写入重做日志文件。当第台进程将重做日志写入重做日志文件。当第一个日志组写满后,一个日志组写满后,LGW

51、R将自动切换到第将自动切换到第二个日志组,并将重做日志写入第二个日志二个日志组,并将重做日志写入第二个日志组。依此类推,当最后一个日志组被写满后,组。依此类推,当最后一个日志组被写满后,LGWR将自动切换到第一个日志组,这个循将自动切换到第一个日志组,这个循环的过程是自动的。在某些特殊的情况下,环的过程是自动的。在某些特殊的情况下,需求手工切换日志,即在当前重做日志组尚需求手工切换日志,即在当前重做日志组尚未写满的时候,强迫未写满的时候,强迫LGWR进程将重做日志进程将重做日志写入下一个日志组。写入下一个日志组。 执行手工切换重做日志义务的用户需求执行手工切换重做日志义务的用户需求有有ALTE

52、R SYSTEM系统权限,完好的语法系统权限,完好的语法格式如下:格式如下:ALTER SYSTEM SWITCH LOGFILE 每进展一次切换,每进展一次切换,Oracle都会在数据库警告文件中对都会在数据库警告文件中对其进展记录,而且无论是自动切换还是手动切换,日志序其进展记录,而且无论是自动切换还是手动切换,日志序列号都会自动加列号都会自动加1。虽然日志组是循环运用的,但是日志。虽然日志组是循环运用的,但是日志序列号是无限递增的。重做日志序列号独一标识了重做日序列号是无限递增的。重做日志序列号独一标识了重做日志文件和归档日志文件。当进展数据库恢复时,就可以按志文件和归档日志文件。当进展

53、数据库恢复时,就可以按照序列号递增的顺序依次查找所需的重做日志文件和归档照序列号递增的顺序依次查找所需的重做日志文件和归档日志文件。日志文件。6.2.7 查看重做日志文件查看重做日志文件 由于日志文件本身的重要性,由于日志文件本身的重要性,DBA能能够要经常查询日志文件。与重做日志文件够要经常查询日志文件。与重做日志文件相关的数据字典视图有三个,如表相关的数据字典视图有三个,如表6-2所示。所示。 经过查询数据字典视图经过查询数据字典视图V$LOG可以查看重做日志文件组可以查看重做日志文件组的组号、序列号、大小、能否归档、形状等信息。执行效果的组号、序列号、大小、能否归档、形状等信息。执行效果

54、如图如图6-14。其中重做日志文件的形状如表。其中重做日志文件的形状如表6-3所示。所示。图图6-14 查看重做日志文件组查看重做日志文件组 经过查询数据字典视图经过查询数据字典视图V$LOGFILE可以获得每个重做可以获得每个重做日志组中的日志成员及其形状等信息。其中日志成员的形日志组中的日志成员及其形状等信息。其中日志成员的形状如表状如表6-4所示。所示。6.2.8 运用运用OEM管理重做日志文件管理重做日志文件 运用运用OEM工具也可以很方便的管理重做日工具也可以很方便的管理重做日志文件。启动志文件。启动OEM,单击,单击“效力器效力器|“重做日重做日志文件组超链接,即可显示出当前数据库

55、中志文件组超链接,即可显示出当前数据库中的一切重做日志组信息,如图的一切重做日志组信息,如图6-15所示。所示。图图6-15 OEM显示的重做日志文件组信息显示的重做日志文件组信息 在显示的重做日志组信息页面假设单击在显示的重做日志组信息页面假设单击“创建按钮,可创建按钮,可以为数据库添加一个日志文件组;假设单击以为数据库添加一个日志文件组;假设单击“编辑按钮,编辑按钮,可以对当前选中的重做日志文件进展修正,包括添加可以对当前选中的重做日志文件进展修正,包括添加/删除删除成员日志文件、挪动或重命名成员日志文件;假设选择了成员日志文件、挪动或重命名成员日志文件;假设选择了“操作列表框中的某一操作

56、类型如切换日志,单击操作列表框中的某一操作类型如切换日志,单击“开开场按钮,将执行该操作。场按钮,将执行该操作。6.3 归档日志管理归档日志管理 归档日志归档日志(Archive Log)是非活动的重做日志备份。经是非活动的重做日志备份。经过运用归档日志,可以保管一切重做历史记录,当数据库过运用归档日志,可以保管一切重做历史记录,当数据库处于处于ARCHIVELOG方式并进展日志切换式,后台进程方式并进展日志切换式,后台进程ARCH会将重做日志的内容保管到归档日志中,这个过程叫会将重做日志的内容保管到归档日志中,这个过程叫做归档。当数据库出现介质缺点时,运用数据文件备份、做归档。当数据库出现介

57、质缺点时,运用数据文件备份、归档日志和重做日志可以完全恢复数据库。归档日志和重做日志可以完全恢复数据库。6.3.1 归档日志概述归档日志概述 Oracle数据库的修正内容都记录在重做日志文件中,数据库的修正内容都记录在重做日志文件中,但是由于重做日志文件是以循环方式任务的,会出现重做但是由于重做日志文件是以循环方式任务的,会出现重做日志文件被新写入的重做日志文件覆盖的问题。为了完好日志文件被新写入的重做日志文件覆盖的问题。为了完好地记录数据库的全部更新操作,地记录数据库的全部更新操作,Oracle提出了归档日志的概提出了归档日志的概念来处理这一问题。念来处理这一问题。 在重做日志文件被覆盖之前

58、,在重做日志文件被覆盖之前,Oracle可以将曾经写可以将曾经写满的重做日志文件经过复制保管到指定的位置,保管下来满的重做日志文件经过复制保管到指定的位置,保管下来的一切重做日志文件被称为的一切重做日志文件被称为“归档重做日志,这个过程就归档重做日志,这个过程就是是“归档过程。只需数据库处于归档方式时,才会对重做归档过程。只需数据库处于归档方式时,才会对重做日志文件执行归档操作。归档操作可以由后台进程日志文件执行归档操作。归档操作可以由后台进程ARCn自自动完成,也可以由动完成,也可以由DBA手工来完成。手工来完成。 归档日志文件中包含了被覆盖的日志文件和重做日志文归档日志文件中包含了被覆盖的

59、日志文件和重做日志文件的序列号。当数据库处于归档方式下,写日志进程件的序列号。当数据库处于归档方式下,写日志进程LGWR不可以对未归档的重做日志文件组进展重用和改写操作。假不可以对未归档的重做日志文件组进展重用和改写操作。假设设置了自动归档方式,那么后台进程设设置了自动归档方式,那么后台进程ARCn将自动地执行将自动地执行归档操作。为了提高归档的速度,可以思索启动多个归档操作。为了提高归档的速度,可以思索启动多个ARCn进程加速归档的速度。进程加速归档的速度。 运用归档日志文件可以实现恢复数据库、更新备用数运用归档日志文件可以实现恢复数据库、更新备用数据库以及获取数据库的历史信息等目的。用户可

60、以选择自动据库以及获取数据库的历史信息等目的。用户可以选择自动归档或手动归档,但自动归档方式更加方便快捷。归档或手动归档,但自动归档方式更加方便快捷。6.3.2 管理归档方式管理归档方式 数据库效力器有两种日志方式:归档方式和非归档方数据库效力器有两种日志方式:归档方式和非归档方式。在非归档方式下,当一个重做日志组被写满时,式。在非归档方式下,当一个重做日志组被写满时,LGWR进程将自动切换到下一重做日志组,这个重做日志进程将自动切换到下一重做日志组,这个重做日志组中以前的重做日志文件将被覆盖。而在归档方式下,每组中以前的重做日志文件将被覆盖。而在归档方式下,每个重做日志组在被覆盖之前都做了归

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论