7.1.1 控制文件概述
数据库名称和SID标识
数据库创建的时间戳
当前重做日志文件序列号
检查点信息
备份数据文件信息
如何对控制文件进行日常管理:
如果数据库的物理组成发生了变化,建议用户及时备份控制文件
方法有:多路复用控制文件和备份控制文件
7.1.2 控制文件的多路复用
初始化参数control_files列出了当前数据库的所有控制文件名,oracle将根据control_files参数中的信息同时修改所有的控制文件,但只读取其中的第一个控制文件中的信息。
实现控制文件的多路复用主要包括更改control_files参数和复制控制文件两个步骤。
在spfile文件中,control_files参数用于设置数据库的控制文件路径和文件名。
(1)查看控制文件
SQL> col status for a10
SQL> select * from v$controlfile;
STATUS NAME IS_RECOVE BLOCK_SIZE FILE_SIZE_BLKS
---------- ------------------------------ --------- ---------- --------------
/home/oracle/control03.ctl NO 16384 594
SQL> col value for a30;
(2)更改control_files参数
手动创建控制文件使用create controlfile语句
create controlfile
logfile
group 2 redofiles_list2
...
datafile
datafile2
...
maxlogmembers max_value2
maxdatafiles max_value4
archivelog|noarchivelog;
db_name:数据库名称,通常是orcl;
datafile:数据文件路径
max_value2:最大的重做日志组成员数,这是一个永久性参数
max_value4:最大数据文件数,这是一个永久性参数
1、查看数据文件和重做日志文件
SQL> col member for a50;
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------
/ora/app/oracle/oradata/stone1/redo03.log
/ora/app/oracle/oradata/stone1/redo02.log
/ora/app/oracle/oradata/stone1/redo01.log
在数据字典视图v$datafile中查看数据文件:
SQL> select name from v$controlfile;
NAME
--------------------------------------------------
/home/oracle/control03.ctl
2、关闭数据库
用户需要在操作系统下备份所有的数据文件和重做日志文件,因为在使用create controlfile语句创建新的控制文件时,如果操作不当可能会损坏数据文件和日志文件。
4、启动数据库实例
执行create controlfile命令创建一个新的控制文件。
6、编辑参数
SQL> alter database open;
SQL> alter database open resetlogs;
7.1.4 备份和恢复控制文件
1、备份控制文件
(1)备份为二进制文件需要使用'alter database backup controlfile'语句
SQL> alter database backup controlfile to trace;
Database altered.
所创建的文件称为跟踪文件,实际上是一个SQL脚本,可以利用它来“重新创建”新的控制文件。跟踪文件的存放位置由SPFILE文件中的USER_DUMP_DEST参数来决定。
2、恢复控制文件
操作步骤如下:
b、复制这个损坏文件对应的一个多路复用文件,覆盖掉原来目录下的损坏文件
操作步骤如下:
b、编辑初始化参数CONTROL_FILES,添加一个新的控制文件的位置
操作步骤:
(2)编辑初始化参数CONTROL_FILES,清除掉打算要删除的控制文件的名称
与控制文件相关的常用数据字典视图:
SQL> select * from v$controlfile_record_section;
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX LAST_INDEX LAST_RECID
-------------------- ----------- ------------- ------------ ----------- ---------- ----------
DATABASE 316 1 1 0 0 0
CKPT PROGRESS 8180 11 0 0 0 0
REDO THREAD 256 8 1 0 0 0
REDO LOG 72 16 3 0 0 3
DATAFILE 520 100 5 0 0 36
FILENAME 524 2298 9 0 0 0
TABLESPACE 68 100 6 0 0 2
TEMPORARY FILENAME 56 100 1 0 0 1
RMAN CONFIGURATION 1108 50 0 0 0 0
LOG HISTORY 56 292 17 1 17 17
OFFLINE RANGE 200 163 0 0 0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX LAST_INDEX LAST_RECID
-------------------- ----------- ------------- ------------ ----------- ---------- ----------
ARCHIVED LOG 584 28 0 0 0 0
BACKUP SET 40 409 0 0 0 0
BACKUP PIECE 736 200 0 0 0 0
BACKUP DATAFILE 200 245 0 0 0 0
BACKUP REDOLOG 76 215 0 0 0 0
DATAFILE COPY 736 200 2 1 2 2
BACKUP CORRUPTION 44 371 0 0 0 0
COPY CORRUPTION 40 409 0 0 0 0
DELETED OBJECT 20 818 1 1 1 1
PROXY COPY 928 246 0 0 0 0
BACKUP SPFILE 124 131 0 0 0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX LAST_INDEX LAST_RECID
-------------------- ----------- ------------- ------------ ----------- ---------- ----------
DATABASE INCARNATION 56 292 2 1 2 2
FLASHBACK LOG 84 2048 0 0 0 0
RECOVERY DESTINATION 180 1 0 0 0 0
INSTANCE SPACE RESER 28 1055 1 0 0 0
VATION
REMOVABLE RECOVERY F 32 1000 0 0 0 0
ILES
RMAN STATUS 116 141 0 0 0 0
THREAD INSTANCE NAME 80 8 8 0 0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX LAST_INDEX LAST_RECID
-------------------- ----------- ------------- ------------ ----------- ---------- ----------
MAPPING
MTTR 100 8 1 0 0 0
DATAFILE HISTORY 568 57 0 0 0 0
STANDBY DATABASE MAT 400 31 31 0 0 0
RIX
GUARANTEED RESTORE P 212 2048 0 0 0 0
OINT
RESTORE POINT 212 2083 0 0 0 0
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX LAST_INDEX LAST_RECID
-------------------- ----------- ------------- ------------ ----------- ---------- ----------
DATABASE BLOCK CORRU 80 8384 0 0 0 0
PTION
ACM OPERATION 104 64 6 0 0 0
FOREIGN ARCHIVED LOG 604 1002 0 0 0 0
37 rows selected.
1、查看控制文件相关信息
SQL> host strings /home/oracle/control03.ctl | more
}|{z
STONE1
1STONE1
1STONE1
stone1
stone1
/ora/app/oracle/oradata/stone1/redo03.log
/ora/app/oracle/oradata/stone1/redo02.log
/ora/app/oracle/oradata/stone1/redo01.log
/ora/app/oracle/oradata/stone1/users01.dbf
/ora/app/oracle/oradata/stone1/undotbs01.dbf
/ora/app/oracle/oradata/stone1/sysaux01.dbf
/ora/app/oracle/oradata/stone1/system01.dbf
/ora/app/oracle/oradata/stone1/temp01.dbf
/ora/app/oracle/oradata/stone1/example01.dbf
/ora/app/oracle/oradata/stone1/redo03.log
/ora/app/oracle/oradata/stone1/redo02.log
/ora/app/oracle/oradata/stone1/redo01.log
/ora/app/oracle/oradata/stone1/users01.dbf
/ora/app/oracle/oradata/stone1/undotbs01.dbf
/ora/app/oracle/oradata/stone1/sysaux01.dbf
/ora/app/oracle/oradata/stone1/system01.dbf
/ora/app/oracle/oradata/stone1/temp01.dbf
/ora/app/oracle/oradata/stone1/example01.dbf
SYSTEM
SYSAUX
UNDOTBS1
USERS
TEMP
EXAMPLE
SYSTEM
SYSAUX
UNDOTBS1
USERS
TEMP
EXAMPLE
ora/app/oracle/oradata/stone1/example01.dbf
ora/app/oracle/oradata/stone1/example01.dbf
TAG20131212T153951
/home/oracle/control03.ctl.bkp
stone1
HbE#v
stone1
HbE#v
stone1
Hl8p
UNNAMED_INSTANCE_2
UNNAMED_INSTANCE_3
UNNAMED_INSTANCE_4
UNNAMED_INSTANCE_5
UNNAMED_INSTANCE_6
UNNAMED_INSTANCE_7
UNNAMED_INSTANCE_8
stone1
Hl8p
UNNAMED_INSTANCE_2
UNNAMED_INSTANCE_3
UNNAMED_INSTANCE_4
UNNAMED_INSTANCE_5
UNNAMED_INSTANCE_6
UNNAMED_INSTANCE_7
UNNAMED_INSTANCE_8
ACM unit testing operation
LSB Database Guard
Supplemental Log Data DDL
LSB Role Change Support
RFS block and kill across RAC
RAC-wide SGA
ACM unit testing operation
LSB Database Guard
Supplemental Log Data DDL
LSB Role Change Support
RFS block and kill across RAC
RAC-wide SGA
3、备份控制文件到文本文件(查看控制文件具体内容)
SQL
host strings /home/oracle/control03.ctl
ctl
txt
(
)
level
--level1 查看路径中最新的文件
[oracle@localhost ~]$ more /ora/app/oracle/diag/rdbms/stone1/stone1/trace/stone1_vktm_9455.trc
Trace file /ora/app/oracle/diag/rdbms/stone1/stone1/trace/stone1_vktm_9455.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /ora/app/oracle/product/11.2.0/dbhome_1
System name: Linux
Node name: localhost.localdomain
Release: 2.6.32-220.el6.x86_64
Version: #1 SMP Wed Nov 9 08:03:13 EST 2011
Machine: x86_64
Instance name: stone1
Redo thread mounted by this instance: 0
Oracle process number: 3
Unix process pid: 9455, p_w_picpath: oracle@localhost.localdomain (VKTM)
*** 2013-12-12 11:38:55.692
*** SESSION ID:(3.1) 2013-12-12 11:38:55.692
*** CLIENT ID:() 2013-12-12 11:38:55.692
*** SERVICE NAME:() 2013-12-12 11:38:55.692
*** MODULE NAME:() 2013-12-12 11:38:55.692
*** ACTION NAME:() 2013-12-12 11:38:55.692
kstmmainvktm: succeeded in setting elevated priority
kstmmainvktm:enabled, highres_enabled, sectick_enabled
*** 2013-12-12 11:38:55.692
VKTM running at (10)millisec precision with DBRM quantum (100)ms
[Start] HighResTick = 1386819535692319
kstmrmtickcnt = 0 : ksudbrmseccnt[0] = 1386819535
kstmchkdrift (kstmhighrestimecntkeeper:highres): Time jumped forward by (8296411)microsecs at 13868283887
36971
*** 2013-12-12 14:06:28.738
kstmchkdrift (kstmhighrestimecntkeeper:lowres): Time jumped forward by (8000000)microsecs at 1386828388
[End] HighResTick = 1386829513745398
*** 2013-12-12 14:25:13.756
kstmrmtickcnt = 92460 : ksudbrmseccnt[9909] = 1386829513
转载于:https://blog.51cto.com/stonebox/1357204