RMAN恢復表空間,資料檔案,歸檔檔案,控制檔案等介紹
恢復表空間和資料檔案
執行表空間或資料檔案級的恢復時,資料庫既可以是mount狀態,也可以是open狀態.從表空間和資料檔案的自身特點來說,兩者恢復也類似,只不過資料檔案相對來說粒度更細.
恢復表空間
表空間必須為offline狀態:
rman>sql 'alter tablespace users offline immediate';
rman>restore tablespace users;
rman>recover tablespace users;
rman>sql 'alter tablespace users online';
如果一次恢復多個表空間,只需要在執行restore/recover時同時指定多個表空間名稱即可,用逗號,分隔,但將表空間offline/online得一個一個改.
恢復資料檔案
恢復表空間實際上就是恢復其對應的資料檔案(一個表空間可能對應多個資料檔案)
rman>sql 'alter database datafile 10 offline';
or
sql>alter database datafile 'D:\oracle\product\10.2.0\oradata\bob\users01.dbf' offline;
在執行restore/recover操作指定資料檔案時,指定資料檔案的序號和指定資料檔案的詳細路徑,都可以.
rman>restore datafile 10;
rman>restore datafile 'D:\oracle\product\10.2.0\oradata\bob\users01.dbf';
rman>recover datafile 10;
rman>recover datafile 'D:\oracle\product\10.2.0\oradata\bob\users01.dbf';
rman>sql 'alter databsase datafile 10 online';
or
sql>alter database datafile 'D:\oracle\product\10.2.0\oradata\bob\users01.dbf' online;
這是簡單的恢復,資料檔案會被恢復到預設的位置.如果磁碟壞了,那就得指定新的資料檔案路徑了,同樣要將資料檔案改為offline狀態.
rman>run {
set newname for datafile 10 to 'D:\NEWPATH\users01.dbf';
restore datafile 10;
switch datafile 10;
recover datafile 10;
}
select * from v$datafile
恢復歸檔日誌檔案
恢復歸檔檔案也是用restore命令,如果只是為了在恢復資料檔案後應用歸檔檔案,那並不需要手動對歸檔檔案進行恢復,rman會在recover的時候自動對適當的歸檔進行恢復.
單獨恢復歸檔檔案一般是建立了Data Guard環境,Standby端丟失了部分歸檔檔案,必須從Primary端重新獲取,或者用LogMiner對之前的歸檔進行分析等.
恢復歸檔日誌檔案也非常靈活,rman的recover命令中提供了多種限定條件,可以精確指定恢復哪些備份的歸檔檔案,例如:恢復歸檔序號為20到30的歸檔檔案:
rman>restore archivelog sequence between 20 and 30;
預設情況下rman將歸檔檔案恢復到初始化引數log_archive_dest_1指定的路徑下,如果想將恢復出來的歸檔儲存到其他路徑下,使用:
rman>run {
set archivelog destination to 'D:\oracle\bobbackup\arclog';
restore archivelog sequence between 35 and 50;
}
這樣,恢復出來的sequenct序號為35~50的歸檔檔案就被儲存到新目錄D:\oracle\bobbackup\arclog下.同一個run塊允許同時出現多個set archivelog命令,將歸檔恢復到不同的目錄:
rman>run {
set archivelog destination to 'D:\oracle\bobbackup\arclog1';
restore archivelog sequence between 15 and 20;
set archivelog destination to 'D:\oracle\bobbackup\arclog2';
restore archivelog sequence between 21 and 30;
set archivelog destination to 'D:\oracle\bobbackup\arclog3';
restore archivelog sequence between 31 and 40;
}
恢復控制檔案and初始化引數spfile檔案
1.從自動備份中恢復
沒了控制檔案,你只能nomount狀態,啟動db之前必須先set命令設定DBID:
rman>set dbid=13834161
如何獲得目標資料庫的DBID?
要獲得目標資料庫的DBID,多種查詢,比如建立自動備份時,檔名中會包含DBID;或檢視之前聲稱的rman備份日誌,當使用rman登入目標資料庫會首先輸出目標資料庫的DBID; 或者連線到目標資料庫之後,查詢v$database檢視.
select dbid from v$database
啟動資料庫到nomount狀態:
rman>startup nomount;
從自動備份中恢復控制檔案,恢復預設路徑:
rman>restore controlfile from autobackup;
執行上述語句後,備份集中的控制檔案被恢復到初始化引數control_files指定的路徑下
恢復到指定路徑下:
rman>restore controlfile to 'D:\newpath\control01.ctl' from autobackup;
執行上述語句可將控制檔案恢復到指定路徑下並可命名為control01.ctl,資料庫open時也可以執行,但路徑要與當前資料庫控制檔案路徑不同.
如果你執行備份操作前,修改過自動備份的預設路徑,那麼此時執行上述命令會提示你找不到備份檔案,需重新設定一下自動備份路徑,或手動複製自動備份的控制檔案到當前預設路徑下,預設是在$ORACLE_HOME/database,如果是linux/unix那就是在$ORACLE_HOME/dbs目錄.
在nocatalog模式下修改控制檔案的自動備份儲存路徑時,不要使用configure,因為configure進行的配置為永久配置,要用set命令配置控制檔案自動備份的路徑.
例如,使用set命令設定控制檔案自動備份的路徑:
rman>set controlfile autobackup format for device type disk to 'D:\oracle\backup\%F';
然後執行restore命令,從自動備份中恢復控制檔案即可:
rman>restore controlfile from autobackup;
2.從備份集中恢復
10g開始restore直接提供了from backup字句,可直接從指定備份片段中恢復控制檔案.
先set設定DBID:
rman>set dbid=13834161
rman>startup nomount;
執行restore指定控制檔案所在備份片段的路徑:
rman>restore controlfile from 'D:\oraclebackup\BOB_30_%P_C-13834161-20131230-10';
!使用備份的控制檔案進行恢復後,必須recover database,並以open resetlogs方式開啟資料庫.
rman>
rman>
執行表空間或資料檔案級的恢復時,資料庫既可以是mount狀態,也可以是open狀態.從表空間和資料檔案的自身特點來說,兩者恢復也類似,只不過資料檔案相對來說粒度更細.
恢復表空間
表空間必須為offline狀態:
rman>sql 'alter tablespace users offline immediate';
rman>restore tablespace users;
rman>recover tablespace users;
rman>sql 'alter tablespace users online';
如果一次恢復多個表空間,只需要在執行restore/recover時同時指定多個表空間名稱即可,用逗號,分隔,但將表空間offline/online得一個一個改.
恢復資料檔案
恢復表空間實際上就是恢復其對應的資料檔案(一個表空間可能對應多個資料檔案)
rman>sql 'alter database datafile 10 offline';
or
sql>alter database datafile 'D:\oracle\product\10.2.0\oradata\bob\users01.dbf' offline;
在執行restore/recover操作指定資料檔案時,指定資料檔案的序號和指定資料檔案的詳細路徑,都可以.
rman>restore datafile 10;
rman>restore datafile 'D:\oracle\product\10.2.0\oradata\bob\users01.dbf';
rman>recover datafile 10;
rman>recover datafile 'D:\oracle\product\10.2.0\oradata\bob\users01.dbf';
rman>sql 'alter databsase datafile 10 online';
or
sql>alter database datafile 'D:\oracle\product\10.2.0\oradata\bob\users01.dbf' online;
這是簡單的恢復,資料檔案會被恢復到預設的位置.如果磁碟壞了,那就得指定新的資料檔案路徑了,同樣要將資料檔案改為offline狀態.
rman>run {
set newname for datafile 10 to 'D:\NEWPATH\users01.dbf';
restore datafile 10;
switch datafile 10;
recover datafile 10;
}
select * from v$datafile
恢復歸檔日誌檔案
恢復歸檔檔案也是用restore命令,如果只是為了在恢復資料檔案後應用歸檔檔案,那並不需要手動對歸檔檔案進行恢復,rman會在recover的時候自動對適當的歸檔進行恢復.
單獨恢復歸檔檔案一般是建立了Data Guard環境,Standby端丟失了部分歸檔檔案,必須從Primary端重新獲取,或者用LogMiner對之前的歸檔進行分析等.
恢復歸檔日誌檔案也非常靈活,rman的recover命令中提供了多種限定條件,可以精確指定恢復哪些備份的歸檔檔案,例如:恢復歸檔序號為20到30的歸檔檔案:
rman>restore archivelog sequence between 20 and 30;
預設情況下rman將歸檔檔案恢復到初始化引數log_archive_dest_1指定的路徑下,如果想將恢復出來的歸檔儲存到其他路徑下,使用:
rman>run {
set archivelog destination to 'D:\oracle\bobbackup\arclog';
restore archivelog sequence between 35 and 50;
}
這樣,恢復出來的sequenct序號為35~50的歸檔檔案就被儲存到新目錄D:\oracle\bobbackup\arclog下.同一個run塊允許同時出現多個set archivelog命令,將歸檔恢復到不同的目錄:
rman>run {
set archivelog destination to 'D:\oracle\bobbackup\arclog1';
restore archivelog sequence between 15 and 20;
set archivelog destination to 'D:\oracle\bobbackup\arclog2';
restore archivelog sequence between 21 and 30;
set archivelog destination to 'D:\oracle\bobbackup\arclog3';
restore archivelog sequence between 31 and 40;
}
恢復控制檔案and初始化引數spfile檔案
1.從自動備份中恢復
沒了控制檔案,你只能nomount狀態,啟動db之前必須先set命令設定DBID:
rman>set dbid=13834161
如何獲得目標資料庫的DBID?
要獲得目標資料庫的DBID,多種查詢,比如建立自動備份時,檔名中會包含DBID;或檢視之前聲稱的rman備份日誌,當使用rman登入目標資料庫會首先輸出目標資料庫的DBID; 或者連線到目標資料庫之後,查詢v$database檢視.
select dbid from v$database
啟動資料庫到nomount狀態:
rman>startup nomount;
從自動備份中恢復控制檔案,恢復預設路徑:
rman>restore controlfile from autobackup;
執行上述語句後,備份集中的控制檔案被恢復到初始化引數control_files指定的路徑下
恢復到指定路徑下:
rman>restore controlfile to 'D:\newpath\control01.ctl' from autobackup;
執行上述語句可將控制檔案恢復到指定路徑下並可命名為control01.ctl,資料庫open時也可以執行,但路徑要與當前資料庫控制檔案路徑不同.
如果你執行備份操作前,修改過自動備份的預設路徑,那麼此時執行上述命令會提示你找不到備份檔案,需重新設定一下自動備份路徑,或手動複製自動備份的控制檔案到當前預設路徑下,預設是在$ORACLE_HOME/database,如果是linux/unix那就是在$ORACLE_HOME/dbs目錄.
在nocatalog模式下修改控制檔案的自動備份儲存路徑時,不要使用configure,因為configure進行的配置為永久配置,要用set命令配置控制檔案自動備份的路徑.
例如,使用set命令設定控制檔案自動備份的路徑:
rman>set controlfile autobackup format for device type disk to 'D:\oracle\backup\%F';
然後執行restore命令,從自動備份中恢復控制檔案即可:
rman>restore controlfile from autobackup;
2.從備份集中恢復
10g開始restore直接提供了from backup字句,可直接從指定備份片段中恢復控制檔案.
先set設定DBID:
rman>set dbid=13834161
rman>startup nomount;
執行restore指定控制檔案所在備份片段的路徑:
rman>restore controlfile from 'D:\oraclebackup\BOB_30_%P_C-13834161-20131230-10';
!使用備份的控制檔案進行恢復後,必須recover database,並以open resetlogs方式開啟資料庫.
rman>
rman>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25025926/viewspace-1065707/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- rman恢復資料檔案 恢復表空間
- 不完全恢復(資料檔案備份--新建表空間--控制檔案備份--日誌歸檔檔案)
- 表空間&資料檔案和控制檔案(zt)
- RMAN恢復控制檔案
- RMAN備份資料檔案+控制檔案+歸檔日誌
- rman 恢復---歸檔丟失and資料檔案損壞
- RMAN恢復案例:無恢復目錄,丟失全部資料檔案、控制檔案、日誌檔案恢復
- 【RMAN】SYSTEM表空間資料檔案丟失恢復模擬
- dbms_backup_restore包恢復控制檔案,資料檔案,歸檔檔案的測試案例REST
- 使用rman恢復控制檔案
- 誤刪除資料檔案、控制檔案的非RMAN恢復方法
- 恢復案例:歸檔模式下丟失非系統表空間資料檔案的恢復模式
- 移動資料檔案、系統表空間檔案、臨時表空間檔案
- 歸檔模式有備份丟失控制檔案和資料檔案後恢復模式
- 恢復案例:無歸檔,丟失全部控制檔案、日誌檔案恢復案例
- rman恢復--歸檔模式有備份,丟失資料檔案的恢復模式
- rman恢復--歸檔模式無備份,丟失資料檔案的恢復模式
- 引數檔案控制檔案和資料檔案丟失的恢復
- 【管理篇備份恢復】rman恢復測試(一) 表空間資料檔案
- 恢復測試:擁有當時的全部歸檔,控制檔案,恢復丟失的資料檔案。
- 【學習日記】oracle之表空間、資料檔案、控制檔案Oracle
- 撤消表空間資料檔案丟失的恢復.
- 控制檔案恢復—從trace檔案中恢復
- rman備份-(1) 利用備份級恢復資料檔案和控制檔案
- 無新表空間資料檔案備份,歸檔都存在的還原與恢復
- 當資料檔案表空間丟失的時候怎麼恢復該資料檔案
- 新建的表空間(或資料檔案)丟失以及控制檔案丟失,有新建表空間(或資料檔案)前的控制文
- 在歸檔下恢復系統資料檔案
- 利用歸檔來做資料檔案的恢復
- rman恢復--丟失控制檔案的恢復
- RMAN - "丟失控制檔案的恢復"
- rman恢復控制檔案測試--log
- 控制檔案丟失的RMAN恢復
- 【/proc/檔案淺析】另類辦法恢復資料檔案和控制檔案
- 表空間不完全恢復(全備--備份控制檔案--刪除表空間andy--日誌檔案)
- system表空間檔案損壞----完全恢復
- UNDO 表空間檔案損壞的恢復
- 資料庫引數檔案控制檔案日誌檔案資料檔案跟蹤檔案等8大檔案的字典資料庫