1.控制文件的位置
select name from v$controlfile;
2.控制文件的格式为trl二进制文件
3.创建一个控制文件
1)获取数据文件和重做日志文件列表
控制文件:select name from v$datafile;
日志文件:select member from v$logfile;
2)关闭shutdown immediate
3)备份所有的数据文件和重做日志
4)启动数据库到:sartup nomount
5)创建数据文件:create controlfile
reuse database database_name noresetlogs|resetlogs noarchivelog|archivelog
maxlogfiles //最大日志文件的大小
maxlogmenbers //日志文件组的成员数
maxinstances //最大实例个数
maxloghistroy //最大历史日志文件个数
logfile //指定日志文件的位置和名称
group 1 ‘logfile_name 1’ size size,
…
datafile // 指定数据文件的名称和位置
‘datafile_name1′,
….
character set zhs16gbk //指定字符集
6)修改control_file参数 使其指向新建的控制文件 如果修改了数据库名称还需修改db_name参数
alter system set control_files=
‘controlfile_name1’,
….
scope=spfile;
7)alter database open; 如果需要恢复数据库的话需要执行
8)使用了resetlogs 则执行 alter database open resetlogs;
4.控制文件的备份
复制控制文件 alter database backup controlfile to
‘/data/oracle/control_01’;
将控制文件备份为可读文件:alter database backup controlfile to trace;
5.控制文件的恢复
如果控制文件被破坏,但存储控制文件的目录仍然可以访问,并且存在控制文件副本,则可以关闭数据库实例,然后使用操作将控制文件副本复制到控制文件目录下,覆盖被损坏的控制文件,然后重启数据库。
6.删除控制文件
1)关闭数据库
2)编辑初始化参数control_files.使其不再包含要删除的控制文件的名称;
3)重启数据库
7.查看控制文件信息
与控制文件有关的数据字典视图
v$database //显示控制文件描述的数据库信息
v$controlfile //显示控制文件的名称和状态信息
v$controlfile_record_section //显示控制文件各个记录的信息
v$parameter //显示初始化参数controlfile_files中的控制文件名称