配色: 字号:
第5章数据库存储设置与管理
2022-12-20 | 阅:  转:  |  分享 
  
第5章 数据库存储设置与管理主要内容数据库存储设置与管理概述表空间的设置与管理数据文件的设置与管理控制文件的设置与管理重做日志文件设置与管
理归档重做日志文件设置与管理5.1 数据库存储设置与管理概述在Oracle数据库的存储结构包括物理存储结构和逻辑存储结构。物理存
储结构主要用于描述Oracle数据库外部数据的存储,即在操作系统中如何组织和管理数据,与具体的操作系统有关;逻辑存储结构主要描述O
racle数据库内部数据的组织和管理方式,与操作系统没有关系。物理存储结构是逻辑存储结构在物理上的、可见的、可操作的、具体的体现形
式。 Oracle数据库物理存储结构 数据文件:用于存储数据库中的所有数据;控制文件:用于记录和描述数据库的物理存储结构信息;重
做日志文件:用于记录外部程序对数据库的改变操作;归档文件:用于保存已经写满的重做日志文件;初始化参数文件:用于设置数据库启动时的参
数初始值;跟踪文件:用于记录用户进程、数据库后台进程等的运行情况;口令文件:用于保存具有SYSDBA,SYSOPER权限的用户名和
SYS用户口令;警告文件:用于记录数据库的重要活动以及发生的错误;备份文件:用于存放数据库备份所产生的文件。逻辑结构单元类型数据块
:BLOCK 区:EXTENT段:SEGMENT表空间:TABLESPACE5.2 表空间的设置与管理表空间介绍创建表空间修改表
空间大小修改表空间的可用性修改表空间的读写性设置默认表空间删除表空间查询表空间信息5.2.1表空间介绍表空间是Oracle数据库的
最大逻辑容器,一个表空间包含一个或多个数据文件。数据库容量在物理上由数据文件大小与数量决定的,在逻辑上由表空间大小与数量决定的。表
空间属性:类型:永久性表空间(PERMANENT TABLESPACE)、临时表空间(TEMP TABLESPACE)、撤销表空间
(UNDO TABLESPACE)管理方式:字典管理方式(DICTIONARY)和本地管理方式(LOCAL)区分配方式:自动分配(
AUTOALLOCATE)和定制分配(UNIFORM)段的管理方式:自动管理(AUTO)和手动管理(MANUAL)5.2.2创建表
空间创建永久表空间使用CREATE TABLESPACE语句来实现,该语句包含以下几个子句:DATAFILE:设定表空间对应的数据
文件。EXTENT MANAGEMENT:指定表空间的管理方式,取值为LOCAL(默认)或DICTIONARY。AUTOALLOC
ATE(默认)或UNIFORM:设定区的分配方式。SEGMENT SPACE MANAGEMENT:设定段的管理方式,其取值为MA
NUAL或AUTO (默认) 。创建本地管理的永久表空间,区采用自动分配方式,段采用自动管理方式。 CREATE TABLESPA
CE HRTBS1 DATAFILE ''D:\APP\A
DMINISTRATOR\ORADATA\HUMAN_RESOURCE\HRTBS1_1.DBF'' SIZE 50M;创建本地管理
的永久表空间,区采用定制分配方式,段采用自动管理方式。CREATE TABLESPACE HRTBS2 DATAFILE?''D:\
APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\HRTBS2_1.DBF'' SIZE 50M E
XTENT MANAGEMENT LOCAL UNIFORM SIZE 512K;创建本地管理的永久表空间,区采用自动分配方式,段
采用手动管理方式。CREATE TABLESPACE HRTBS3 DATAFILE''D:\APP\ADMINISTRATOR\O
RADATA\HUMAN_RESOURCE\HRTBS3_1.DBF'' SIZE 50M SEGMENT SPACE MANAGE
MENTMANUAL;创建一个永久性的表空间HRTBS4,区定制分配,段采用手动管理方式。CREATE TABLESPACE HR
TBS4 DATAFILE''D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\HRTBS4_
1.DBF'' SIZE 50MEXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K SEGMENT
SPACE MANAGEMENT MANUAL;创建一个永久性的表空间INDX,区自动扩展,段采用自动管理方式,专门用于存储HUM
AN_RESOURCE数据库中的索引数据。CREATE TABLESPACE INDX DATAFILE
''D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESO
URCE\INDEX01.DBF'' SIZE 50M;创建大文件表空间一个大文件表空间只包含一个数据文件,该数据文件可以包含4G(
232)个数据块。通过查询数据字典DATABASE_PROPERTIES中数据库的属性DEFAULT_TBS_TYPE,可以知道数
据库默认创建的是小文件表空间还是大文件表空间。创建一个大文件表空间,文件大小为1G,区的分配采用定制方式。CREATE BIGFI
LE TABLESPACE big_tbs DATAFILE ''D:\APP\ADMINISTRATOR\ORADATA\ORCL
\big01.dbf'' SIZE 1G UNIFORM SIZE 512K;需要注意的是,大文件表空间中段的管理只能采用自动管理方
式,而不能采用手动管理方式。创建临时表空间临时表空间是指专门存储临时数据的表空间,这些临时数据在会话结束时会自动释放。在数据库实例
运行过程中,执行排序等SQL语句时会产生大量的临时数据,而内存不足以容纳这么多数据,此时可以使用临时表空间集中管理临时数据,既提高
了排序操作的并发度,又提高了存储空间管理的效率。创建一个临时表空间HRTEMP1CREATE TEMPORARY TABLESPA
CE HRTEMP1 TEMPFILE''D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\H
RTEMP1_1.DBF'' SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 15M;为
了避免临时空间频繁分配与回收时产生大量碎片,临时表空间的区只能采用自动分配方式。创建一个临时表空间HRTEMP2,并放入临时表空间
组TEMP_GROUP。同时,将临时表空间HRTEMP1也放入该TEMP_GROUP中。CREATE TEMPORARY TABL
ESPACE HRTEMP2 TEMPFILE''D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOUR
CE\HRTEMP2_1.DBF'' SIZE 20MEXTENT MANAGEMENT LOCAL UNIFORM SIZE 1
5MTABLESPACE GROUP TEMP_GROUP;ALTER TABLESPACE HRTEMP1 TABLESPACE
GROUP TEMP_GROUP;创建撤销表空间从Oracle 9i开始,Oracle数据库中引入撤销表空间,专门用于回退段的自
动管理,由数据库自动进行回退段的创建、分配与优化。创建一个撤销表空间HRUNDO1。CREATE UNDO TABLESPACE
HRUNDO1 DATAFILE ''D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\HRU
NDO1_1.DBF'' SIZE 20M;5.2.3修改表空间大小改变数据文件大小的方法添加数据文件改变已有数据文件的大小改变数据
文件的可扩展性重新设置数据文件的大小。为表空间添加数据文件通过ALTER TABLESPACE…ADD DATAFILE语句为永久
表空间添加数据文件通过ALTER TABLESPACE… ADD TEMPFILE语句为临时表空间添加临时数据文件向USERS表空
间中添加一个大小为10MB的数据文件。ALTER TABLESPACE USERS ADD DATAFILE ''D:\APP\AD
MINISTRATOR\ORADATA\HUMAN_RESOURCE\USERS02.DBF'' SIZE 10M向TEMP表空间中
添加一个大小为5MB的临时数据文件。ALTER TABLESPACE TEMP ADD TEMPFILE''D:\APP\ADMIN
ISTRATOR\ORADATA\HUMAN_RESOURCE\TEMP02.DBF'' SIZE 5M改变数据文件的扩展性如果在创
建表空间或为表空间增加数据文件时没有指定AUTOEXTEND ON选项,则该文件的大小是固定的。如果为数据文件指定了AUTOEXT
END ON选项,当数据文件被填满时,数据文件会自动扩展,即表空间被扩展了。修改USERS表空间的数据文件USERS02.DBF为
自动增长方式。ALTER DATABASE DATAFILE''D:\APP\ADMINISTRATOR\ORADATA\HUMAN
_RESOURCE\USERS02.DBF'' AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;US
ERS表空间的数据文件USERS02.DBF的自动增长方式。ALTER DATABASE DATAFILE''D:\APP\ADMI
NISTRATOR\ORADATA\HUMAN_RESOURCE\USERS02.DBF'' AUTOEXTEND OFF;重新设置
数据文件的大小可以使用ALTER DATABASE DATAFILE…RESIZE 改变表空间已有数据文件的大小。将HUMAN_R
ESOURCE数据库USERS表空间的数据文件USERS02.DBF大小设置为8MB。ALTER DATABASE ?DATAFI
LE ''D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\USERS02.DBF'' RESI
ZE 8M;5.2.4修改表空间的可用性表空间的可用性是指表空间脱机或联机操作。除了SYSTEM表空间、存放在线回退信息的撤销表空
间和临时表空间不可以脱机外,其它的表空间都可以设置为脱机状态。将某个表空间设置为脱机状态时,属于该表空间的所有数据文件都处于脱机状
态。可以使用ALTER TABLESPACE…OFFLINE将表空间脱机。5.2.5修改表空间的读写性满足下列条件的表空间才可以设
置为只读状态。表空间必须处于联机状态。表空间中不能包含任何活动的回退段。系统表空间SYSTEM、辅助系统表空间SYSAUX、当前使
用的撤销表空间(UNDO)和当前使用的临时表空间(TEMP)不能设置为只读状态。如果表空间正在进行联机数据备份,则不能将该表空间设
置为只读状态。可以使用ALTER TABLESAPCE…READ ONLY语句将表空间设置为只读状态可以使用ALTER TABLE
SPACE…READ WRITE语句将表空间由只读状态恢复为读写状态。5.2.6 设置默认表空间在Oracle 11g数据库中,
数据库的默认表空间为USERS表空间,默认的临时表空间为TEMP表空间。可以使用ALTER DATABASE DEFAULT TA
BLESPACE语句设置数据库默认表空间。可以使用ALTER DATABASE DEFAULT TEMPORARY TABLESP
ACE语句设置数据库的默认临时表空间。将HRTBS1表空间设置为案例数据库的默认表空间。ALTER DATABASE DEFAUL
T TABLESPACE HRTBS1;将HRTEMP1表空间设置为默认临时表空间ALTER DATABASE DEFAULT T
EMPORARY TABLESPACE HRTEMP1;将temp_group临时表空间组设置为默认临时表空间。ALTER DAT
ABASE DEFAULT TEMPORARY TABLESPACE temp_group;5.2.7 表空间的备份对表空间进行
联机备份备份的基本步骤为(1)使用ALTER TABLESPACE…BEGIN BACKUP语句将表空间设置为备份模式;(2)在操
作系统中备份表空间所对应的数据文件;(3)使用ALTER TABLESPACE…END BACKUP语句结束表空间的备份模式。备份
案例数据库的HRTBS1表空间。ALTER TABLESPACE HRTBS1 BEGIN BACKUP;复制HRTBS1表空间的
数据文件HRTBS1_1.DBF到目标位置。ALTER TABLESPACE HRTBS1 END BACKUP;5.2.8删除表
空间可以使用DROP TABLESPACE语句删除表空间如果表空间的数据文件不是空的,需要带有INCLUDING CONTENTS
子句;如果在删除表空间的同时还要删除操作系统中的数据文件,则需要带有AND DATAFILES子句;如果表空间中的对象被其它表空间
引用,则还需要带有CASCADE CONSTRAINTS子句。删除HRUNDO1表空间。DROP TABLESPACE HRUND
O1 INCLUDING CONTENTS;删除HRUNDO1表空间,同时删除其所对应的数据文件。DROP TABLESPACE
HRUNDO1 INCLUDING CONTENTS AND DATAFILES;删除HRUNDO1表空间,同时删除其所对应的数据
文件,以及其他表空间中与HRUNDO1表空间相关的参照完整性约束。DROP TABLESPACE HRUNDO1 INCLUDIN
G CONTENTS AND DATAFILES CASCADE CONSTRAINTS;5.2.9 查询表空间信息V$TABL
ESPACE:从控制文件中获取的表空间名称和编号信息。DBA_TABLESPACES:数据库中所有表空间的信息。DBA_TABLE
SPACE_GROUPS:表空间组及其包含的表空间信息查询案例数据库中各个表空间的名称、区的管理方式、段的管理方式、表空间 类
型等信息。SELECT TABLESPACE_NAME,EXTENT_MANAGEMENT,ALLOCATION_TYPE, CO
NTENTS FROM DBA_TABLESPACES;5.3 数据文件的设置与管理数据文件介绍创建数据文件修改数据文件的大小改
变数据文件的可用性改变数据文件的名称或位置查询数据文件的信息5.3.1 数据文件介绍Oracle数据库的数据文件是用于保存数据库
中数据的文件,系统数据、数据字典数据、临时数据、索引数据、应用数据等都物理地存储在数据文件中。Oracle数据库中有一种特殊的数据
文件,称为临时数据文件,属于数据库的临时表空间。临时数据文件中的内容是临时性的,在一定条件下自动释放。5.3.2 创建数据文件数
据文件依附于表空间而存在,创建数据文件就是向表空间添加文件在创建数据文件时应该根据文件数据量的大小确定文件的大小以及文件的增长方式
。 语法ALTER TABLESPACE…ADD DATAFILEALTER TABLESPACE…ADD TEMPFILE向US
ERS表空间中添加一个大小为10MB的数据文件。ALTER TABLESPACE USERS ADD DATAFILE ''D:\A
PP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\USERS03.DBF'' SIZE 10M;向TE
MP表空间中添加一个大小为5MB的临时数据文件。ALTER TABLESPACE TEMP ADD TEMPFILE''D:\APP
\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\TEMP03.DBF'' SIZE 5M;5.3.3
修改数据文件的大小方法设置数据文件为自动增长方式。手工改变数据文件的大小。设置数据文件为自动增长方式创建时设置数据文件为自动增长创
建后修改数据文件为自动增长AUTOEXTEND ON NEXT …MAXSIZE…|UNLIMITED手工改变数据文件的大小ALT
ER DATABASE DATAFILE…RESIZE…5.3.4 改变数据文件的可用性概念可以通过将数据文件联机或脱机来改变
数据文件的可用性。 在下面几种情况下需要改变数据文件的可用性:要进行数据文件的脱机备份时,需要先将数据文件脱机;需要重命名数据文件
或改变数据文件的位置时,需要先将数据文件脱机;如果Oracle在写入某个数据文件时发生错误,会自动将该数据文件设置为脱机状态,并且
记录在警告文件中。排除故障后,需要以手动方式重新将该数据文件恢复为联机状态。数据文件丢失或损坏,需要在启动数据库之前将数据文件脱机
。(1)归档模式下数据文件可用性的改变数据文件可用性的改变ALTER DATABASE DATAFILE… ONLINE|OFFL
INE临时数据文件可用性的改变ALTER DATABASE TEMPFILE… ONLINE|OFFLINE将USERS表空间的数
据文件USERS02.DBF脱机ALTER DATABASE DATAFILE ''D:\APP\ADMINISTRATOR
\ORADATA\HUMAN_RESOURCE\ USERS02.DBF'' OFFLINE;将USERS表空间的数据文件U
SERS02.DBF联机ALTER?DATABASE?DATAFILE ''D:\APP\ADMINISTRATOR\ORAD
ATA\HUMAN_RESOURCE\ USERS02.DBF'' ONLINE;在归档模式下,将数据文件联机之前需要使用RE
COVER DATAFILE语句对数据文件进行恢复。5.3.5 改变数据文件的名称或位置改变同一个表空间中数据文件的名称或位置A
LTER TABLESPACLE…RENAME DATAFILE…TO改变多个表空间中数据文件的名称或位置ALTER DATABA
SE RENAME FILE…TO注意改变数据文件的名称或位置时,Oracle只是改变记录在控制文件和数据字典中的数据文件信息,并
没有改变操作系统中数据文件的名称和位置,因此需要DBA手动更改操作系统中数据文件的名称和位置。1.改变同一个表空间中的数据文件名称
或位置改变同一个表空间中的数据文件的名称或位置,可以在表空间级别进行,将改变数据文件名称或位置的操作对系统的影响降低到最小。其步骤
为:将数据文件所属表空间设置为脱机状态;在操作系统中改变数据文件的名称或位置执行ALTER TABLESPACE…RENAME D
ATAFILE…TO语句,修改数据字典和控制文件中与该数据文件相关的信息将数据文件所属表空间设置为联机状态。将案例数据库中USER
S表空间的数据文件USERS01.DBF移动到D:\APP\ADMINISTRATOR\ORADATA目录中。ALTER TABL
ESPACE USERS OFFLINE;HOST COPY D:\APP\ADMINISTRATOR\ORADATA\
HUMAN_RESOURCE\USERS01.DBF D:\APP\ADMINISTRATOR\ORADATA\USER
S01.DBFALTER TABLESPACE USERS RENAME DATAFILE ''D:\APP\ADMINIST
RATOR\ORADATA\ HUMAN_RESOURCE\ USERS01.DBF'' TO ''D:\APP\ADMI
NISTRATOR\ORADATA\USERS01.DBF''ALTER TABLESPACE USERS ONLINE;2.改变多
个表空间中的数据文件的名称或位置如要要在数据库级别一次性完成所有数据文件名称或位置的修改,必须关闭数据库,将数据库启动到加载状态下
进行。步骤为:关闭数据库;启动数据库到加载状态(MOUNT);在操作系统中修改数据文件的名称或位置;执行ALTER DATABAS
E…RENAME FILE…TO语句,修改数据字典和控制文件中与这些数据文件相关的信息;打开数据库。将USERS表空间中的USER
S02.DBF文件和UNDOTBS1表空间中的UNDOTBS01.DBF文件移动到D:\APP\ADMINISTRATOR\ORA
DATA目录中。SHUTDOWN IMMEDIATEHOST COPY D:\APP\ADMINISTRATOR\ORADATA\
HUMAN_RESOURCE\USERS02.DBF D:\APP\ADMINISTRATOR\ORADATA\US
ERS01.DBFHOST COPY D:\APP\ADMINISTRATOR\ORADATA\ HUMAN_RESOURC
E\UNDOTBS01.DBF D:\APP\ADMINISTRATOR\ORADATA\UNDOTBS01.DBFSTA
RTUP MOUNTALTER DATABASE RENAME FILE? ''D:\ORACLE\PRODUCT\10.2.0\O
RADATA\ HUMAN_RESOURCE\USERS002.DBF'', ? ''D:\ORACLE\PRODUCT
\10.2.0\ORADATA\ HUMAN_RESOURCE\TOOLS01.DBF'' TO ? ''D:\ORA
CLE\PRODUCT\10.2.0\ORADATA\USERS002.DBF'', ''D:\ORACLE\PRODUCT\
10.2.0\ORADATA\ HUMAN_RESOURCE\TOOLS001.DBF'';ALTER DATABASE
OPEN;5.3.6 查询数据文件信息DBA_DATA_FILES:包含数据库中所有数据文件的信息,包括数据文件所属的表空间、数
据文件编号等。DBA_TEMP_FILES:包含数据库中所有临时数据文件的信息。V$DATAFILE:包含从控制文件中获取的数据文
件信息。V$TEMPFILE:包含所有临时文件的基本信息。 查询当前数据库所有的表空间及其数据文件信息。SELECT TABLES
PACE_NAME,FILE_NAME FROM dba_data_files;5.4 控制文件的设置与管理控制文件介绍创建控制
文件添加多路复用控制文件备份控制文件删除控制文件查询控制文件信息5.4.1 控制文件介绍控制文件是一个很小的二进制文件。控制文件
描述了整个数据库的结构。在加载数据库时,实例必须首先通过初始化参数文件找到数据库的控制文件。每个数据库至少拥有一个控制文件。一个数
据库也可以同时拥有多个控制文件。分配在不同的物理硬盘中,以免数据库或硬盘损坏时,能够利用备份的控制文件启动数据库实例,可以提高数据
库的可靠性。控制文件的内容数据库名称和标识;数据库创建的时间;表空间名称;数据文件和重做日志文件的名称和位置;当前重做日志文件序列
号;数据库检查点的信息;回退段的开始和结束;重做日志的归档信息;备份信息;数据库恢复所需要的同步信息。5.4.2 创建控制文件C
REATE CONTROLFILE [REUSE][SET] DATABASE database[LOGFILE logfile_
clause]RESETLOGS|NORESETLOGS[DATAFILE file_specification][MAXLOGF
ILES][MAXLOGMEMBERS][MAXLOGHISTORY][MAXDATAFILES][MAXINSTANCES][A
RCHIVELOG|NOARCHIVELOG][FORCE LOGGING][CHARACTER SET character_se
t创建控制文件的基本步骤制作数据库中所有的数据文件和重做日志文件列表SELECT MEMBER FROM V$LOGFILE;SE
LECT NAME FROM V$DATAFILE;SELECT VALUE FROM V$PARAMETER WHERE NAM
E = ''CONTROL_FILES'';如果数据库仍然处于运行状态,则关闭数据库SHUTDOWN IMMEDIATE在操作系统级别
备份所有的数据文件和联机重做日志文件启动实例到NOMOUNT状态STARTUP NOMOUNT 利用前面得到的文件列表,执行CRE
ATE CONTROLFILE创建一个新控制文件。在操作系统级别对新建的控制文件进行备份如果数据库重命名,则编辑DB_NAME参数
来指定新的数据库名称 如果数据库需要恢复,则进行恢复数据库操作如果创建控制文件时指定了NORESTLOGS,可以完全恢复数据库。R
ECOVER DATABASE ;如果创建控制文件时指定了RESETLOGS,则必须在恢复时指定USING BACKUP CONT
ROLFILE。RECOVER DATABASE USING BACKUP CONTROLFILE;打开数据库如果数据库不需要恢复
或已经对数据库进行了完全恢复,则可以正常打开数据库。ALTER DATABASE OPEN;如果在创建控制文件时使用了RESETL
OGS参数,则必须指定以RESETLOGS方式打开数据库。ALTER DATABASE OPEN RESETLOGS;5.4.3
添加多路复用控制文件关闭数据库。使用操作系统命令拷贝一个控制文件的副本到新的位置,并重新命名;或者改变控制文件的名称或位置。编
辑初始化参数文件中的CONTROL_FILES参数,将新添加的控制文件的名称添加到控制文件列表中,或修改控制文件列表中原有控制文件
的名称与位置。重新启动数据库。当前数据库的控制文件为CONTROL01.CTL和CONTROL02.CTL,再添加一个名为CONT
ROL03.CTL的控制文件。ALTER SYSTEM SET CONTROL_FILES= ''D:\APP\ADMINIS
TRATOR\ORADATA\HUMAN_REOSUECE\ CONTROL01.CTL'', ''D:\APP\ADMI
NISTRATOR\FLASH_RECOVERY_AREA\ HUMAN_REOSUECE\CONTROL02.CTL'',
''D:\APP\ADMINISTRATOR\ORADATA\HUMAN_REOSUECE\ CONTROL03.CTL''
SCOPE=SPFILE;SHUTDOWN IMMEDIATEHOST COPY D:\APP\ADMINISTRATOR
\ORADATA\HUMAN_REOSUECE\ CONTROL01.CTL? D:\APP\ADMINISTRATO
R\ORADATA\HUMAN_REOSUECE\ CONTROL03.CTLSTARTUP5.4.4 备份控制文件将控制
文件备份为二进制文件ALTER DATABASE BACKUP CONTROLFILE TO …将控制文件备份为文本文件ALTE
R DATABASE BACKUP CONTROLFILE TO TRACE将控制文件备份到\admi
n\\udump目录下的跟踪文件中 将控制文件备份为二进制文件。ALTER DATABASE BACKUP CONTRO
LFILE TO ''D:\ORACLE\CONTROL.BKP''; 将控制文件备份为文本文件。ALTER DATABASE BA
CKUP CONTROLFILE TO TRACE;5.4.5 删除控制文件编辑CONTROL_FILES初始化参数,使其不包含
要删除的控制文件;关闭数据库;在操作系统中删除控制文件;重新启动数据库。5.4.6 查询控制文件信息V$DATABASE从控制文
件中获取的数据库信息;V$CONTROLFILE包含所有控制文件名称与状态信息;V$CONTROLFILE_RECORD_SECT
ION包含控制文件中各记录文档段信息;V$PARAMETER可以获取初始化参数CONTROL_FILES的值。5.5 重做日志文
件设置与管理重做日志文件介绍查询重做日志文件信息创建重做日志文件组及其成员重做日志文件切换修改重做日志文件的名称或位置删除重做日志
文件组及其成员5.5.1 重做日志文件介绍重做日志文件,保存了用户对数据库所作的更新操作(DDL、DML),包含的主要信息是记录
事务的开始和结束、事务中每项操作的对象和类型、更新操作前后的数据值等。用户对数据库所做的修改都是在数据库的数据高速缓冲区中进行的,
同时将产生的重做记录写入重做日志缓冲区。在一定条件下由DBWR进程将数据高速缓冲区中修改后的结果成批写回数据文件中,而重做日志缓冲
区中的重做记录由LGWR进程周期性的写入重做日志文件。 利用重做日志文件恢复数据库是通过事务的重做(REDO)或回退(UNDO)
实现的。 每个数据库至少需要两个重做日志文件,采用循环写的方式进行工作。当一个重做日志文件写满后,进程LGWR就会移到下一个日志组
,称为日志切换,同时信息会写到控制文件中。为了保证LGWR进程的正常进行,通常采用重做日志文件组(GROUP),每个组中包含若干完
全相同的重做日志文件成员(MEMBER),这些成员文件相互镜像。 5.5.2查询重做日志文件信息数据字典视图V$LOG:包含从控制
文件中获取的所有重做日志文件组的基本信息。V$LOGFILE:包含重做日志文件组及其成员文件的信息。V$LOG_HISTORY:包
含关于重做日志文件的历史信息。查询重做日志文件组的信息 SELECT GROUP#,SEQUENCE#,MEMBERS,STATU
S,ARCHIVED FROM V$LOG; 查询重做日志文件的信息 SELECT GROUP#,TYPE,MEMBER FR
OM V$LOGFILE ORDER BY GROUP#; 5.5.3 创建重做日志文件组及其成员创建重做日志文件组创建重做日志
文件成员创建重做日志文件组可以使用ALTER DATABASE ADD LOGFILE GROUP语句为数据库创建重做日志文件组。
一个数据库中可以包含的重做日志文件组的最大数量是由控制文件中的MAXLOGFILES参数决定的。为当前数据库创建一个包括两个成员文
件的重做日志文件组。ALTER DATABASE ADD LOGFILE GROUP 4(‘D:\APP\ADMINISTRATO
R\ORADATA\ORCL\REDO04a.LOG’, ''D:\APP\ADMINISTRATOR\ORADATA\ORCL\R
EDO04b.LOG'') SIZE 10M;创建重做日志文件成员可以使用ALTER DATABASE ADD LOGFILE
MEMBER…TO GROUP语句为数据库重做日志文件组添加成员文件。一个重做日志文件组中可以拥有的最多成员文件数量是由控制文件中
的MAXLOGMEMBERS参数决定的。注意:同一个重做日志文件组中的成员文件存储位置应尽量分散;不需要指定文件大小,新成员文件大
小由组中已有成员大小决定。为数据库的重做日志文件组1、2、3分别创建一个成员文件。ALTER DATABASE ADD LOGFI
LE MEMBER ''D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\REDO01B.LO
G'' TO GROUP 1,''D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\REDO02
B.LOG'' TO GROUP 2,''D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\RE
DO03B.LOG'' TO GROUP 3;5.5.4重做日志文件切换当LGWR进程结束对当前重做日志文件组的使用,开始写入下一个
重做日志文件组时,称为发生了一次“日志切换”。通常,只有当前的重做日志文件组写满后才发生日志切换,但是可以通过设置参数ARCHIV
E_LAG_TARGET控制日志切换的时间间隔,在必要时也可以采用手工强制进行日志切换。如果需要将当前处于CURRENT 状态的重
做日志组立即切换到INACTIVE状态,必须进行手工日志切换。手动日志切换的语法ALTER SYSTEM SWITCH LOGFI
LE查看日至切换状态SELECT FROM V$LOGFILE;当发生日志切换时,系统将为新的重做日志文件产生一个日志序列号,
在归档时该日志序列号一同被保存。日志序列号是在线日志文件和归档日志文件的唯一标识。5.5.5修改重做日志文件的名称或位置可以修改处
于INACTIVE状态的重做日志文件组中的成员文件的名称或位置。如果要修改的重做日志文件所在重做日志文件组不是处于INACTIVE
状态,可以进行日志切换,使该重做日志文件组处于INACTIVE状态。修改重做日志文件的名称或位置时,首先在操作系统中进行重做日志文
件名称或位置的修改,然后执行ALTER DATABASE RENAME FILE…TO语句修改数据库的控制文件与数据字典中相应重做
日志文件信息。将重做日志文件REDO01B.LOG、REDO02B.LOG移动到目录D:\APP\ ADMINISTRATOR\O
RADATA中。HOST MOVE D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\RED
O01B.LOG D:\APP\ADMINISTRATOR\ORADATA\REDO01B.LOGHOST MOVE D:\
APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\REDO02B.LOG D:\APP\A
DMINISTRATOR\ORADATA\REDO02B.LOGALTER DATABASE RENAME FILE ''D:\
APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\ REDO01B.LOG'', ''D:
\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\ REDO02B.LOG'' TO
''D:\APP\ADMINISTRATOR\ORADATA\REDO01B.LOG'', ''D:\APP\ADMINI
STRATOR\ORADATA\REDO02B.LOG'';5.5.6删除重做日志文件组及其成员删除重做日志文件成员删除重做日志文件
组删除重做日志文件成员可以使用ALTER DATABASE DROP LOGFILE MEMBER语句删除重做日志文件。注意以下事
项只能删除状态为INACTIVE或UNUSED的重做日志文件组中的成员;若要删除状态为CURRENT的重做日志文件组中的成员,则需
执行一次手动日志切换。如果数据库处于归档模式下,则在删除重做日志文件之前要保证该文件所在的重做日志文件组已归档。每个重做日志文件组
中至少要有一个可用的成员文件,即VALID状态的成员文件。如果要删除的重做日志文件是所在组中最后一个可用的成员文件,则无法删除。删
除第4个重做日志文件组中的成员文件REDO04B.LOG。ALTER DATABASE DROP LOGFILE MEMBER
''D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\ REDO04B.LOG'';删
除重做日志文件组可以使用ALTER DATABASE DROP LOGFILE语句删除重做日志文件组。注意:无论重做日志文件组中有
多少个成员文件,一个数据库至少需要有两个重做日志文件组;如果数据库处于归档模式下,则在删除重做日志文件组之前,必须确定该组已经被归
档;只能删除处于INACTIVE状态或UNUSED状态的重做日志文件组,若要删除状态为CURRENT的重做日志文件组,则需要执行一
次手动日志切换删除第4个重做日志文件组。ALTER DATABASE DROP LOGFILE GROUP 4;5.6 归档日志
文件设置与管理归档日志文件介绍数据库归档模式的设置归档目标设置查询归档信息5.6.1 归档日志文件介绍重做日志文件归档是指将写满
了的重做日志文件保存到一个或多个指定的离线位置,这些被保存的历史重做日志文件的集合称为归档重做日志文件。根据是否对重做日志文件进行
归档,数据库运行模式分为归档模式与非归档模式两种。5.6.2 数据库归档模式的设置关闭数据库SQL>SHUTDOWN IMMED
IATE设置归档目的地将数据库启动到加载状态SQL>STARTUP MOUNT改变数据库归档模式SQL>ALTER DATABAS
E ARCHIVELOG;SQL>ALTER DATABASE NOARCHIVELOG;打开数据库SQL>ALTER DATAB
ASE OPEN;5.6.3指定归档目标设置初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DE
ST设置初始化参数LOG_ARCHIVE_DEST_n使用初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DU
PLEX_DEST只能设置两个本地的归档目标,一个主归档目标和一个辅助归档目标。SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST=''D:\BACKUP \ARCHIVE'';SQL>ALTER SYSTEM SET LOG_ARCHIVE_DUPLEX_DEST=''E:\BACKUP\ARCHIVE'';初始化参数LOG_ARCHIVE_DEST_n最多可以设置31个归档目标,即n取值范围为1-31。其中1-10可以用于指定本地的或远程的归档目标,11-31只能用于指定远程的归档目标。设置初始化参数LOG_ARCHIVE_DEST_n时,需要使用关键字LOCATION或SERVICE指明归档目标是本地的还是远程的。可以使用关键字OPTIONAL(默认)或MANDATORY指定是可选归档目标还是强制归档目标。强制归档目标的归档必须成功进行,否则数据库将挂起。SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_1=''LOCATION=D:\BACKUP\ARCHIVE MANDATORY'';SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=''LOCATION=E:\BACKUP\ARCHIVE MANDATORY'';SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_5=''SERVICE=STANDBY1'';通过设置参数LOG_ARCHIVE_FORMAT,可以指定归档文件命名方式。在参数值中可以包含%s,%S,%t,%T,%r和%R,含义如下:%s:代表日志文件序列号%S:代表日志文件序列号,不足3位的以0补齐%t:代表线程号 %T:代表线程号,不足3位的以0补齐。 %r:代表重做日志的ID(Redologs ID) %R:代表重做日志的ID,不足3位的以0补齐。例如:ALTER SYSTEM SET LOG_ARCHIVE_FORMAT =''arch_%t_%s_%r.arc'' SCOPE=SPFILE;5.6.4查询归档信息可以通过查询数据字典视图V$DATABASE、V$ARCHIVED_LOG、V$ARCHIVE_DEST、V$ARCHIVE_PROCESSES等获取重做日志文件归档的信息。SELECT SEQUENCE#,FIRST_CHANGE#, NEXT_CHANGE# FROM V$ARCHIVED_LOG;SELECT DEST_NAME,STATUS,BINDING, TARGET,LOG_SEQUENCE FROM V$ARCHIVE_DEST;小结Oracle数据库存储设置与管理概述表空间的设置与管理数据文件的设置与管理控制文件的设置管理重做日志文件的设置与管理归档日志文件的设置与管理
献花(0)
+1
(本文系籽油荃面原创)