rman備份異機恢復(原創)
說明:
1、 rman異機恢復的時候,db_name必須相同。如果說要想改成其他的例項名,可以在恢復成功後,用nid命令修改。例項名的資訊會記錄到控制檔案裡,所以如果在恢復的時候,例項名不一致會報錯。
2、如果恢復的路徑與源庫不一致,就需要在restore時用set命令指定新的
在做duplicate的時候,rman會自動根據pfile中的log_file_name_convert和db_file_name_convert來進行set的轉換。手工restore時,只能使用set命令。
3、用nid修改bdid和dbname
使用RMAN對已損壞資料庫進行異機還原的前提條件:
1、 old_host上的資料庫已使用RMAN進行了備份
2、 old_host上的資料庫的PFILE或SPFILE已做了備份
3、 catalog上的恢復目錄完好,並且可用,如果不可用,先恢復恢復目錄資料庫
4、 備份伺服器上的備份資料完好,並且可用
5、 確保new_host機器上裝有的Oracle版本與old_host機器上的一致
6、 在new_host上建立dba組和與old_host相同的Oracle使用者。將\data的可寫許可權給Oracle使用者。確定new_host上有足夠的硬碟空間存放新的datafile及archive log file(如UNIX平臺)
7、 修改.profile檔案中相關的Oracle環境變數,ORACLE_SID保持與old_host中一致(如UNIX平臺)
8、還原前需收集的資訊
Oracle資料庫SID , DBID.
Oracle資料庫線上日誌檔案全路徑
Oraexp 路徑
rman使用者 和rman 使用者的表空間 (以匯入方式恢復恢復目錄時要用)
源資料庫的引數檔案pfile檔案
恢復步驟:
1、在輔助機要有oracle軟體,並且正確配置連線catalog資料庫。
2、將從old_host備份到伺服器上的資料庫備份,手工還原到new_host上(要求目錄必須一致,catalog庫會記載在old_host上備份集在啥位置上。)
3、 建立相關的目錄(11g不用)。通常所需建立的目錄為background_dump_dest、core_dump_dest、user_dump_dest、log_archive_dest
4、、 建立引數檔案pfile,要和源資料庫一致(如果old_host的ORACLE_HOME與new_host不一致可以放在相應目錄下,並修改pfile中相關內容與實際相符,例如目錄、控制檔案位置等)
將old_host中$ORACLE_HOME\dbs下的initSID.ora檔案拷至new_host的$ORACLE_HOME\dbs下。如果initSID.ora中有ifile='xxx.ora',則將xxx.ora也進行複製。Oracle9也可能用spinitSID.ora。
5、建立密碼檔案
orapwd file=E:\app\Administrator\product\11.2.0\dbhome_1\dbs\PWDvcenter password=oracle
6、建立服務(如果win):
C:\Users\Administrator>oradim -new -sid vcenter -startmode m -pfile E:\app\Administrator\product\11.2.0\dbhome_1\da
tabase\INITvcenter.ora
7、從前面建立的pfile裡建立spfile.
SQL> create spfile from pfile='E:\app\Administrator\product\11.2.0\dbhome_1\database\INITvcenter.ora'
2 ;
8、執行恢復指令碼, 恢復控制檔案和資料檔案:
startup nomount (spfile起作用)
rman target / catalog rman/rman@rman
restore controlfile (按pfile中設定的位置恢復)
list backup 可以看見所以得備份集,備份集在原機啥位置 ,輔助機仍然要在啥位置,否則無法找到備份集。
run{
set newname for datafile 1 to 'E:\app\Administrator\oradata\vcenter\system01.dbf';
set newname for datafile 2 to 'E:\app\Administrator\oradata\vcenter\sysaux01.dbf';
set newname for datafile 3 to 'E:\app\Administrator\oradata\vcenter\undotbs01.dbf';
set newname for datafile 4 to 'E:\app\Administrator\oradata\vcenter\users01.dbf';
set newname for datafile 5 to 'E:\app\Administrator\oradata\vcenter\vpx01.dbf';
startup mount;
restore database;
switch datafile all;} (更新控制檔案)
9、重置線上日誌
11g R2平臺 在open resetlogs之後,自動在原來預設的路徑建立temp表空間和redo,但是如果路徑與原庫不一致,由於沒有響應目錄無法建立。
需要先更改控制檔案中日誌檔案的存在位置。
SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\VCENTER\REDO01.LOG' to 'E:\app\Administrator\oradata\
vcenter\redo01.log';
資料庫已更改。
SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\VCENTER\REDO02.LOG' to 'E:\app\Administrator\oradata\
vcenter\redo02.log';
資料庫已更改。
SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\VCENTER\REDO03.LOG' to 'E:\app\Administrator\oradata\
vcenter\redo03.log';
資料庫已更改。
SQL> alter database open resetlogs;
資料庫已更改。
資料庫已經開啟,並按照控制檔案中日誌檔案、臨時檔案存在的位置建立臨時檔案與日誌檔案,但是必須要有相符的路徑。
10、修改臨時檔案
需要建立一個新的臨時表空間再設定為預設,將原臨時表空間刪除,實際是刪除控制檔案中臨時檔案原存放位置資訊。
SQL> create temporary tablespace temp01 tempfile 'E:\app\Administrator\oradata\vcenter\temp01.dbf' size 100m
2 autoextend on;
Tablespace created.
SQL> alter database default temporary tablespace temp01;
Database altered.
SQL> drop tablespace temp including contents and datafiles;
Tablespace dropped.
SQL> select * from dba_temp_files;
FILE_NAME
--------------------------------------------------------------------------------
FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS
---------- ------------------------------ ---------- ---------- -------
RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
E:\APP\ADMINISTRATOR\ORADATA\VCENTER\TEMP01.DBF
2 TEMP01 104857600 12800 ONLINE
1 YES 3.4360E+10 4194302 1 103809024 12672
11、重新設定新的備份環境,進行全備
注意:
一、ORA-01861: literal does not match format string
RMAN中使用recover database until time '2009-06-09 14:00:00'
命令進行基於時間點的恢復時報的一個錯誤。
這個錯誤是由於時間日期格式設定的問題,設定正確的時間格式:
$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
二、ORA-06553: PLS-801: internal error [56319]錯誤
目標資料庫恢復成功,登陸進去,一切正常。結果在執行最簡單的sql查詢的時候報這個錯,執行多個不同的sql反覆報這個錯誤,但sql語句可以正常執行。rapidsql等工具無法連線。
原因:源庫是64位的OS,目標庫是32位(9.36安裝64位10g,5.186安裝32位10g)
解決方法:
1、Shutdown immediate
2、startup migrate
注:startup migrate表示降級,在9i,無論升級/降級 資料庫都是startup migrate;10g後增加了upgrade引數,升級可直接用startup upgrade,降級仍是startup migrate.
3、@$ORACLE_HOME/rdbms/admin/utlirp.sql;
4、Shutdown immediate
5、Startup
6、@$ORACLE_HOME/rdbms/admin/utlrp.sql;
7、Shutdown immediate
8、Startup
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/196700/viewspace-739916/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RMAN備份異機恢復
- RMAN備份恢復典型案例——異機恢復未知DBID
- RMAN備份恢復技巧
- rman 增量備份恢復
- RMAN備份恢復典型案例——RMAN備份&系統變慢
- 透過搭建恢復目錄實現RMAN異地備份和恢復
- G017-ORACLE-MIGRATION-01 RMAN備份異機不完全恢復Oracle
- 透過RMAN備份standby database成功恢復還原Database
- RMAN備份恢復效能優化優化
- RMAN備份與恢復測試
- ORACLE DG從庫 Rman備份恢復Oracle
- Oracle 備份恢復篇之RMAN catalogOracle
- RMAN備份恢復典型案例——ORA-00245
- 12 使用RMAN備份和恢復檔案
- 備份恢復Lesson 04.Using the RMAN Recovery Catalog
- 異機使用完全備份恢復指定的PDB
- 【RMAN】Oracle12c以後rman 備份恢復命令參考Oracle
- 【RMAN】在多租戶環境下的RMAN備份及恢復
- RMAN備份恢復典型案例——資料庫卡頓資料庫
- dg丟失歸檔,使用rman增量備份恢復
- RMAN備份恢復典型案例——跨平臺遷移pdb
- OceanBase-OB備份異地恢復流程
- RAC備份恢復之Voting備份與恢復
- ORACLE 11.2.0.4 RAC RMAN異機恢復之ORA-15001Oracle
- Oracle9i RMAN 的優缺點及RMAN 備份及恢復步驟Oracle
- RMAN備份恢復典型案例——資料檔案存在壞快
- Windows oracle 11g rman備份恢復到linux系統WindowsOracleLinux
- 備份與恢復:polardb資料庫備份與恢復資料庫
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- 【RMAN】Oracle12c之後,rman備份Dataguard備端恢復可能出現邏輯錯誤Oracle
- 備份和恢復
- mydumper備份恢復
- Mysql備份恢復MySql
- 從dataguard備份的恢復機制
- 詳解叢集級備份恢復:物理細粒度備份恢復
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- 在DG備庫備份資料庫並恢復到一個主機上,報錯RMAN-06820資料庫
- Mysql備份與恢復(1)---物理備份MySql