控制文件是一个二进制文件记录database结构信息
系统启动到mount状态下会读control file
如果控制文件所在的磁盘损坏相关联的实例将关闭可以用备份的控制文件启动
####创建初始的控制文件
数据库创建时控制文件的名字由初始化参数control_files指定control_file指定的文件名必须包含路径和文件名
control_file =(d:\oracle\oradata\xq\controlctld:\oracle\oradata\xq\controlctld:\oracle\oradata\xq\controlctl)
创建数据库时如果指定的文件已存在就必须在create database 语句中指定reuse子句重用已存在的控制文件否则不允许创建数据库另外如果旧控制文件的size参数与新的控制文件不同则不能使用reuse子句不同oracle版本之间控制文件的大小各不相同
####创建新的控制文件
SQL>alter system set control_files=d:\oracle\oradata\xq\controlctl 新加一个control的控制文件
d:\oracle\oradata\xq\controlctl
d:\oracle\oradata\xq\controlctl
d: \oracle\oradata\xq\controlctl scope=spfile
然后复制一个control文件改名为controlctl
initora
()先停止数据库
()修改initora文件在control_files参数上加入controlora控制文件路径
()重起SQL>startup pfile=d:\oracle\ora\database\initxqora
####删除控制文件
删除后控制文件至少应该留两个控制文件否则不允许删除
()关闭数据库
()删除初始化参数control_files对应的控制文件行
####备份控制文件
可以在运行时备份
()SQL>alter database backup controlfile to d:\controlbak;
()SQL>alter database backup controlfile to trace ; 翻译成创建控制文件的脚本
保存在d:\oracle\admin\xq\udump\下
SQL>show parameter user_dump;查看
####OMF
在omf中db_create_online_log_dest_n 可以指定创建控制文件的位置
####查询控制文件信息
SQL>V$CONTROLFILE 列出数据库中控制文件的名字以及控制文件的状态
SQL>select value from v$parameter where ; 查询当前初始参数的文件值
SQL>v$controlfile_record_section 可以查询出控制文件的记录类型大小使用的记录数以及第一个和最后一个记录的索引位置等