Oracle中的控制文件(control file)

本文主要介绍Oracle中控制文件,目录如下:

1. 控制文件存放了哪些信息?
2. 控制文件的存放位置是什么?
3. Oracle什么时候读取控制文件
4. 控制文件这么重要,能不能增加一个以防万一?

1. 控制文件存放了哪些信息?

数据库名称、数据文件名称和位置、联机重做日志的名称和位置、当前联机重做日志的序列号、检查点、RMAN备份文件名称和位置
例如,查看数据库的信息:
sql> select name,open_mode,created,current_scn from v$database;

NAME OPEN_MODE CREATED CURRENT_SCN
--------- -------------------- --------- -----------
ORCL READ WRITE 12-FEB-18 1651963

2. 控制文件的存放位置是什么?

第一种方法就是grep命令查找spfile
[oracle@node01 dbs]$ grep -ia "control" $ORACLE_HOME/dbs/spfileorcl.ora
*.control_files='/home/oracle/app/oracle/oradata/orcl/control01.ctl','/home/oracle/app/oracle/oradata/orcl/control02.ctl'


还可以在sqlplus里通过show parameter control_files查看
sql> show parameter control_files

NAME TYPE VALUE
------------------------------------ ----------- ---------------
control_files string /home/oracle/app/oracle/oradat
a/orcl/control01.ctl,/home/or
acle/app/oracle/oradata/orcl/c
ontrol02.ctl
sql>

3. Oracle什么时候读取控制文件

数据库启动的三个阶段:
startup nomount -> 这个阶段会打开并读取配置文件,从配置文件获取控制文件的位置信息
alter database mount -> 这个阶段会打开并读取控制文件,从控制文件获取数据文件和联机重做日志文件的位置信息
alter database open -> 这个阶段会打开数据文件和联机重做日志文件

4. 控制文件这么重要,能不能增加一个以防万一?

可以,目前看到上面有2个,我再增加一个,名子为 /home/oracle/app/oracle/oradata/orcl/control03.ctl,步骤如下:

4.1 确认在使用spfile

sql> show parameter spfile
NAME TYPE VALUE
-------- ----------- ------------------------------
spfile string /home/oracle/app/oracle/product/
12.2.0/dbhome_1/dbs/spfileorcl.ora

4.2 修改control_files参数

sql> alter system set control_files='/home/oracle/app/oracle/oradata/orcl/control01.ctl',

'/home/oracle/app/oracle/oradata/orcl/control02.ctl',

'/home/oracle/app/oracle/oradata/orcl/control03.ctl' scope=spfile;


System altered.

4.3 关闭数据库

sql> shutdown immediate

4.4 复制控制文件(OS命令)

[oracle@node01 ~]$ cp /home/oracle/app/oracle/oradata/orcl/control01.ctl /home/oracle/app/oracle/oradata/orcl/control03.ctl


4.5 启动数据并验证

sql> startup
sql> show parameter control_files NAME TYPE VALUE --------------------- ----------- ------------------------------ control_files string /home/oracle/app/oracle/oradat a/orcl/control01.ctl,/home/or acle/app/oracle/oradata/orcl/c ontrol02.ctl,/home/oracle/app /oracle/oradata/orcl/control03 .ctl 参考资料: 《深入理解Oracle 12c数据库管理》

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...