RMAN異機恢復總結
一、RMAN的"rman: can't open target"錯誤
這是因為呼叫的是非Oracle的RMAN的緣故。
修正這個問題,我們只需要在Oracle使用者的環境變數下,將$ORACLE_HOME/bin放在PATH變數前就可以了:
export PATH=$ORACLE_HOME/bin:$PATH:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
二、RMAN恢復到異機的步驟
1、準備工作:
確認備份(含控制檔案,資料檔案,歸檔檔案)有效(沒歸檔應該也可以,只要能確認資料檔案和控制檔案是一致備份)。在目標伺服器上建立與源伺服器上一致的oracle目錄結構,主要建立$ORACLE_BASE/admin/$ORACLE_SID/下的六個目錄;$ORACLE_BASE/oradata下建立$ORACLE_SID目錄;rman備份路徑目錄(這個地方必須要與源資料庫一致,建立好後,把源資料庫備份的資料檔案複製到這個目錄裡);歸檔日誌目錄(同樣,建立好後,把需要的歸檔日誌檔案複製到此目錄)。
以下均在目標伺服器上操作
2、連線到該sid
$export ORACLE_SID=cms
$rman target /
RMAN> set dbid 345935189
RMAN> startup nomount
3、從備份的控制檔案恢復初始化引數檔案
RMAN>restore spfile to pfile '/usr/oracle/product/10.2.0/dbs/initcms.ora' from '/usr/oracle/backup/ctl_c-345935189-20090609-00';
RMAN> startup force nomount pfile='/usr/oracle/product/10.2.0/dbs/initcms.ora';
4、恢復控制檔案並進入到載入狀態
RMAN> restore controlfile from '/usr/oracle/backup/ctl_c-345935189-20090609-00';
RMAN> alter database mount;
5、修復資料庫(這裡是源路徑修復,如果你要恢復的檔案地址與源庫地址不同的話,需要通過SET NEWNAME FOR DATAFILE命令來為資料檔案重新設定路徑。)
RMAN> restore database;
6、恢復資料庫
RMAN> recover database until time '2009-06-09 14:00:00'
7、通過open resetlogs方式開啟資料庫
RMAN> alter database open resetlogs;
測試,OK,到此使用RMAN異機恢復成功,剩下的就是其他簡單的工作了。
三、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
五、一個小技巧
SQL*Plus允許建立一個login.sql檔案,每次啟動SQL*Plus時都會執行這個指令碼。另外,還允許設定一個環境變數SQLPATH,這樣不論這個login.sql指令碼具體在哪個目錄中,SQL*Plus都能找到它。
login.sql內容可以根據自己的需要新增,下面是Thomas Kyte的例子:
define _editor=vi
set serveroutput on size 1000000
set trimspool on
set long 5000
set linesize 100
set pagesize 9999
column plan_plus_exp format a80
column global_name new_value gname
set termout off
define gname=idle
column global_name new_value gname
select lower(user) || '@' || substr( global_name, 1,decode( dot, 0, length(global_name), dot-1) ) global_name
from (select global_name, instr(global_name,'.') dot from global_name );
set sqlprompt '&gname> '
set termout on
一些sqlplus的設定,從define gname=idle這句以下,用於建立SQL*Plus提示符,sqlplus登入後的提示符形如:
sys@CMS>
很清楚的可以看到當前登入使用者和例項名,在多例項的伺服器上,相當好使,可以避免因忘記export ORACLE_SID= 引起的莫名的問題。
這是因為呼叫的是非Oracle的RMAN的緣故。
修正這個問題,我們只需要在Oracle使用者的環境變數下,將$ORACLE_HOME/bin放在PATH變數前就可以了:
export PATH=$ORACLE_HOME/bin:$PATH:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
二、RMAN恢復到異機的步驟
1、準備工作:
確認備份(含控制檔案,資料檔案,歸檔檔案)有效(沒歸檔應該也可以,只要能確認資料檔案和控制檔案是一致備份)。在目標伺服器上建立與源伺服器上一致的oracle目錄結構,主要建立$ORACLE_BASE/admin/$ORACLE_SID/下的六個目錄;$ORACLE_BASE/oradata下建立$ORACLE_SID目錄;rman備份路徑目錄(這個地方必須要與源資料庫一致,建立好後,把源資料庫備份的資料檔案複製到這個目錄裡);歸檔日誌目錄(同樣,建立好後,把需要的歸檔日誌檔案複製到此目錄)。
以下均在目標伺服器上操作
2、連線到該sid
$export ORACLE_SID=cms
$rman target /
RMAN> set dbid 345935189
RMAN> startup nomount
3、從備份的控制檔案恢復初始化引數檔案
RMAN>restore spfile to pfile '/usr/oracle/product/10.2.0/dbs/initcms.ora' from '/usr/oracle/backup/ctl_c-345935189-20090609-00';
RMAN> startup force nomount pfile='/usr/oracle/product/10.2.0/dbs/initcms.ora';
4、恢復控制檔案並進入到載入狀態
RMAN> restore controlfile from '/usr/oracle/backup/ctl_c-345935189-20090609-00';
RMAN> alter database mount;
5、修復資料庫(這裡是源路徑修復,如果你要恢復的檔案地址與源庫地址不同的話,需要通過SET NEWNAME FOR DATAFILE命令來為資料檔案重新設定路徑。)
RMAN> restore database;
6、恢復資料庫
RMAN> recover database until time '2009-06-09 14:00:00'
7、通過open resetlogs方式開啟資料庫
RMAN> alter database open resetlogs;
測試,OK,到此使用RMAN異機恢復成功,剩下的就是其他簡單的工作了。
三、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
五、一個小技巧
SQL*Plus允許建立一個login.sql檔案,每次啟動SQL*Plus時都會執行這個指令碼。另外,還允許設定一個環境變數SQLPATH,這樣不論這個login.sql指令碼具體在哪個目錄中,SQL*Plus都能找到它。
login.sql內容可以根據自己的需要新增,下面是Thomas Kyte的例子:
define _editor=vi
set serveroutput on size 1000000
set trimspool on
set long 5000
set linesize 100
set pagesize 9999
column plan_plus_exp format a80
column global_name new_value gname
set termout off
define gname=idle
column global_name new_value gname
select lower(user) || '@' || substr( global_name, 1,decode( dot, 0, length(global_name), dot-1) ) global_name
from (select global_name, instr(global_name,'.') dot from global_name );
set sqlprompt '&gname> '
set termout on
一些sqlplus的設定,從define gname=idle這句以下,用於建立SQL*Plus提示符,sqlplus登入後的提示符形如:
sys@CMS>
很清楚的可以看到當前登入使用者和例項名,在多例項的伺服器上,相當好使,可以避免因忘記export ORACLE_SID= 引起的莫名的問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25148509/viewspace-718657/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RMAN備份異機恢復
- RMAN備份恢復典型案例——異機恢復未知DBID
- rman備份異機恢復(原創)
- Rman_異地、跨平臺、跨版本的恢復總結及案例
- ORACLE 11.2.0.4 RAC RMAN異機恢復之ORA-15001Oracle
- RMAN增量恢復
- 透過搭建恢復目錄實現RMAN異地備份和恢復
- oracle 異機恢復Oracle
- G017-ORACLE-MIGRATION-01 RMAN備份異機不完全恢復Oracle
- RMAN恢復實踐
- RMAN資料庫恢復異常報錯ORA-01180資料庫
- RMAN恢復之RMAN-06555處理
- rman 增量備份恢復
- Oracle RMAN恢復測試Oracle
- RMAN備份恢復技巧
- 查詢RMAN恢復進度
- Oracle RMAN 表空間恢復Oracle
- 兩篇oracle異機恢復文章Oracle
- RMAN備份恢復效能優化優化
- 在rman恢復中incarnation的概念
- RMAN備份與恢復測試
- 【資料遷移1】Oracle 10gR2 rman異機恢復實驗(FS->RAW)(1)Oracle 10g
- 【資料遷移1】Oracle 10gR2 rman異機恢復實驗(FS->RAW)(2)Oracle 10g
- Oracle 備份恢復篇之RMAN catalogOracle
- ORACLE DG從庫 Rman備份恢復Oracle
- RMAN備份恢復典型案例——RMAN備份&系統變慢
- 【12c 庫異機恢復】實驗
- 【RMAN】Oracle12c以後rman 備份恢復命令參考Oracle
- 【RMAN】在多租戶環境下的RMAN備份及恢復
- Oracle 12C新特性-RMAN恢復表Oracle
- 12 使用RMAN備份和恢復檔案
- RMAN備份恢復典型案例——ORA-00245
- RMAN命令LIST操作總結
- [20190718]12c rman新特性 表恢復.txt
- 備份恢復Lesson 04.Using the RMAN Recovery Catalog
- 異機使用完全備份恢復指定的PDB
- SQLServer異常故障恢復(二)SQLServer
- DG同步異常恢復文件
- RMAN深入解析之--Incarnation應用(不完全恢復)