rman備份資料庫後到另一臺機器上恢復的例子
rman備份資料庫後到另一臺機器上恢復的過程
1.先查詢並記錄源資料庫的dbid號和資料檔名
SQL> select dbid from v$database;
DBID
----------
2674069457
SQL> select file#,name from v$datafile
2 ;
FILE# NAME
---------- --------------------------------------------------------------------------------
1 D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\SYSTEM01.DBF
2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\UNDOTBS01.DBF
3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\SYSAUX01.DBF
4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\USERS01.DBF
5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\EXAMPLE01.DBF
6 D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\HYGEIA01.DBF
7 D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\HYGEIA02.DBF
7 rows selected
2.在新機器上使用和源資料庫版本相同的oracle安裝軟體建立一個和源資料庫同名的例項使用dbca來建立(生成的資料檔案刪除掉)或 使用如下命令來建立
複製一個pfile檔案,放到C:\oracle\product\10.2.0\db_1\database目錄下,並啟動資料庫到nomount狀態(需要設定記憶體引數, 否則無法unmount,會無法分記憶體,報ORA-04031錯誤)並修改initcc.ora檔案的內容來達到你要的設定要求
C:\Documents and Settings\Administrator>e:
C:\>cd E:\oracle\product\10.2.0\db_1\BIN
C:\oracle\product\10.2.0\db_1\BIN>orapwd file=C:\oracle\product\10.2.0\db_1\data
base\pwdCC.ora password=oracle entries=5;
E:\oracle\product\10.2.0\db_1\BIN>oradim -new -sid CC -pfile C:\oracle\product\10.2.0\db_1\database\initcc.ora
執行處理已建立.
修改機器上的監聽,以便能夠對例項CC進行監聽
原內容為:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:oracle92ora92)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = logicdg)
(ORACLE_HOME = C:oracle92ora92)
(SID_NAME = logicdg)
)
)
更改以後的內容為:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:oracle92ora92)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = logicdg)
(ORACLE_HOME = C:oracle92ora92)
(SID_NAME = logicdg)
)
(SID_DESC =
(GLOBAL_DBNAME = CC
(ORACLE_HOME = D:\ORADATA\OCP)
(SID_NAME = CC
)
)
C:\oracle\product\10.2.0\db_1\BIN>set ORACLE_SID=CC
C:\oracle\product\10.2.0\db_1\BIN>sqlplus "/as sysdba"
聯機至閒置的執行處理.
可以連線DB了
3.啟動例項到nomount狀態
SQL>startup pfile='C:\oracle\product\10.2.0\db_1\database\initcc.ora' nomount;
ORACLE執行處理已啟動.
Total System Global Area 163577856 bytes
Fixed Size 1247852 bytes
Variable Size 104859028 bytes
Database Buffers 50331648 bytes
Redo Buffers 7139328 bytes
4.恢復控制檔案
C:\Documents and Settings\Administrator>rman target/
恢復管理器: Release 10.2.0.1.0 - Production on 星期六 3月 17 10:53:10 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: ocp (未裝載)
RMAN> startup nomount
資料庫已經啟動
RMAN> restore controlfile from 'D:\t\O1_MF_NCSNF_TAG20120316T161306_7P5Y9JQG_.BK
P';
啟動 restore 於 17-3月 -12
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在復原控制檔案
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:04
輸出檔名=D:\ORADATA\OCP\CONTROL01.CTL
輸出檔名=D:\ORADATA\OCP\CONTROL02.CTL
輸出檔名=D:\ORADATA\OCP\CONTROL03.CTL
完成 restore 於 17-3月 -12
5. 將新資料庫的dbid設定成源資料庫的dbid
RMAN> set dbid=2674069457;
正在執行命令: SET DBID
6.啟動資料庫到mount狀態
RMAN> alter database mount;
資料庫已裝載
釋放的通道: ORA_DISK_1
7.將備份集的資訊加入到catalog,因為從遠端資料庫複製過來的備份集存放於目錄D:\t而不是和源資料庫備份集在相同的目錄下
RMAN> catalog start with 'D:\t';
啟動 implicit crosscheck backup 於 17-3月 -12
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
已交叉檢驗的 1 物件
完成 implicit crosscheck backup 於 17-3月 -12
啟動 implicit crosscheck copy 於 17-3月 -12
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 於 17-3月 -12
搜尋恢復區域中的所有檔案
正在編制檔案目錄...
沒有為檔案編制目錄
搜尋與樣式 D:\t 匹配的所有檔案
資料庫未知檔案的列表
=====================================
檔名: D:\t\O1_MF_NCSNF_TAG20120316T161306_7P5Y9JQG_.BKP
檔名: D:\t\O1_MF_NNNDF_TAG20120316T161306_7P5XJMHN_.BKP
是否確實要將上述檔案列入目錄 (輸入 YES 或 NO)? yes
正在編制檔案目錄...
目錄編制完畢
已列入目錄的檔案的列表
=======================
檔名: D:\t\O1_MF_NCSNF_TAG20120316T161306_7P5Y9JQG_.BKP
檔名: D:\t\O1_MF_NNNDF_TAG20120316T161306_7P5XJMHN_.BKP
8.恢復資料檔案,因為恢復的路徑跟源庫的資料檔案路徑不一致,需要用set newname轉換路徑.
RMAN> run{
2> set newname for datafile 1 to 'D:\oradata\ocp\SYSTEM01.DBF';
3> set newname for datafile 2 to 'D:\oradata\ocp\UNDOTBS01.DBF';
4> set newname for datafile 3 to 'D:\oradata\ocp\SYSAUX01.DBF';
5> set newname for datafile 4 to 'D:\oradata\ocp\USERS01.DBF';
6> set newname for datafile 5 to 'D:\oradata\ocp\EXAMPLE01.DBF';
7> set newname for datafile 6 to 'D:\oradata\ocp\HYGEIA01.DBF';
8> set newname for datafile 7 to 'D:\oradata\ocp\HYGEIA02.DBF';
9> restore database;
10> switch datafile all;
11> }
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
啟動 restore 於 17-3月 -12
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到D:\ORADATA\OCP\SYSTEM01.DBF
正將資料檔案00002恢復到D:\ORADATA\OCP\UNDOTBS01.DBF
正將資料檔案00003恢復到D:\ORADATA\OCP\SYSAUX01.DBF
正將資料檔案00004恢復到D:\ORADATA\OCP\USERS01.DBF
正將資料檔案00005恢復到D:\ORADATA\OCP\EXAMPLE01.DBF
正將資料檔案00006恢復到D:\ORADATA\OCP\HYGEIA01.DBF
正將資料檔案00007恢復到D:\ORADATA\OCP\HYGEIA02.DBF
通道 ORA_DISK_1: 正在讀取備份段 D:\T\O1_MF_NNNDF_TAG20120316T161306_7P5XJMHN_.BK
P
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = D:\T\O1_MF_NNNDF_TAG20120316T161306_7P5XJMHN_.BKP 標記 = TAG20120316T16
1306
通道 ORA_DISK_1: 恢復完成, 用時: 00:20:25
完成 restore 於 17-3月 -12
資料檔案 1 已轉換成資料檔案副本
輸入資料檔案副本 recid=9 stamp=778160312 檔名=D:\ORADATA\OCP\SYSTEM01.DBF
資料檔案 2 已轉換成資料檔案副本
輸入資料檔案副本 recid=10 stamp=778160312 檔名=D:\ORADATA\OCP\UNDOTBS01.DBF
資料檔案 3 已轉換成資料檔案副本
輸入資料檔案副本 recid=11 stamp=778160312 檔名=D:\ORADATA\OCP\SYSAUX01.DBF
資料檔案 4 已轉換成資料檔案副本
輸入資料檔案副本 recid=12 stamp=778160312 檔名=D:\ORADATA\OCP\USERS01.DBF
資料檔案 5 已轉換成資料檔案副本
輸入資料檔案副本 recid=13 stamp=778160312 檔名=D:\ORADATA\OCP\EXAMPLE01.DBF
資料檔案 6 已轉換成資料檔案副本
輸入資料檔案副本 recid=14 stamp=778160313 檔名=D:\ORADATA\OCP\HYGEIA01.DBF
資料檔案 7 已轉換成資料檔案副本
輸入資料檔案副本 recid=15 stamp=778160313 檔名=D:\ORADATA\OCP\HYGEIA02.DBF
9.開啟資料庫
RMAN> alter database open resetlogs;
RMAN> alter database open resetlogs;
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: alter db 命令 (在 03/17/2012 11:41:10 上) 失敗
ORA-00344: 無法重新建立聯機日誌 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\REDO01.LOG'
ORA-27040: 檔案建立錯誤, 無法建立檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 3) 系統找不到指定的路徑。
這裡報找不到redo日誌檔案的錯誤,因為資料庫是非歸檔的,日誌檔案沒有備份,在新庫中也沒有redo日誌檔案,這裡需要重新建立日誌
SQL> alter database drop logfile group 1;
alter database drop logfile group 1
*
第 1 行出現錯誤:
ORA-01623: 日誌 1 是例項 ocp (執行緒 1) 的當前日誌 - 無法刪除
ORA-00312: 聯機日誌 1 執行緒 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\REDO01.LOG'
SQL> alter database drop logfile group 2;
資料庫已更改。
SQL> alter database add logfile group 2 'D:\oradata\ocp\redo02.log';
alter database add logfile group 2 'D:\oradata\ocp\redo02.log'
*
第 1 行出現錯誤:
ORA-00301: 新增日誌檔案 'D:\oradata\ocp\redo02.log' 時出錯 - 無法建立檔案
ORA-17610: 檔案 'D:\oradata\ocp\redo02.log' 不存在, 大小也未指定
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
SQL> alter database add logfile group 2 'D:\oradata\ocp\redo02.log' size 50M;
資料庫已更改。
SQL> alter database drop logfile group 3;
資料庫已更改。
SQL> alter database add logfile group 3 'D:\oradata\ocp\redo03.log' size 50M;
資料庫已更改。
SQL> alter system switch logfile;
alter system switch logfile
*
第 1 行出現錯誤:
ORA-01109: 資料庫未開啟
下面試著修改日誌檔案的在控制檔案中的路徑(restore回來的控制檔案中記錄的日誌檔案路徑是源端日誌檔案的路徑)
由於redo01.log是當前重做日誌組所要先複製一個重做日誌檔案命為'D:\oradata\ocp\redo01.log再執行修改日誌檔案的路徑
SQL> alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\REDO01.LOG
' to 'D:\oradata\ocp\REDO01.log';
SQL> alter database open resetlogs;
資料庫已更改。
10.處理臨時表空間檔案
先建立一個新臨時表空間
sql>CREATE TEMPORARY TABLESPACE hygeiatemp Tempfile 'D:\oradata\ocp\hygeiatemp01.dbf' size 500M;
修改新建的臨時表空間為預設的臨時表空間
sql> Alter Database Default Temporary Tablespace hygeiatemp;
再刪除原來的臨時表空間
sql> Drop Tablespace temp;
再新建原來的臨時表空間
sql> CREATE TEMPORARY TABLESPACE temp Tempfile 'D:\oradata\ocp\temp01.dbf' size 500M;
再將新建的原來的臨時表空間修改為預設的臨時表空間
sql> Alter Database Default Temporary Tablespace temp;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-718821/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle rman備份恢復的例子Oracle
- RAC資料庫的RMAN備份異機恢復到單節點資料庫資料庫
- RMAN備份恢復——備份到帶庫的效能
- RMAN備份恢復——備份到帶庫的效能(二)
- rman資料庫全庫備份與恢復資料庫
- RMAN備份恢復——RAC環境資料庫的備份(zt)資料庫
- RMAN備份恢復--RAC環境資料庫的備份(十)資料庫
- RMAN備份恢復——RAC環境資料庫的備份(一)資料庫
- 【備份恢復】RMAN catalog 恢復目錄資料庫資料庫
- standby全庫rman備份檔案恢復到異機
- RMAN備份恢復典型案例——資料庫卡頓資料庫
- 非RMAN熱備份資料庫和恢復資料庫
- Oracle資料庫備份與恢復之RMANOracle資料庫
- 在DG備庫備份資料庫並恢復到一個主機上,報錯RMAN-06820資料庫
- 資料庫恢復到備份之前測試_RMAN-06556資料庫
- 【備份恢復】從備份恢復資料庫資料庫
- rman備份恢復-rman恢復資料檔案測試
- rman恢復資料庫--用備份的控制檔案資料庫
- solaris下透過rman工具將備份到帶庫上的db異機恢復
- solaris下通過rman工具將備份到帶庫上的db異機恢復
- 用 RMAN 備份異機恢復 遷移資料
- 【RMAN】使用RMAN備份將資料庫不完全恢復到指定時間點資料庫
- [RMAN]使用RMAN備份將資料庫不完全恢復到指定時間點資料庫
- 將資料庫從一臺機器複製到另一臺機器上資料庫
- 只存在RMAN備份片的資料庫恢復過程資料庫
- RMAN備份恢復整個庫
- Oracle資料庫備份與恢復之RMAN2Oracle資料庫
- 資料庫備份與異機恢復——熱備份方式資料庫
- 備份與恢復:polardb資料庫備份與恢復資料庫
- 資料庫的備份與恢復資料庫
- windows主機下使用rman恢復備份到不同主機Windows
- 資料庫資料的恢復和備份資料庫
- ORACLE DG從庫 Rman備份恢復Oracle
- 【備份恢復】之RMAN 恢復目錄庫(客戶端備份資訊註冊到目標庫恢復目錄中)客戶端
- 【備份恢復】noarchive模式下使用增量備份恢復資料庫Hive模式資料庫
- 【備份恢復】閃回資料庫(五)RMAN 命令列閃回資料庫資料庫命令列
- 使用RMAN實現異機備份恢復(WIN平臺)
- rman資料備份恢復學習筆記筆記