控制文件的作用
- 控制文件是一个存储Oracle实例信息、数据文件和日志文件信息的内部二进制文件,如果启用了RMAN备份,还会存储RMAN备份的信息。
- 控制文件一般在Oracle系统安装时自动创建,控制文件所存放的路径由服务器参数文件SPFILEsid.ora的control_files参数值来确定。
- 由于控制文件存放有数据文件、日志文件等信息,因此,Oracle实例在启动时必须访问控制文件
- Oracle数据库系统出于安全考虑,在安装Oracle数据库或者创建实例时,系统会自动创建2个或
3个控制文件,每个控制文件记录相同的信息。这样可确保在数据库运行时,如果某个控制文件损坏,
Oracle会自动使用另外一个控制文件,当所有控制文件都损坏时,系统将不能工作。 - 为了Oracle系统的安全,建议在系统安装时指定多个控制文件,并将它们存放在不同的磁盘路径
上。如果一个数据库实例的控制文件太少,建议数据库管理员创建新的控制文件。
下面的例子是查询数据库实例所包含的控制文件路径信息。
select * from v$controlfile;
或者
show parameter CONTROL_FILE
或者
select * from v$parameter where name='control_files';
# 可以看到控制文件默认存在$ORACLE_BASE/安装时设置数据文件存放目录/实例名/ 和 $ORACLE_BASE/安装时设置flash recovery目录/实例名/ 下
SQL> show parameter CONTROL_FILE;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string /data/u01/app/oracle/oradata/z
ktime/control01.ctl, /data/u01
/app/oracle/flash_recovery_are
a/zktime/control02.ctl
添加多个控制文件(多路复用)
方法一(只能在初始化时设置)
通过init.ora文件增加多个不同路径的存储控制文件
vim $ORACLE_HOME/dbs/init.ora
编辑:
control_files = (ora_control1, ora_control2)
control_files = ('/data/u01/app/oracle/oradata/orcl/control01.ctl',
'/data/u01/app/oracle/flash_recovery_area/orcl/control02.ctl',
'/swq/control_file_dir/control03.ctl')
关闭数据库
shutdown immediate
复制一份控制文件
重启实例
方法二(推荐)
sqlplus / as sysdba
SQL> alter system set control_files=
2 '/data/u01/app/oracle/oradata/orcl/control01.ctl',
3 '/data/u01/app/oracle/oradata/orcl/control02.ctl',
4 '/data/u01/app/oracle/oradata/orcl/control03.ctl',
5 '/data/u01/app/oracle/oradata/orcl/control04.ctl' scope=spfile;
-- 里面关闭数据库
SQL> shutdown immediate
# 开一个新的终端,复制一份控制文件为control04.ctl
cp /data/u01/app/oracle/oradata/orcl/control01.ctl /data/u01/app/oracle/oradata/orcl/control04.ctl
# 重新启动数据库
SQL> startup
备份控制文件
alter database backup controlfile to 'PATH'
给控制文件留出足够的硬盘空间
控制文件除了存放数据库信息、数据文件和重做日志等,还存储了大量与管理相关的信息。
比如当oracle 11g中配置了rman并使用,控制文件会存储于备份历史有关的信息。
随着时间推移会不断增长。
控制控制文件的拓展限制参数:
SQL> show parameter control_file_reco;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
该参数用于设置控制文件记录RMAN历史备份信息的天数。
标签:文件,控制,app,ctl,oracle,Oracle,u01 From: https://www.cnblogs.com/juelian/p/17559752.html