Oracle控制文件详解
Oracle控制文件详解 一、Oracle控制文件 为二进制文件,初始化大小由CREATEDATABASE指定,可以使用RMAN备份 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等等 在参数文件中描述其位置,个数等等。通常采用分散放开,多路复用的原则。在mount阶段被读取,open阶段一直被使用 维护数据库一致性(数据库启动时会比较控制文件与联机日志文件中的ckpt,即起始scn号,如相等则正常启动,否则需要介质恢复) 一个控制文件只能属于一个数据库 控制文件的任意修改将写入到初始化参数中指定的所有控制文件中,读取时则仅读取第一个控制文件 控制文件只能连接一个数据库,控制文件的大小一般不要超过MB,最多为个,最少一个,互为镜像
控制文件中包含的内容 数据库的名字、ID、创建的时间戳 表空间的名字 联机日志文件、数据文件的位置、个数、名字 联机日志的Sequence号码 检查点的信息 撤销段的开始或结束 归档信息 备份信息
二、查看控制文件的相关信息 1.使用相关视图来查看 V$CONTROLFILE--列出实例中所有控制文件的名字及状态信息 V$PARAMETER--列出所有参数的位置及状态信息 V$CONTROLFILE_RECORD_SECTION--列出控制文件中记录的部分信息 SHOW PARAMETERCONTROL_FILES--列出控制文件的名字、状态、位置等 2.使用STRINGS命令来查看控制文件中的具体内容 3.备份控制文件到平面文件(然后查看控制文件中的具体内容)
SQL>alterdatabasebackupcontrolfiletotraceas'/u01/app/oracle/ctl.txt';
Databasealtered. 4.转储控制文件内容(查看控制文件中的具体内容) altersessionsetevents'immediatetrace name CONTROLF level 12';level表示级别 或--level1块头的内容--level2数据文件内容--levle10 |12所有内容 oradebug setmypid oradebugdumpcontrolf12
SQL>altersystemsetevents'immediatetrace name controlf level 10';
System altered.
SQL>showparameter user_dump;
NAMETYPEVALUE ----------------------------------------------- ------------------------------ user_dump_deststring/u01/app/oracle/admin/orcl/udu mp 三、控制文件的管理 规划原则:多路复用,建议存放到不同的磁盘或同一磁盘不同的分区 个数与位置及状态管理: 查看控制文件的状态是否与参数定义中的相吻合,当数据库发生结构修改时,将修改内容同时写入控制文件 备份管理 恢复管理 新建控制文件语句
spfile或pfile都可以实现对控制文件的个数及位置管理 spfile步骤 修改spfile参数中的control_files--alter system ... scope = spfile | both |memory 一致性关闭数据库 增加或减少控制文件(cpormv) 启动数据库使用spfile 验证结果
pfile步骤 一致性关闭数据库 修改pfile参数(vi或vim)修改*.control_files=......这一段 增加或减少控制文件(cpormv) 启动数据库使用pfile 验证结果
--演示spfile修改控制文件 SQL>showparameter control_file
NAMETYPEVALUE ----------------------------------------------- ------------------------------ control_file_record_keep_timeinteger7 control_filesstring/u01/app/oracle/oradata/orcl/c ontrol01.ctl,/u01/app/oracle/ oradata/orcl/control02.ctl,/u 01/app/oracle/oradata/orcl/con trol03.ctl --将控制文件减少到一个 SQL>altersystemsetcontrol_files='/u01/app/oracle/oradata/orcl/control01.ctl'scope=spfile;
System altered.
SQL>shutdownimmediate; Databaseclosed. Databasedismounted. ORACLE instanceshut down. SQL>startupmount ORACLE instancestarted.
Total SystemGlobal Area251658240 bytes FixedSize1218796bytes VariableSize88082196bytes DatabaseBuffers159383552bytes RedoBuffers2973696bytes Databasemounted.
--再次查看参数文件,已显示为一个 SQL>showparameter control_file
NAMETYPEVALUE ----------------------------------------------- ------------------------------ control_file_record_keep_timeinteger7 control_filesstring/u01/app/oracle/oradata/orcl/c ontrol01.ctl
--增加控制文件(在nomount状态下即可修改) SQL>altersystemsetcontrol_files='/u01/app/oracle/oradata/orcl/control01.ctl', 2'/u01/app/oracle/oradata/orcl/control02.ctl', 3'/u01/app/oracle/oradata/orcl/control03.ctl' 4scope=spfile;
System altered. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |