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数据库管理》
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Oracle 数据库,可以通过修改参数控制 Control File 的备份周期。具体操作如下: 1.登录到数据库服务器并以管理员身份启动 SQL*Plus 或其他 Oracle 数据库客户端工具。 2.使用 SYS 或其他具有 SYSDBA 权限的用户登录到数据库实例。 3.执行以下语句查看当前数据库的 Control File 自动备份配置: ``` SHOW CONTROLFILE AUTOBACKUP; ``` 如果输出结果为 "OFF",表示当前未启用 Control File 自动备份功能;如果输出结果为 "ON",表示当前已启用 Control File 自动备份功能,并且备份周期默认为每次备份数据库时都会备份 Control File。 4.如果需要修改 Control File 自动备份周期,可以执行以下语句: ``` CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/%F'; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE TAPE TO '/dev/rmt0'; CONFIGURE CONTROLFILE AUTOBACKUP MAXCOPIES 3; ``` 其,第一条语句用于启用 Control File 自动备份功能,第二条语句用于指定备份文件的格式和存储路径,第三条语句用于指定备份文件的最大备份数量。在这个例子,自动备份的 Control File 文件将会保存在磁盘上的 /u01/backup 目录,备份文件名的格式为 %F,表示使用时间戳作为备份文件名的一部分;同时,还指定了备份文件最大备份数量为 3,表示最多只保留 3 个备份文件。 5.执行以下语句验证修改是否生效: ``` SHOW CONTROLFILE AUTOBACKUP; ``` 如果输出结果为修改后的值,表示修改已生效。 注意:修改 Control File 自动备份的参数需要谨慎操作,必须确保备份文件的存储路径和备份文件的最大备份数量设置合理,否则可能会导致备份文件过多或存储位置不正确的问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值