资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,Oracle 10g,数据库基础教程,2012,第,6,章 物理存储结构,本章内容,Oracle,数据库系统结构,数据文件,控制文件,重做日志文件,归档重做日志文件,本章要求,理解,Oracle,数据库,的系统结构,掌握数据文件的管理,掌握控制文件的作用及其管理,掌握重做日志文件的工作方式及其管理,掌握数据库归档模式设置及归档管理,6.1 Oracle数据库系统结构,Oracle,数据库系统结构由,数据库实例,和,物理存储结构,组成。,(,内存结构,),在,Oracle,数据库的存储结构包括,物理存储结构,和,逻辑存储结构,。,物理存储结构:主要用于描述,Oracle,数据库,外部数据,的存储,即在操作系统中如何组织和管理数据,,与具体的操作系统,有关,;,逻辑存储结构:主要描述,Oracle,数据库,内部数据,的组织和管理方式,,与操作系统,没有关系,。,物理存储结构是逻辑存储结构在物理上的、可见的、可操作的、具体的体现形式。,1,n,逻辑角度,物理角度,Oracle,数据库物理存储结构,指存储在磁盘上的物理文件:,功能:,数据文件:用于,存储,数据库中的,所有数据,;,控制文件:用于,记录,和,描述,数据库的,物理存储结构信息,;,重做日志文件:用于,记录,外部程序,(,用户,),对,数据库的改变,操作;,归档文件:用于,保存,已经,写满的重做日志文件,;,初始化参数文件:用于,设置,数据库,启动时的参数初始值,;,跟踪文件:用于,记录,用户进程、数据库后台进程等的,运行情况,;,口令文件:用于,保存,具有,SYSDBA,,,SYSOPER,权限的,用户名,和,SYS,用户口令,;,警告文件:用于,记录,数据库的,重要活动,以及发生的,错误,;,备份文件:用于,存放,数据库,备份所产生的文件,。,6.2 数据文件及其管理,数据文件概述,数据文件的管理,6.2.1 数据文件概述,数据文件的内容,用于保存数据库中所有数据的文件,扩展名为,DBF,。,临时数据文件,是一种特殊的数据文件,其存储内容是临时性的,在一定条件下自动释放。,Oralce,数据库中的每个数据文件都具有,两个文件号,,用于唯一地确定一个数据文件。,绝对,文件号:用于在,整个数据库范围内,唯一标识一个数据文件;,相对,文件号:用于在,表空间范围内,唯一标识一个数据文件。,数据文件与表空间的,关系,数据文件依附于表空间存在,表空间 数据文件,1,n,数据文件的,管理策略,数据文件的最大数量:使用初始化参数,DB_FILES,限制,数据文件的大小,数据文件的存储位置:,把,不同,存储,内容,的数据文件放置在,不同的硬盘,上,可以并行访问数据,提高系统读写的效率。,初始化参数文件,、,控制文件,、,重做日志文件,最好,不要,与,数据文件,存放在,同一个磁盘上,,以免数据库发生介质故障时,无法恢复数据库。,受,OS,的限,制,6.2.2 数据文件的管理,创建数据文件,修改数据文件的大小,改变数据文件的可用性,改变数据文件的名称或位置,删除数据文件,查询数据文件的信息,利用,OEM,管理数据文件,(,1,)创建数据文件,数据文件,依附于,表空间而存在,创建数据文件就是向表空间添加文件。,在创建数据文件时,应该根据文件数据量的大小确定,文件的大小,以及文件的,增长方式,。,命令语法:,CREATE TABLESPACE/DATABASE,CREATE TEMPORARY TABLESPACE,ALTER DATABASECREATE DATAFILE(,数据库恢复时,),ALTER TABLESPACEADD DATAFILE,ALTER TABLESPACEADD TEMPFILE,数据库运行与,维护时采用,注意:进行这些操作必须具备,管理员权限,!,例,1,:向,ORCL,数据库的,USERS,表空间中添加一个大小为,10 MB,的数据文件。,例,2,:向,ORCL,数据库的,TEMP,表空间中添加一个大小为,5 MB,的临时数据文件。,SQL ALTER TABLESPACE USERS ADD,DATA,FILE,2 D:oracleproduct10.2.0oradataORCL,3 USERS02.DBF SIZE 10M;,SQL ALTER TABLESPACE TEMP ADD,TEMP,FILE,2 D:oracleproduct10.2.0oradataORCL,3 TEMP02.DBF SIZE 5M;,注意:,若指定的数据文件已经存在,(,指,DB,系统中已经存在同名的文件,但是,无效的,DB,文件或非,DB,文件,),,可以,使用,REUSE,子句进行覆盖,。如果,该,同名文件是,DB,的,有效,文件,则,不能覆盖,!,(,2,)修改数据文件大小,两种方法,设置数据文件为,自动增长,方式,优点:,DBA,无须过多干涉数据库存储空间的分配问题,可以保证应用程序不会因为分配空间不足而导致错误,手工改变,数据文件的大小,设置数据文件为自动增长方式,创建时,设置:,CREATE DATABASE/TABLESPACE,ALTER TABLESPACE,ADD,DATAFILE,创建后,修改,:,ALTER,DATABASE,DATAFILE,AUTOEXTEND ON NEXT MAXSIZE|UNLIMITED,AUTOEXTEND ON,指定数据文件每次,自动增长的大小,指定数据文件,的,极限,大小,指定数据文件,大小没有限制,手工改变数据文件的大小,ALTER,DATABASE,DATAFILE,RESIZE,例,3,:为,ORCL,数据库的,USERS,表空间,添加,一个自动增长的数据文件,USERS03.DBF,。,例,4,:,修改,ORCL,数据库,USERS,表空间的数据文件,USERS02.DBF,为自动增长方式。,SQL ALTER,TABLESPACE,USERS ADD DATAFILE,2 D:oracleproduct10.2.0oradataORCLUSERS03.DBF,3 SIZE 10M,AUTOEXTEND ON NEXT,512K,MAXSIZE,50M;,SQL ALTER,DATABASE,DATAFILE,2 D:oracleproduct10.2.0oradataORCLUSERS02.DBF,3 AUTOEXTEND ON NEXT 512K MAXSIZE UNLIMITED;,例,5,:取消,ORCL,数据库,USERS,表空间的数据文件,USERS02.DBF,的自动增长方式。,例,6,:将,ORCL,数据库,USERS,表空间的数据文件,USERS02.DBF,大小设置为,8 MB,。,SQL ALTER,DATABASE DATAFILE,2 D:oracleproduct10.2.0oradataORCLUSERS02.DBF,3 AUTOEXTEND,OFF,;,SQL ALTER,DATABASE DATAFILE,2 D:oracleproduct10.2.0oradataORCLUSERS02.DBF,3,RESIZE,8M;,(,3,)改变数据文件的可用性,概念,可以通过将数据文件,联机,或,脱机,来改变数据文件的可用性。,下面几种情况:,进行数据文件的,脱机备份,时;,重命名数据文件,或,改变数据文件的位置,时;,写入,某个数据文件时,发生错误,,会,自动,将该数据文件,设置为脱机状态,,并且记录在警告文件中。排除故障后,需要以,手动方式重新,将该数据文件恢复为,联机,状态。,数据文件丢失,或,损坏,,需要在启动数据库之前将数据文件脱机。,归档模式下数据文件可用性的改变,数据文件可用性的改变,ALTER DATABASE,DATAFILE,ONLINE|OFFLINE,临时数据文件可用性的概念改变,ALTER DATABASE,TEMPFILE,ONLINE|OFFLINE,说明:,数据库的运行可以根据,是否进行重做日志文件归档,,而分为,归档模式,和,非归档模式,。详见,6.5,例,7,:在数据库处于归档模式下,将,ORCL,数据库,USERS,表空间的数据文件,USERS02.DBF,脱机。,例,8,:将,ORCL,数据库,USERS,表空间的数据文件,USERS02.DBF,联机。,SQL ALTER DATABASE DATAFILE,2 D:oracleproduct10.2.0oradataORCLUSERS02.DBF,3,OFFLINE,;,SQL,RECOVER DATAFILE,2 D:oracleproduct10.2.0oradataORCLUSERS02.DBF;,SQL ALTER DATABASE DATAFILE,2 D:oracleproduct10.2.0oradataORCLUSERS02.DBF,3,ONLINE,;,注意:,在归档模式下,将数据文件联机前,需要进行,恢复操作。,使用,RECOVER DATAFILE,。,非归档模式下数据文件可用性的改变,在非归档模式下,通常不能将数据文件脱机。,如果由于,数据文件的损坏,,需要将数据文件脱机,然后重新启动数据库,需要使用:,ALTER DATABASE DATAFILE,OFFLINE,FOR DROP,SQL ALTER DATABASE DATAFILE,2 D:oracleproduct10.2.0oradataORCLUSERS02.DBF,3,OFFLINE,FOR DROP,;,注意,:此时要联机只有采用,介质恢复的形式,才能够将数据文件设置为联机。,改变,表空间中所有,数据文件的可用性,在归档模式下,将,表空间,所有文件,脱机,或,联机,ALTER,TABLESPACE,.DATAFILE,ONLINE|OFFLINE,在归档模式下,将,临时表空间,所有临时文件,联机,或,脱机,ALTER,TABLESPACE,.TEMPFILE,ONLINE|OFFLINE,例,9,:在归档模式下,将,USERS,表空间中所有的数据文件脱机,但,USERS,表空间不脱机,。然后再将,USERS,表空间中的所有数据文件联机。,SQL ALTER TABLESPACE USERS DATAFILE OFFLINE;,SQL RECOVER TABLESPACE USERS;,SQL ALTER TABLESPACE USERS DATAFILE ONLINE;,(,4,)改变数据文件的名称或位置,通过,重命名,或,移动,数据文件,可以在,不改变逻辑结构,的情况下,,对物理结构进行调整,。两种情况:,改变,同一个表空间,中的数据文件的名称或位置,ALTER TABLESPACLE,RENAME,DATAFILE,TO,改变,多个表空间,中的数据文件的名称或位置,ALTER DATABASE,RENAME,FILE,TO,注意:,改变数据文件的名称或位置时,,Oracle,只是改变,记录在,控制文件,和,数据字典,中的,数据文件信息,,并,没有改变,操作系统中,数据文件的名,称,和,位置,,因此需要,DBA,手动更改操作系统中,数据文件的名称和位置。,改变同一个表空间中的数据文件的名称或位置,例,10,:更改,ORCL,数据库,USERS,表空间的,USERS02.DBF,和,USERS03.DBF,文件名为,USERS002.DBF,和,USERS003.DBF,。,将包含数据文件的,表空间置为脱机状态,。,在操作系统中重命名数据文件或移动数据文件到新的位置。,使用,ALTER TABLESPACERENAME DATAFILETO,语句进行操作。,将表空间联机。,SQL ALTER,TABLESPACE,USERS,OFFLINE,;,SQL ALTER TABLESPACE USERS RENAME DATAFILE,D:ORACLEPRODUCT10.2.0ORADATAORCLUSERS02.DBF,D:ORACLEPRODUCT10.2.0ORADATAORCLUSERS03.DBF TO,D:ORACLEPRODUCT10.2.0ORADATAORCLUSERS002.DBF,D:ORACLEPRODUCT10.2.0ORADATAORCLUSERS003.DBF;,SQL ALTER TABLESPACE USERS ONLINE;,说明,:表空间的可用性会,影响到其下所有数据文件,的可用性;反过来则 不会!,改变多个表空间中的数据文件的名称或位置,例,11,:更改,ORCL,数据库,USERS,表空间中的,USERS002.DBF,文件位置和修改,TOOLS,表空间中的,TOOLS01.DBF,文件名。,关闭数据库,在操作系统中,将,USERS,表空间中的,USERS002.DBF,文件复制到一个新的位置;修改,TOOLS,表空间的数据文件,TOOLS01.DBF,的名为,TOOLS001.DBF,。,启动数据库到,MOUNT,状态。,SQL SHUTDOWN,SQL STARTUP MOUNT,执行,ALTER DATABASE RENAME FILETO,语句更新数据文件名称或位置。,打开数据库。,SQL ALTER DATABASE RENAME FILE,D:ORACLEPRODUCT10.2.0ORADATAORCLUSERS002.DBF,D:ORACLEPRODUCT10.2.0ORADATAORCLTOOLS01.DBF TO,D:ORACLEPRODUCT10.2.0ORADATAUSERS002.DBF,D:ORACLEPRODUCT10.2.0ORADATAORCLTOOLS001.DBF;,SQL ALTER DATABASE OPEN;,(,5,)删除数据文件,删除某个表空间中的某个空数据文件,ALTER TABLESPACEDROP DATAFILE,删除某个临时表空间中的某个空的临时数据文件,ALTER TABLESPACE DROP TEMPFILE,ALTER DATABASE TEMPFILEDROP,所谓的,空数据文件,或,空临时数据文件,是指为该文件分配的所有区都被回收。,删除数据文件或临时数据文件的同时,将删除:,控制文件,和,数据字典,中与该数据文件或临时数据文件的相关信息,操作系统,中对应的物理文件,例,12,:删除,USERS,表空间中的数据文件,USERS03.DBF,和删除,TEMP,临时表空间中的临时数据文件,TEMP03.DBF,。,或者:,SQL ALTER TABLESPACE USERS DROP DATAFILE,D:ORACLEPRODUCT10.2.0ORADATAORCLUSERS03.DBF;,SQL ALTER TABLESPACE TEMP DROP,TEMPFILE,D:ORACLEPRODUCT10.2.0ORADATAORCLTEMP03.DBF;,SQL ALTER,DATABASE,TEMPFILE,D:ORACLEPRODUCT10.2.0ORADATAORCLTEMP03.DBF,DROP,INCLUDING DATAFILES,;,删除数据文件或临时数据文件时受到以下,约束,:,数据库运行在,打开状态,数据文件或临时数据文件,必须是空,的,不能,删除表空间的,第一个,或,唯一的,一个数据文件或临时数据文件,不能,删除,只读表空间中,的数据文件,不能,删除,SYSTEM,表空间,的数据文件,不能,删除采用,本地管理的,处于,脱机状态的,数据文件。,(,6,)查询数据文件信息,DBA_DATA_FILES,:包含数据库中,所有数据文件,的信息,包括数据文件所属的表空间、数据文件编号等。,DBA_TEMP_FILES,:包含数据库中所有临时数据文件的信息。,DBA_EXTENTS,:包含所有表空间中,已分配的区,的描述信息。,USER_EXTENTS,:包含当前,用户所拥有,的对象在所有表空间中已分配的区的描述信息。,DBA_FREE_SPACE,:包含表空间中,空闲区,的描述信息。,USER_FREE_SPACE,:包含,当前用户可访问的表空间中空闲区,的描述信息。,V$DATAFILE,:包含,从控制文件中,获取的数据文件信息。,V$DATAFILE_HEADER,:包含,从数据文件头部,获取的信息。,V$TEMPFILE,:包含所有,临时文件,的基本信息。,查询数据文件动态信息,查询数据文件的详细信息,查询数据文件的增长方式,查询临时数据文件信息,SQL SELECT NAME,FILE#,STATUS,CHECKPOINT_CHANGE#,FROM V$DATAFILE;,SQL SELECT TABLESPACE_NAME,AUTOEXTENSIBLE,FILE_NAME,FROM DBA_DATA_FILES;,SQL SELECT TABLESPACE_NAME,BYTES,AUTOEXTENSIBLE,FILE_NAME,FROM DBA_DATA_FILES;,SQL SELECT TABLESPACE_NAME,FILE_NAME,AUTOEXTENSIBLE,FROM DBA_TEMP_FILES;,(,7,)利用,OEM,管理数据文件,创建数据文件,编辑数据文件,查看数据文件信息,删除数据文件,6.3 控制文件,控制文件概述,控制文件管理,6.3.1 控制文件概述,控制文件的性质:,控制文件描述了整个数据库的物理结构,控制文件是一个很小的,二进制,文件,在加载数据库时,实例必须,首先通过初始化参数文件找到数据库的控制文件,在数据库运行期间,控制文件始终在不断更新,以便,记录数据文件和重做日志文件的变化,每个数据库,至少拥有一个,控制文件,一个数据库也可以同时拥有多个控制文件,分配在不同的,物理硬盘中,以免数据库或硬盘损坏时,能够利用备份的控制文件启动数据库实例,可以提高数据库的可靠性,控制文件的,内容,:,数据库名称和标识;,数据库创建的时间;,表空间名称;,数据文件和重做日志文件的名称和位置;,当前重做日志文件序列号;,数据库检查点的信息;,回退段的开始和结束;,重做日志的归档信息;,备份信息;,数据库恢复所需要的同步信息。,控制文件中的,最大化参数,包括:,MAXLOGFILES,:最大重做日志文件组数量;,MAXLOGMEMBERS,:重做日志文件组中最大成员数量;,MAXLOGHISTORY,:最大历史重做日志文件数量;,MAXDATAFILES,:最大数据文件数量;,MAXINSTANCES,:可同时访问的数据库最大实例个数。,注意,:在,Oracle10.2.0,及其之后的,版本中,当某种文件的数量超过了该,最大值时,,控制文件可以自动扩展,;之前的版本则不能。,控制文件,管理策略,Oracle,建议,最少有两个,控制文件,通过多路镜像技术,将多个控制文件分散到不同的磁盘中。,在数据库,运行过程,中,,始终读取,CONTROL_FILES,参数指定的,第一个,控制文件,,并同时写,CONTROL_FILES,参数指定的,所有,控制文件。如果其中一个控制文件不可用,则必须关闭数据库并进行恢复。,每次对数据库结构进行修改后,(,添加、修改、删除数据文件、重做日志文件,),,应该及时备份控制文件。,6.3.2 控制文件的管理,创建控制文件,实现多路镜像控制文件,备份控制文件,删除控制文件,查看控制文件的信息,利用OEM管理控制文件,(,1,)创建控制文件,创建数据库时,系统会根据初始化参数文件中,CONTROL_FILES,的设置创建控制文件。,手动创建,控制文件的情形:,控制文件全部丢失或损坏;,需要修改数据库名称;,在,Oracle 10.2.0,之前的版本中,需要修改某个最大化参数。,CREATE CONTROLFILE,语句,创建语句的语法:,CREATE,CONTROLFILE,REUSE,SET DATABASE database,-,重命名,指定,DB,名称,LOGFILE logfile_clause,-,指定联机重做日志文件,RESETLOGS|NORESETLOGS,/*,重命名,DB,或,丢失部分联机重做日志文件,,则指定,RESETLOGS,;对,DB,进行完全恢复,,则指定,NORESETLOGS*/,DATAFILE file_specification,MAXLOGFILES,MAXLOGMEMBERS,MAXLOGHISTORY,MAXDATAFILES,MAXINSTANCES,ARCHIVELOG|NOARCHIVELOG,-,指定,DB,运行在归档,/,非归档模式,FORCE LOGGING,-,指定,DB,启动后,所有变更操作都记录到日志文件,CHARACTER SET character_set,-,指定,DB,的字符集,创建控制文件的基本步骤,制作数据库中所有的数据文件和重做日志文件列表,如果数据库仍然处于运行状态,则关闭数据库,在操作系统级别备份所有的数据文件和联机重做日志文件,启动实例到,NOMOUNT,状态,SQL SELECT MEMBER FROM V$LOGFILE;,SQL SELECT NAME FROM V$DATAFILE;,SQL SELECT VALUE,2 FROM V$PARAMETER,3 WHERE NAME=CONTROL_FILES;,SQL SHUTDOWN,SQL STARTUP NOMOUNT,利用前面得到的文件列表,执行,CREATE CONTROLFILE,创建一个新控制文件。,在操作系统级别对新建的控制文件进行备份。,如果数据库重命名,则编辑,DB_NAME,参数来指定新的数据库名称。,如果数据库需要恢复,则进行恢复数据库操作:,如果创建控制文件时指定了,NORESTLOGS,,可以完全恢复数据库。,如果创建控制文件时指定了,RESETLOGS,,则必须在恢复时指定,USING BACKUP CONTROLFILE,。,SQL RECOVER DATABASE;,SQL RECOVER DATABASE,USING BACKUP CONTROLFILE,;,创建脚本,打开数据库,如果数据库,不需要恢复,或,已经,对数据库进行了,完全恢复,,则可以正常打开数据库。,如果在创建控制文件时使用了,RESETLOGS,参数,则必须指定以,RESETLOGS,方式打开数据库。,SQL ALTER DATABASE OPEN;,SQL ALTER DATABASE OPEN,RESETLOGS,;,(,2,)实现多路镜像控制文件,Oracle,数据库在创建时创建多个镜像的控制文件,其名称和存放位置由参数,CONTROL_FILES,指定。,数据库创建后,建立多个镜像控制文件的,步骤,:,编辑初始化参数,CONTROL_FILES,,命令:,ALTER SYSTEM SET CONTROL_FILES=,SCOPE=SPFILE;,关闭数据库,SHUTDOWN IMMEDIATE,拷贝一个原有的控制文件到新的位置,并重新命名,重新启动数据库,STARTUP,例,13,:为,ORCL,数据库添加一个镜像控制文件。,编辑,CONTROL_FILES,:,关闭数据库,拷贝,D:ORACLEORADATACONTROL01.CTL,到,D:ORACLEORADATA,目录下,并重命名为,CONTROL04.CTL,重新启动数据库,SQL ALTER SYSTEM SET CONTROL_FILES=,E:oracleproduct10.2.0oradataORCLCONTROL01.CTL,E:oracleproduct10.2.0oradataORCLCONTROL02.CTL,E:oracleproduct10.2.0oradataORCLCONTROL03.CTL,E:oracleproduct10.2.0oradataCONTROL04.CTL,SCOPE=SPFILE;,SQL SHUTDOWN IMMEDIATE,SQL STARTUP,(,3,)备份控制文件,根据备份生成的控制文件的类型不同,有两种方法:,备份为二进制文件,ALTER DATABASE,BACKUP,CONTROLFILE TO*.,BKP,备份为文本文件,ALTER DATABASE,BACKUP,CONTROLFILE TO,TRACE,注意,:此时,将控制文件备份到,admin,udump,目录下的跟踪文件中。,(,4,)删除控制文件,步骤:,编辑,CONTROL_FILES,初始化参数,使其不包含要删除的控制文件;,关闭数据库;,在操作系统中删除控制文件;,重新启动数据库。,(,5,)查询控制文件的信息,与控制文件相关的数据字典视图:,V$DATABASE,:从控制文件中获取的数据库信息;,V$CONTROLFILE,:包含所有控制文件名称与状态信息;,V$CONTROLFILE_RECORD_SECTION,:包含控制文件中各记录文档段信息;,V$PARAMETER,:可以获取初始化参数,CONTROL_FILES,的值。,(,6,)利用,OEM,管理控制文件,查看控制文件信息,备份控制文件,6.4 重做日志文件,重做日志文件概述,重做日志文件的管理,6.4.1 重做日志文件概述,重做日志文件的概念,重做日志文件,保存了用户对数据库所作,的更新操作,(DDL,、,DML),,包含的主要信息是记录,事务的开始,和,结束,、事务中每项,操作的对象,和,类型,、,更新操作前后的数据值,等。,重做日志文件是由,重做记录,构成的,每个重做记录由一组修改相量组成。,修改向量,记录了对数据库中某个数据块所做的修改。,用户对数据库所做的,修改记录过程:,利用重做日志文件恢复数据库是通过事务的,重做,(REDO),或,回退,(UNDO),实现的。,重做,:指由于某些原因导致事务,对数据库的修改在写入数据文件之前丢失了,,此时就可以利用重做日志文件,重做,该事务对数据库的,修改操作,。,回退,:指如果用户在,事务提交之前要撤销事务,,,Oracle,将通过重做记录中的回退信息,撤销,事务对数据库所做的,修改,。,重做日志文件的工作过程,每个数据库,至少,需要,两个,重做日志文件,采用,循环写的方式,进行工作。当一个重做日志文件写满后,进程,LGWR,就会移到下一个日志文件,称为,日志切换,,同时信息会写到控制文件中。,重做日志文件工作流程,为了保证,LGWR,进程的正常进行,通常采用,重做日志文件组,(GROUP),,每个组中包含,若干完全相同的,重做日志文件成员,(MEMBER),,这些成员文件相互镜像。,6.4.2,重做日志文件的管理,添加重做日志文件组,添加重做日志文件组成员文件,改变重做日志文件组成员文件的名称和位置,删除重做日志文件组成员,删除重做日志文件组,重做日志文件切换,清空重做日志文件组,查看重做日志文件信息,利用,OEM,管理重做日志文件,(,1,)添加重做日志文件组,语法,CREATE DATABASE LOGFILE,ALTER DATABASE,ADD LOGFILE,示例,REDO2b.LOG,REDO1b.LOG,Group 1,Group 2,Group 3,REDO3b.LOG,REDO2a.LOG,REDO3a.LOG,REDO1a.LOG,Group 4,REDO4b.LOG,REDO4a.LOG,SQL ALTER DATABASE ADD LOGFILE,GROUP,4,(,E:ORACLEPRODUCT10.2.0ORADATAORCLREDO04a.LOG,E:ORACLEPRODUCT10.2.0ORADATAORCLREDO04b.LOG),SIZE 4M;,注意:,分配给每个重做日志文件的,初始空间,至少为,4 MB,。,如果没有使用,GROUP,子句指定组号,则系统会,自动产生组号,,为当前重做日志文件组的个数加,1,。,在,Oracle10.2.0,之前的版本中,数据库最多允许的重做日志文件,组的数量,由控制文件中的,MAXLOGFILES,参数决定,。,在,Oracle10.2.0,之前的版本中,每个重做日志文件组中最多,成员文件数量,由控制文件中的,MAXLOGMEMBERS,参数决定。,(,2,)添加重做日志文件组成员,语法,ALTER DATABASE,ADD LOGFILE,MEMBER,TO GROUP,示例,注意:,同一个,重做日志文件,组中的成员文件,存储位置应,尽量分散,。,不需要指定文件大小,。新成员文件大小,由组中已有成员大小决定,。,SQL ALTER DATABASE ADD LOGFILE MEMBER,D:ORACLEPRODUCT10.2.0ORADATAORCLREDO01C.LOG,TO GROUP 1,D:ORACLEPRODUCT10.2.0ORADATAORCLREDO04C.LOG,TO GROUP 4;,(,3,)改变重做日志文件组成员名称或位置,语法,ALTER DATABASE,RENAME,FILE,TO,注意,只能更改,处于,INACTIVE,或,UNUSED,状态的重做日志文件组的成员文件的名称或位置。,例:将重做日志文件,REDO01C.LOG,重命名为,REDO01B.LOG,,将,REDO04C.LOG,移到,D:ORACLEPRODUCT10.2.0ORADATA,目录下。,说明,:重做日志文件组的状态有,4,种:,CURRENT,当前正在被,LGWR,进程写入;,ACTIVE,当前实例恢复的;,INACTIVE,当前没有用于实例恢复的;,UNUSERD,新创建当前还没有被使用的。,步骤:,检查要修改的成员文件所在的重做日志文件组状态,如果要修改的日志文件组,不是,处于,INACTIVE,或,UNUSED,状态,则需要,进行手动日志切换,。,在操作系统中,重命名重做日志文件或将重做日志文件移到新位置。,执行,ALTER DATABASE RENAME FILETO,语句,SQL SELECT group#,status FROM V$LOG;,SQL ALTER DATABASE RENAME FILE,D:ORACLEPRODUCT10.2.0ORADATAORCLREDO01C.LOG,D:ORACLEPRODUCT10.2.0ORADATAORCLREDO4C.LOG TO,D:ORACLEPRODUCT10.2.0ORADATAORCLREDO01B.LOG,D:ORACLEPRODUCT10.2.0ORADATAREDO04C.LOG;,(,4,)删除重做日志文件组成员,语法,ALTER DATABASE,DROP LOGFILE,MEMBER,注意事项,只能删除,状态为,INACTIVE,或,UNUSED,的重做日志文件组中的成员;若要删除,状态为,CURRENT,的重做日志文件组中的成员,则需执行一次,手动日志切换,。,如果数据库处于,归档模式下,,则在删除重做日志文件,之前要保证,该文件所在的重做日志文件组,已归档,。,每个重做日志文件组中,至少要有一个可用的,成员文件,即,VALID,状态的成员文件。如果要删除的重做日志文件是所在组中最后一个可用的成员文件,则无法删除。,例:,Group 4,REDO4a.LOG,REDO4b.LOG,REDO4c.LOG,SQL ALTER DATABASE DROP LOGFILE MEMBER,D:ORACLEPRODUCT10.2.0ORADATAREDO4c.LOG;,注意,:执行完该命令后,,只是更新了控制问文件,从数据库的结构中删除,了该重做日志文件。还应该在操作成功后,,在,OS,中手动删除,。,(,5,)删除重做日志文件组,语法,ALTER DATABASE,DROP,LOGFILE,GROUP,注意事项,无论重做日志文件组中有多少个成员文件,一个数据库,至少,需要使用,两个重做日志文件组,。,如果数据库处于,归档模式,下,则在删除重做日志文件组之前,,必须确定该组已经被归档,。,只能删除,处于,INACTIVE,状态或,UNUSED,状态的重做日志文件组,若要删除状态为,CURRENT,的重做日志文件组,则需要执行一次手动日志切换。,示例,REDO2a.LOG,REDO1a.LOG,Group 1,Group 2,Group 3,REDO3a.LOG,Group 4,REDO4a.LOG,REDO4b.LOG,SQL ALTER DATABASE DROP LOGFILE GROUP 4;,注意,:执行完该命令后,,只是更新了控制问文件,从数据库的结构中删除,了该重做日志文件组。还应该在操作成功后,,在,OS,中手动删除,。,(,6,)重做日志文件组切换,当,LGWR,进程结束对当前重做日志文件组的使用,开始写入下一个重做日志文件组时,称为发生了一次“,日志切换,”。,通常,只有当前的重做日志文件组写满后才发生日志切换,但是可以通过:,设置参数,ARCHIVE_LAG_TARGET,控制日志切换的时间间隔,采用,手工强制,进行日志切换,如果需要将当前处于,CURRENT,状态的重做日志组立即切换到,INACTIVE,状态,必须进行手工日志切换。,手动日志切换的语法,ALTER SYSTEM,SWITCH,LOGFILE;,查看日至切换状态,SELECT*FROM V$LOGFILE;,当发生日志切换时,系统将为新的重做日志文件产生一个日志序列号,在归档时该日志序列号一同被保存。,日志序列号,是,在线日志文件,和,归档日志文件,的,唯一标识,。,(,7,)清除重做日志文件组,基本概念,在,不关闭数据库,的情况下,,手工清除,损坏的重做日志文件内容,避免出现数据库停止运行的情况。,清除重做,日志文件,就是将重做,日志文件中的内容全部清除,,相当于删除该重做日志文件,然后,再重新建立,它。,清除重做,日志文件组,是将该文件组中的,所有成员文件全部清空,。,语句,ALTER DATABASE,CLEAR,LOGFILE,GROUP,在下列两种情况下,清除重做日志文件组的操作将无法进行。,数据库,只有两个,重做日志文件组;,需要清除的重做日志文件组处于,CURRENT,状态,。,如果要清空的重做日志文件组,尚未归档,,则必须,使用,UNARCHIVED,子句,,以避免对这个重做日志文件组进行归档。,SQL ALTER DATABASE CLEAR,UNARCHIVED,LOGFILE GROUP 4;,(,8,)查看重做日志文件信息,数据字典视图,V$LOG,:包含从控制文件中获取的所有重做日志文件组的基本信息。,V$LOGFILE:,包含重做日志文件组及其成员文件的信息。,V$LOG_HISTORY:,包含关于重做日志文件的历史信息。,查询重做日志文件组的信息,查询重做日志文件的信息,SQL SELECT GROUP#,SEQUENCE#,MEMBERS,STATUS,ARCHIVED,FROM V$LOG;,SQL SELECT GROUP#,TYPE,MEMBER,FROM V$LOGFILE,ORDER BY GROUP#;,(,9,)利用,OEM,管理重做日志文件,创建重做日志组,编辑重做日志组,查看重做日志组,6.5 归档重做日志文件,重做日志文件归档概述,数据库归档模式管理,6.5.1 重做日志文件归
展开阅读全文