第十二章、RMAN 高階恢復主題 + 第13 章、從使用者錯誤中恢復,閃回技術
第十二章、RMAN 高階恢復主題
1. Resetlogs 表示一個邏輯生存期的結束和另一個邏輯生存期的開始,每次使用resetlogs 時,SCN 不會被重置,不過會重置其他計數器,如日誌序列,同時還會重置聯機重做日誌的內容(如果必要,還可以重新建立聯機日誌)。
2. 基於時間點的不完全恢復:
Run{
Set until time “to_date( ‘date ’,’format ’)”;
Restore database;
Recover database;
Alter database open resetlogs;
}
Startup mount;
Restore database until time “to_date( ‘date ’,’format ’)”;
recover database until time “to_date( ‘date ’,’format ’)”;
alter database open resetlogs;
3. 基於SCN 的不完全恢復(不包含指定的SCN ):
Restore database until scn 10000;
Recover database until scn 10000;
4. 基於日誌序列的不完全恢復:
Restore database until sequence 111 thread 1;
Recover database until sequence 111 thread 1;
5. 只讀表空間的恢復:
預設情況下,RMAN 在restore 時不會還原只讀的資料檔案,要想恢復,必須指定:
Restore database check readonly;
Recover tablespace 或recover datafile 時,不管是否是隻讀的,都會執行恢復。
6. 歸檔日誌還原:
Restore archivelog all;
Restore archivelog from logseq=22 thread=1;
Restore archivelog from logseq=22 until logseq=33 thread=1;
Run{
Set archivelog destination to “location ”; (將歸檔日誌還原到新位置)
Restore archivelog all;
}
如果RMAN 認為一個歸檔重做日誌已經存在,則不管是否指定了新的位置,都不會在磁碟上還原這個歸檔日誌檔案。
7. 從資料檔案副本的還原:
Sql “alter database datafile 5/ ’xxx ’ offline ”;
Restore (datafile 5) from datafilecopy; (圓括號很重要!)
Recover datafile 5;
Sql “alter database datafile 5/ ’xxx ’ online ”;
8. 塊介質恢復(Block Media Recover ,BMR ):
u Blockrecover datafile 19 block 44;
u Blockrecover datafile 19 block 44,55,66;
u Blockrecover datafile 19 block 44 datafile 20 block 55 datafile 21 block 66;
9. Backup validate database 命令會在v$backup_corruption 和v$database_block_corruption 檢視中留下壞塊記錄,v$backup_corruption 記錄的是歷史錯誤資訊,v$database_block_corruption 記錄的是當前錯誤資訊,如果塊錯誤發生在複製期間,則在v$copy_corruption 檢視中留下記錄。
10. 批量修改壞塊(還原最近5 天的所有壞塊):
blockrecover corruption list restore until time ‘sysdate-5 ’;
11. 恢復到resetlogs 之前(incarnation 恢復):
u 檢視歷史incarnation 記錄:list incarnation;
u 使用catalog 恢復到resetlogs 之前:
Startup force nomount;
Reset database to incarnation 2;
Restore controlfile;
Restore database until scn xxx; (xxx 為恢復到的resetlog scn-1 )
Recover database until scn xxx;
Alter database open resetlogs;
u 不使用catalog 恢復到resetlogs 之前(步驟類似,但是要確保當前控制檔案中,包含要恢復到的incarnation 的資訊)。
12. 表空間時間點恢復(TSPITR ):
n 確定要恢復到的時間點:這是非常重要的,在nocatalog 中,表空間的恢復是一次性的過程,如果恢復了錯誤的時間點,則不能重新來過,但是在catalog 中就沒有這個限制。
n 確保表空間中的物件是自包含的:可以從ts_pitr_check 檢視是否和其他表空間有關聯,或者某些限制,如果沒有返回任何行,則不存在衝突。
n 儲存可能在恢復中丟失的物件或者資料:可以從ts_pitr_objects_to_be_dropped 檢視檢視可能在恢復期間丟失的物件。
n 執行實際的TSPITR:
Recover tablespace xxx until time “to_date( ‘date ’,’format ’)” auxiliary destination ‘location ’;
Sql ‘alter tablespace xxx online ’;
刪除輔助例項:
SQL*Plus 中:exec dbms_backup_recovery.manageauxinstance( ‘aux_sid ’,1);
n 自定義選項:
Set newname 設定單個檔案的新位置和名稱。
Configure auxname 定義輔助例項的名稱。
Set auxiliary instance parameter file 指示輔助例項的引數檔案路徑,或者通過在/rdbms/admin 中建立parms_auxint.ora 檔案來實現同樣的功能。
n 手工執行的TSPITR:
u 建立輔助例項步驟:1、建立口令檔案;2 、建立引數檔案;3 、NT OS 上新增服務,Linux/Unix 中跳過;4 、啟動例項,檢查網路。
u Run{
Set until time “to_date( ‘date ’,’format ’)”;
Restore clone controlfile;
Sql clone ‘alter database mount clone database ’;
Sql ‘alter system archive log current ’;
}
u TSPITR 需要的相關檔案:1、System 表空間;2 、undo 表空間;3 、temp 表空間;4 、將要還原的表空間。
u 將執行恢復的表空間離線:sql ‘alter tablespace xxx offline for recover ’;
u Run{
Set until time “to_date( ‘date ’,’format ’)”;
Set newname for clone datafile 1 to new/xxx; (如果是OMF ,則可使用new )
Set newname for clone tempfile 1 to xxx;
Set newname for clone datafile 7 to ‘location ’; (這裡用真檔名,用於恢復)
Switch clone tempfile all;
Restore datafile 1,2,7;
Switch clone datafile all;
Sql clone ‘alter database datafile 1 online ’;
Sql clone ‘alter database datafile 2 online ’;
Sql clone ‘alter database datafile 7 online ’;
Sql clone ‘alter database mount clone database ’;
}
u Run{
Set until time “to_date( ‘date ’,’format ’)”;
Recover clone database tablespace “xxx ”,”xxx ”,”xxx ” delete archivelog;
Alter clone database open resetlogs;
}
u 將後設資料從副本資料庫中匯出:
exp ‘sys/pwd as sysdba’ point_in_time_recover=y tablespace=xxx file=xxx
u 關閉副本資料庫,然後將後設資料匯入到目標資料庫:
Imp ‘sys/pwd as sysdba’ point_in_time_recover=y file=xxx
u 最後,將目標資料庫中的還原表空間聯機,恢復完成:
Alter tablespace xxx online;
u 善後工作:刪除輔助資料庫,備份剛恢復的表空間。
13. TSPITR 的限制:
l 不能恢復包含sys 使用者特有物件的表空間,即表空間中不能有sys 物件;
l 不能恢復含有複製主表的表空間;
l 不支援使用快照日誌的表空間;
l 不能還原含有回滾段的表空間;
l 不能回覆含有下面型別物件的表空間:varray 、巢狀表、外部檔案。
l 不能用於恢復刪除的表空間,也不能恢復舊的物件統計表;
l 若沒有使用catalog ,則回滾段在恢復期間不能發生變化;
l 若沒有使用catalog ,則TSPITR 後,前面的備份就不能使用了,需要再次備份,才能執行下一個TSPITR 操作。
14. 驗證備份的可恢復性:
l Restore database preview [recall];
l Restore database validate;
l Restore database check logical validate; (除了驗證可恢復性,還會檢查邏輯錯誤,並且填充v$database_block_corruption 檢視)
l 檢查特定的備份集:validate backupset 11 [check logical];
15. 跨平臺的資料庫移動:可通過v$transportable_platform 檢視來確定不同系統的尾數格式(endian format )。
l 源站點上轉換:convert tablespace xxx to platform. ‘platform_name ’
Db_file_name_convert= ’C:\old_dir ’,’C:\new_dir ’;
l 目標站點轉換“convert datafile= ’C:\xxx\* ’ from platform. ‘platform_name ’
Db_file_name_convert= ’c:\old_dir ’,’C:\new_dir ’;
l 跨平臺移動步驟:
u 以只讀方式開啟資料庫:
startup mount;
alter database open read only;
u 檢查資料庫狀態:
declare
db_ready boolean;
begin
db_ready:=dbms_tdb.check_db('platform_name',dbms_tdb.skip_readonly);
end;
/
u 標識外部物件:
declare
db_external boolean;
begin
db_external:=dbms_tdb.check_external;
end;
/
u 使用RMAN 的convert database 命令產生指令碼
Convert database new database ‘xxx ’ transport script. ‘script_dir ’ to platform. ‘planform_name ’;
第13 章、從使用者錯誤中恢復,閃回技術
16. 如果啟用表空間或資料檔案的自動擴充套件,那麼回收站物件空間就會在自動擴充套件之前被刪除,從而釋放空間。
17. 閃回資料庫需要一種新的型別的日誌,閃回日誌,必須要在FRA 中儲存閃回日誌,不能再其他別的地方建立閃回日誌。
18. 一旦啟動了flashback database ,Oracle 就會跟蹤閃回日誌,並在v$flashback_database_log 中留下記錄(該檢視中只有一條彙總的記錄),若要檢視閃回日誌的具體活動,可檢視v$flashback_database_stat 檢視,該檢視提供了一段時間內閃回日誌的相關資訊(一般是從sysdate 向後擴充套件一小時的記錄)。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24465008/viewspace-688023/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Data Guard高階玩法:通過閃回恢復switchover主庫
- 【備份恢復】 閃回技術之閃回刪除
- RMAN其他恢復主題
- 【備份恢復】閃回技術之閃回版本查詢
- 【備份恢復】 閃回技術之閃迴歸檔
- 循序漸進oracle第7章:備份與恢復之RMAN映象拷貝完全恢復Oracle
- 循序漸進oracle第8章:Oracle的閃回特性之恢復刪除表Oracle
- 利用undo的閃回特性恢復錯誤操作的表
- Oracle閃回恢復區Oracle
- 閃回查詢恢復誤刪資料
- Oracle 10g備份與恢復高階使用者指南--第三章 RMAN恢復(Recovery)概念Oracle 10g
- 【Flashback】使用閃回功能快速恢復使用者的誤操作
- 循序漸進oracle第7章:備份與恢復之RMAN的簡單備份與恢復Oracle
- 循序漸進oracle第7章:備份與恢復之RMAN映象拷貝不完全恢復Oracle
- 【備份恢復】 閃回技術之閃回事務處理查詢
- 循序漸進oracle第8章:Oracle的閃回特性之恢復drop表四種方法Oracle
- 第4章 資料庫恢復 Database Recovery資料庫Database
- Oracle閃回刪除恢復誤刪資料Oracle
- Data Guard高階玩法:通過閃回恢復failover備庫AI
- oralce恢復誤刪除的表中的資料(閃回、閃回查詢)
- Oracle DBA2 ---- 閃回恢復Oracle
- 閃回查詢恢復過程
- 【RMAN】RMAN跨版本恢復(中)
- 【備份恢復】閃回資料庫(五)RMAN 命令列閃回資料庫資料庫命令列
- 循序漸進oracle第8章:Oracle的閃回特性之恢復truncate刪除表的資料Oracle
- 閃回恢復一個表中的資料
- 第5章:從開啟的資料庫備份與恢復之從開啟的資料庫備份中完全恢復資料庫
- RMAN恢復 執行重要檔案RMAN恢復
- MySQL閃回技術之binlog2sql恢復binlog中的SQLMySql
- 學習 第2章:備份與恢復選項
- 控制檔案恢復—從快照中恢復
- 使用閃回查詢恢復誤刪除的資料
- Oracle -- 閃回恢復區---實踐1---閃回庫Oracle
- Orcale利用閃回功能恢復資料
- Web Audio API 第6章 高階主題WebAPI
- Oracle 10g備份與恢復高階使用者指南--第八章 RMAN表空間時間點恢復(TSPITR)Oracle 10g
- 資料庫高階恢復資料庫
- rman恢復控制檔案的一個小錯誤