Oracle基礎 06 控制檔案 controlfile

j04212發表於2014-02-12


--檢視控制檔案路徑

show parameter control_files;


--控制檔案的備份,三種方式
1)使用OS命令進行拷貝;
1)open狀態下,使用alter database命令生成控制檔案副本;
2)open狀態下,使用alter database backup controlfile to trace命令將控制檔案備份到跟蹤檔案;


--控制檔案的恢復,兩種方式

1)mount狀態下,使用recover database using backup controlfile
2)mount狀態下,生成跟蹤檔案並進行恢復


--備份ctl

SQL> 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 bytes
Variable Size             306187140 bytes
Database Buffers          297795584 bytes
Redo 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月-12

         3          1          9   52428800          2 YES INACTIVE
      1158104 30-11月-12

         2          1         10   52428800          2 NO  CURRENT
      1158418 30-11月-12

SQL> 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 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 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 50M
DATAFILE
'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;


 注意:指令碼語句前面不要留空格。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27633655/viewspace-1080318/,如需轉載,請註明出處,否則將追究法律責任。

相關文章