ORACLE数据库提供了多种对控制文件的备份方式,RMAN,ALTER DATABASE BACKUP CONTROLFILE TO TRACE,ALTER DATABASE BACKUP CONTROLFILE TO filename
这里介绍一下使用ALTER DATABASE BACKUP CONTROLFILE TO filename对控制文件进行备份并恢复的过程
1\ 备份控制文件 ctlfile.bak
SQL> alter database backup controlfile to 'e:\oracle\backup\ctlfile.bak';
数据库已更改。
2\ 关闭数据库
SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
3\ 删除全部的控制文件,复制 ctlfile.bak 到原控制文件的位置并改名为原控制文件名
4\ 以 MOUNT 方式启动数据库
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247876 bytes
Variable Size 62915964 bytes
Database Buffers 96468992 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
5\ 查询当前的redo文件
SQL> SELECT * FROM V$LOG;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ------------
1 1 0 52428800 1 YES UNUSED 0
3 1 0 52428800 1 YES UNUSED 0
2 1 1 52428800 1 NO CURRENT 651827 15-11月-07
6\ 应用备份的控制文件ctlfile.bak对控制文件进行恢复
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 653168 (在 11/15/2007 21:29:55 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2007_11_15\O1_MF_1_1_%U_.ARC
ORA-00280: 更改 653168 (用于线程 1) 在序列 #1 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
在这里输入第二组 redo 文件,指定绝对路径
E:\oracle\product\10.2.0\oradata\orcl\redo02.log
已应用的日志。
完成介质恢复。
7\ 以 RESETLOGS 方式打开数据库
SQL> alter database open resetlogs;
数据库已更改。