--查看控制文件路径
show parameter control_files;
--控制文件的备份,三种方式1)使用OS命令进行拷贝;1)open状态下,使用alter database命令生成控制文件副本;2)open状态下,使用alter database backup controlfile to trace命令将控制文件备份到跟踪文件; --控制文件的恢复,两种方式1)mount状态下,使用recover database using backup controlfile2)mount状态下,生成跟踪文件并进行恢复 --备份ctlSQL> alter database backup controlfile to 'D:\Oracle\backup\control_bak.ctl';
--备份trace脚本SQL> alter database backup controlfile to trace as 'D:\Oracle\backup\ctl.sql';
--从ctl恢复
SQL> startup mount
ORACLE 例程已经启动。Total System Global Area 612368384 bytes
Fixed Size 1250428 bytesVariable Size 306187140 bytesDatabase Buffers 297795584 bytesRedo Buffers 7135232 bytes数据库装载完毕。SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ---------FIRST_CHANGE# FIRST_TIME------------- -------------- 1 1 8 52428800 2 YES INACTIVE 1157323 30-11月-123 1 9 52428800 2 YES INACTIVE
1158104 30-11月-122 1 10 52428800 2 NO CURRENT
1158418 30-11月-12SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 1158810 (在 11/30/2012 15:10:32 生成) 对于线程 1 是必需的ORA-00289: 建议:D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\DBTEST\ARCHIVELOG\2012_11_30\O1_MF_1_10_%U_.ARC
ORA-00280: 更改 1158810 (用于线程 1) 在序列 #10 中指定日志: {=suggested | filename | AUTO | CANCEL}D:\Oracle\product\10.2.0\oradata\dbtest\redo02.log已应用的日志。完成介质恢复。SQL> alter database open resetlogs;数据库已更改。
--从trace脚本恢复(nomount状态,去掉前面的空格,蓝色部分可以不要)
SQL>@'D:\Oracle\backup\ctl.sql';
CREATE CONTROLFILE REUSE DATABASE "DBTEST" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100MAXINSTANCES 8MAXLOGHISTORY 292LOGFILEGROUP 1 ('D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\REDO01A.LOG','D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\REDO01.LOG') SIZE 50M,GROUP 2 ('D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\REDO02.LOG','D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\REDO02A.LOG') SIZE 50M,GROUP 3 ('D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\REDO03.LOG','D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\REDO03A.LOG') SIZE 50MDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\SYSTEM01.DBF','D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\UNDOTBS01.DBF','D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\SYSAUX01.DBF','D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\USERS01.DBF','D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\EXAMPLE01.DBF'CHARACTER SET ZHS16GBK;SQL> alter database open;
注意:脚本语句前面不要留空格。