Oracle 11g Rman Active database duplicate

sundog315發表於2011-04-07

Active database duplicate,可以在沒有備份的情況下複製一個比較新的資料庫副本,這樣,可以節省對資料庫的備份時間。

具體操作:

[@more@]

目標資料庫例項準備
C:Userssundog>oradim -new -sid TEST
例項已建立。

C:Userssundog>orapwd file=D:oracleproduct11.2.0dbhome_1databasePWDtest.o
ra password=sys entries=10

建立目標資料庫目錄結構
admin
oradata
fast_recovery_area

建立目標資料庫初始化引數檔案
C:Userssundog>sqlplus as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on 星期四 4月 7 14:29:27 2011

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


連線到:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning option

SQL> create pfile='e:inittest.ora' from spfile;

檔案已建立。

修改初始化檔案,並增加轉換引數,將所有源資料庫的路徑修改為目標資料庫的路徑,如路徑相同,則需要在duplicate database時指定nofilenamecheck
*.db_file_name_convert=('D:oracleoradataorcl','D:oracleoradatatest')
*.log_file_name_convert=('D:oracleoradataorcl','D:oracleoradatatest')

增加listener及tnsnames

目標資料庫啟動至nomount狀態
C:Userssundog>rman target

恢復管理器: Release 11.2.0.2.0 - Production on 星期四 4月 7 14:41:21 2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

已連線到目標資料庫 (未啟動)

RMAN> startup nomount pfile='e:inittest.ora'

Oracle 例項已啟動

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

Fixed Size 1384836 位元組
Variable Size 176164476 位元組
Database Buffers 356515840 位元組
Redo Buffers 14151680 位元組

複製資料庫
C:Userssundog>rman target auxiliary

恢復管理器: Release 11.2.0.2.0 - Production on 星期四 4月 7 14:43:38 2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

已連線到目標資料庫: ORCL (DBID=1275518061)
已連線到輔助資料庫: TEST (未裝載)

RMAN> list backupset;

說明與資料檔案庫中的任何備份都不匹配

RMAN> list backup;

說明與資料檔案庫中的任何備份都不匹配

RMAN> duplicate target database to 'test' from active database;

啟動 Duplicate Db 於 07-4月 -11
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=585 裝置型別=DISK

記憶體指令碼的內容:
{
sql clone "create spfile from memory";
}
正在執行記憶體指令碼

sql 語句: create spfile from memory

記憶體指令碼的內容:
{
shutdown clone immediate;
startup clone nomount;
}
正在執行記憶體指令碼

Oracle 例項已關閉

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

Oracle 例項已啟動

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

Fixed Size 1384836 位元組
Variable Size 176164476 位元組
Database Buffers 356515840 位元組
Redo Buffers 14151680 位元組

記憶體指令碼的內容:
{
sql clone "alter system set db_name =
''ORCL'' comment=
''Modified by RMAN duplicate'' scope=spfile";
sql clone "alter system set db_unique_name =
''TEST'' comment=
''Modified by RMAN duplicate'' scope=spfile";
shutdown clone immediate;
startup clone force nomount
backup as copy current controlfile auxiliary format 'D:ORACLEORADATATEST
CONTROL01.CTL';
restore clone controlfile to 'D:ORACLEFAST_RECOVERY_AREATESTCONTROL02.CT
L' from
'D:ORACLEORADATATESTCONTROL01.CTL';
alter clone database mount;
}
正在執行記憶體指令碼

sql 語句: alter system set db_name = ''ORCL'' comment= ''Modified by RMAN dupl
icate'' scope=spfile

sql 語句: alter system set db_unique_name = ''TEST'' comment= ''Modified by RM
AN duplicate'' scope=spfile

Oracle 例項已關閉

Oracle 例項已啟動

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

Fixed Size 1384836 位元組
Variable Size 176164476 位元組
Database Buffers 356515840 位元組
Redo Buffers 14151680 位元組

啟動 backup 於 07-4月 -11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=10 裝置型別=DISK
通道 ORA_DISK_1: 啟動資料檔案副本
複製當前控制檔案
輸出檔名=D:ORACLEPRODUCT11.2.0DBHOME_1DATABASESNCFORCL.ORA 標記=TAG20110
407T144610 RECID=3 STAMP=747845171
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:03
完成 backup 於 07-4月 -11

啟動 restore 於 07-4月 -11
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=580 裝置型別=DISK

通道 ORA_AUX_DISK_1: 已複製控制檔案副本
完成 restore 於 07-4月 -11

資料庫已裝載

記憶體指令碼的內容:
{
set newname for datafile 1 to
"D:ORACLEORADATATESTSYSTEM01.DBF";
set newname for datafile 2 to
"D:ORACLEORADATATESTSYSAUX01.DBF";
set newname for datafile 3 to
"D:ORACLEORADATATESTUNDOTBS01.DBF";
set newname for datafile 4 to
"D:ORACLEORADATATESTUSERS01.DBF";
set newname for datafile 5 to
"D:ORACLEORADATATESTMGMT_ECM_DEPOT1.DBF";
set newname for datafile 6 to
"D:ORACLEORADATATESTMGMT.DBF";
set newname for datafile 7 to
"D:ORACLEORADATATESTMGMT_AD4J.DBF";
backup as copy reuse
datafile 1 auxiliary format
"D:ORACLEORADATATESTSYSTEM01.DBF" datafile
2 auxiliary format
"D:ORACLEORADATATESTSYSAUX01.DBF" datafile
3 auxiliary format
"D:ORACLEORADATATESTUNDOTBS01.DBF" datafile
4 auxiliary format
"D:ORACLEORADATATESTUSERS01.DBF" datafile
5 auxiliary format
"D:ORACLEORADATATESTMGMT_ECM_DEPOT1.DBF" datafile
6 auxiliary format
"D:ORACLEORADATATESTMGMT.DBF" datafile
7 auxiliary format
"D:ORACLEORADATATESTMGMT_AD4J.DBF" ;
sql 'alter system archive log current';
}
正在執行記憶體指令碼

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

啟動 backup 於 07-4月 -11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案: 檔案號=00006 名稱=D:ORACLEORADATAORCLMGMT.DBF
輸出檔名=D:ORACLEORADATATESTMGMT.DBF 標記=TAG20110407T144622
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:01:05
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案: 檔案號=00001 名稱=D:ORACLEORADATAORCLSYSTEM01.DBF
輸出檔名=D:ORACLEORADATATESTSYSTEM01.DBF 標記=TAG20110407T144622
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:35
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案: 檔案號=00002 名稱=D:ORACLEORADATAORCLSYSAUX01.DBF
輸出檔名=D:ORACLEORADATATESTSYSAUX01.DBF 標記=TAG20110407T144622
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:35
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案: 檔案號=00003 名稱=D:ORACLEORADATAORCLUNDOTBS01.DBF
輸出檔名=D:ORACLEORADATATESTUNDOTBS01.DBF 標記=TAG20110407T144622
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:15
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案: 檔案號=00007 名稱=D:ORACLEORADATAORCLMGMT_AD4J.DBF
輸出檔名=D:ORACLEORADATATESTMGMT_AD4J.DBF 標記=TAG20110407T144622
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:15
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案: 檔案號=00005 名稱=D:ORACLEORADATAORCLMGMT_ECM_DEPOT1.DBF
輸出檔名=D:ORACLEORADATATESTMGMT_ECM_DEPOT1.DBF 標記=TAG20110407T144622
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:03
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案: 檔案號=00004 名稱=D:ORACLEORADATAORCLUSERS01.DBF
輸出檔名=D:ORACLEORADATATESTUSERS01.DBF 標記=TAG20110407T144622
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:01
完成 backup 於 07-4月 -11

sql 語句: alter system archive log current

記憶體指令碼的內容:
{
backup as copy reuse
archivelog like "D:ORACLEFAST_RECOVERY_AREAORCLARCHIVELOG2011_04_07O1_
MF_1_15_6STQMC5S_.ARC" auxiliary format
"D:ORACLEFAST_RECOVERY_AREATESTARCHIVELOG2011_04_07O1_MF_1_15_%U_.ARC"
;
catalog clone recovery area;
switch clone datafile all;
}
正在執行記憶體指令碼

啟動 backup 於 07-4月 -11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始複製歸檔日誌
輸入歸檔日誌執行緒=1 序列=15 RECID=15 STAMP=747845355
輸出檔名=D:ORACLEFAST_RECOVERY_AREATESTARCHIVELOG2011_04_07O1_MF_1_15_AR
CH_D-ORCL_ID-1275518061_S-15_T-1_A-747757455_1DM96DNC_.ARC RECID=0 STAMP=0
通道 ORA_DISK_1: 歸檔日誌複製完成, 經過時間: 00:00:01
完成 backup 於 07-4月 -11

搜尋恢復區中的所有檔案

資料庫未知檔案的列表
=====================================
檔名: D:ORACLEFAST_RECOVERY_AREATESTARCHIVELOG2011_04_07O1_MF_1_15_ARCH_
D-ORCL_ID-1275518061_S-15_T-1_A-747757455_1DM96DNC_.ARC
正在編制檔案目錄...
目錄編制完畢

已列入目錄的檔案的列表
=======================
檔名: D:ORACLEFAST_RECOVERY_AREATESTARCHIVELOG2011_04_07O1_MF_1_15_ARCH_
D-ORCL_ID-1275518061_S-15_T-1_A-747757455_1DM96DNC_.ARC

恢復區中的檔案列表不由資料庫管理
==========================================================
檔名: D:ORACLEFAST_RECOVERY_AREATESTCONTROL02.CTL
RMAN-07526: 原因: 檔案不是 Oracle Managed File

不由恢復區管理的檔案數為 1, 總計 9.28MB

資料檔案 1 已轉換成資料檔案副本
輸入資料檔案副本 RECID=3 STAMP=747845358 檔名=D:ORACLEORADATATESTSYSTEM01.
DBF
資料檔案 2 已轉換成資料檔案副本
輸入資料檔案副本 RECID=4 STAMP=747845358 檔名=D:ORACLEORADATATESTSYSAUX01.
DBF
資料檔案 3 已轉換成資料檔案副本
輸入資料檔案副本 RECID=5 STAMP=747845358 檔名=D:ORACLEORADATATESTUNDOTBS01
.DBF
資料檔案 4 已轉換成資料檔案副本
輸入資料檔案副本 RECID=6 STAMP=747845358 檔名=D:ORACLEORADATATESTUSERS01.D
BF
資料檔案 5 已轉換成資料檔案副本
輸入資料檔案副本 RECID=7 STAMP=747845358 檔名=D:ORACLEORADATATESTMGMT_ECM_
DEPOT1.DBF
資料檔案 6 已轉換成資料檔案副本
輸入資料檔案副本 RECID=8 STAMP=747845358 檔名=D:ORACLEORADATATESTMGMT.DBF
資料檔案 7 已轉換成資料檔案副本
輸入資料檔案副本 RECID=9 STAMP=747845359 檔名=D:ORACLEORADATATESTMGMT_AD4J
.DBF

記憶體指令碼的內容:
{
set until scn 646231;
recover
clone database
delete archivelog
;
}
正在執行記憶體指令碼

正在執行命令: SET until clause

啟動 recover 於 07-4月 -11
使用通道 ORA_AUX_DISK_1

正在開始介質的恢復

執行緒 1 序列 15 的歸檔日誌已作為檔案 D:ORACLEFAST_RECOVERY_AREATESTARCHIVELOG
2011_04_07O1_MF_1_15_ARCH_D-ORCL_ID-1275518061_S-15_T-1_A-747757455_1DM96DNC_.
ARC 存在於磁碟上
歸檔日誌檔名=D:ORACLEFAST_RECOVERY_AREATESTARCHIVELOG2011_04_07O1_MF_1_1
5_ARCH_D-ORCL_ID-1275518061_S-15_T-1_A-747757455_1DM96DNC_.ARC 執行緒=1 序列=15
介質恢復完成, 用時: 00:00:02
完成 recover 於 07-4月 -11
Oracle 例項已啟動

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

Fixed Size 1384836 位元組
Variable Size 176164476 位元組
Database Buffers 356515840 位元組
Redo Buffers 14151680 位元組

記憶體指令碼的內容:
{
sql clone "alter system set db_name =
''TEST'' comment=
''Reset to original value by RMAN'' scope=spfile";
sql clone "alter system reset db_unique_name scope=spfile";
shutdown clone immediate;
startup clone nomount;
}
正在執行記憶體指令碼

sql 語句: alter system set db_name = ''TEST'' comment= ''Reset to original val
ue by RMAN'' scope=spfile

sql 語句: alter system reset db_unique_name scope=spfile

Oracle 例項已關閉

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

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

Fixed Size 1384836 位元組
Variable Size 176164476 位元組
Database Buffers 356515840 位元組
Redo Buffers 14151680 位元組
sql 語句: CREATE CONTROLFILE REUSE SET DATABASE "TEST" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 ( 'D:ORACLEORADATATESTREDO01.LOG' ) SIZE 50 M REUSE,
GROUP 2 ( 'D:ORACLEORADATATESTREDO02.LOG' ) SIZE 50 M REUSE,
GROUP 3 ( 'D:ORACLEORADATATESTREDO03.LOG' ) SIZE 50 M REUSE
DATAFILE
'D:ORACLEORADATATESTSYSTEM01.DBF'
CHARACTER SET ZHS16GBK


記憶體指令碼的內容:
{
set newname for tempfile 1 to
"D:ORACLEORADATATESTTEMP01.DBF";
switch clone tempfile all;
catalog clone datafilecopy "D:ORACLEORADATATESTSYSAUX01.DBF",
"D:ORACLEORADATATESTUNDOTBS01.DBF",
"D:ORACLEORADATATESTUSERS01.DBF",
"D:ORACLEORADATATESTMGMT_ECM_DEPOT1.DBF",
"D:ORACLEORADATATESTMGMT.DBF",
"D:ORACLEORADATATESTMGMT_AD4J.DBF";
switch clone datafile all;
}
正在執行記憶體指令碼

正在執行命令: SET NEWNAME

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

已將資料檔案副本列入目錄
資料檔案副本檔名=D:ORACLEORADATATESTSYSAUX01.DBF RECID=1 STAMP=747845437
已將資料檔案副本列入目錄
資料檔案副本檔名=D:ORACLEORADATATESTUNDOTBS01.DBF RECID=2 STAMP=747845437
已將資料檔案副本列入目錄
資料檔案副本檔名=D:ORACLEORADATATESTUSERS01.DBF RECID=3 STAMP=747845437
已將資料檔案副本列入目錄
資料檔案副本檔名=D:ORACLEORADATATESTMGMT_ECM_DEPOT1.DBF RECID=4 STAMP=7478
45437
已將資料檔案副本列入目錄
資料檔案副本檔名=D:ORACLEORADATATESTMGMT.DBF RECID=5 STAMP=747845437
已將資料檔案副本列入目錄
資料檔案副本檔名=D:ORACLEORADATATESTMGMT_AD4J.DBF RECID=6 STAMP=747845438

資料檔案 2 已轉換成資料檔案副本
輸入資料檔案副本 RECID=1 STAMP=747845437 檔名=D:ORACLEORADATATESTSYSAUX01.
DBF
資料檔案 3 已轉換成資料檔案副本
輸入資料檔案副本 RECID=2 STAMP=747845437 檔名=D:ORACLEORADATATESTUNDOTBS01
.DBF
資料檔案 4 已轉換成資料檔案副本
輸入資料檔案副本 RECID=3 STAMP=747845437 檔名=D:ORACLEORADATATESTUSERS01.D
BF
資料檔案 5 已轉換成資料檔案副本
輸入資料檔案副本 RECID=4 STAMP=747845437 檔名=D:ORACLEORADATATESTMGMT_ECM_
DEPOT1.DBF
資料檔案 6 已轉換成資料檔案副本
輸入資料檔案副本 RECID=5 STAMP=747845437 檔名=D:ORACLEORADATATESTMGMT.DBF
資料檔案 7 已轉換成資料檔案副本
輸入資料檔案副本 RECID=6 STAMP=747845438 檔名=D:ORACLEORADATATESTMGMT_AD4J
.DBF
對輔助資料庫重新啟用控制檔案選項
執行: alter database force logging

記憶體指令碼的內容:
{
Alter clone database open resetlogs;
}
正在執行記憶體指令碼

資料庫已開啟
完成 Duplicate Db 於 07-4月 -11

RMAN>

資料庫複製完成,如果有需要的話,可以建立spfile

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

相關文章