Oracle控制文件管理和恢复
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 查看控制文件信息SYS@ prod>select * from v$controlfile;
目前三个控制文件(里面信息都一样)在同一个目录下,都在/dev/sda2磁盘上,很不安全,根据df显示的磁盘信息可以将控制文件放到test1目录下。
2 修改参数文件
1)查看参数文件的位置,当前使用spfile启动
2)SYS@ prod>alter system set control_files='/u01/oradata/prod/control01.ctl',
2 '/u01/oradata/prod/control02.ctl','/u01/oradata/prod/control03.ctl' scope=spfile;
System altered.
3)修改参数文件
使用vi打开initprod.ora 文件在contol_file 后面添加‘/test/contorl04.ctl’并保存退出。4)关闭数据库SYS@ prod>shutdown immediate;
5)复制控制文件
[root@cuug ~]# cd /u01/oradata/prod
[root@cuug prod]# cp ./control03.ctl /test1/control04.ctl
6)验证控制文件
7 )注意事项:
a复制控制文件时应该是数据库关闭状态,否则在启库是容易造成数据库SCN号不一致导致数据库无法mount
b 复制时最好使用oracle操作,如果使用root记得更改新文件夹的属组和属主。
(一)只有一个控制文件丢失
1 删除一个控制文件
[root@cuug prod]# rm /u01/oradata/prod/control01.ctl
rm: remove regular file `/u01/oradata/prod/control01.ctl'? y
[root@cuug prod]#
2 关闭数据库SYS@ prod>shutdown immediate;
注:没用控制文件在关闭数据库是容易造成数据库未完全关闭重启时会报ora-01012错误,解决方法是在操作系统层杀掉数据库相关进程,重启即可。
3 重启数据库SYS@ prod>startup
ORACLE instance started.
Total System Global Area 523108352 bytes
Fixed Size 1337632 bytes
Variable Size 385877728 bytes
Database Buffers 130023424 bytes
Redo Buffers 5869568 bytes
ORA-00205: ?????????, ??????, ???????
重启失败报错。查看告警日志为丢失控制文件
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/oradata/prod/control01.ctl'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
ORA-205 signalled during: ALTER DATABASE MOUNT...
Fri Feb 17 07:14:08 2017
Checker run found 1 new persistent data failures
4 查看现在数据库状态
发现数据库处于nomount状态可以直接拷贝控制文件解决
5复制控制文件
[root@cuug prod]# cp /u01/oradata/prod/control02.ctl /u01/oradata/prod/control01.ctl
6 重启数据库
SYS@ prod>alter database mount;
Database altered.
SYS@ prod>alter database open;
Database altered.
(二)所有的控制文件丢失
1 为了安全期间可以先将所有的控制文件dump到trace中
SYS@ prod>alter database backup controlfile to trace;
Database altered.
将控制文件拷贝到其他位置
SYS@ prod>alter database backup controlfile to trace;
Database altered.
查看dunp文件位置
里面有控制文件的信息。
2 删除控制文件
3 重启数据库报错
SYS@ prod>startup force;
ORACLE instance started.
Total System Global Area 523108352 bytes
Fixed Size 1337632 bytes
Variable Size 385877728 bytes Database Buffers 130023424 bytes
Redo Buffers 5869568 bytes
ORA-00205: ?????????, ??????, ???????
查看告警日志丢失控制文件
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/oradata/prod/control03.ctl' ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
ORA-00210: cannot open the specified control file