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
————————————————
版权声明:本文为CSDN博主「匿_名_用_户」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qingsong3333/article/details/79461789