控制文件用于维护数据库物理结构数据的文件,每个数据库至少要有一个,是二进制文件,其中记录了数据库名称、数据文件位置、重做日志文件名称和位置。系统最多可以设置8个控制文件的副本来,但是无论有多少个副本,系统只指定一个控制文件作为检索数据库元数据的主要控制文件。一个数据文件对应一个数据库,但是可以有多个副本存在。当所有副本丢失时,可以通过alter database backup controlfile to trace来重建控制文件。数据库在启动过程中首先通过默认规则打开参数文件,建立实例,再通过参数文件中控制文件的位置,打开控制文件,然后通过控制文件中数据文件、重做日志的位置,校验数据文件一致性,并恢复打开数据文件,完成数据库的启动。通常新建立的数据库有三个控制文件。
查看控制文件:
Select value from v$parameter where name=control_files’;
Show parameter control_files;
启动到mount状态:
Select name from v$controlfile;
查看控制文件中的内容:
V$controlfile_record_section
依赖控制文件的视图:
V$backup v$databse v$tempfile v$tablespace v$archive v$log v$logfile v$loghist日志切换记录v$archived_log归过档的记录
移动控制文件
a、使用pfile文件移动控制文件
利用数据字典获取控制文件的名字
Select value from v$parameter where name=’control_files’
关闭数据库
Shutdown immediate
修改参数文件
修改参数文件的目录和移动参数文件到相应的目录
启动数据
Startup
验证更改的结果
Select name from v$controlfile
//oracle建库时参数文件的副本:$Oracle_base/admin/sid/pfile,另外控制文件只要有一个正常使用的,可以用这个正常的建立各个副本,建立的办法,就是把正确的改成副本名字即可。
b、使用Spfile文件移动控制文件
获取控制文件的名字
Select name from v$controlfile;
更改控制文件的目录及名称或新加的控制文件目录
Alter system set control_files='D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\CONTROL01.CTL','D:\ORACLE\controlfile\CONTROL02.CTL','D:\ORACLE\controlfile\CONTROL03.CTL' scope=spfile;
移动控制文件到相应的目录
验证控制文件的修改结果
Select name from v$controlfile
备份和恢复控制文件
a、备份控制文件1
Alter databse backup controlfie to ‘D:\oracle\controlfile\backupcontrolfile.ora';
b、备份控制文件2
alter session set sql_trace=true;
alter database backup controlfile to trace;
show parameter user_dump_dest
c、部分控制文件损坏
d、全部丢失和损坏
startup mount
alter database open useing backup controlfile;
控制文件备份后的数据会丢失。
e、使用跟踪文件重建控制文件,trace文件中有脚本
f、手工创建控制文件,根据trace文件命令创建
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22275400/viewspace-718425/,如需转载,请注明出处,否则将追究法律责任。