控制文件的数量设定取决数据库事务的数量大小。每一个事务对数据库所作的修改都会被记录在重做日志文件中,日志文件的大小决定于数据库可以丢失数据
的承受能力。如果数据库中的数据不重要,你可以承受丢失几个小时的数据,那么你就可以使用大重做日志文件,较少的日志文件数。
如果你不能承受任何数据的丢失,那么你就需要使用小的重做日志文件,多个日志文件。
在Oracle7, Oracle8-8i 和 Oracle9i,中最少要有两个重做日志文件组,建议使用三个。同时重做日志的镜像机制保证了重做日志文件几乎可以不遭受丢失。
为什么参数MAXLOGFILES不叫MAXLOGGROUPS呢?原因有两个:
1.首先,因为以前的ORACLE数据库重组日志是没有镜像的,也不存在日志组之说,所以这个时候只有一个参数MAXLOGFILES控制日志文件的数量。
ORACLE给数据库增加新功能的时候为避免多出修改参数名字就延续了这个参数,并且增加了另外一个参数MAXLOGMEMBERS来增加了日志组和镜像的功能。
2.其次,另外一个原因是不管你是否使用归档日志模式。当一个重做日志(或者日志组)被归档的时候,它就不能被使用。这时,如果手工做日志切换(log switch)
使数据库使用当前正在归档的日志(或日志组),数据库将停止。这就是为什么建议对启用归档模式的数据库最少使用三个重做日志(或日志组):一个处于使用状态,
一个待用,一个处于归档中。通常情况下,我们希望有几个重做日志(或日志组)处于可用状态。如果在繁忙的系统当中,当存放归档日志的磁盘被填满的时候,
那么这个时候数据库的归档动作就会停止,当所欲可用日志都被使用完毕后,数据库就会hung在那里。
为了避免这个情况发生,oraclec采用了日志镜像功能,为你争取更多的时间发现问题。
5.控制文件管理
(1)控制文件镜像
为了防止控制文件损坏,我们通常需要对控制文件做一个镜像,一般情况下最好将控制文件镜像在不同的存储
介质上。如果某个控制文件丢失或者损坏了,那么控制文件的镜像就可以用来启动数据库,从而避免了介质恢复。
控制文件镜像最多可以有8个,当镜像创建以后,数据库会自动维护所有的控制文件。
I.spfile
*修改spfile文件
Alter system set control_files=
‘$ORACLE_HOME/ORADATA/u01/CONTROL01.CTL’,
‘$ORACLE_HOME/ORADATA/u01/CONTROL02.CTL’
scope=spfile;
*shutdown normal
*Create additional control files
cp $ORACLE_HOME/ORADATA/u01/CONTROL01.CTL
$ORACLE_HOME/ORADATA/u02/CONTROL02.CTL
*Startup the database
II.init.ora file
*Shutdown the database in normal state
*Copy the existing control file to new name and locaiton
*Add the new control file name to init.ora
*startup the database
(2)控制文件备份
因为控制文件保存着数据库的物理架构,所以当对数据库库的物理结构修改后(如添加表空间)应该对数据库的控制文件做一个
备份。因为控制文件需要和运行的数据库保持一致,所以当你对数据库结构做修改后,如果没有合适的数据文件,那么你将不能
使用修改前的控制文件来启动数据库。
I.直接备份控制文件
ALTER DATABASE BACKUP CONTROLFILE TO ‘FILENAME’;
II.生成创建控制文件的SQL 语句
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
6.获取控制文件的相关信息
(1)SHOW paramter control_files
(2)查询控制文件相关视图
V$CONTROLFILE
V$CONTROLFILE_RECORD_SECTION
V$PARAMETER
从控制文件获取信息的一些动态视图,一下视图中的信息都是从控制文件中获取的。
V$BACKUP
V$DATAFILE
V$TEMPFILE
V$TABLESPACE
V$ARCHIVE
V$LOG
V$LOGFILE
V$LOGHIST
V$ARCHIVED_LOG
V$DATABASE
7.DUMP控制文件
因为控制文件是二进制文件,所以我们没办法直接看到控制文件里面的内容.
但是我么可以使用DUMP命令或者ORADEBUG把控制文件转换成文本形式来查看。
DUMP出来的文件保存在user_dump_dest参数指定的目录下。
Dump Level Dump Contains
1 only the file header
2 just the file header, the database info record, and checkpoint progress records
3 all record types, but just the earliest and latest records for circular reuse record types
4 as above, but includes the 4 most recent records for circular reuse record types
5+ as above, but the number of circular reuse records included doubles with each level
(1)使用oradebug(connect as sysdba)
oradebug setmypid
oradebug dump controlf
(2)使用ALTER SESSIOIN命令(with ALTER SESSION privilege)
alter session set events ‘immediate trace name controlf level 3′;
参考:
1.metalink Note:47322.1,note 217718.1,Note:134234.1,Note:1060139.6
2.Oracle 9i Student Guide Fundamental 1
3.Oracle Document
Popularity: 53% [?]
Loading...