Oracle控制文件基本维护


控制文件记录着数据库的重要信息,包括例如数据库标识(参数DB_NAME或者在使用CREATE DATABASE 语句创建时使用的名称)、数据文件和重做日志文件的名称与位置、创建数据库的时间戳、添加或删除表空间信息、检查点信息、归档信息、备份信息等等,如果在打开的时候没有控制文件将会失败,如果在运行过程中控制文件出现异常那么数据库将立即崩溃,由此可见控制文件是多么重要,控制文件只能有Oracle服务器来操作读写。控制文件建议做多路副本和备份。动态性能视图V$CONTROLFILE_RECORD_SECTION记录着控制文件包含的内容和信息,其他的一些性能视图比如V$DATAFILE、V$LOG等等将会从该视图获取必要的信息。
0. 如何增加一个控制文件
sys@ www.bkjia.com> column name format a50
sys@ www.bkjia.com> show parameter control

NAME                     TYPE     VALUE
------------------------------------ -------- ------------------------------
control_file_record_keep_time         integer  7
control_files                 string   /u01/oracle/9i/oradata/gt9i/co
                          ntrol01.ctl, /u01/oracle/9i/or
                          adata/gt9i/control02.ctl, /u01
                          /oracle/9i/oradata/gt9i/contro
                          l03.ctl
sys@ www.bkjia.com> select * from v$controlfile;

STATUS    NAME
------- --------------------------------------------------
    /u01/oracle/9i/oradata/gt9i/control01.ctl
    /u01/oracle/9i/oradata/gt9i/control02.ctl
    /u01/oracle/9i/oradata/gt9i/control03.ctl

sys@ www.bkjia.com> create pfile='/u01/oracle/gt9i.ora' from spfile;

File created.

sys@ www.bkjia.com> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
然后通过操作系统命令复制一个现有的控制文件,修改pfile增加新的控制文件位置即可:
[oracle@ www.bkjia.com gt9i]$ ll control*
-rw-r-----  1 oracle oinstall 2023424  4月 11 15:06 control01.ctl
-rw-r-----  1 oracle oinstall 2023424  4月 11 15:06 control02.ctl
-rw-r-----  1 oracle oinstall 2023424  4月 11 15:06 control03.ctl
[oracle@ www.bkjia.com gt9i]$ cp control01.ctl controlTEST.ctl
[oracle@ www.bkjia.com gt9i]$ ll control*
-rw-r-----  1 oracle oinstall 2023424  4月 11 15:06 control01.ctl
-rw-r-----  1 oracle oinstall 2023424  4月 11 15:06 control02.ctl
-rw-r-----  1 oracle oinstall 2023424  4月 11 15:06 control03.ctl
-rw-r-----  1 oracle oinstall 2023424  4月 11 15:23 controlTEST.ctl
vi /u01/oracle/gt91.ora
修改控制文件配置成如下:
*.control_files='/u01/oracle/9i/oradata/gt9i/controlTEST.ctl','/u01/oracle/9i/oradata/gt9i/control01.ctl','/u01/oracle/9i/oradata/gt9i/control02.ctl','/u01/oracle/9i/oradata/gt9i/control03.ctl'
上述第1个就是我们刚刚添加的控制文件,现在可以使用pfile来打开数据库。
sys@ www.bkjia.com> startup pfile='/u01/oracle/gt9i.ora'
ORACLE instance started.

Total System Global Area  286752136 bytes
Fixed Size             740744 bytes
Variable Size          150994944 bytes
Database Buffers      134217728 bytes
Redo Buffers             798720 bytes
Database mounted.
Database opened.
sys@ www.bkjia.com> show parameter control

NAME                     TYPE     VALUE
------------------------------------ -------- ------------------------------
control_file_record_keep_time         integer  7
control_files                 string   /u01/oracle/9i/oradata/gt9i/co
                          ntrolTEST.ctl, /u01/oracle/9i/
                          oradata/gt9i/control01.ctl, /u
                          01/oracle/9i/oradata/gt9i/cont
                          rol02.ctl, /u01/oracle/9i/orad
                          ata/gt9i/control03.ctl
sys@ www.bkjia.com> select * from v$controlfile;

STATUS    NAME
------- --------------------------------------------------
    /u01/oracle/9i/oradata/gt9i/controlTEST.ctl
    /u01/oracle/9i/oradata/gt9i/control01.ctl
    /u01/oracle/9i/oradata/gt9i/control02.ctl
    /u01/oracle/9i/oradata/gt9i/control03.ctl
可以看到现在在用的控制文件有了4个。
1. 如何删除一个控制文件
增加控制文件的一个反转操作即可。略。
2. 如何备份控制文件
两种方式备份,备份为trace文本文件,可以使用文本编辑器打开直接编辑;或者备份为二进制文件。
sys@ www.bkjia.com> alter database backup controlfile to  trace as '/u01/oracle/gt9icontrol.trc';

Database altered.

sys@ www.bkjia.com> alter database backup controlfile to '/u01/oracle/gt9icontrol.ctl';

Database altered.
  • 1
  • 2
  • 3
  • 下一页

相关内容