rman管理的複製資料庫

xlfsy發表於2010-10-27

1、做一個全庫備份(包括控制檔案和歸檔日誌)

RMAN> backup database include current controlfile

2> plus archivelog format='E:rmanbak%d_%s.bak';

啟動 backup 26-10-10

當前日誌已存檔

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=142 devtype=DISK

通道 ORA_DISK_1: 正在啟動存檔日誌備份集

通道 ORA_DISK_1: 正在指定備份集中的存檔日誌

輸入存檔日誌執行緒 =1 序列 =5 記錄 ID=1 時間戳=733397920

通道 ORA_DISK_1: 正在啟動段 1 26-10-10

通道 ORA_DISK_1: 已完成段 1 26-10-10

段控制程式碼=E:RMANBAKSQTDB_3.BAK 標記=TAG20101026T093840 註釋=NONE

通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:02

完成 backup 26-10-10

啟動 backup 26-10-10

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 啟動全部資料檔案備份集

通道 ORA_DISK_1: 正在指定備份集中的資料檔案

輸入資料檔案 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBSYSTEM01.DBF

輸入資料檔案 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBSYSAUX01.DBF

輸入資料檔案 fno=00005 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBGSYY_MAIN.DBF

輸入資料檔案 fno=00008 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBLSSY.DBF

輸入資料檔案 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBUNDOTBS01.DBF

輸入資料檔案 fno=00006 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBGSYY_IDX.DBF

輸入資料檔案 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBUSERS01.DBF

通道 ORA_DISK_1: 正在啟動段 1 26-10-10

通道 ORA_DISK_1: 已完成段 1 26-10-10

段控制程式碼=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQTDBBACKUPSET2010_10_26O

1_MF_NNNDF_TAG20101026T093843_6DDD942G_.BKP 標記=TAG20101026T093843 註釋=NONE

通道 ORA_DISK_1: 備份集已完成, 經過時間:00:01:15

通道 ORA_DISK_1: 啟動全部資料檔案備份集

通道 ORA_DISK_1: 正在指定備份集中的資料檔案

備份集中包括當前控制檔案

在備份集中包含當前的 SPFILE

通道 ORA_DISK_1: 正在啟動段 1 26-10-10

通道 ORA_DISK_1: 已完成段 1 26-10-10

段控制程式碼=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQTDBBACKUPSET2010_10_26O

1_MF_NCSNF_TAG20101026T093843_6DDDCKBQ_.BKP 標記=TAG20101026T093843 註釋=NONE

通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:03

完成 backup 26-10-10

啟動 backup 26-10-10

當前日誌已存檔

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在啟動存檔日誌備份集

通道 ORA_DISK_1: 正在指定備份集中的存檔日誌

輸入存檔日誌執行緒 =1 序列 =6 記錄 ID=2 時間戳=733398003

通道 ORA_DISK_1: 正在啟動段 1 26-10-10

通道 ORA_DISK_1: 已完成段 1 26-10-10

段控制程式碼=E:RMANBAKSQTDB_6.BAK 標記=TAG20101026T094003 註釋=NONE

通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:02

完成 backup 26-10-10

RMAN>

2、在同一主機上建立複製資料庫

2.1、建立複製資料庫各種OS檔案的存放目錄

C:Documents and SettingsAdministrator>mkdir d:dupdb

C:Documents and SettingsAdministrator>mkdir d:dupdbbdump

C:Documents and SettingsAdministrator>mkdir d:dupdbudump

C:Documents and SettingsAdministrator>mkdir d:dupdbarchive

2.2、利用oradim工具建立複製資料庫的service

C:Documents and SettingsAdministrator>oradim -new -sid dupdb

例項已建立。

2.3、利用orapwd工具建立複製資料庫的密碼檔案

C:Documents and SettingsAdministrator>orapwd file=E:oracleproduct10.2.0db_

1databasePWDdupdb.ora password=jdls

2.4、建立複製資料庫的引數檔案

1)從目標資料庫的spfile建立pfile

SQL> create pfile from spfile;

2)對產生的目標資料庫pfile進行編輯

修改資料庫名稱、目錄結構、檔名等引數

2.5、使用pifile啟動複製資料庫到nomount狀態,並生成spfile

C:Documents and SettingsAdministrator>set oracle_sid=dupdb

C:Documents and SettingsAdministrator>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 10 26 10:39:05 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

已連線到空閒例程。

SQL> startup nomount pfile='D:dupdbinitdupdb.ora'

ORACLE 例程已經啟動。

Total System Global Area 205520896 bytes

Fixed Size 1248092 bytes

Variable Size 67110052 bytes

Database Buffers 130023424 bytes

Redo Buffers 7139328 bytes

SQL> creat spfile from pfile='D:dupdbinitdupdb.ora';

SP2-0734: 未知的命令開頭 "creat spfi..." - 忽略了剩餘的行。

SQL> create spfile from pfile='D:dupdbinitdupdb.ora';

檔案已建立。

2.6、利用RMAN建立複製資料庫

C:Documents and SettingsAdministrator>set oracle_sid=dupdb

C:Documents and SettingsAdministrator>rman target sys/jdls@sqtdb auxiliary sys/jdls

恢復管理器: Release 10.2.0.1.0 - Production on 星期二 10 26 10:50:54 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

連線到目標資料庫: SQTDB (DBID=3088639058)

已連線到輔助資料庫: DUPDB (未裝載)

RMAN> run{

2> set newname for datafile 1 to 'D:dupdbSYSTEM01.DBF';

3> set newname for datafile 2 to 'D:dupdbUNDOTBS01.DBF';

4> set newname for datafile 3 to 'D:dupdbSYSAUX01.DBF';

5> set newname for datafile 4 to 'D:dupdbUSERS01.DBF';

6> set newname for datafile 5 to 'D:dupdbGSYY_MAIN.DBF';

7> set newname for datafile 6 to 'D:dupdbGSYY_IDX.DBF';

8> set newname for datafile 8 to 'D:dupdbLSSY.DBF';

9> set newname for tempfile 1 to 'D:dupdbTEMP01.DBF';

10> set newname for tempfile 2 to 'D:dupdbGSYY_TMP.DBF';

11> duplicate target database to dupdb logfile

12> 'd:dupdbredo01.log' size 10m,

13> 'd:dupdbredo02.log' size 10m,

14> 'd:dupdbredo03.log' size 10m;

15> }

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

啟動 Duplicate Db 26-10-10

使用通道 ORA_AUX_DISK_1

記憶體指令碼的內容:

{

set until scn 613908;

set newname for datafile 1 to

"D:DUPDBSYSTEM01.DBF";

set newname for datafile 2 to

"D:DUPDBUNDOTBS01.DBF";

set newname for datafile 3 to

"D:DUPDBSYSAUX01.DBF";

set newname for datafile 4 to

"D:DUPDBUSERS01.DBF";

set newname for datafile 5 to

"D:DUPDBGSYY_MAIN.DBF";

set newname for datafile 6 to

"D:DUPDBGSYY_IDX.DBF";

set newname for datafile 8 to

"D:DUPDBLSSY.DBF";

restore

check readonly

clone database

;

}

正在執行記憶體指令碼

正在執行命令: SET until clause

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

啟動 restore 26-10-10

使用通道 ORA_AUX_DISK_1

通道 ORA_AUX_DISK_1: 正在開始恢復資料檔案備份集

通道 ORA_AUX_DISK_1: 正在指定從備份集恢復的資料檔案

正將資料檔案00001恢復到D:DUPDBSYSTEM01.DBF

正將資料檔案00002恢復到D:DUPDBUNDOTBS01.DBF

正將資料檔案00003恢復到D:DUPDBSYSAUX01.DBF

正將資料檔案00004恢復到D:DUPDBUSERS01.DBF

正將資料檔案00005恢復到D:DUPDBGSYY_MAIN.DBF

正將資料檔案00006恢復到D:DUPDBGSYY_IDX.DBF

正將資料檔案00008恢復到D:DUPDBLSSY.DBF

通道 ORA_AUX_DISK_1: 正在讀取備份段 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREA

SQTDBBACKUPSET2010_10_26O1_MF_NNNDF_TAG20101026T093843_6DDD942G_.BKP

通道 ORA_AUX_DISK_1: 已恢復備份段 1

段控制程式碼 = E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQTDBBACKUPSET2010_10_26

O1_MF_NNNDF_TAG20101026T093843_6DDD942G_.BKP 標記 = TAG20101026T093843

通道 ORA_AUX_DISK_1: 恢復完成, 用時: 00:01:05

完成 restore 26-10-10

sql 語句: CREATE CONTROLFILE REUSE SET DATABASE "DUPDB" RESETLOGS ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 292

LOGFILE

GROUP 1 'd:dupdbredo01.log' SIZE 10 M ,

GROUP 2 'd:dupdbredo02.log' SIZE 10 M ,

GROUP 3 'd:dupdbredo03.log' SIZE 10 M

DATAFILE

'D:DUPDBSYSTEM01.DBF'

CHARACTER SET ZHS16GBK

記憶體指令碼的內容:

{

switch clone datafile all;

}

正在執行記憶體指令碼

釋放的通道: ORA_AUX_DISK_1

資料檔案 2 已轉換成資料檔案副本

輸入資料檔案副本 recid=1 stamp=733403350 檔名=D:DUPDBUNDOTBS01.DBF

資料檔案 3 已轉換成資料檔案副本

輸入資料檔案副本 recid=2 stamp=733403350 檔名=D:DUPDBSYSAUX01.DBF

資料檔案 4 已轉換成資料檔案副本

輸入資料檔案副本 recid=3 stamp=733403350 檔名=D:DUPDBUSERS01.DBF

資料檔案 5 已轉換成資料檔案副本

輸入資料檔案副本 recid=4 stamp=733403350 檔名=D:DUPDBGSYY_MAIN.DBF

資料檔案 6 已轉換成資料檔案副本

輸入資料檔案副本 recid=5 stamp=733403350 檔名=D:DUPDBGSYY_IDX.DBF

資料檔案 8 已轉換成資料檔案副本

輸入資料檔案副本 recid=6 stamp=733403350 檔名=D:DUPDBLSSY.DBF

記憶體指令碼的內容:

{

set until scn 613908;

recover

clone database

delete archivelog

;

}

正在執行記憶體指令碼

正在執行命令: SET until clause

啟動 recover 26-10-10

分配的通道: ORA_AUX_DISK_1

通道 ORA_AUX_DISK_1: sid=156 devtype=DISK

正在開始介質的恢復

存檔日誌執行緒 1 序列 6 已作為檔案 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQ

TDBARCHIVELOG2010_10_26O1_MF_1_6_6DDDCM3X_.ARC 存在於磁碟上

存檔日誌檔名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQTDBARCHIVELOG20

10_10_26O1_MF_1_6_6DDDCM3X_.ARC 執行緒 =1 序列 =6

介質恢復完成, 用時: 00:00:02

完成 recover 26-10-10

記憶體指令碼的內容:

{

shutdown clone;

startup clone nomount ;

}

正在執行記憶體指令碼

資料庫已解除安裝

Oracle 例項已關閉

已連線到輔助資料庫 (未啟動)

Oracle 例項已啟動

系統全域性區域總計 205520896 位元組

Fixed Size 1248092 位元組

Variable Size 67110052 位元組

Database Buffers 130023424 位元組

Redo Buffers 7139328 位元組

sql 語句: CREATE CONTROLFILE REUSE SET DATABASE "DUPDB" RESETLOGS ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 292

LOGFILE

GROUP 1 'd:dupdbredo01.log' SIZE 10 M ,

GROUP 2 'd:dupdbredo02.log' SIZE 10 M ,

GROUP 3 'd:dupdbredo03.log' SIZE 10 M

DATAFILE

'D:DUPDBSYSTEM01.DBF'

CHARACTER SET ZHS16GBK

記憶體指令碼的內容:

{

set newname for tempfile 1 to

"D:dupdbTEMP01.DBF";

set newname for tempfile 2 to

"D:dupdbGSYY_TMP.DBF";

switch clone tempfile all;

catalog clone datafilecopy "D:DUPDBUNDOTBS01.DBF";

catalog clone datafilecopy "D:DUPDBSYSAUX01.DBF";

catalog clone datafilecopy "D:DUPDBUSERS01.DBF";

catalog clone datafilecopy "D:DUPDBGSYY_MAIN.DBF";

catalog clone datafilecopy "D:DUPDBGSYY_IDX.DBF";

catalog clone datafilecopy "D:DUPDBLSSY.DBF";

switch clone datafile all;

}

正在執行記憶體指令碼

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

臨時檔案 1 在控制檔案中已重新命名為 D:dupdbTEMP01.DBF

臨時檔案 2 在控制檔案中已重新命名為 D:dupdbGSYY_TMP.DBF

已將資料檔案副本列入目錄

資料檔案副本 filename=D:DUPDBUNDOTBS01.DBF recid=1 stamp=733403368

已將資料檔案副本列入目錄

資料檔案副本 filename=D:DUPDBSYSAUX01.DBF recid=2 stamp=733403368

已將資料檔案副本列入目錄

資料檔案副本 filename=D:DUPDBUSERS01.DBF recid=3 stamp=733403368

已將資料檔案副本列入目錄

資料檔案副本 filename=D:DUPDBGSYY_MAIN.DBF recid=4 stamp=733403369

已將資料檔案副本列入目錄

資料檔案副本 filename=D:DUPDBGSYY_IDX.DBF recid=5 stamp=733403369

已將資料檔案副本列入目錄

資料檔案副本 filename=D:DUPDBLSSY.DBF recid=6 stamp=733403369

資料檔案 2 已轉換成資料檔案副本

輸入資料檔案副本 recid=1 stamp=733403368 檔名=D:DUPDBUNDOTBS01.DBF

資料檔案 3 已轉換成資料檔案副本

輸入資料檔案副本 recid=2 stamp=733403368 檔名=D:DUPDBSYSAUX01.DBF

資料檔案 4 已轉換成資料檔案副本

輸入資料檔案副本 recid=3 stamp=733403368 檔名=D:DUPDBUSERS01.DBF

資料檔案 5 已轉換成資料檔案副本

輸入資料檔案副本 recid=4 stamp=733403369 檔名=D:DUPDBGSYY_MAIN.DBF

資料檔案 6 已轉換成資料檔案副本

輸入資料檔案副本 recid=5 stamp=733403369 檔名=D:DUPDBGSYY_IDX.DBF

資料檔案 8 已轉換成資料檔案副本

輸入資料檔案副本 recid=6 stamp=733403369 檔名=D:DUPDBLSSY.DBF

記憶體指令碼的內容:

{

Alter clone database open resetlogs;

}

正在執行記憶體指令碼

資料庫已開啟

完成 Duplicate Db 26-10-10

RMAN>

2.6 連線到複製資料庫檢查物件和資料是否完整

3、在不同主機上建立複製資料庫

注:大部分操作步驟同上,需要將目標資料庫的全庫備份檔案以及所有的歸檔日誌檔案複製到複製資料庫上的相同路徑下即可。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14844492/viewspace-1040480/,如需轉載,請註明出處,否則將追究法律責任。

相關文章