1、Oracle 数据库基础教程第第6章章 物理存放结构物理存放结构第1页Oracle 数据库基础教程本章内容本章内容pOracle数据库系统结构p数据文件p控制文件p重做日志文件p归档重做日志文件第2页Oracle 数据库基础教程本章要求本章要求p了解掌握Oracle系统结构p掌握数据文件及管理p掌握控制文件管理p掌握重做日志文件管理p掌握数据库归档模式设置及归档操作 第3页Oracle 数据库基础教程6.1Oracle数据库系统结构数据库系统结构Oracle数据库数据库 拥有者模式模式1表表视图视图123序序列列用户视图用户视图 物理文件物理文件 表空间表空间 逻辑结构逻辑结构 数据段数据段区
2、间区间 数据块数据块 物理块 物理结构物理结构数据文件控制文件联机日志文件 索引段索引段段第4页Oracle 数据库基础教程p模式概念pOracle中,数据对象是以模式为单位进行组织和管理。模式是一系列逻辑数据结构或对象集合。模式与用户相对应,一个模式只能被一个数据库用户所拥有,且模式名称与用户名称相同。p通常情况下,用户所创建数据库对象都保留在与自己同名模式中。同一模式中数据库对象名称必须唯一,而在不一样模式中数据库对象能够同名。p例用户usera和userb都能够在数据库中创建名为test表格,用户usera创建test表放在usera模式中,用户userb创建test表放在userb模式
3、中.p默认时用户引用对象是自己同名模式对象,假如要引用其它模式中对象,需要指明对象所属模式。如用户usera要引用userbtest表,需使用userb.test格式。第5页Oracle 数据库基础教程第6页Oracle 数据库基础教程pOracle实列概念p数据库管理系统是处于用户与物理数据库之间一个中间层软件,又称为实例。由内存结构和后台进程组成。p开启数据库时,oracle首先在内存中获取一定得空间,开启各种用途后台进程,即创建一个数据库实例,然后由实例装载数据文件和重做日志文件,最终打开数据库。p用户操作数据库过程实际上是与数据库实例建立连接,然后经过实例来连接、操作数据库过程。第7页
4、Oracle 数据库基础教程物理存放结构组成物理存放结构组成第8页Oracle 数据库基础教程p数据文件数据文件:用于存放数据库中全部数据;:用于存放数据库中全部数据;p控制文件:控制文件:用于统计和描述数据库物理存放结构信息;用于统计和描述数据库物理存放结构信息;p重做日志文件:重做日志文件:用于统计外部程序(用户)对数据库修改操作;用于统计外部程序(用户)对数据库修改操作;p初始化参数:初始化参数:用于设置数据库开启时参数初始值;用于设置数据库开启时参数初始值;p跟踪文件:跟踪文件:用于统计用户进程、数据库后台进程运行情况;用于统计用户进程、数据库后台进程运行情况;p归档文件:归档文件:用
5、于保留已经写满重做日志文件;用于保留已经写满重做日志文件;p口令文件:口令文件:用于保留含有用于保留含有SYSDBA,SYSOPER权限用户名和权限用户名和SYS用户口令。用户口令。第9页Oracle 数据库基础教程6.2数据文件及其管理数据文件及其管理p数据文件概述 p数据文件管理 第10页Oracle 数据库基础教程6.2.1数据文件概述数据文件概述p数据文件内容 n用于保留数据库中数据文件用于保留数据库中数据文件(扩展名:扩展名:DBF)n系统数据、数据字典数据、暂时数据、索引数据、应用数据等都系统数据、数据字典数据、暂时数据、索引数据、应用数据等都物理存放在数据文件中。物理存放在数据文
6、件中。n数据库操作,本质都是对数据文件进行操作。数据库操作,本质都是对数据文件进行操作。p数据文件与表空间关系 n数据文件都依附于表空间而存在数据文件都依附于表空间而存在n一个表空间能够包含几个数据文件一个表空间能够包含几个数据文件n一个数据文件只能对应一个表空间一个数据文件只能对应一个表空间n数据库对象存放在表空间所对应数据文件中数据库对象存放在表空间所对应数据文件中第11页Oracle 数据库基础教程p数据文件存放策略n因为因为对数据库操作最终转换为对数据文件操作对数据库操作最终转换为对数据文件操作,所以在数据库运所以在数据库运行过程中对数据文件进行频繁读写操作。为了提供行过程中对数据文件
7、进行频繁读写操作。为了提供I/O效率,效率,应应该合理分配数据文件存放位置。该合理分配数据文件存放位置。n把把不一样存放内容数据文件放置在不一样硬盘上不一样存放内容数据文件放置在不一样硬盘上,能够并行访问,能够并行访问数据,提升系统读写效率。数据,提升系统读写效率。n初始化参数文件、控制文件、重做日志文件最好不要与数据文件初始化参数文件、控制文件、重做日志文件最好不要与数据文件存放在同一个磁盘上,以免存放在同一个磁盘上,以免数据库发生介质故障数据库发生介质故障时,无法恢复数时,无法恢复数据库。据库。第12页Oracle 数据库基础教程6.2.2数据文件管理数据文件管理p创建数据文件p修改数据文
8、件大小p改变数据文件可用性p改变数据文件名称和位置p查询数据文件信息第13页Oracle 数据库基础教程创建数据文件创建数据文件p数据文件依附于表空间而存在,创建数据文件就是向表空间添加文件p在创建数据文件时应该依据文件数据量大小确定文件大小以及文件增加方式。p语法nCREATE TABLESPACEnCREATE DTABASEnnALTER TABLESPACEADD DATAFILEnALTER TABLESPACEADD TEMPFILE第14页Oracle 数据库基础教程p例:向ORCL数据库USERS表空间中添加一个大小为10MB数据文件。ALTER TABLESPACE USER
9、S ADD DATAFILE D:Oracleoradataorcluserdata02.dbf SIZE 10M;p例:向ORCL数据库TEMP表空间添加一个大小为5MB暂时数据文件。ALTER TABLESPACE TEMP ADD TEMPFILE D:Oracleoradataorcltemp02.dbf SIZE 5M;第15页Oracle 数据库基础教程修改数据文件大小修改数据文件大小p方法n设置数据文件为自动增加方式。设置数据文件为自动增加方式。n手工改变数据文件大小。手工改变数据文件大小。p设置数据文件为自动增加方式n创建时设置数据文件为自动增加创建时设置数据文件为自动增加n创
10、建后修改数据文件为自动增加创建后修改数据文件为自动增加pAUTOEXTEND ON NEXT MAXSIZE|UNLIMITEDp手工改变数据文件大小nALTER DATABASE DATAFILERESIZE第16页Oracle 数据库基础教程p例:为ORCL数据库USERS表空间添加一个自动增加数据文件。nALTER TABLESPACE USERS ADD DATAFILE D:Oracleoradataorcluserdata03.dbf SIZE 10M AUTOEXTEND ON NEXT 512K MAXSIZE 250M;p例:ORCL数据库USERS表空间数据文件userda
11、ta02.dbf为自动增加。nALTER DATABASE DATAFILE D:Oracleoradataorcluserdata02.dbf AUTOEXTEND ON NEXT 512K MAXSIZE UNLIMITED;第17页Oracle 数据库基础教程p例:取消ORCL数据库USERS表空间数据文件userdata02.dbf自动增加。nALTER DATABASE DATAFILE D:Oracleoradataorcluserdata02.dbf AUTOEXTEND OFF;p例:将ORCL数据库USERS表空间数据文件userdata02.dbf大小设置为8MB。nALT
12、ER DATABASE DATAFILE D:Oracleoradataorcluserdata02.dbfRESIZE 8M 第18页Oracle 数据库基础教程改变数据文件可用性改变数据文件可用性p能够经过将数据文件联机或者脱机来改变数据文件可用性p处于脱机状态数据文件对数据库来说是不可用,直到它们被恢复为联机状态pALTER DATABASE DATAFILEONLINE|OFFLINEp改变数据文件状态时,数据库必须运行在归档模式下第19页Oracle 数据库基础教程改变数据文件名称和位置改变数据文件名称和位置p改变数据文件名称或位置操作分为两种情况:n假如要改变数据文件属于同一个表空
13、间假如要改变数据文件属于同一个表空间,使用:,使用:ALTER TABLESPACE tablespace_nameRENAME DATAFILETOn假如要改变数据文件属于多个表空间假如要改变数据文件属于多个表空间,使用:,使用:ALTER DATABASE RENAME DATAFILETO第20页Oracle 数据库基础教程改变同一个表空间数据文件改变同一个表空间数据文件p(1)表空间脱机nALTER TABLESPACE tablespace_name OFFLINEp(2)修改操作系统汉字件名称或位置p(3)执行ALTER语句nALTER TABLESPACE tablespace_
14、nameRENAME DATAFILETOp(4)表空间联机nALTER TABLESPACE tablespaceONLINE第21页Oracle 数据库基础教程改变同一个表空间数据文件改变同一个表空间数据文件p例:更改ORCL数据库USERS表空间userdata02.dbf和userdata03.dbf文件名为userdata002.dbf和userdata003.dbfn(1)将包含数据文件表空间置为脱机状态。将包含数据文件表空间置为脱机状态。pALTER TABLESPACE USERS OFFLINE;n(2)在操作系统中重命名数据文件或移动数据文件到新位置。在操作系统中重命名数据
15、文件或移动数据文件到新位置。p分别将userdata02.dbf和userdata03.dbf文件重命名为userdata002.dbf和userdata003.dbf。n(3)重新连接数据库,使用ALTER TABLESPACERENAME DATAFILETO语句进行操作。第22页Oracle 数据库基础教程nCONNECT sys/llx123 ORCL AS SYSDBAnALTER TABLESPACE USERS RENAME DATAFILE D:Oracleoradataorcluserdata02.dbf,D:Oracleoradataorcluserdata03.dbf T
16、O D:Oracleoradataorcluserdata002.dbf,D:Oracleoradataorcluserdata003.dbf;p(4)将表空间联机nALTER TABLESPACE users ONLINE;第23页Oracle 数据库基础教程改变属于多个表空间数据文件改变属于多个表空间数据文件 p(1)关闭数据库 nSHUTDOWN IMMEDIATEp(2)修改操作系统文件名称或位置p(3)开启数据库到MOUNT状态nSTARTUP MOUNTp(4)执行ALTER 语句nALTER DATABASE RENAME FILETOp(5)打开数据库nALTER DATABA
17、SE OPEN第24页Oracle 数据库基础教程p例:更改ORCL数据库USERS表空间userdata002.dbf文件位置和修改TOOLS表空tools01.dbf文件名p(1)关闭数据库nSHUTDOWNp(2)在操作系统中,将要改动数据文件复制到新位置或改变它们名称。n将将USERS表空间表空间userdata002.dbf文件复制到一个新位置,如文件复制到一个新位置,如D:Oracleoradatauserdata002.dbf;修改修改TOOLS表表空间数据文件空间数据文件tools01.dbf名为名为tools001.dbf第25页Oracle 数据库基础教程p(3)开启数据库
18、到MOUNT状态nSTARTUP MOUNTp(4)执行ALTER DATABASE RENAME FILETO语句更新数据文件名称或位置。nALTER DATABASE RENAME FILE D:Oracleoradataorcluserdata02.dbf,D:Oracleoradataorcltools01.dbf TO D:Oracleoradatauserdata02.dbf,D:Oracleoradataorcltools001.dbf;p(5)打开数据库。打开数据库。nALTER DATABASE OPEN;第26页Oracle 数据库基础教程查询数据文件信息查询数据文件信息p
19、数据文件信息nDBA_DATA_FILESnV$DATAFILEp暂时文件信息nDBA_TEMP_FILESnV$TEMPFILE第27页Oracle 数据库基础教程p查询数据文件动态信息nSELECT NAME,FILE#,STATUS,CHECKPOINT_CHANGE#FROM V$DATAFILE p查询数据文件增加方式nSELECT TABLESPACE_NAME,BYTES,AUTOEXTENSIBLE,FILE_NAME FROM DBA_DATA_FILES p查询暂时数据文件信息nSELECT TABLESPACE_NAME,FILE_NAME,AUTOEXTENSIBLE
20、FROM DBA_TEMP_FILES;第28页Oracle 数据库基础教程利用利用OEM管理数据文件管理数据文件p查询数据文件信息p创建数据文件p修改数据文件第29页Oracle 数据库基础教程6.3控制文件控制文件p控制文件概述 p控制文件管理控制文件管理第30页Oracle 数据库基础教程6.3.1控制文件概述控制文件概述p控制文件性质(扩展名为CTL)n是最主要物理文件,是一个很小二进制文件是最主要物理文件,是一个很小二进制文件n在加载数据库时,实例必须首先经过初始化参数文件找到数据库在加载数据库时,实例必须首先经过初始化参数文件找到数据库控制文件。控制文件。n控制文件描述了整个数据库
21、结构。控制文件主要包含数据文件和控制文件描述了整个数据库结构。控制文件主要包含数据文件和重做日志文件位置、数据库名称、需要恢复信息等内容。控制文重做日志文件位置、数据库名称、需要恢复信息等内容。控制文件是不需件是不需DBA编辑二进制文件。编辑二进制文件。n在数据库运行期间,控制文件一直在不停更新,方便统计数据文在数据库运行期间,控制文件一直在不停更新,方便统计数据文件和重做日志文件改变件和重做日志文件改变n每个数据库最少拥有一个控制文件。一个数据库也能够同时拥有每个数据库最少拥有一个控制文件。一个数据库也能够同时拥有多个控制文件。分配在不一样物理硬盘中,以免数据库或硬盘损多个控制文件。分配在不
22、一样物理硬盘中,以免数据库或硬盘损坏时,能够利用备份控制文件开启数据库实例,能够提升数据库坏时,能够利用备份控制文件开启数据库实例,能够提升数据库可靠性。可靠性。第31页Oracle 数据库基础教程p控制文件内容n数据库名称和标识数据库名称和标识n数据库创建时间数据库创建时间n表空间名称表空间名称n数据文件和重做日志文件名称和位置数据文件和重做日志文件名称和位置n当前重做日志文件序号当前重做日志文件序号n检验点信息检验点信息n回退段开始和结束回退段开始和结束n重做日志归档信息重做日志归档信息n备份信息备份信息n数据库恢复所需要同时信息数据库恢复所需要同时信息第32页Oracle 数据库基础教程
23、p另外,控制文件中还存放了一些决定数据库规模最大化参数,控制文件中最大化参数包含:nMAXLOGFILES:最大重做日志文件组数量:最大重做日志文件组数量nMAXLOGMEMBERS:重做日志文件组中最大组员数量:重做日志文件组中最大组员数量nMAXLOGHISTORY:最大历史重做日志文件数量最大历史重做日志文件数量nMAXDATAFILES:最大数据文件数量最大数据文件数量nMAXINSTANCES:可同时访问数据库最大实例个数可同时访问数据库最大实例个数 第33页Oracle 数据库基础教程6.3.2控制文件管理控制文件管理pORACLE提议最少有两个控制文件,经过多路复用技术或操作系统
24、磁盘镜像技术,将多个控制文件分散到不一样磁盘中。p每次对数据库结构进行修改后,应该即时备份控制文件。第34页Oracle 数据库基础教程6.3.2控制文件管理控制文件管理p创建控制文件p实现多路复用控制文件p备份控制文件p删除控制文件p查看控制文件信息第35页Oracle 数据库基础教程创建控制文件创建控制文件p创建控制文件情形n创建数据库时,需要创建控制文件;创建数据库时,需要创建控制文件;n控制文件全部丢失或损坏;控制文件全部丢失或损坏;n需要修改某个永久性数据库结构参数,如数据库名称、需要修改某个永久性数据库结构参数,如数据库名称、MAXLOGFILES、MAXLOGMEMBERS、MA
25、XDATAFILES、MAXINSTANCES等。等。p创建控制文件基本步骤 n列出数据库中全部数据文件和重做日志文件名称和路径列出数据库中全部数据文件和重做日志文件名称和路径n假如数据库依然处于运行状态,则关闭数据库假如数据库依然处于运行状态,则关闭数据库n在操作系统级别备份全部数据文件和联机重做日志文件在操作系统级别备份全部数据文件和联机重做日志文件第36页Oracle 数据库基础教程n(1 1)开启实例,)开启实例,STARTUP NOMOUNTSTARTUP NOMOUNTn(2 2)利用前面得到文件列表,执行)利用前面得到文件列表,执行CREATE CONTROLFILECREATE
26、 CONTROLFILE创建创建一个新控制文件。一个新控制文件。n(3 3)在操作系统级别对新建控制文件进行备份)在操作系统级别对新建控制文件进行备份n(4 4)修改初始化参数文件中)修改初始化参数文件中CONTROL_FILESCONTROL_FILES参数,指向新控参数,指向新控制文件。制文件。n(5 5)假如需要,对数据库进行恢复;)假如需要,对数据库进行恢复;n(6 6)重新打开数据)重新打开数据库库 第37页Oracle 数据库基础教程实现多路复用控制文件实现多路复用控制文件p(1)编辑初始化参数CONTROL_FILES nALTER SYSTEM SET CONTROL_FILE
27、S=SCOPE=SPFILE;p(2)关闭数据库 nSHUTDOWN IMMEDIATE;p(3)拷贝一个原有控制文件到新位置,并重新命名 p(4)重新开启数据库 nSTARTUP 第38页Oracle 数据库基础教程p例:例:(1)编辑初始化参数CONTROL_FILES。nALTER SYSTEM SET CONTROL_FILES=nD:ORACLEORADATAORCLCONTROL01.CTL,nD:ORACLEORADATAORCLCONTROL02.CTL,nD:ORACLEORADATAORCLCONTROL03.CTL,nD:ORACLEORADATACONTROL04.CT
28、L nSCOPE=SPFILE;注意:前注意:前3个控制文件是原有控制文件,最终一个控制文件是将要添加。个控制文件是原有控制文件,最终一个控制文件是将要添加。p(2)关闭数据库nSHUTDOWN IMMEDIATE;p(3)拷贝一个原有控制文件到新位置,并重新命名。n拷贝拷贝D:ORACLEORADATACONTROL01.CTL文件到文件到D:ORACLEORADATA目录下,并重命名为目录下,并重命名为CONTROL04.DBF。p(4)重新开启数据库nSTARTUP第39页Oracle 数据库基础教程备份控制文件备份控制文件p将控制文件备份为二进制文件nALTER DATABASE BA
29、CKUP CONTROLFILE TO p将控制文件备份为文本文件nALTER DATABASE BACKUP CONTROLFILE TO TRACE (ORACLE_BASEadminudump)p控制文件备份之后,假如控制文件丢失或者损坏,只需要修改control_files参数指向备份控制文件,重新开启数据文件即可。第40页Oracle 数据库基础教程p将控制文件备份为二进制文件。nALTER DATABASE BACKUP CONTROLFILE TO D:ORACLEORADATACONTROL.BKP;p将控制文件备份为文本文件。nALTER DATABASE BACKUP CO
30、NTROLFILE TO TRACE;第41页Oracle 数据库基础教程删除控制文件删除控制文件p编辑CONTROL_FILES初始化参数,使其不包含要删除控制文件p关闭数据库p在操作系统中删除控制文件p重新开启数据库 第42页Oracle 数据库基础教程查询控制文件信息查询控制文件信息pV$CONTROLFILE n列出了与实例相关全部控制文件名称和状态列出了与实例相关全部控制文件名称和状态pV$PARAMETERn列出了全部参数状态和位置列出了全部参数状态和位置.pV$CONTROLFILE_RECORD_SECTIONn提供控制文件统计区信息提供控制文件统计区信息.pSHOW PARA
31、METERS CONTROL_FILESn列出控制文件名称、状态和位置列出控制文件名称、状态和位置第43页Oracle 数据库基础教程利用利用OEM管理控制文件管理控制文件 p查看控制文件信息p备份控制文件 第44页Oracle 数据库基础教程6.4重做日志文件重做日志文件p重做日志文件概述 p重做日志文件管理 第45页Oracle 数据库基础教程重做日志文件概述重做日志文件概述p重做日志文件概念 n重做日志文件,重做日志文件,保留了用户对数据库所作保留了用户对数据库所作更新操作(插入、删除或更新操作(插入、删除或修改),修改),包含主要信息是包含主要信息是统计事务开始和结束、事务中每项统计事
32、务开始和结束、事务中每项操作对操作对象和类型、更新操作前后数据值等。象和类型、更新操作前后数据值等。n重做日志文件是由重做统计组成,每个重做统计由一组修改相量组重做日志文件是由重做统计组成,每个重做统计由一组修改相量组成。成。n用户对数据库所做修改都是在数据库数据高速缓冲区中进行,同时用户对数据库所做修改都是在数据库数据高速缓冲区中进行,同时将产生重做统计写入重做日志缓冲区。在一定条件下由将产生重做统计写入重做日志缓冲区。在一定条件下由DBWR进进程将数据高速缓冲区中修改后结果成批写回数据文件中,而重做日程将数据高速缓冲区中修改后结果成批写回数据文件中,而重做日志缓冲区中重做统计由志缓冲区中重
33、做统计由LGWR进程周期性写入重做日志文件。进程周期性写入重做日志文件。n利用重做日志文件恢复数据库是经过事务重做(利用重做日志文件恢复数据库是经过事务重做(REDO)或回退)或回退(UNDO)实现)实现。第46页Oracle 数据库基础教程p重做日志文件工作过程n每个数据库最少需要两个重做日志文件,采取循环写每个数据库最少需要两个重做日志文件,采取循环写方式进行工作。当一个重做日志文件写满后,进程方式进行工作。当一个重做日志文件写满后,进程LGWR就会移到下一个日志组,称为日志切换,同时就会移到下一个日志组,称为日志切换,同时信息会写到控制文件中。信息会写到控制文件中。n重做日志文件工作流程
34、重做日志文件工作流程 第47页Oracle 数据库基础教程n为了确保为了确保LGWR进程正常进行,通常采取重做日志文件组进程正常进行,通常采取重做日志文件组(GROUP),每个组中包含若干完全相同重做日志文件组员,每个组中包含若干完全相同重做日志文件组员(MEMBER),这些组员文件相互镜像,这些组员文件相互镜像。第48页Oracle 数据库基础教程6.4.26.4.2重做日志文件管理重做日志文件管理 p添加重做日志文件组添加重做日志文件组 p添加重做日志文件组组员文件添加重做日志文件组组员文件 p改变重做日志文件组组员文件名称和位置改变重做日志文件组组员文件名称和位置 p删除重做日志文件组组
35、员删除重做日志文件组组员p删除重做日志文件组删除重做日志文件组 p重做日志文件切换重做日志文件切换 p清空重做日志文件组清空重做日志文件组 p查看重做日志文件信息查看重做日志文件信息 第49页Oracle 数据库基础教程添加重做日志文件组添加重做日志文件组p语法nALTER DATABASE ADD LOGFILEp示例示例nALTER DATABASE ADD LOGFILE GROUP 4(D:ORACLEORADATAORCLREDO4a.LOG,D:ORACLEORADATAORCLREDO4b.LOG)SIZE 1M;REDO2b.LOGREDO1b.LOGGroup 1Group
36、2Group 3REDO3b.LOGREDO2a.LOGREDO3a.LOGREDO1a.LOGGroup 4REDO4b.LOGREDO4a.LOG第50页Oracle 数据库基础教程添加重做日志文件组组员添加重做日志文件组组员p语法nALTER DATABASE ADD LOGFILE MEMBERTO GROUPp示例第51页Oracle 数据库基础教程pALTER DATABASE ADD LOGFILE MEMBER D:ORACLEORADATAORCLREDO1c.LOG TO GROUP 1,D:ORACLEORADATAORCLREDO4c.LOG TO GROUP 4;Gr
37、oup 1REDO1c.LOGREDO1b.LOGREDO1a.LOGGroup 4REDO4a.LOGREDO4b.LOGREDO4c.LOG第52页Oracle 数据库基础教程改变重做日志文件组组员名称和位置改变重做日志文件组组员名称和位置p语法nALTER DATABASE RENAME FILETOp注意 n只能更改处于只能更改处于INACTIVE或或UNUSED状态重做日志文件组组员状态重做日志文件组组员文件名称或位置。文件名称或位置。p步骤n关闭数据库 SHUTDOWN IMMEDIATEn在操作系统中重新命名重做日志文件或将重做日志文件复制到新在操作系统中重新命名重做日志文件或将
38、重做日志文件复制到新位置(删除原有文件)位置(删除原有文件)n重新开启实例重新开启实例 STARTUP MOUNTn使用使用ALTER DATABASE 语句修改数据库语句修改数据库 ALTER DATABASE RENAME FILETOn打开数据库打开数据库 ALTER DATABASE OPEN第53页Oracle 数据库基础教程p将重做日志文件REDO02.LOG重命名为REDO002.LOG,将REDO4C.LOG移到D:ORACLEORADATA目录下。n(1)检验要修改组员文件所在重做日志文件组状态。)检验要修改组员文件所在重做日志文件组状态。pSELECT group#,sta
39、tus FROM v$log;n(2)在操作系统中重命名重做日志文件或将重做日志文件移到新)在操作系统中重命名重做日志文件或将重做日志文件移到新位置。位置。p打开D:ORACLEORADATAORCL文件夹,将REDO02.LOG更名为REDO002.LOG,同时将REDO4C.LOG移到D:ORACLEORADATA文件夹下。n(3)执行)执行ALTER DATABASE RENAME FILETO语句语句pALTER DATABASE RENAME FILE D:ORACLEORADATAORCLREDO022.LOG,D:ORACLEORADATAORCLREDO4C.LOG TO D:
40、ORACLEORADATAORCLREDO002.LOG,D:ORACLEORADATAREDO4C.LOG;第54页Oracle 数据库基础教程删除重做日志文件组组员文件删除重做日志文件组组员文件p语法nALTER DATABASE DROP LOGFILE MEMBERp注意事项n只能删除状态为只能删除状态为INACTIVE重做日志文件组中组员;若要删除状重做日志文件组中组员;若要删除状态为态为CURRENT重做日志文件组中组员,需执行一次手工日志切重做日志文件组中组员,需执行一次手工日志切换。换。n假如数据库处于归档模式下,在删除重做日志文件之前要确保该假如数据库处于归档模式下,在删除重
41、做日志文件之前要确保该文件所在重做日志文件组已归档。文件所在重做日志文件组已归档。n每个重做日志文件组中最少要有一个可用组员文件,即每个重做日志文件组中最少要有一个可用组员文件,即VALID状状态组员文件。假如要删除重做日志文件是所在组中最终一个可用态组员文件。假如要删除重做日志文件是所在组中最终一个可用组员文件则无法删除组员文件则无法删除。第55页Oracle 数据库基础教程pALTER DATABASE DROP LOGFILE MEMBER C:ORACLEORADATAREDO4C.LOG;Group 4REDO4a.LOGREDO4b.LOGREDO4c.LOG第56页Oracle
42、数据库基础教程删除重做日志文件组删除重做日志文件组p语法nALTER DATABASE DROP LOGFILE GROUP p注意事项n不论重做日志文件组中有多少个组员文件,一个数据库最少需要不论重做日志文件组中有多少个组员文件,一个数据库最少需要使用两个重做日志文件组。使用两个重做日志文件组。n假如数据库处于归档模式下,在删除重做日志文件组之前,必须假如数据库处于归档模式下,在删除重做日志文件组之前,必须确定该组已经被归档。确定该组已经被归档。n只能删除处于只能删除处于INACTIVE状态重做日志文件组,若要删除状态为状态重做日志文件组,若要删除状态为CURRENT重做日志文件组,则需执行
43、一次手工日志切换。重做日志文件组,则需执行一次手工日志切换。第57页Oracle 数据库基础教程p示例示例nALTER DATABASE DROP LOGFILE GROUP 4;REDO2a.LOGREDO1a.LOGGroup 1Group 2Group 3REDO3a.LOGGroup 4REDO4a.LOGREDO4b.LOG第58页Oracle 数据库基础教程重做日志文件组切换重做日志文件组切换p假如需要将当前处于CURRENT 状态重做日志组马上切换到INACTIVE状态,必须进行手工日志切换nALTER SYSTEM SWITCH LOGFILEp切换后日志文件信息可检索动态性能
44、视图来查nSELECT*FROM V$LOGFILE;第59页Oracle 数据库基础教程清空重做日志文件清空重做日志文件 p清空重做日志文件就是将重做日志文件中内容全部初始化,相当于删除该重做日志文件,然后再重新建立它。ALTER DATABASE CLEAR LOGFILE GROUP 3;p假如要清空重做日志组还未归档,则必须使用UNARCHIVED子句,防止对这个重做日志组进行归档,不过其中保留重做统计暂时不会丢失。ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 3;第60页Oracle 数据库基础教程查看重做日志文件信息查看重做日志文件信息
45、 pV$LOGSELECT group#,sequence#,bytes,members,status FROM v$log;pV$LOGFILE SELECT*FROM V$LOGFILE;pV$LOG_HISTORY第61页Oracle 数据库基础教程利用利用OEM管理重做日志文件管理重做日志文件p添加重做日志组p添加组员日志文件p手工切换日志 第62页Oracle 数据库基础教程6.5归档重做日志文件归档重做日志文件p重做日志文件归档概述 p数据库归档模式管理 第63页Oracle 数据库基础教程6.5.1重做日志文件归档概述重做日志文件归档概述p归档模式归档模式ARCHIVELOGp把
46、已经写满了重做日志文件保留到指定一个或多个位置,被保留重做日志文件集合成为归档重做日志p非归档模式非归档模式 第64页Oracle 数据库基础教程p归档模式与非归档模式比较p归档模式作用n数据库恢复数据库恢复p 一个数据库备份,与在线和归档重做日志文件一起来确保全部已经提交事物完全恢复n数据库备份数据库备份p能够在数据库打开时进行备份第65页Oracle 数据库基础教程6.5.2数据库归档模式管理数据库归档模式管理p数据库归档/非归档模式设置p归档模式下归档方式选择p归档路径设置p设置可选或强制归档目标 p查询归档信息第66页Oracle 数据库基础教程设置归档设置归档/非归档模式非归档模式p
47、(1)关闭数据库nSHUTDOWN IMMEDIATEp(2)开启数据库到MOUNT状态nSTARTUP MOUNTp(3)使用ALTER DATABASE ARCHIVELOG语句将数据库设置为归档模式。nALTER DATABASE ARCHIVELOG;p或使用ALTER DATABASE NOARCHIVELOG语句将数据库设置为非归档模式。nALTER DATABASE NOARCHIVELOG;p(4)打开数据库nALTER DATABASE OPEN;第67页Oracle 数据库基础教程p关闭数据库,编辑初始化参数p开启数据库于MOUNT状态p修改数据库为归档模式p打开数据库SQ
48、LSHUTDOWN IMMEDIATE;SQLSTARTUP MOUNT;SQLALTER DATABASE ARCHIVELOG;SQLALTER DATABASE OPEN;第68页Oracle 数据库基础教程设置非归档模式设置非归档模式关闭数据库,编辑初始化参数开启数据库到MOUNT状态修改数据库为非归档模式打开数据库SQLSHUTDOWN IMMEDIATE;SQLSTARTUP MOUNT;SQLALTER DATABASE NOARCHIVELOG;SQLALTER DATABASE OPEN;第69页Oracle 数据库基础教程在归档模式下开启或禁用自动归档功效在归档模式下开启或
49、禁用自动归档功效 在实例开启时启用或禁用自动归档功效,需要在初始化文件中设置:LOG_ARCHIVE_START=TRUE|FALSE在实例开启后开启或禁用自动归档功效(在oracle 10g中,只要把数据库设为归档模式,会自动开启归档进程,则进入自动归档方式)ALTER SYSTEM ARCHIVE LOG START|STOP 第70页Oracle 数据库基础教程在归档模式下手工归档在归档模式下手工归档假如数据库处于归档模式,不论是否开启了归档进程,假如数据库处于归档模式,不论是否开启了归档进程,DBADBA都能够执行手动归档。都能够执行手动归档。对已经写满了重做日志文件(组)进行归档对已
50、经写满了重做日志文件(组)进行归档ALTER SYSTEM ARCHIVE LOG ALL对当前联机日志文件(组)进行归档对当前联机日志文件(组)进行归档ALTER SYSTEM ARCHIVE LOG CURRENT第71页Oracle 数据库基础教程设置归档位置设置归档位置方法一:使用方法一:使用LOG_ARCHIVE_DEST和和LOG_ARCHIVE_DUPLEX_DESTlLOG_ARCHIVE_DEST指明归档日志文件路径位置例:alter system set LOG_ARCHIVE_DEST=D:oraclebackup scope=spfile;lLOG_ARCHIVE_DU