controlfile檔案的備份與恢復
Oracle的控制檔案controlfile有以下4種備份恢復方法。
注意:本文模擬controlfile故障均是直接刪除控制檔案。
1. 使用RMAN工具備份恢復controlfile
RMAN引數選項”CONFIGURE CONTROLFILE AUTOBACKUP ON/OFF”
定義為”ON”,則任意一次RMAN備份都會自動備份controlfile,比如備份tablespace;
定義為”OFF”,則不會自動備份controlfile,需要手動備份。
使用RMAN工具備份controflile的命令如下
#rman target /
RMAN>backup current controlfile;
使用RMAN備份集恢復controlfile的步驟如下
#rman target /
RMAN>startup nomount
RMAN>set dbid=******
RMAN>restore controlfile from autobackup;
RMAN>alter database mount;
RMAN>recover database;
RMAn>alter database open open resetlogs;
注意:
使用RMAN恢復時,必須有instance的DBID。DBID是唯一的,可以透過v$instance檢視確定。
Controlfile故障後無法查詢v$instance檢視,所以故障前須確知DBID,否則會遇到麻煩,呵呵。
2. 使用SQL*PLUS命令備份至指定檔案
SQLPLUS命令備份controlfile有兩種方式,這裡先介紹備份為具體檔案的方法。
使用SQL命令備份controlfile,步驟如下:
#sqlplus “/as sysdba”
SQL> alter database backup controlfile to 'd:backup.ctl';
使用SQL命令恢復controlfile,步驟如下:
1> 使用備份檔案”backup.ctl”直接copy。
注意:複製檔案的名稱、路徑、份數與原controlfile完全一致。
2> 使用下列命令進行恢復
SQL> startup mount;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE例程已經啟動。
Total System Global Area 452984832 bytes
Fixed Size 1249512 bytes
Variable Size 155193112 bytes
Database Buffers 289406976 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
SQL> recover database using backup controlfile;
ORA-00279:更改718494 (在07/31/2008 22:21:53生成)對於執行緒1是必需的
ORA-00289:建議: D:ORACLEPRODUCT10.2.0ARCHIVELOG1_2_661388974.ARC
ORA-00280:更改718494 (用於執行緒1)在序列#2中
指定日誌: {=suggested | filename | AUTO | CANCEL}
注意:提示輸入redolog,但一般情況下輸入建議的archivelog會報錯
在此處輸入的redolog為狀態為current的online redolog
透過v$log,v$logfile檢視確定當前狀態為CURRENT的redolog檔案
D:ORACLEPRODUCT10.2.0ORADATAZPREDO01.LOG
已應用的日誌。
完成介質恢復。
SQL> alter database open resetlogs;
資料庫已更改。
SQL>
3. 使用SQL*PLUS命令備份至trace檔案
備份控制檔案步驟如下:
#sqlplus “/as sysdba”
SQL> alter database backup controlfile to trace;
注意:
備份完畢後會在$ORACLE_HOME/admin/*sid*/udump目錄下生成對應的trace檔案
使用trace備份集恢復controlfile的步驟如下:
1> 開啟備份controlfile時生成的trace檔案
2> 找到標記”Set #1. NORESETLOGS case”部分。
注意:
一般情況下trace檔案裡都會有2部分相關內容
恢復時先執行”Set #1. NORESETLOGS case”部分
3> 執行上述標記部分的sql語句
SQL>STARTUP NOMOUNT
SQL>CREATE CONTROLFILE REUSE DATABASE "ZP" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'D:ORACLEPRODUCT10.2.0ORADATAZPREDO01.LOG' SIZE 50M,
GROUP 2 'D:ORACLEPRODUCT10.2.0ORADATAZPREDO02.LOG' SIZE 50M,
GROUP 3 'D:ORACLEPRODUCT10.2.0ORADATAZPREDO03.LOG' SIZE 50M
DATAFILE
'D:ORACLEPRODUCT10.2.0ORADATAZPSYSTEM01.DBF',
'D:ORACLEPRODUCT10.2.0ORADATAZPUNDOTBS01.DBF',
'D:ORACLEPRODUCT10.2.0ORADATAZPSYSAUX01.DBF',
'D:ORACLEPRODUCT10.2.0ORADATAZPUSERS01.DBF',
'D:ORACLEPRODUCT10.2.0ORADATAZPTBS1.DBF'
CHARACTER SET ZHS16GBK
;
SQL>VARIABLE RECNO NUMBER;
SQL>EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CONTROLFILE AUTOBACKUP','ON');
RECOVER DATABASE;
SQL>ALTER SYSTEM ARCHIVE LOG ALL;
SQL>ALTER DATABASE OPEN;
SQL>ALTER TABLESPACE TEMP ADD TEMPFILE 'D:ORACLEPRODUCT10.2.0ORADATAZPTEMP01.DBF'
SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
4. 使用COPY或是cp命令進行控制檔案的備份
使用作業系統的copy或是cp命令直接備份controfile,恢復的方法與使用”alter database backup controlfile to filename”備份檔案步驟命令一樣。
from:http://space.itpub.net/?uid-265709-action-viewspace-itemid-417369[@more@]
注意:本文模擬controlfile故障均是直接刪除控制檔案。
1. 使用RMAN工具備份恢復controlfile
RMAN引數選項”CONFIGURE CONTROLFILE AUTOBACKUP ON/OFF”
定義為”ON”,則任意一次RMAN備份都會自動備份controlfile,比如備份tablespace;
定義為”OFF”,則不會自動備份controlfile,需要手動備份。
使用RMAN工具備份controflile的命令如下
#rman target /
RMAN>backup current controlfile;
使用RMAN備份集恢復controlfile的步驟如下
#rman target /
RMAN>startup nomount
RMAN>set dbid=******
RMAN>restore controlfile from autobackup;
RMAN>alter database mount;
RMAN>recover database;
RMAn>alter database open open resetlogs;
注意:
使用RMAN恢復時,必須有instance的DBID。DBID是唯一的,可以透過v$instance檢視確定。
Controlfile故障後無法查詢v$instance檢視,所以故障前須確知DBID,否則會遇到麻煩,呵呵。
2. 使用SQL*PLUS命令備份至指定檔案
SQLPLUS命令備份controlfile有兩種方式,這裡先介紹備份為具體檔案的方法。
使用SQL命令備份controlfile,步驟如下:
#sqlplus “/as sysdba”
SQL> alter database backup controlfile to 'd:backup.ctl';
使用SQL命令恢復controlfile,步驟如下:
1> 使用備份檔案”backup.ctl”直接copy。
注意:複製檔案的名稱、路徑、份數與原controlfile完全一致。
2> 使用下列命令進行恢復
SQL> startup mount;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE例程已經啟動。
Total System Global Area 452984832 bytes
Fixed Size 1249512 bytes
Variable Size 155193112 bytes
Database Buffers 289406976 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
SQL> recover database using backup controlfile;
ORA-00279:更改718494 (在07/31/2008 22:21:53生成)對於執行緒1是必需的
ORA-00289:建議: D:ORACLEPRODUCT10.2.0ARCHIVELOG1_2_661388974.ARC
ORA-00280:更改718494 (用於執行緒1)在序列#2中
指定日誌: {
注意:提示輸入redolog,但一般情況下輸入建議的archivelog會報錯
在此處輸入的redolog為狀態為current的online redolog
透過v$log,v$logfile檢視確定當前狀態為CURRENT的redolog檔案
D:ORACLEPRODUCT10.2.0ORADATAZPREDO01.LOG
已應用的日誌。
完成介質恢復。
SQL> alter database open resetlogs;
資料庫已更改。
SQL>
3. 使用SQL*PLUS命令備份至trace檔案
備份控制檔案步驟如下:
#sqlplus “/as sysdba”
SQL> alter database backup controlfile to trace;
注意:
備份完畢後會在$ORACLE_HOME/admin/*sid*/udump目錄下生成對應的trace檔案
使用trace備份集恢復controlfile的步驟如下:
1> 開啟備份controlfile時生成的trace檔案
2> 找到標記”Set #1. NORESETLOGS case”部分。
注意:
一般情況下trace檔案裡都會有2部分相關內容
恢復時先執行”Set #1. NORESETLOGS case”部分
3> 執行上述標記部分的sql語句
SQL>STARTUP NOMOUNT
SQL>CREATE CONTROLFILE REUSE DATABASE "ZP" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'D:ORACLEPRODUCT10.2.0ORADATAZPREDO01.LOG' SIZE 50M,
GROUP 2 'D:ORACLEPRODUCT10.2.0ORADATAZPREDO02.LOG' SIZE 50M,
GROUP 3 'D:ORACLEPRODUCT10.2.0ORADATAZPREDO03.LOG' SIZE 50M
DATAFILE
'D:ORACLEPRODUCT10.2.0ORADATAZPSYSTEM01.DBF',
'D:ORACLEPRODUCT10.2.0ORADATAZPUNDOTBS01.DBF',
'D:ORACLEPRODUCT10.2.0ORADATAZPSYSAUX01.DBF',
'D:ORACLEPRODUCT10.2.0ORADATAZPUSERS01.DBF',
'D:ORACLEPRODUCT10.2.0ORADATAZPTBS1.DBF'
CHARACTER SET ZHS16GBK
;
SQL>VARIABLE RECNO NUMBER;
SQL>EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CONTROLFILE AUTOBACKUP','ON');
RECOVER DATABASE;
SQL>ALTER SYSTEM ARCHIVE LOG ALL;
SQL>ALTER DATABASE OPEN;
SQL>ALTER TABLESPACE TEMP ADD TEMPFILE 'D:ORACLEPRODUCT10.2.0ORADATAZPTEMP01.DBF'
SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
4. 使用COPY或是cp命令進行控制檔案的備份
使用作業系統的copy或是cp命令直接備份controfile,恢復的方法與使用”alter database backup controlfile to filename”備份檔案步驟命令一樣。
from:http://space.itpub.net/?uid-265709-action-viewspace-itemid-417369[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/633084/viewspace-1016445/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 備份與恢復--利用備份的控制檔案恢復
- 備份與恢復系列 十一 控制檔案的備份與恢復
- 備份與恢復(Parameter 檔案恢復篇)
- 備份與恢復系列 十 引數檔案spfile的備份與恢復
- 【備份與恢復】恢復受損的口令檔案
- 【備份與恢復】控制檔案的恢復(不完全恢復)
- 【實驗】從RMAN備份中恢復controlfile控制檔案
- 備份與恢復--重建控制檔案
- Oracle備份與恢復【丟失控制檔案的恢復】Oracle
- Oracle備份與恢復【丟失資料檔案的恢復】Oracle
- 【備份與恢復】archivelog模式中資料檔案的恢復Hive模式
- 【備份與恢復】noarchivelog模式中資料檔案的恢復Hive模式
- 【備份與恢復】恢復受損的複用控制檔案
- 備份與恢復--重建控制檔案後資料檔案損壞的恢復
- controlfile備份恢復總結(轉)
- 備份&恢復之四:非歸檔模式下的備份與恢復模式
- 【備份恢復】利用 備份控制檔案到指定目錄下的控制檔案 恢復控制檔案
- 利用備份的控制檔案恢復
- 控制檔案的備份和恢復
- 【rman 備份與恢復】恢復丟失所有的控制檔案
- oralce備份與恢復1 控制檔案(轉)
- RMAN備份恢復之控制檔案的恢復(三)
- RMAN備份恢復之控制檔案的恢復(二)
- RMAN備份恢復之控制檔案的恢復(一)
- 備份與恢復--從備份的歸檔日誌中恢復資料
- Controlfile備份恢復關於Standby的理解
- 【備份恢復】無備份線上恢復非關鍵資料檔案
- ORACLE 只讀資料檔案備份與恢復Oracle
- XFS檔案系統的備份、恢復、修復
- 【備份恢復】所有控制檔案丟失後 利用trace中的控制檔案備份執行恢復
- 備份與恢復系列 八 丟失所有資料檔案的還原與恢復
- 【備份恢復】 控制檔案多路徑
- 【備份恢復】恢復inactive狀態的日誌檔案
- 備份與恢復:polardb資料庫備份與恢復資料庫
- 【備份與恢復】恢復受損的複用聯機重做日誌檔案
- 使用舊的控制檔案備份來恢復控制檔案
- Mysql的備份與恢復MySql
- rman備份恢復-rman恢復資料檔案測試