oracle實驗記錄Rman duplicate database(1)

fufuh2o發表於2009-06-26

C:\>oradim -new -sid xhtest2 -intpwd xh123
                                                               建立instance部分
OPW-00005: 存在相同名稱的檔案 - 請刪除或重新命名
例程已建立。

C:\>mk d:\xhtest2\bdump
'mk' 不是內部或外部命令,也不是可執行的程式                      
或批處理檔案。

C:\>mkdir d:\xhtest2\bdump;

C:\>mkdir d:\xhtest2\udump;

C:\>mkdir d:\xhtest2\archive

C:\>mkdir d:\xhtest2\cdump
配置instance
*.background_dump_dest='d:\xhtest2'           
*.compatible='10.1.0.2.0'
*.control_files='d:\xhtest2\control01.ctl'
*.core_dump_dest='d:\xhtest2\cdump'
*.db_block_size=8192
*.db_cache_size=25165824
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='xhtest2'
*.db_recovery_file_dest_size=2147483648
*.db_recovery_file_dest='d:\xhtest2'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=xhtestXDB)'
*.java_pool_size=50331648
*.job_queue_processes=10
*.large_pool_size=8388608
*.log_archive_dest_1='location=D:\xhtest2\archive'
*.open_cursors=300
*.pga_aggregate_target=25165824
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.shared_pool_size=200000000
*.sort_area_size=65536
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='d:\xhtest2\udump'
*.instance_name='xhtest2'
*.db_file_name_convert=('F:\oracle\product\10.1.0\oradata\xhtest','d:\xhtest2','D:\自建表空間資料檔案','d:\xhtest2')
*.log_file_name_convert=('F:\oracle\product\10.1.0\oradata\xhtest','d:\xhtest2')
*.service_names='xhtest2'

重點的是db_name ,control_files,service_names,instance_name ,其他都是些*_dump,shared_pool_size 要大點否則~容易出錯,而且慢,具體還沒測試過shared_pool_sizede  具體影響


db_file_name_convert
log_file_name_convert  配置這2個引數 是讓 rman可以全自動的 讓其自動轉換資料檔案路徑 ,轉儲到duplicate database;

配置instance

C:\>set oracle_sid=xhtest2

C:\>sqlplus "/ as sysdba"

SQL*Plus: Release 10.1.0.2.0 - Production on 星期五 7月 18 10:51:

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

已連線到空閒例程。

SQL> startup nomount;
ORACLE 例程已經啟動。

Total System Global Area  289406976 bytes
Fixed Size                   788552 bytes
Variable Size             263190456 bytes
Database Buffers           25165824 bytes
Redo Buffers                 262144 bytes
SQL>

開始rman
C:\>set oracle_sid=xhtest2

C:\>rman target /@xhtest auxiliary /

恢復管理器: 版本10.1.0.2.0 - Production

Copyright (c) 1995, 2004, Oracle.  All rights reserved.

連線到目標資料庫: XHTEST (DBID=1744081245)
已連線到備用資料庫: xhtest2 (未裝載)

RMAN> duplicate target database to xhtest2;

啟動 Duplicate Db 於 18-7月 -08
正在使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=159 devtype=DISK

記憶體指令碼的內容:
{
   set until scn  595215;
   set newname for datafile  1 to
 "D:\XHTEST2\SYSTEM01.DBF";
   set newname for datafile  2 to
 "D:\XHTEST2\UNDOTBS01.DBF";
   set newname for datafile  3 to
 "D:\XHTEST2\SYSAUX01.DBF";
   set newname for datafile  4 to
 "D:\XHTEST2\USERS01.DBF";
   set newname for datafile  5 to
 "D:\XHTEST2\EXAMPLE01.DBF";
   set newname for datafile  6 to
 "D:\XHTEST2\TESTTB.DBF";
   restore
   check readonly
   clone database
   ;
}
正在執行記憶體指令碼

正在執行命令: SET until clause

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

啟動 restore 於 18-7月 -08
使用通道 ORA_AUX_DISK_1

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 07/18/2008 10:53:13
RMAN-03015: error occurred in stored script. Memory Script
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 6 found to restore
RMAN-06023: no backup or copy of datafile 5 found to restore                    失敗 應為沒有備份rman無法轉儲
RMAN-06023: no backup or copy of datafile 4 found to restore
RMAN-06023: no backup or copy of datafile 3 found to restore
RMAN-06023: no backup or copy of datafile 2 found to restore
RMAN-06023: no backup or copy of datafile 1 found to restore

RMAN> backup database;

啟動 backup 於 18-7月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=161 devtype=DISK
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00001 name=F:\ORACLE\PRODUCT\10.1.0\ORADATA\XHTEST\SYSTEM01.DBF

輸入資料檔案 fno=00003 name=F:\ORACLE\PRODUCT\10.1.0\ORADATA\XHTEST\SYSAUX01.DBF

輸入資料檔案 fno=00005 name=F:\ORACLE\PRODUCT\10.1.0\ORADATA\XHTEST\EXAMPLE01.DB
F
輸入資料檔案 fno=00002 name=F:\ORACLE\PRODUCT\10.1.0\ORADATA\XHTEST\UNDOTBS01.DB
F
輸入資料檔案 fno=00006 name=D:\自建表空間資料檔案\TESTTB.DBF
輸入資料檔案 fno=00004 name=F:\ORACLE\PRODUCT\10.1.0\ORADATA\XHTEST\USERS01.DBF
通道 ORA_DISK_1: 正在啟動段 1 於 18-7月 -08
通道 ORA_DISK_1: 已完成段 1 於 18-7月 -08
段 handle=F:\ORACLE\PRODUCT\10.1.0\FLASH_RECOVERY_AREA\XHTEST\BACKUPSET\2008_07_
18\O1_MF_NNNDF_TAG20080718T105341_4801FWYR_.BKP comment=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:01:29
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
備份集中包括當前控制檔案
在備份集中包含當前的 SPFILE
通道 ORA_DISK_1: 正在啟動段 1 於 18-7月 -08
通道 ORA_DISK_1: 已完成段 1 於 18-7月 -08
段 handle=F:\ORACLE\PRODUCT\10.1.0\FLASH_RECOVERY_AREA\XHTEST\BACKUPSET\2008_07_
18\O1_MF_NCSNF_TAG20080718T105341_4801JM3F_.BKP comment=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:10
完成 backup 於 18-7月 -08


RMAN> duplicate target database to xhtest2;

啟動 Duplicate Db 於 18-7月 -08
正在使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=159 devtype=DISK

記憶體指令碼的內容:
{
   set until scn  595215;
   set newname for datafile  1 to
 "D:\XHTEST2\SYSTEM01.DBF";
   set newname for datafile  2 to
 "D:\XHTEST2\UNDOTBS01.DBF";
   set newname for datafile  3 to
 "D:\XHTEST2\SYSAUX01.DBF";
   set newname for datafile  4 to
 "D:\XHTEST2\USERS01.DBF";
   set newname for datafile  5 to
 "D:\XHTEST2\EXAMPLE01.DBF";
   set newname for datafile  6 to
 "D:\XHTEST2\TESTTB.DBF";
   restore
   check readonly
   clone database
   ;
}
正在執行記憶體指令碼

正在執行命令: SET until clause

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

啟動 restore 於 18-7月 -08
使用通道 ORA_AUX_DISK_1

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 07/18/2008 10:53:13
RMAN-03015: error occurred in stored script. Memory Script
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 6 found to restore
RMAN-06023: no backup or copy of datafile 5 found to restore                    失敗 應為沒有備份rman沒含有archivlog
RMAN-06023: no backup or copy of datafile 4 found to restore
RMAN-06023: no backup or copy of datafile 3 found to restore
RMAN-06023: no backup or copy of datafile 2 found to restore
RMAN-06023: no backup or copy of datafile 1 found to restore

backup database plus archivelop;   加上 archivelog~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

RMAN> duplicate target database to xhtest2;

啟動 Duplicate Db 於 18-7月 -08
使用通道 ORA_AUX_DISK_1

記憶體指令碼的內容:
{
   set until scn  598493;
   set newname for datafile  1 to
 "D:\XHTEST2\SYSTEM01.DBF";
   set newname for datafile  2 to
 "D:\XHTEST2\UNDOTBS01.DBF";
   set newname for datafile  3 to
 "D:\XHTEST2\SYSAUX01.DBF";
   set newname for datafile  4 to
 "D:\XHTEST2\USERS01.DBF";
   set newname for datafile  5 to
 "D:\XHTEST2\EXAMPLE01.DBF";
   set newname for datafile  6 to
 "D:\XHTEST2\TESTTB.DBF";
   restore
   check readonly
   clone database
   ;
}
正在執行記憶體指令碼

正在執行命令: SET until clause

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

啟動 restore 於 18-7月 -08
使用通道 ORA_AUX_DISK_1

通道 ORA_AUX_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_AUX_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到D:\XHTEST2\SYSTEM01.DBF
正將資料檔案00002恢復到D:\XHTEST2\UNDOTBS01.DBF
正將資料檔案00003恢復到D:\XHTEST2\SYSAUX01.DBF
正將資料檔案00004恢復到D:\XHTEST2\USERS01.DBF
正將資料檔案00005恢復到D:\XHTEST2\EXAMPLE01.DBF
正將資料檔案00006恢復到D:\XHTEST2\TESTTB.DBF
通道 ORA_AUX_DISK_1: 已恢復備份段 1
段控制程式碼 = F:\ORACLE\PRODUCT\10.1.0\FLASH_RECOVERY_AREA\XHTEST\BACKUPSET\2008_07_1
8\O1_MF_NNNDF_TAG20080718T110719_480279HN_.BKP 標記 = TAG20080718T110719
通道 ORA_AUX_DISK_1: 恢復完成
完成 restore 於 18-7月 -08
sql 語句: CREATE CONTROLFILE REUSE SET DATABASE "xhtest2" RESETLOGS ARCHIVELOG
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     8
  MAXLOGHISTORY      454
 LOGFILE
  GROUP  1 ( 'D:\XHTEST2\REDO01.LOG' ) SIZE 10 M  REUSE,
  GROUP  2 ( 'D:\XHTEST2\REDO02.LOG' ) SIZE 10 M  REUSE,
  GROUP  3 ( 'D:\XHTEST2\REDO03.LOG' ) SIZE 10 M  REUSE
 DATAFILE
  'D:\XHTEST2\SYSTEM01.DBF'
 CHARACTER SET ZHS16GBK


記憶體指令碼的內容:
{
   switch clone datafile all;
}
正在執行記憶體指令碼

資料檔案 2 已轉換成資料檔案副本
輸入資料檔案副本 recid=1 stamp=660395473 檔名=D:\XHTEST2\UNDOTBS01.DBF
資料檔案 3 已轉換成資料檔案副本
輸入資料檔案副本 recid=2 stamp=660395473 檔名=D:\XHTEST2\SYSAUX01.DBF
資料檔案 4 已轉換成資料檔案副本
輸入資料檔案副本 recid=3 stamp=660395474 檔名=D:\XHTEST2\USERS01.DBF
資料檔案 5 已轉換成資料檔案副本
輸入資料檔案副本 recid=4 stamp=660395475 檔名=D:\XHTEST2\EXAMPLE01.DBF
資料檔案 6 已轉換成資料檔案副本
輸入資料檔案副本 recid=5 stamp=660395476 檔名=D:\XHTEST2\TESTTB.DBF

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

正在執行命令: SET until clause

啟動 recover 於 18-7月 -08
使用通道 ORA_AUX_DISK_1

正在開始介質的恢復

存檔日誌執行緒 1 序列 50 已作為檔案 F:\歸檔備份\ARC00050_0660131038.001 存在於磁碟

存檔日誌檔名 =F:\歸檔備份\ARC00050_0660131038.001 執行緒 =1 序列 =50
完成介質的恢復
完成 recover 於 18-7月 -08

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

資料庫已解除安裝
Oracle 例程已關閉

已連線到備用資料庫 (未啟動)
Oracle 例程已啟動

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

Fixed Size                      788552 位元組
Variable Size                263190456 位元組
Database Buffers              25165824 位元組
Redo Buffers                    262144 位元組
sql 語句: CREATE CONTROLFILE REUSE SET DATABASE "xhtest2" RESETLOGS ARCHIVELOG
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     8
  MAXLOGHISTORY      454
 LOGFILE
  GROUP  1 ( 'D:\XHTEST2\REDO01.LOG' ) SIZE 10 M  REUSE,
  GROUP  2 ( 'D:\XHTEST2\REDO02.LOG' ) SIZE 10 M  REUSE,
  GROUP  3 ( 'D:\XHTEST2\REDO03.LOG' ) SIZE 10 M  REUSE
 DATAFILE
  'D:\XHTEST2\SYSTEM01.DBF'
 CHARACTER SET ZHS16GBK


記憶體指令碼的內容:
{
   catalog clone datafilecopy  "D:\XHTEST2\UNDOTBS01.DBF";
   catalog clone datafilecopy  "D:\XHTEST2\SYSAUX01.DBF";
   catalog clone datafilecopy  "D:\XHTEST2\USERS01.DBF";
   catalog clone datafilecopy  "D:\XHTEST2\EXAMPLE01.DBF";
   catalog clone datafilecopy  "D:\XHTEST2\TESTTB.DBF";
   switch clone datafile all;
}
正在執行記憶體指令碼

已將資料檔案副本列入目錄
資料檔案副本 filename=D:\XHTEST2\UNDOTBS01.DBF recid=1 stamp=660398592

已將資料檔案副本列入目錄
資料檔案副本 filename=D:\XHTEST2\SYSAUX01.DBF recid=2 stamp=660398593

已將資料檔案副本列入目錄
資料檔案副本 filename=D:\XHTEST2\USERS01.DBF recid=3 stamp=660398596

已將資料檔案副本列入目錄
資料檔案副本 filename=D:\XHTEST2\EXAMPLE01.DBF recid=4 stamp=660398597

已將資料檔案副本列入目錄
資料檔案副本 filename=D:\XHTEST2\TESTTB.DBF recid=5 stamp=660398600

資料檔案 2 已轉換成資料檔案副本
輸入資料檔案副本 recid=1 stamp=660398592 檔名=D:\XHTEST2\UNDOTBS01.DBF
資料檔案 3 已轉換成資料檔案副本
輸入資料檔案副本 recid=2 stamp=660398593 檔名=D:\XHTEST2\SYSAUX01.DBF
資料檔案 4 已轉換成資料檔案副本
輸入資料檔案副本 recid=3 stamp=660398596 檔名=D:\XHTEST2\USERS01.DBF
資料檔案 5 已轉換成資料檔案副本
輸入資料檔案副本 recid=4 stamp=660398597 檔名=D:\XHTEST2\EXAMPLE01.DBF
資料檔案 6 已轉換成資料檔案副本
輸入資料檔案副本 recid=5 stamp=660398600 檔名=D:\XHTEST2\TESTTB.DBF

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

資料庫已開啟
完成 Duplicate Db 於 18-7月 -08

RMAN>

RMAN


總結 要以前的備份,並且備份集中要含archivelog 否則報nobackup

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

相關文章