11g使用增量備份來執行跨平臺傳輸表空間減少停機時間(xtts_rman)

eric0435發表於2018-01-17

使用跨平臺傳輸表空間來遷移資料所需要的停機時間與被遷移的資料量成正比。然而,當使用增量備份跨平臺遷移可以顯著減小遷移資料所需要的停機時間。

傳統跨平臺傳輸表空間的主要步驟:
1.將源資料庫中所被轉輸的表空間設定為read only
2.將所被傳輸表空間所相關的資料檔案傳輸到目標主機上
3.將資料檔案轉換為目標主機所使用的位元組序
4.使用data pump從源資料庫匯出所被傳輸表空間所儲存物件的後設資料
5.在目標資料庫中使用data pump匯入所被傳輸表空間所儲存物件的後設資料
6.使用目標資料庫中的被傳輸表空間設定為read write

因為資料傳輸時表空間必須為read only,應用程式所擁有的資料在傳輸時不能被使用者使用。因為操作是序列操作,所以停機時間依賴於資料量的大小。如果資料量大,資料檔案傳輸與轉換的時間將會很長,所以停機時間也就會很長。

使用跨平臺增量備份來減少停機時間
為了減少停機時間需要使用XTTS,Oracle為跨平臺傳輸增強了RMAN的能力來使用增量備份前滾資料檔案副本。透過使用一些列的增量備份,每一份增量備份都比上一次的小,在需要停機之前,目標系統中的資料幾乎可以從源系統中獲得。資料檔案傳輸與轉換所需要的停機時間就由源系統中在最後一次增量備份之後被改變的資料量所決定。

跨平臺增量備份不會影響XTTS所執行其它操作所花費的時間,比如後設資料的匯出與匯入。因此,當資料庫有大量的後設資料時將會看到使用跨平臺增量備份執行遷移的好處會受到影響,因為遷移所需時間通常是由後設資料操作所決定的,而不是由資料檔案傳輸與轉換操作所決定的。

只有物理儲存被遷移資料庫物件的表空間需要被傳輸到目標系統。如果需要被遷移的其它物件,儲存在不同表空間(比如,pl/sql物件,序列,等等,儲存在system表空間中),可以使用data pump來複制這些物件到目標系統。

使用跨平臺增量備份傳輸表空間的主要步驟如下:
1.準備階段(源資料保持為online狀態)
.傳輸被遷移表空間所相關的資料檔案到目標系統
.如果需要,將資料檔案轉換成目標系統所使用的位元組序

2.前滾階段(源資料保持為online狀態-可以根據需要重複達個階段多次來使用目標資料檔案匹配上源資料庫檔案)
.在源系統中建立增量備份
.傳輸增量備份到目標系統
.將增量備份轉換為目標系統所使用的位元組序並將備份應用到目標資料檔案副本

注意,對於版本號為3的指令碼,如果一個資料檔案被增加到表空間或者一個新的表空間名被增加到xtt.properties檔案中,一個告警資訊與額外的指令需要被執行。

3.傳輸階段(源資料為read only)
.將源資料庫中需要被傳輸的表空間設定為read only
.最後一次執行前滾階段的操作,這步操作可以確保目標資料檔案副本與源資料庫中的資料檔案處於一致狀態。這步操作所花費的時間要比傳統XTTS方法所需要的時間短,因為使用增量備份。
.使用data pump從源資料庫中志出相關表空間中所儲存物件的後設資料
.在目標系統中使用data pump匯出表空間所儲存物件的後設資料
.將目標資料庫中的相關表空間設定為read write

這篇文章提供了一個例子來介紹如何使用跨平臺增量備份來減少傳輸表空間的停機時間。

源系統可以是先決條件所引用的和平臺與資料庫所滿足的列表中所列出任何平臺。如果從一種小位元組序平臺遷移到Oracle Linux,那麼最應該考慮的方法是使用Data Guard,可以參考Note 413484.1關於在當前小位元組序平臺與Oracle Linux之間Data Guard所支援的異構平臺。對於Oracle 12c來說,請使用Note 2005729.1 12C - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup.或者NOTE: Neither method supports 12c multitenant databases. Enhancement bug 22570430 addresses this limitation.

這裡將介紹如何從Redhat Linux 平臺上將表空間cdzj,ldjc使用跨平臺增量備份的傳輸表空間方法來遷移到Aix平臺。在執行完初始化階段後執行以下三個階段來執行資料的遷移操作:
準備階段
在準備階段,要傳輸的表空間的資料檔案會被傳輸到目標系統並被轉換為目標系統所使用的位元組序。在準備階段應用程式是完全可以訪問源資料的。準備階段使用RMAN備份或dbms_file_transfer,後面將會詳細介紹如何選擇準備階段所要使用的方法。

前滾階段
在前滾階段,在準備階段被轉換後的資料檔案將會使用來自源資料庫的增量備份來進行前滾操作。透過多次執行該階段的操作,每次成功的增量備份將會更小與更快的應用到資料檔案副本,允許目標系統中的資料都是來自源系統中。在執行前滾階段時應用程式可以完全訪問源資料。

傳輸階段
在傳輸階段,在源資料庫中將要被傳輸的表空間設定為read only狀態,並且在源平臺上執行最後一次增量備份並且將它傳輸到目標平臺上並應用到資料檔案副本,使用目標系統中的資料檔案副本與源資料庫中的資料檔案保護一致。一旦資料檔案狀態一致,從源資料庫中匯出所傳輸表空間所儲存物件的後設資料,並且在目標平臺匯入這些後設資料。最後在目標資料庫中將傳輸過來的表空間設定為read write狀態。在傳輸階段應用程式是不能更新源資料的。

跨平臺增量備份所支援的指令碼
跨平臺增量備份的核心功能是基於Oracle 11.2.0.4與之後的版本。請檢視條件與建議部分了解詳細資訊。另外有一組支援指令碼儲存在rman-xttconvert_2.0.zip。其中有兩個主要支援的指令碼:
.Perl指令碼xttdriver.pl 這個指令碼用來執行跨平臺增量備份傳輸表空間的主要步驟。
.引數檔案xtt.properties 這個檔案包含自已平臺特定配置

執行跨平臺增量備份傳輸表空間的條件與建議
執行跨平臺增量備份傳輸表空間的條件
在執行跨平臺增量備份傳輸表空間之前需要檢查是否滿足以下條件:
.傳輸表空間的限制
.其它必須滿足的條件
當前版本不支援windows
源資料庫的compatible引數必須設定為10.2.0或更高版本
源資料庫的compatible引數必須不能比目標資料庫的compatible引數的值大
源資料庫必須啟用了archivelog模式
儘管首選目標系統是Linux作業系統(可以是64位的Oracle Linux或者是已經認證的Redhat Linux),但這個過程也可以在其它Unix作業系統中執行。然而,對於任何non-Linux作業系統來說資料庫的版本必須是11.2.0.4
源資料庫的版本必須小於或等於目標資料庫的版本
RMAN的預設裝置型別應該被配置為DISK
源資料庫的RMAN不能對DEVICE TYPE DISK使用COMPRESSED配置。如果使用COMPRESSED配置,執行操作時可能會返回:ORA-19994: cross-platform backup of compressed backups different endianess.
源資料庫中將要被遷移的表空間必須是online,並且不能包含離線資料檔案。表空間必須為read write狀態。表空間為read only那麼可以使用正常的XTTS方法進行遷移。

.所有步驟中執行操作的使用者必須是Oracle使用者並且它是OSDBA組的成員。作業系統審計被用來連線源資料庫與目標資料庫。
.如果準備階段方法選擇dbms_file_transfer,那麼目標資料庫版本必須至少為11.2.0.4。
.如果準備階段方法選擇RMAN,那麼在源系統與目標系統中都要建立預備區域
.對於備庫或快照備庫是不支援這種操作的
.如果目標資料庫版本是11.2.0.3或更低的版本,那麼在目標系統中需要有一個11.2.0.4的資料庫home目錄來執行11.2.0.4的例項來執行增量備份的轉換操作。如果目標資料庫版本是11.2.0.3或更低版本,那麼需要一個版本為11.2.0.4的單獨的增量轉換Home目錄與例項。如果ASM使用11.2.0.4的轉換Home,那麼ASM的版本也必須是11.2.0.4,否則會觸發ORA-15295(ORA-15295: ASM instance software version 11.2.0.3.0 less than client version 11.2.0.4.0)。

整個資料庫遷移
如果跨平臺增量備份傳輸表空間被用來減少整個資料庫的遷移時間,那麼請參考MAA提供的XTTS指南Platform Migration UsingTransportable Tablespaces(maa-wp-11g-platformmigrationtts-129269.pdf),這種遷移方法也可以用於Oracle 12c,然而對於12c有一種替代的方法可參考Note 2005729.1 12C - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup.

選擇準備階段方法
在準備階段,要被傳輸的表空間的資料檔案會被傳輸到目標系統並且透過執行xttdriver.pl指令碼進行轉換。這裡有兩種可用的方法:
1.使用dbms_file_transfer(DFT)傳輸(使用xttdriver.pl -S與-G選項)
2.使用RMAN備份(使用xttdriver.pl -p與-c選項)

dbms_file_transfer方法使用dbms_file_transfer.get_file()過程來透過dblink從源系統中將資料檔案傳輸到目標系統。dbms_file_transfer方法相比RMAN方法有以下優點:
1.不需要在源系統或目標系統中建立預備目錄
2.在傳輸資料檔案時會自動執行資料檔案的轉換--這裡不需要再執行轉換操作。

dbms_file_transfer方法要滿足以下條件才能使用:
.目標資料庫必須是11.2.0.4的版本。注意增量轉換Home目錄或例項不參與dbms_file_transfer的檔案傳輸操作。
.在源資料庫中有一個資料庫目錄物件它指向要被複制的資料檔案
.原目標資料庫中有一個資料庫目錄物件它指向要被存放的資料檔案
.在目標資料庫中有一個dblink連線到源資料庫

RMAN備份方法在源系統中執行RMAN來對要被傳輸的資料檔案生成備份。生成的備份檔案必須手動跨網路傳輸到目標系統。在目標系統中透過執行RMAN對資料檔案進行轉換,如果需要,RMAN轉換操作會將輸出的資料檔案存放在目標資料庫最終儲存資料檔案的目錄中。在原版本的xttdriver.pl中,只支援這種方法。RMAN備份方法要滿足以下條件:
.在源系統與目標系統中需要為RMAN所建立的資料檔案副本建立預備目錄。預備目錄在xtt.properties檔案中分別指向引數dfcopydir與stageondest。被轉換後的資料檔案最終存放目錄在xtt.properties檔案中指向引數storageondest。

關於這些方法被提供的指令的詳細資訊後面會介紹,建議使用dbms_file_transfer方法。

目標資料庫版本為11.2.0.3或更低版本需要安裝一個單獨的增量轉換home與例項跨平臺增量備份的核心功能(例如,增量備份轉換)是基於Oracle 11.2.0.4及以後版本的。如果目標資料庫版本為11.2.0.4及以後版本,那麼目標資料庫可以執行這種功能。然而,如果目標資料庫版本為11.2.0.3或更低版本,那麼為了執行增量備份轉換,需要安裝一個單獨的11.2.0.4的軟體home目錄,叫作增量轉換home目錄,並建立一個增量轉換例項,並且該例項必須啟動到時nomount狀態。增量轉換home目錄與增量轉換例項是臨時使用,並且只在遷移操作期間使用。

因為dbms_file_transfer準備階段方法要求目標資料庫的版本為11.2.0.4,它可以被用來執行增量備份轉換功能(如上所述),增量轉換home目錄與增量轉換例項通常只有當使用RMAN備份方法來才會使用。對於如何設定一個臨時增量轉換例項參考階段1。

診斷
為了啟用診斷模式,可以使用-d引數來執行xttdriver.pl指令碼,或者在執行xttdriver.pl指令碼之前設定環境變數XTTDEBUG=1。Debug模式會啟用額外的螢幕輸出並且造成所有RMAN操作使用debug命令列選項。

已知問題
1.如果源資料庫包含使用鍵壓縮的巢狀的IOTs表,那麼在目標資料庫home中必須安裝修復Bug 14835322的補丁
2.如果想在建立增量備份時對源資料庫使用塊改變跟蹤功能,那麼需要在源資料庫home中安裝修復Bug 16850197的補丁
3.如果前滾階段(xttdriver.pl -r)失敗並顯示以下錯誤資訊,那麼驗證RMAN的DEVICE TYPE DISK不能使用COMPRESSED配置

Entering RollForward
After applySetDataFile
Done: applyDataFileTo
Done: RestoreSetPiece
DECLARE
*
ERROR at line 1:
ORA-19624: operation failed, retry possible
ORA-19870: error while restoring backup piece
/dbfs_direct/FS1/xtts/incrementals/xtts_incr_backup
ORA-19608: /dbfs_direct/FS1/xtts/incrementals/xtts_incr_backup is not a backup
piece
ORA-19837: invalid blocksize 0 in backup piece header
ORA-06512: at "SYS.X$DBMS_BACKUP_RESTORE", line 2338
ORA-06512: at line 40

使用跨平臺增量備份傳輸表空間來減少停機時間
跨平臺增量備份傳輸表空間主要有以下四個階段:
1.初始化設定階段
2.準備階段
3.前滾階段
4.傳輸階段

源系統為Redhat Linux,Oracle為11.2.0.4,目標系統為AIX,Oracle為11.2.0.4

1.初始化設定階段
為了使用跨平臺增量備份傳輸表空間執行以下操作來完成操作環境的配置:
1.1 安裝目標資料庫軟體並建立目標資料庫
在目標系統上安裝所需要的資料庫軟體版本來執行目標資料庫。強烈建議使用Oracle 11.2.0.4或之後的版本。注意dbms_file_transfer方法要求目標資料庫為11.2.0.4。在目標系統中識別或建立一個資料庫並建立需要傳輸的表空間及使用者方案。我這裡目標資料庫為11.2.0.4,要被傳輸的使用者方案為cdzj,ldjc,表空間為cdzj,ldjc。

1.2 如果需要,配置增量轉換home與例項
如果目標資料庫是11.2.0.3或之前版本,需要安裝一個單獨的增量轉換home與例項。如果目標資料庫是11.2.0.4或之後的版本,可以跳過這一步。注意dbms_file_transfer方法要求目標資料庫的版本為11.2.0.4。如果目標資料庫是11.2.0.3或之前版本,那麼必須透過執行以下操作來配置一個單獨的增量轉換例項:
.在目標系統中安裝一個新的11.2.0.4的資料庫home。這就是增量轉換home
.使用增量轉換home啟動一個例項到nomount狀態,這個例項就是增量轉換例項。對於增量轉換例項不需要建立相應的資料庫,只需要執行一個增量轉換例項。

下面操作可以用來建立一個名叫xtt的增量轉換例項,增量轉換home為/oracle11/app/oracle/product/11.2.0/db:

IBMP740-2:/oracle11/app/oracle/product/11.2.0/db/dbs$export ORACLE_HOME=/oracle11/app/oracle/product/11.2.0/db
IBMP740-2:/oracle11/app/oracle/product/11.2.0/db/dbs$export ORACLE_SID=xtt
IBMP740-2:/oracle11/app/oracle/product/11.2.0/db/dbs$cat < < EOF > $ORACLE_HOME/dbs/init$ORACLE_SID.ora
> db_name=xtt
> compatible=11.2.0.4.0
> EOF

IBMP740-2:/oracle11/app/oracle/product/11.2.0/db/dbs$sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Aug 16 10:47:59 2017

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

Connected to an idle instance.

SQL> startup nomount
ORACLE instance started.

Total System Global Area  797712384 bytes
Fixed Size                  2250200 bytes
Variable Size             490736168 bytes
Database Buffers          268435456 bytes
Redo Buffers               36290560 bytes

如果ASM被用於儲存xtt.properties檔案中的引數backupondest,那麼例項的compatible引數的值必須等於或大於ASM磁碟組所使用的rdbms.compatible的值。

1.3 識別要被傳輸的表空間
識別源資料庫中將要被傳輸的表空間。我這裡要被傳輸的表空間為cdzj,ldjc。

1.4 如果使用dbms_file_transfer方法,那麼配置目錄物件與dblink
注意dbms_file_transfer方法要求目標資料庫的版本為11.2.0.4,如果使用dbms_file_transfer訪求,那麼必須建立以下三個資料庫物件:
.在源資料庫中建立一個資料庫目錄物件,它指向要被複制的資料檔案所存放的目錄
.在目標資料庫中建立一個資料庫目錄物件,它指向將要存放資料檔案的目錄
.在目標資料庫中建立一個dblink連線到源資料庫

源資料庫目錄物件引用源資料庫中當前存放資料檔案的目錄。例如,下面建立目錄物件指向,資料檔案存放目錄/home/app/oracle/product/11.2.0/dbs/,連線到源資料庫房執行以下命令:

[oracle@sjjh ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 15 17:10:58 2017

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select a.NAME,b.NAME from v$tablespace a,v$datafile b where a.TS#=b.TS# and a.NAME in('CDZJ','LDJC');
NAME                           NAME
------------------------------ --------------------------------------------------------------------------------
LDJC                           /home/app/oracle/product/11.2.0/dbs/ldjc01
CDZJ                           /home/app/oracle/product/11.2.0/dbs/cdzj01

SQL> create directory sourcedir as '/home/app/oracle/product/11.2.0/dbs';

Directory created.

目標資料庫目錄物件引用目標資料庫中將要儲存資料檔案的目錄。這個目錄是最終目標資料庫將要存放資料檔案的目錄/oracle11/oradata/jycs/jycs/,連線到目標資料庫執行以下命令

IBMP740-2:/oracle11$sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Aug 16 11:23:03 2017

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/oracle11/oradata/jycs/jycs/system01.dbf
/oracle11/oradata/jycs/jycs/sysaux01.dbf
/oracle11/oradata/jycs/jycs/undotbs01.dbf
/oracle11/oradata/jycs/jycs/users01.dbf
/oracle11/oradata/jycs/jycs/example01.dbf

SQL> create directory destdir as '/oracle11/oradata/jycs/jycs';

Directory created.

在目標資料庫中建立一個dblink連線到源資料庫。例如建立一個名叫ttslink的dblink,執行以下命令:

SQL> create public database link ttslink
  2    connect to system identified by "xxzx7817600"
  3    using '(DESCRIPTION =
  4      (ADDRESS_LIST =
  5        (ADDRESS = (PROTOCOL = TCP)(HOST =10.138.130.101)(PORT = 1521))
  6      )
  7      (CONNECT_DATA =
  8        (SERVER = DEDICATED)
  9        (SERVICE_NAME =sjjh)
 10      )
 11    )';

Database link created.

建立dblink後驗證是否可以能過dblink訪問源資料庫

SQL> select * from dual@ttslink;

D
-
X

1.5 建立預備目錄
在源系統與目標系統中建立預備目錄,它們將被設定為xtt.properties檔案中的backupformat(源系統中存放增量備份檔案的目錄),backupondest(目標系統中存放轉換後的增量備份檔案的目錄)引數的值。如果使用RMAN備份方法,在源系統與目標系統中還需要為xtt.properties檔案中的dfcopydir(源系統中存放資料檔案副本的目錄,只有使用rman備份才使用),stageondest(目標系統中存放從源系統傳輸過來的資料檔案副本與增量備份的目錄,只有使用rman備份才使用)。

在源系統中執行下面的命令分別建立backupformat目錄(/home/backup),dfcopydir目錄(/home/dfcopydir)

[oracle@sjjh home]$ mkdir backup
[oracle@sjjh home]$ mkdir dfcopydir

在目標系統中執行下面的命令分別建立backupondest目錄(/oracle11/backup),stagenodest目錄(/oracle11/xtts)

IBMP740-2:/oracle11$mkdir backup
IBMP740-2:/oracle11$mkdir xtts

1.6在源系統中安裝xttconver指令碼
在源系統中,使用Oracle軟體使用者,下裁與解壓指令碼

[oracle@sjjh xtts_script]$ unzip rman_xttconvert_v3.zip
Archive:  rman_xttconvert_v3.zip
  inflating: xtt.properties
  inflating: xttcnvrtbkupdest.sql
  inflating: xttdbopen.sql
  inflating: xttdriver.pl
  inflating: xttprep.tmpl
 extracting: xttstartupnomount.sql
[oracle@sjjh xtts_script]$ ls -lrt
total 208
-rw-r--r-- 1 oracle oinstall   1390 May 24 16:57 xttcnvrtbkupdest.sql
-rw-r--r-- 1 oracle oinstall     52 May 24 16:57 xttstartupnomount.sql
-rw-r--r-- 1 oracle oinstall  11710 May 24 16:57 xttprep.tmpl
-rw-r--r-- 1 oracle oinstall 139331 May 24 16:57 xttdriver.pl
-rw-r--r-- 1 oracle oinstall     71 May 24 16:57 xttdbopen.sql
-rw-r--r-- 1 oracle oinstall   7969 Jun  5 08:47 xtt.properties
-rw-r--r-- 1 oracle oinstall  33949 Aug 14 17:25 rman_xttconvert_v3.zip

1.7 在源系統中配置xtt.properties檔案

[oracle@sjjh xtts_script]$ vi .xtt.properties
tablespaces=CDZJ,LDJC                                  --源資料庫中要被傳輸的表空間名
platformid=13                                          --源資料庫的platform_id
dfcopydir=/home/dfcopydir                              --源系統中存放資料檔案副本的目錄
backupformat=/home/backup                              --源系統中儲存增量備份的目錄
stageondest=/oracle11/xtts                             --目標系統中儲存資料檔案副本與增量備份的目錄
backupondest=/oracle11/backup                          --目標系統中儲存轉換後的增量備份目錄,只在使用RMAN備份方法才使用
storageondest=/oracle11/oradata/jycs/jycs              --目標系統中最終儲存轉換後資料檔案的目錄
cnvinst_home=/oracle11/app/oracle/product/11.2.0/db    --轉換Home目錄
cnvinst_sid=xtt                                        --轉換例項SID

1.8 將源系統中的轉換指令碼與xtt.properties檔案複製到目標系統中

IBMP740-2:/oracle11/xtts_script$ftp 10.138.130.101
Connected to 10.138.130.101.
220 (vsFTPd 2.2.2)
Name (10.138.130.101:root): oracle
331 Please specify the password.
Password:
230 Login successful.
ftp> cd /home/xtts_script
250 Directory successfully changed.
ftp> ls -lrt
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 501      501          1390 May 24 08:57 xttcnvrtbkupdest.sql
-rw-r--r--    1 501      501         11710 May 24 08:57 xttprep.tmpl
-rw-r--r--    1 501      501            52 May 24 08:57 xttstartupnomount.sql
-rw-r--r--    1 501      501            71 May 24 08:57 xttdbopen.sql
-rw-r--r--    1 501      501        139331 May 24 08:57 xttdriver.pl
-rw-r--r--    1 501      501          7969 Jun 05 00:47 xtt.properties.bak
-rw-r--r--    1 501      501         33949 Aug 14 09:25 rman_xttconvert_v3.zip
-rw-r--r--    1 501      501           255 Aug 16 06:58 xtt.properties
226 Directory send OK.

ftp> lcd /oracle11/xtts_script
Local directory now /oracle11/xtts_script
ftp> bin
200 Switching to Binary mode.
ftp> get xttcnvrtbkupdest.sql
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for xttcnvrtbkupdest.sql (1390 bytes).
226 Transfer complete.
1390 bytes received in 7.6e-05 seconds (1.786e+04 Kbytes/s)
local: xttcnvrtbkupdest.sql remote: xttcnvrtbkupdest.sql
ftp> get xttprep.tmpl
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for xttprep.tmpl (11710 bytes).
226 Transfer complete.
11710 bytes received in 0.000196 seconds (5.834e+04 Kbytes/s)
local: xttprep.tmpl remote: xttprep.tmpl
ftp> get xttstartupnomount.sql
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for xttstartupnomount.sql (52 bytes).
226 Transfer complete.
52 bytes received in 0.000103 seconds (493 Kbytes/s)
local: xttstartupnomount.sql remote: xttstartupnomount.sql
ftp> get xttdbopen.sql
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for xttdbopen.sql (71 bytes).
226 Transfer complete.
71 bytes received in 0.000106 seconds (654.1 Kbytes/s)
local: xttdbopen.sql remote: xttdbopen.sql
ftp> get xttdriver.pl
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for xttdriver.pl (139331 bytes).
226 Transfer complete.
139331 bytes received in 0.001805 seconds (7.538e+04 Kbytes/s)
local: xttdriver.pl remote: xttdriver.pl
ftp> get xtt.properties
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for xtt.properties (255 bytes).
226 Transfer complete.
255 bytes received in 0.00012 seconds (2075 Kbytes/s)
local: xtt.properties remote: xtt.properties

IBMP740-2:/oracle11/xtts_script$ls -lrt
total 336
-rw-r--r--    1 oracle11 oinstall       1390 Aug 16 15:44 xttcnvrtbkupdest.sql
-rw-r--r--    1 oracle11 oinstall      11710 Aug 16 15:45 xttprep.tmpl
-rw-r--r--    1 oracle11 oinstall         52 Aug 16 15:45 xttstartupnomount.sql
-rw-r--r--    1 oracle11 oinstall         71 Aug 16 15:45 xttdbopen.sql
-rw-r--r--    1 oracle11 oinstall     139331 Aug 16 15:45 xttdriver.pl
-rw-r--r--    1 oracle11 oinstall        255 Aug 16 15:46 xtt.properties

1.9 在源系統與目標系統中設定環境變TMPDIR,它指向轉換指令碼所在的目錄。為了執行Perl指令碼xttdriver.pl設定如下。如果TMPDIR沒有設定,那麼指令碼生成的輸出檔案將會存放在/tmp目錄中

[oracle@sjjh ~]$ export TMPDIR=/home/xtts_script

IBMP740-2:/oracle11$export TMPDIR=/oracle11/xtts_script

2.準備階段
在準備階段,被傳輸表空間的資料檔案會被傳輸到目標系統並且透過執行xttdriver.pl指令碼進行轉換。有以下兩種方法可以使用:
1. dbms_file_transfer方法
2. RMAN備份方法

對於大量資料檔案使用dbms_file_transfer方法要比傳輸資料檔案到目標系統更快。

2a.使用dbms_file_transfer方法
2a.1在源系統中執行準備操作
在源系統中,使用Oracle軟體使用者登入並設定相關環境變數(ORACLE_HOME與ORACLE_SID)來指向源資料庫,執行以下命令:

[oracle@source]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -S

準備操作將在源系統中執行以下操作
.驗證表空間是否online,read write且不包含離線資料檔案
.將建立後面所要使用的以下檔案:
xttnewdatafiles.txt
getfile.sql

要被傳輸的一組表空間必須是online,read write狀態且不包含離線資料檔案。如果在源資料庫中被傳輸表空間的一個或多個資料檔案是離線狀態或read only就會觸發錯誤。如果表空間在整個表空間傳輸過程中都保持read only狀態,那麼就使用傳統的跨平臺傳輸表空間,不要使用跨平臺增量備份傳輸表空間。

2a.2 傳輸資料檔案到目標系統中
在目標系統中,使用Oracle軟體使用者登入並設定相關環境變數(ORACLE_HOME與ORACLE_SID)來指向目標資料庫,並複製上一步生成的xttnewdatafiles.txt與getfile.sql檔案到目標系統並執行操作來獲取資料檔案

[oracle@dest]$ scp oracle@source:/home/oracle/xtt/xttnewdatafiles.txt /home/oracle/xtt
[oracle@dest]$ scp oracle@source:/home/oracle/xtt/getfile.sql /home/oracle/xtt

# MUST set environment to destination database
[oracle@dest]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -G

當這步操作完成後,要被傳輸的資料檔案會存放在目標系統最終存放資料檔案的目錄中。轉換操作會自動執行。

2b.使用RMAN備份方法
在這個階段表空間的資料檔案副本將被傳輸到目標系統中,並執行轉換操作,且將轉換後的資料檔案存放在目標資料庫最終存放資料檔案的目錄中。這個階段的操作只會執行一次。在執行這個階段的操作時被傳輸的資料在源資料庫中完全可以被訪問。

2b.1在源系統中執行準備操作
在源系統中,以Oracle軟體使用者登入並設定環境變數(ORACLE_HOME與ORACLE_SID)來指向源資料庫,執行以下命令

[oracle@sjjh ~]$ cd /home/xtts_script
[oracle@sjjh xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -p
============================================================
trace file is /home/xtts_script/prepare_Aug16_Wed_15_50_19_497//Aug16_Wed_15_50_19_497_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Starting prepare phase
--------------------------------------------------------------------

Prepare source for Tablespaces:
                  'CDZJ'  /oracle11/xtts
xttpreparesrc.sql for 'CDZJ' started at Wed Aug 16 15:50:19 2017
xttpreparesrc.sql for  ended at Wed Aug 16 15:50:19 2017
Prepare source for Tablespaces:
                  'LDJC'  /oracle11/xtts
xttpreparesrc.sql for 'LDJC' started at Wed Aug 16 15:51:08 2017
xttpreparesrc.sql for  ended at Wed Aug 16 15:51:08 2017
Prepare source for Tablespaces:
                  ''''  /oracle11/xtts
xttpreparesrc.sql for '''' started at Wed Aug 16 15:52:05 2017
xttpreparesrc.sql for  ended at Wed Aug 16 15:52:05 2017
Prepare source for Tablespaces:
                  ''''  /oracle11/xtts
xttpreparesrc.sql for '''' started at Wed Aug 16 15:52:06 2017
xttpreparesrc.sql for  ended at Wed Aug 16 15:52:06 2017
Prepare source for Tablespaces:
                  ''''  /oracle11/xtts
xttpreparesrc.sql for '''' started at Wed Aug 16 15:52:07 2017
xttpreparesrc.sql for  ended at Wed Aug 16 15:52:07 2017

--------------------------------------------------------------------
Done with prepare phase
--------------------------------------------------------------------


--------------------------------------------------------------------
Find list of datafiles in system
--------------------------------------------------------------------


--------------------------------------------------------------------
Done finding list of datafiles in system
--------------------------------------------------------------------

這個準備操作在源系統中執行以下操作:
.建立要被傳輸表空間的資料檔案副本並且將它們儲存在xtt.properties檔案中dfcopydir所指定的目錄中

[root@sjjh dfcopydir]# ls -lrt
total 7340056
-rw-r----- 1 oracle oinstall 2147491840 Aug 16 15:50 CDZJ_7.tf
-rw-r----- 1 oracle oinstall 5368717312 Aug 16 15:52 LDJC_6.tf

.驗證表空間是否為online,read write狀態,並且不包含離線資料檔案
.建立後面所需要用到的以下檔案

 xttplan.txt
 rmanconvert.cmd

xttplan.txt檔案的內容如下:

[root@sjjh xtts_script]# cat xttplan.txt
CDZJ::::14690156586805
7
LDJC::::14690156586805
6

該檔案中的數值,資料庫的SCN。如果後面再次執行指令碼進行增量操作時,該值會發現改變。

rmanconvert.cmd的內容如下:

[root@sjjh xtts_script]# cat rmanconvert.cmd
host 'echo ts::CDZJ';
  convert from platform 'Linux x86 64-bit'
  datafile
   '/oracle11/xtts/CDZJ_7.tf'
  format '/oracle11/oradata/jycs/jycs/%N_%f.dbf'
 parallelism 8;
host 'echo ts::LDJC';
  convert from platform 'Linux x86 64-bit'
  datafile
   '/oracle11/xtts/LDJC_6.tf'
  format '/oracle11/oradata/jycs/jycs/%N_%f.dbf'
 parallelism 8;

上述指令碼是perl指令碼產生的rman convert指令碼,需要將該指令碼傳遞到目標端主機。注意,上述指令碼檔案格式需要注意,同時並行度是預設的,可以進行調整。

要被傳輸的一組表空間必須是online,read write狀態且不包含離線資料檔案。如果在源資料庫中被傳輸表空間的一個或多個資料檔案是離線狀態或read only就會觸發錯誤。如果表空間在整個表空間傳輸過程中都保持read only狀態,那麼就使用傳統的跨平臺傳輸表空間,不要使用跨平臺增量備份傳輸表空間。

2b.2 將資料檔案副本傳輸到目標系統中
在目標系統中以Oracle軟體使用者登入,從源系統中將上一步生成的資料檔案副本傳輸到目標系統中。源系統中資料檔案副本儲存在xtt.properties檔案中dfcopydir引數所指定的目錄(home/dfcopydir)中。在目標系統中資料檔案副本必須存放xtt.properties檔案中stageondest目錄(/oracle11/xtts)中。

IBMP740-2:/oracle11/xtts$ftp 10.138.130.101
Connected to 10.138.130.101.
220 (vsFTPd 2.2.2)
Name (10.138.130.101:root): oracle
331 Please specify the password.
Password:
230 Login successful.
ftp> cd /home/dfcopydir
250 Directory successfully changed.
ftp> ls -lrt
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r-----    1 501      501      2147491840 Aug 16 07:50 CDZJ_7.tf
-rw-r-----    1 501      501      5368717312 Aug 16 07:52 LDJC_6.tf
226 Directory send OK.
ftp> lcd /oracle11/xtts
Local directory now /oracle11/xtts
ftp> bin
200 Switching to Binary mode.
ftp> get LDJC_6.tf
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for LDJC_6.tf (5368717312 bytes).
226 Transfer complete.
5368717312 bytes received in 45.68 seconds (1.148e+05 Kbytes/s)
local: LDJC_6.tf remote: LDJC_6.tf
ftp> get CDZJ_7.tf
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for CDZJ_7.tf (2147491840 bytes).
226 Transfer complete.
2147491840 bytes received in 18.52 seconds (1.132e+05 Kbytes/s)
local: CDZJ_7.tf remote: CDZJ_7.tf


IBMP740-2:/oracle11/xtts$ls -lrt
total 14680112
-rw-r--r--    1 oracle11 oinstall 5368717312 Aug 16 16:53 LDJC_6.tf
-rw-r--r--    1 oracle11 oinstall 2147491840 Aug 16 16:54 CDZJ_7.tf

2b.3 在目標系統中轉換資料檔案副本
在目標系統中以Oracle軟體使用者登入並設定環境變數(ORACLE_HOME與ORACLE_SID)來指向目標資料庫,將步驟2b.1中生成的指令碼檔案複製到目標系統中,然後執行以下命令來轉換資料檔案:

IBMP740-2:/oracle11/xtts$ftp 10.138.130.101
Connected to 10.138.130.101.
220 (vsFTPd 2.2.2)
Name (10.138.130.101:root): oracle
331 Please specify the password.
Password:
230 Login successful.
ftp> cd /home/xtts_script
250 Directory successfully changed.
ftp> lcd /oracle11/xtts_script
Local directory now /oracle11/xtts_script
ftp> bin
200 Switching to Binary mode.
ftp> ls -lrt
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 501      501          1390 May 24 08:57 xttcnvrtbkupdest.sql
-rw-r--r--    1 501      501         11710 May 24 08:57 xttprep.tmpl
-rw-r--r--    1 501      501            52 May 24 08:57 xttstartupnomount.sql
-rw-r--r--    1 501      501            71 May 24 08:57 xttdbopen.sql
-rw-r--r--    1 501      501        139331 May 24 08:57 xttdriver.pl
-rw-r--r--    1 501      501          7969 Jun 05 00:47 xtt.properties.bak
-rw-r--r--    1 501      501         33949 Aug 14 09:25 rman_xttconvert_v3.zip
-rw-r--r--    1 501      501           255 Aug 16 06:58 xtt.properties
-rw-r--r--    1 501      501            50 Aug 16 07:51 xttplan.txt
-rw-r--r--    1 501      501           354 Aug 16 07:51 rmanconvert.cmd
-rw-r--r--    1 501      501            96 Aug 16 07:52 xttnewdatafiles.txt
drwxr-xr-x    2 501      501          4096 Aug 16 07:52 prepare_Aug16_Wed_15_50_19_497
226 Directory send OK.
ftp> get xttplan.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for xttplan.txt (50 bytes).
226 Transfer complete.
50 bytes received in 5e-05 seconds (976.6 Kbytes/s)
local: xttplan.txt remote: xttplan.txt
ftp> get rmanconvert.cmd
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for rmanconvert.cmd (354 bytes).
226 Transfer complete.
354 bytes received in 5.9e-05 seconds (5859 Kbytes/s)
local: rmanconvert.cmd remote: rmanconvert.cmd
ftp> get xttnewdatafiles.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for xttnewdatafiles.txt (96 bytes).
226 Transfer complete.
96 bytes received in 5.5e-05 seconds (1705 Kbytes/s)
local: xttnewdatafiles.txt remote: xttnewdatafiles.txt


IBMP740-2:/oracle11$export TMPDIR=/oracle11/xtts_script
IBMP740-2:/oracle11$cd /oracle11/xtts_script
IBMP740-2:/oracle11/xtts_script$$ORACLE_HOME/perl/bin/perl xttdriver.pl -c
============================================================
trace file is /oracle11/xtts_script/convert_Aug16_Wed_17_02_24_689//Aug16_Wed_17_02_24_689_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Performing convert
--------------------------------------------------------------------

IBMP740-2:/oracle11/oradata/jycs/jycs$ls -lrt

-rw-r-----    1 oracle11 oinstall 2147491840 Aug 16 17:02 CDZJ_7.dbf
-rw-r-----    1 oracle11 oinstall 5368717312 Aug 16 17:03 LDJC_6.dbf

轉換操作會將儲存在目標系統xtt.properties檔案中stageondest引數所指定目錄(/oracle11/xtts)中的資料檔案副本的位元組序轉換為目標系統所使用的位元組序。轉後的資料檔案副本會被儲存在xtt.properties檔案中storageondest引數所指定目錄
(/oracle11/oradata/jycs/jycs)目錄中。這個目錄是目標資料庫最終儲存資料檔案的目錄。當這個步驟完成後,在目標系統中xtt.properties檔案中stageondest引數所指定目錄(/oracle11/xtts)中的資料檔案副本不再需要可以刪除。

3.前滾階段
下面在源資料庫中建立增量資料

SQL> create table ldjc.jy_test(user_id number(20));
Table created

SQL> insert into ldjc.jy_test values(1);
1 row inserted

SQL> commit;
Commit complete

SQL> select * from ldjc.jy_test;
              USER_ID
---------------------
                    1

SQL> create table cdzj.jy_test(user_id number(20));
Table created

SQL> insert into cdzj.jy_test values(1);
1 row inserted

SQL> commit;
Commit complete

SQL> select * from cdzj.jy_test;
              USER_ID
---------------------
                    1

在這個階段,會在源系統中對源資料庫建立增量備份,然後將生成的增量備份傳輸到目標系統中,並將增量備份轉換為目標系統所使用的位元組序,然後將轉換後的增量備份應用到轉換後的資料檔案進行前滾操作。這個階段的操作可以執行多次,每一次成功的增量備份應該比之前的增量備份花費更少的時間,並且讓目標系統中的資料檔案的內容更加接近源資料庫的內容。在這個階段源資料庫中被傳輸的資料完全可以被訪問。

3.1 在源系統中對被傳輸的表空間LDJC,CDZJ建立增量備份
在源系統中,以Oracle軟體使用者登入並設定環境變數(ORACLE_HOME與ORACLE_SID)來指向源資料庫,並執行以下命令來建立增量備份:

[oracle@sjjh xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -i
============================================================
trace file is /home/xtts_script/incremental_Aug16_Wed_16_39_56_791//Aug16_Wed_16_39_56_791_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Backup incremental
--------------------------------------------------------------------

============================================================
No new datafiles added
=============================================================
Prepare newscn for Tablespaces: 'CDZJ'
Prepare newscn for Tablespaces: 'LDJC'
Prepare newscn for Tablespaces: ''''
Prepare newscn for Tablespaces: ''''
Prepare newscn for Tablespaces: ''''

--------------------------------------------------------------------
Starting incremental backup
--------------------------------------------------------------------


--------------------------------------------------------------------
Done backing up incrementals
--------------------------------------------------------------------

上面的操作會執行RMAN命令對xtt.properties檔案中所指定的所有表空間生成增量備份檔案。並且還將建立以下檔案供後面的操作使用:
.tsbkupmap.txt
.incrbackups.txt

tsbkupmap.txt的內容如下:

[root@sjjh xtts_script]# cat tsbkupmap.txt
CDZJ::7:::1=30sc2f2u_1_1
LDJC::6:::1=31sc2f31_1_1

檔案中的內容記錄了表空間與增量備份的關聯關係

incrbackups.txt的內容如下:

[root@sjjh xtts_script]# cat incrbackups.txt
/home/backup/30sc2f2u_1_1
/home/backup/31sc2f31_1_1

檔案中的內容顯示了生成的增量備份檔案資訊

[oracle@sjjh backup]$ ls -lrt
total 888
-rw-r----- 1 oracle oinstall 122880 Aug 16 16:39 30sc2f2u_1_1
-rw-r----- 1 oracle oinstall 786432 Aug 16 16:40 31sc2f31_1_1

3.2 將增量備份傳輸到目標系統中
將上一步生成的增量備份傳輸到目標系統中由xtt.properties檔案中的stageondest目錄(/oracle11/xtts)中。

IBMP740-2:/oracle11/xtts$ftp 10.138.130.101
Connected to 10.138.130.101.
220 (vsFTPd 2.2.2)
Name (10.138.130.101:root): oracle
331 Please specify the password.
Password:
230 Login successful.
ftp> cd /home/backup
250 Directory successfully changed.
ftp> ls -lrt
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r-----    1 501      501        122880 Aug 16 08:39 30sc2f2u_1_1
-rw-r-----    1 501      501        786432 Aug 16 08:40 31sc2f31_1_1
226 Directory send OK.
ftp> lcd /oracle11/xtts
Local directory now /oracle11/xtts
ftp> bin
200 Switching to Binary mode.
ftp> get 30sc2f2u_1_1
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 30sc2f2u_1_1 (122880 bytes).
226 Transfer complete.
122880 bytes received in 0.001414 seconds (8.487e+04 Kbytes/s)
local: 30sc2f2u_1_1 remote: 30sc2f2u_1_1
ftp> get 31sc2f31_1_1
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 31sc2f31_1_1 (786432 bytes).
226 Transfer complete.
786432 bytes received in 0.007007 seconds (1.096e+05 Kbytes/s)
local: 31sc2f31_1_1 remote: 31sc2f31_1_1


IBMP740-2:/oracle11/xtts$ls -lrt
total 1776
-rw-r--r--    1 oracle11 oinstall     122880 Aug 16 17:37 30sc2f2u_1_1
-rw-r--r--    1 oracle11 oinstall     786432 Aug 16 17:37 31sc2f31_1_1

3.3 在目標系統中轉換增量備份並應用到資料檔案副本
在目標系統中以Oracle軟體使用者登入並設定環境變數(ORACLE_HOME與ORACLE_SID)來指向目標資料庫,並從源系統中將上一步生成的xttplan.txt與tsbkupmap.txt檔案。

IBMP740-2:/oracle11/xtts$ftp 10.138.130.101
Connected to 10.138.130.101.
220 (vsFTPd 2.2.2)
Name (10.138.130.101:root): oracle
331 Please specify the password.
Password:
230 Login successful.
ftp> cd  /home/xtts_script
250 Directory successfully changed.
ftp> ls -lrt
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 501      501          1390 May 24 08:57 xttcnvrtbkupdest.sql
-rw-r--r--    1 501      501         11710 May 24 08:57 xttprep.tmpl
-rw-r--r--    1 501      501            52 May 24 08:57 xttstartupnomount.sql
-rw-r--r--    1 501      501            71 May 24 08:57 xttdbopen.sql
-rw-r--r--    1 501      501        139331 May 24 08:57 xttdriver.pl
-rw-r--r--    1 501      501          7969 Jun 05 00:47 xtt.properties.bak
-rw-r--r--    1 501      501         33949 Aug 14 09:25 rman_xttconvert_v3.zip
-rw-r--r--    1 501      501           255 Aug 16 06:58 xtt.properties
-rw-r--r--    1 501      501            50 Aug 16 07:51 xttplan.txt
-rw-r--r--    1 501      501           354 Aug 16 07:51 rmanconvert.cmd
-rw-r--r--    1 501      501            96 Aug 16 07:52 xttnewdatafiles.txt
drwxr-xr-x    2 501      501          4096 Aug 16 07:52 prepare_Aug16_Wed_15_50_19_497
-rw-r--r--    1 501      501            54 Aug 16 08:39 xttplan.txt.new
-rw-r--r--    1 501      501            50 Aug 16 08:40 tsbkupmap.txt
-rw-r--r--    1 501      501            52 Aug 16 08:40 incrbackups.txt
drwxr-xr-x    2 501      501          4096 Aug 16 08:40 incremental_Aug16_Wed_16_39_56_791
226 Directory send OK.
ftp> lcd /oracle11/xtts_script
Local directory now /oracle11/xtts_script
ftp> bin
200 Switching to Binary mode.
ftp> get xttplan.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for xttplan.txt (50 bytes).
226 Transfer complete.
50 bytes received in 7.9e-05 seconds (618.1 Kbytes/s)
local: xttplan.txt remote: xttplan.txt
ftp> get tsbkupmap.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for tsbkupmap.txt (50 bytes).
226 Transfer complete.
50 bytes received in 0.00011 seconds (443.9 Kbytes/s)
local: tsbkupmap.txt remote: tsbkupmap.txt

IBMP740-2:/oracle11/xtts_script$cat xttplan.txt
CDZJ::::14690156586805
7
LDJC::::14690156586805
6
IBMP740-2:/oracle11/xtts_script$cat tsbkupmap.txt
CDZJ::7:::1=30sc2f2u_1_1
LDJC::6:::1=31sc2f31_1_1




IBMP740-2:/home/oracle11$export TMPDIR=/oracle11/xtts_script
IBMP740-2:/home/oracle11$cd /oracle11/xtts_script
IBMP740-2:/oracle11/xtts_script$export ORACLE_SID=jycs
IBMP740-2:/oracle11/xtts_script$export XTTDEBUG=1
IBMP740-2:/oracle11/xtts_script$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -r
============================================================
trace file is /oracle11/xtts_script/rollforward_Aug16_Wed_18_19_46_764//Aug16_Wed_18_19_46_764_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------

Key: backupondest
Values: /oracle11/backup
Key: platformid
Values: 13
Key: backupformat
Values: /home/backup
Key: storageondest
Values: /oracle11/oradata/jycs/jycs
Key: dfcopydir
Values: /home/dfcopydir
Key: cnvinst_home
Values: /oracle11/app/oracle/product/11.2.0/db
Key: cnvinst_sid
Values: xtt
Key: stageondest
Values: /oracle11/xtts
Key: tablespaces
Values: CDZJ,LDJC

--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------

ORACLE_SID  : jycs
ORACLE_HOME : /oracle11/app/oracle/product/11.2.0/db

--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------

ARGUMENT tablespaces
ARGUMENT platformid
ARGUMENT backupformat
ARGUMENT stageondest
ARGUMENT backupondest

--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------

ORACLE_SID  : xtt
ORACLE_HOME : /oracle11/app/oracle/product/11.2.0/db

--------------------------------------------------------------------
Start rollforward
--------------------------------------------------------------------

convert instance: /oracle11/app/oracle/product/11.2.0/db

convert instance: xtt

ORACLE instance started.

Total System Global Area  797712384 bytes
Fixed Size                  2250200 bytes
Variable Size             490736168 bytes
Database Buffers          268435456 bytes
Redo Buffers               36290560 bytes
rdfno 7

BEFORE ROLLPLAN

datafile number : 7

datafile name   : /oracle11/oradata/jycs/jycs/CDZJ_7.dbf

AFTER ROLLPLAN

CONVERTED BACKUP PIECE/oracle11/backup/xib_30sc2f2u_1_1_7

PL/SQL procedure successfully completed.
Entering RollForward
After applySetDataFile
Done: applyDataFileTo
Done: applyDataFileTo
Done: RestoreSetPiece
Done: RestoreBackupPiece

PL/SQL procedure successfully completed.
rdfno 6

BEFORE ROLLPLAN

datafile number : 6

datafile name   : /oracle11/oradata/jycs/jycs/LDJC_6.dbf

AFTER ROLLPLAN

CONVERTED BACKUP PIECE/oracle11/backup/xib_31sc2f31_1_1_6

PL/SQL procedure successfully completed.
Entering RollForward
After applySetDataFile
Done: applyDataFileTo
Done: applyDataFileTo
Done: RestoreSetPiece
Done: RestoreBackupPiece

PL/SQL procedure successfully completed.

--------------------------------------------------------------------
End of rollforward phase
--------------------------------------------------------------------

這步前滾資料檔案的操作,會以sys使用者連線到增量轉換例項,轉換完增量備份後,然後連線到目標資料庫並將增量備份應用到每個表空間注意:對於每一次增量備份都需要將xttplan.txt與tsbkupmap.txt檔案複製一次,不要對指令碼所生成的xttplan.txt.new檔案進行修改,複製或者其它任何改變。執行這步操作時目標例項會進行重啟操作。

3.4 為下一次增量備份判斷from_scn
再次生成增量資料

SQL> insert into ldjc.jy_test values(2);
1 row inserted

SQL> insert into cdzj.jy_test values(2);
1 row inserted

SQL> commit;
Commit complete

SQL> select * from ldjc.jy_test;
              USER_ID
---------------------
                    1
                    2

SQL> select * from cdzj.jy_test;
              USER_ID
---------------------
                    1
                    2

在源系統中,以Oracle軟體使用者登入並設定環境變數(ORACLE_HOME與ORACLE_SID)來指向源資料庫,執行以下命令來判斷from_scn:

[oracle@sjjh xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -s
============================================================
trace file is /home/xtts_script/determinescn_Aug16_Wed_17_52_34_308//Aug16_Wed_17_52_34_308_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------

Prepare newscn for Tablespaces: 'CDZJ'
Prepare newscn for Tablespaces: 'LDJC'
Prepare newscn for Tablespaces: ''''
Prepare newscn for Tablespaces: ''''
Prepare newscn for Tablespaces: ''''
New /home/xtts_script/xttplan.txt with FROM SCN's generated

這步操作會計算下一個from_scn,並記錄在xttplan.txt檔案中,當下次建立增量備份時會使用這個scn

[root@sjjh xtts_script]# cat xttplan.txt
 CDZJ::::14690180717851
 7
 LDJC::::14690180727235
 6

3.5 再次重複前滾階段或執行傳輸階段
這裡有兩種選擇:
1.如果如果將目標資料庫中的資料檔案與源資料庫中的資料檔案進行最接近的同步,那麼就重複執行前滾操作。
2.如果目標資料庫中的資料檔案與源資料庫中的資料檔案已經達到所期望的接近,那麼執行傳輸階段的操作。

注意:如果從上一次增量備份後增加了一個新的表空間或者一個新的表空間名增加到xtt.properties檔案中,那麼將會出現以下錯誤:

Error:
------
The incremental backup was not taken as a datafile has been added to the tablespace:

Please Do the following:
--------------------------
1. Copy fixnewdf.txt from source to destination temp dir

2. Copy backups:

from  to the  in destination

3. On Destination, run $ORACLE_HOME/perl/bin/perl xttdriver.pl --fixnewdf

4. Re-execute the incremental backup in source:
$ORACLE_HOME/perl/bin/perl xttdriver.pl --bkpincr

NOTE: Before running incremental backup, delete FAILED in source temp dir or
run xttdriver.pl with -L option:

$ORACLE_HOME/perl/bin/perl xttdriver.pl -L --bkpincr

These instructions must be followed exactly as listed. The next incremental backup will include the new datafile.

我這裡再次執行前滾操作
在源系統中,以Oracle軟體使用者登入並設定環境變數(ORACLE_HOME與ORACLE_SID)來指向源資料庫,並執行以下命令來建立增量備份:

[oracle@sjjh xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -i
============================================================
trace file is /home/xtts_script/incremental_Aug16_Wed_18_04_22_221//Aug16_Wed_18_04_22_221_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Backup incremental
--------------------------------------------------------------------

============================================================
No new datafiles added
=============================================================
Prepare newscn for Tablespaces: 'CDZJ'
Prepare newscn for Tablespaces: 'LDJC'
Prepare newscn for Tablespaces: ''''
Prepare newscn for Tablespaces: ''''
Prepare newscn for Tablespaces: ''''

--------------------------------------------------------------------
Starting incremental backup
--------------------------------------------------------------------


--------------------------------------------------------------------
Done backing up incrementals
--------------------------------------------------------------------

上面的操作會執行RMAN命令對xtt.properties檔案中所指定的所有表空間生成增量備份檔案。並且還將建立以下檔案供後面的操作使用:
.tsbkupmap.txt
.incrbackups.txt
tsbkupmap.txt的內容如下:

[root@sjjh xtts_script]# cat tsbkupmap.txt
LDJC::6:::1=33sc2k1b_1_1
CDZJ::7:::1=32sc2k18_1_1

檔案中的內容記錄了表空間與增量備份的關聯關係
incrbackups.txt的內容如下:

[root@sjjh xtts_script]# cat incrbackups.txt
/home/backup/33sc2k1b_1_1
/home/backup/32sc2k18_1_1

檔案中的內容顯示了生成的增量備份檔案資訊

[oracle@sjjh backup]$ ls -lrt

-rw-r----- 1 oracle oinstall 122880 Aug 16 18:04 32sc2k18_1_1
-rw-r----- 1 oracle oinstall 729088 Aug 16 18:04 33sc2k1b_1_1

將增量備份傳輸到目標系統中
將上一步生成的增量備份傳輸到目標系統中由xtt.properties檔案中的stageondest目錄(/oracle11/xtts)中。

IBMP740-2:/oracle11/xtts$ftp 10.138.130.101
Connected to 10.138.130.101.
220 (vsFTPd 2.2.2)
Name (10.138.130.101:root): oracle
331 Please specify the password.
Password:
230 Login successful.
ftp> cd /home/backup
250 Directory successfully changed.
ftp> lcd /oracle11/xtts
Local directory now /oracle11/xtts
ftp> bin
200 Switching to Binary mode.
ftp> get 32sc2k18_1_1
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 32sc2k18_1_1 (122880 bytes).
226 Transfer complete.
122880 bytes received in 0.001608 seconds (7.463e+04 Kbytes/s)
local: 32sc2k18_1_1 remote: 32sc2k18_1_1
ftp> get 33sc2k1b_1_1
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 33sc2k1b_1_1 (729088 bytes).
226 Transfer complete.
729088 bytes received in 0.006469 seconds (1.101e+05 Kbytes/s)
local: 33sc2k1b_1_1 remote: 33sc2k1b_1_1

IBMP740-2:/oracle11/xtts$ls -lrt

-rw-r--r--    1 oracle11 oinstall     122880 Aug 16 18:52 32sc2k18_1_1
-rw-r--r--    1 oracle11 oinstall     729088 Aug 16 18:52 33sc2k1b_1_1

在目標系統中轉換增量備份並應用到資料檔案副本
在目標系統中以Oracle軟體使用者登入並設定環境變數(ORACLE_HOME與ORACLE_SID)來指向目標資料庫,並從源系統中將上一步生成的xttplan.txt與tsbkupmap.txt檔案。

IBMP740-2:/oracle11/xtts$ftp 10.138.130.101
Connected to 10.138.130.101.
220 (vsFTPd 2.2.2)
Name (10.138.130.101:root): oracle
331 Please specify the password.
Password:
230 Login successful.

ftp> lcd /oracle11/xtts_script
Local directory now /oracle11/xtts_script
ftp> bin
200 Switching to Binary mode.
ftp> cd  /home/xtts_script
250 Directory successfully changed.
ftp> get xttplan.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for xttplan.txt (54 bytes).
226 Transfer complete.
54 bytes received in 9.4e-05 seconds (561 Kbytes/s)
local: xttplan.txt remote: xttplan.txt
ftp> get tsbkupmap.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for tsbkupmap.txt (50 bytes).
226 Transfer complete.
50 bytes received in 0.000107 seconds (456.3 Kbytes/s)
local: tsbkupmap.txt remote: tsbkupmap.txt


IBMP740-2:/oracle11/xtts_script$cat xttplan.txt
 CDZJ::::14690180717851
 7
 LDJC::::14690180727235
 6
IBMP740-2:/oracle11/xtts_script$cat tsbkupmap.txt
LDJC::6:::1=33sc2k1b_1_1
CDZJ::7:::1=32sc2k18_1_1


IBMP740-2:/oracle11/xtts_script$export TMPDIR=/oracle11/xtts_script
IBMP740-2:/oracle11/xtts_script$cd /oracle11/xtts_script
IBMP740-2:/oracle11/xtts_script$export ORACLE_SID=jycs
IBMP740-2:/oracle11/xtts_script$export XTTDEBUG=1
IBMP740-2:/oracle11/xtts_script$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -r
============================================================
trace file is /oracle11/xtts_script/rollforward_Aug16_Wed_19_02_23_450//Aug16_Wed_19_02_23_450_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------

Key: backupondest
Values: /oracle11/backup
Key: platformid
Values: 13
Key: backupformat
Values: /home/backup
Key: storageondest
Values: /oracle11/oradata/jycs/jycs
Key: dfcopydir
Values: /home/dfcopydir
Key: cnvinst_home
Values: /oracle11/app/oracle/product/11.2.0/db
Key: cnvinst_sid
Values: xtt
Key: stageondest
Values: /oracle11/xtts
Key: tablespaces
Values: CDZJ,LDJC

--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------

ARGUMENT tablespaces
ARGUMENT platformid
ARGUMENT backupformat
ARGUMENT stageondest
ARGUMENT backupondest

--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------

ORACLE_SID  : jycs
ORACLE_HOME : /oracle11/app/oracle/product/11.2.0/db

--------------------------------------------------------------------
Start rollforward
--------------------------------------------------------------------

convert instance: /oracle11/app/oracle/product/11.2.0/db

convert instance: xtt

ORACLE instance started.

Total System Global Area 4275781632 bytes
Fixed Size                  2253216 bytes
Variable Size             922750560 bytes
Database Buffers         3305111552 bytes
Redo Buffers               45666304 bytes
rdfno 7

BEFORE ROLLPLAN

datafile number : 7

datafile name   : /oracle11/oradata/jycs/jycs/CDZJ_7.dbf

AFTER ROLLPLAN

CONVERTED BACKUP PIECE/oracle11/backup/xib_32sc2k18_1_1_7

PL/SQL procedure successfully completed.
Entering RollForward
After applySetDataFile
Done: applyDataFileTo
Done: applyDataFileTo
Done: RestoreSetPiece
Done: RestoreBackupPiece

PL/SQL procedure successfully completed.
rdfno 6

BEFORE ROLLPLAN

datafile number : 6

datafile name   : /oracle11/oradata/jycs/jycs/LDJC_6.dbf

AFTER ROLLPLAN

CONVERTED BACKUP PIECE/oracle11/backup/xib_33sc2k1b_1_1_6

PL/SQL procedure successfully completed.
Entering RollForward
After applySetDataFile
Done: applyDataFileTo
Done: applyDataFileTo
Done: RestoreSetPiece
Done: RestoreBackupPiece

PL/SQL procedure successfully completed.

--------------------------------------------------------------------
End of rollforward phase
--------------------------------------------------------------------

這步前滾資料檔案的操作,會以sys使用者連線到增量轉換例項,轉換完增量備份後,然後連線到目標資料庫並將增量備份應用到每個表空間注意:對於每一次增量備份都需要將xttplan.txt與tsbkupmap.txt檔案複製一次,不要對指令碼所生成的xttplan.txt.new檔案進行修改,複製或者其它任何改變。執行這步操作時目標例項會進行重啟操作。

為下一次增量備份判斷from_scn
再次生成增量資料

SQL> insert into ldjc.jy_test values(3);
1 row inserted

SQL> insert into cdzj.jy_test values(3);
1 row inserted

SQL> commit;
Commit complete

SQL> select * from ldjc.jy_test;
              USER_ID
---------------------
                    1
                    2
                    3

SQL> select * from cdzj.jy_test;
              USER_ID
---------------------
                    1
                    2
                    3

在源系統中,以Oracle軟體使用者登入並設定環境變數(ORACLE_HOME與ORACLE_SID)來指向源資料庫,執行以下命令來判斷from_scn:

[oracle@sjjh xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -s
============================================================
trace file is /home/xtts_script/determinescn_Aug16_Wed_18_25_13_253//Aug16_Wed_18_25_13_253_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------

Prepare newscn for Tablespaces: 'CDZJ'
Prepare newscn for Tablespaces: 'LDJC'
Prepare newscn for Tablespaces: ''''
Prepare newscn for Tablespaces: ''''
Prepare newscn for Tablespaces: ''''
New /home/xtts_script/xttplan.txt with FROM SCN's generated

[root@sjjh xtts_script]# cat xttplan.txt
 CDZJ::::14690185295398
 7
 LDJC::::14690185295430
 6

4.傳輸階段
在執行傳輸階段操作時,源資料庫中被傳輸表空間要設定為read only狀態,並且透過建立與應用最後一次的增量備份使用目標資料庫中的資料檔案與源資料庫中的資料檔案內容保持一致。在目標資料庫資料檔案與源資料庫資料檔案內容達成一致後,在源系統中執行正常的傳輸表空間操作來匯出後設資料,然後將後設資料匯入到目標資料庫中。直到傳輸階段操作完成之前,被傳輸的資料只能以read only模式被訪問。

4.1 將源資料庫中被傳輸表空間設定為read only狀態
在源系統中,以Oracle軟體使用者登入並設定環境變數(ORACLE_HOME與ORACLE_SID)來指向源資料庫,並執行以下命令將表空間設定為read only:

SQL> alter tablespace ldjc read only;

Tablespace altered.

SQL> alter tablespace cdzj read only;

Tablespace altered.

4.2 最後一次建立增量備份,並傳輸到目標系統且執行轉換並應用到目標資料檔案
在源系統中,以Oracle軟體使用者登入並設定環境變數(ORACLE_HOME與ORACLE_SID)來指向源資料庫,並執行以下命令來建立增量備份:

[oracle@sjjh xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -i
============================================================
trace file is /home/xtts_script/incremental_Aug16_Wed_18_33_49_991//Aug16_Wed_18_33_49_991_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Backup incremental
--------------------------------------------------------------------

============================================================
No new datafiles added
=============================================================
Prepare newscn for Tablespaces: 'CDZJ'
Prepare newscn for Tablespaces: 'LDJC'
Prepare newscn for Tablespaces: ''''
Prepare newscn for Tablespaces: ''''
Prepare newscn for Tablespaces: ''''

--------------------------------------------------------------------
Starting incremental backup
--------------------------------------------------------------------


--------------------------------------------------------------------
Done backing up incrementals
--------------------------------------------------------------------

上面的操作會執行RMAN命令對xtt.properties檔案中所指定的所有表空間生成增量備份檔案。並且還將建立以下檔案供後面的操作使用:
.tsbkupmap.txt
.incrbackups.txt

tsbkupmap.txt的內容如下:

[root@sjjh xtts_script]# cat tsbkupmap.txt
CDZJ::7:::1=34sc2lof_1_1
LDJC::6:::1=35sc2loi_1_1

檔案中的內容記錄了表空間與增量備份的關聯關係

incrbackups.txt的內容如下:

[root@sjjh xtts_script]# cat incrbackups.txt
/home/backup/34sc2lof_1_1
/home/backup/35sc2loi_1_1

檔案中的內容顯示了生成的增量備份檔案資訊

[oracle@sjjh backup]$ ls -lrt

-rw-r----- 1 oracle oinstall  49152 Aug 16 18:33 34sc2lof_1_1
-rw-r----- 1 oracle oinstall 450560 Aug 16 18:33 35sc2loi_1_1

將增量備份傳輸到目標系統中
將上一步生成的增量備份傳輸到目標系統中由xtt.properties檔案中的stageondest目錄(/oracle11/xtts)中。

IBMP740-2:/oracle11/xtts$ftp 10.138.130.101
Connected to 10.138.130.101.
220 (vsFTPd 2.2.2)
Name (10.138.130.101:root): oracle
331 Please specify the password.
Password:
230 Login successful.
ftp> cd /home/backup
250 Directory successfully changed.
ftp> lcd /oracle11/xtts
Local directory now /oracle11/xtts
ftp> bin
200 Switching to Binary mode.
ftp> get 34sc2lof_1_1
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 34sc2lof_1_1 (49152 bytes).
226 Transfer complete.
49152 bytes received in 0.000707 seconds (6.789e+04 Kbytes/s)
local: 34sc2lof_1_1 remote: 34sc2lof_1_1
ftp> get 35sc2loi_1_1
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 35sc2loi_1_1 (450560 bytes).
226 Transfer complete.
450560 bytes received in 0.004065 seconds (1.082e+05 Kbytes/s)
local: 35sc2loi_1_1 remote: 35sc2loi_1_1

IBMP740-2:/oracle11/xtts$ls -lrt

-rw-r--r--    1 oracle11 oinstall      49152 Aug 16 19:19 34sc2lof_1_1
-rw-r--r--    1 oracle11 oinstall     450560 Aug 16 19:20 35sc2loi_1_1

在目標系統中轉換增量備份並應用到資料檔案副本
在目標系統中以Oracle軟體使用者登入並設定環境變數(ORACLE_HOME與ORACLE_SID)來指向目標資料庫,並從源系統中將上一步生成的xttplan.txt與tsbkupmap.txt檔案。

ftp> cd /home/xtts_script
250 Directory successfully changed.
ftp> lcd /oracle11/xtts_script
Local directory now /oracle11/xtts_script
ftp> bin
200 Switching to Binary mode.
ftp> get xttplan.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for xttplan.txt (54 bytes).
226 Transfer complete.
54 bytes received in 5.4e-05 seconds (976.6 Kbytes/s)
local: xttplan.txt remote: xttplan.txt
ftp> get tsbkupmap.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for tsbkupmap.txt (50 bytes).
226 Transfer complete.
50 bytes received in 5.1e-05 seconds (957.4 Kbytes/s)
local: tsbkupmap.txt remote: tsbkupmap.txt

IBMP740-2:/oracle11/xtts_script$cat xttplan.txt
 CDZJ::::14690185295398
 7
 LDJC::::14690185295430
 6
IBMP740-2:/oracle11/xtts_script$cat tsbkupmap.txt
CDZJ::7:::1=34sc2lof_1_1
LDJC::6:::1=35sc2loi_1_1

IBMP740-2:/oracle11/xtts_script$$ORACLE_HOME/perl/bin/perl xttdriver.pl -r
============================================================
trace file is /oracle11/xtts_script/rollforward_Aug16_Wed_19_24_53_790//Aug16_Wed_19_24_53_790_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------

Key: backupondest
Values: /oracle11/backup
Key: platformid
Values: 13
Key: backupformat
Values: /home/backup
Key: storageondest
Values: /oracle11/oradata/jycs/jycs
Key: dfcopydir
Values: /home/dfcopydir
Key: cnvinst_home
Values: /oracle11/app/oracle/product/11.2.0/db
Key: cnvinst_sid
Values: xtt
Key: stageondest
Values: /oracle11/xtts
Key: tablespaces
Values: CDZJ,LDJC

--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------

ARGUMENT tablespaces
ARGUMENT platformid
ARGUMENT backupformat
ARGUMENT stageondest
ARGUMENT backupondest

--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------

ORACLE_SID  : jycs
ORACLE_HOME : /oracle11/app/oracle/product/11.2.0/db

--------------------------------------------------------------------
Start rollforward
--------------------------------------------------------------------

convert instance: /oracle11/app/oracle/product/11.2.0/db

convert instance: xtt

ORACLE instance started.

Total System Global Area 4275781632 bytes
Fixed Size                  2253216 bytes
Variable Size             922750560 bytes
Database Buffers         3305111552 bytes
Redo Buffers               45666304 bytes
rdfno 7

BEFORE ROLLPLAN

datafile number : 7

datafile name   : /oracle11/oradata/jycs/jycs/CDZJ_7.dbf

AFTER ROLLPLAN

CONVERTED BACKUP PIECE/oracle11/backup/xib_34sc2lof_1_1_7

PL/SQL procedure successfully completed.
Entering RollForward
After applySetDataFile
Done: applyDataFileTo
Done: applyDataFileTo
Done: RestoreSetPiece
Done: RestoreBackupPiece

PL/SQL procedure successfully completed.
rdfno 6

BEFORE ROLLPLAN

datafile number : 6

datafile name   : /oracle11/oradata/jycs/jycs/LDJC_6.dbf

AFTER ROLLPLAN

CONVERTED BACKUP PIECE/oracle11/backup/xib_35sc2loi_1_1_6

PL/SQL procedure successfully completed.
Entering RollForward
After applySetDataFile
Done: applyDataFileTo
Done: applyDataFileTo
Done: RestoreSetPiece
Done: RestoreBackupPiece

PL/SQL procedure successfully completed.

--------------------------------------------------------------------
End of rollforward phase
--------------------------------------------------------------------

4.3 在目標資料庫中匯入後設資料
在目標系統中以Oracle軟體使用者登入並設定環境變數(ORACLE_HOME與ORACLE_SID)來指向目標資料庫,執行以下命令來生成Data Pump TTS命令:

IBMP740-2:/oracle11/xtts_script$$ORACLE_HOME/perl/bin/perl xttdriver.pl -e
============================================================
trace file is /oracle11/xtts_script/generate_Aug16_Wed_19_27_43_910//Aug16_Wed_19_27_43_910_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------

Key: backupondest
Values: /oracle11/backup
Key: platformid
Values: 13
Key: backupformat
Values: /home/backup
Key: storageondest
Values: /oracle11/oradata/jycs/jycs
Key: dfcopydir
Values: /home/dfcopydir
Key: cnvinst_home
Values: /oracle11/app/oracle/product/11.2.0/db
Key: cnvinst_sid
Values: xtt
Key: stageondest
Values: /oracle11/xtts
Key: tablespaces
Values: CDZJ,LDJC

--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------

ARGUMENT tablespaces
ARGUMENT platformid
ARGUMENT backupformat
ARGUMENT stageondest

--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------

ORACLE_SID  : jycs
ORACLE_HOME : /oracle11/app/oracle/product/11.2.0/db

--------------------------------------------------------------------
Generating plugin
--------------------------------------------------------------------


--------------------------------------------------------------------
Done generating plugin file /oracle11/xtts_script/xttplugin.txt
--------------------------------------------------------------------

IBMP740-2:/oracle11/xtts_script$cat /oracle11/xtts_script/xttplugin.txt
impdp directory= logfile= \
network_link= transport_full_check=no \
transport_tablespaces=CDZJ,LDJC \
transport_datafiles='/oracle11/oradata/jycs/jycs/CDZJ_7.dbf','/oracle11/oradata/jycs/jycs/LDJC_6.dbf'

上面的命令會生成一個名叫xttplugin.txt的檔案,檔案建立了一個使用network_link引數執行傳輸表空間匯入後設資料的命令。命令中的transport_tablespaces與transport_datafiles引數已經設定正確。注意network_link模式指示匯入透過使用dblink來完成,就不需要執行匯出或使用dump檔案。如果選擇執行這個命令來完成表空間的傳輸就需要修改directory,logfile與network_link引數

SQL> create directory dump_dir as '/oracle11/xtts_script';

Directory created.
SQL> grant read,write on directory dump_dir to public;

Grant succeeded.

在目標資料庫中建立一個dblink連線到源資料庫。例如建立一個名叫ttslink的dblink,執行以下命令:

SQL> create public database link ttslink
  2    connect to system identified by "xxzx7817600"
  3    using '(DESCRIPTION =
  4      (ADDRESS_LIST =
  5        (ADDRESS = (PROTOCOL = TCP)(HOST =10.138.130.101)(PORT = 1521))
  6      )
  7      (CONNECT_DATA =
  8        (SERVER = DEDICATED)
  9        (SERVICE_NAME =sjjh)
 10      )
 11    )';

Database link created.

建立dblink後驗證是否可以能過dblink訪問源資料庫

SQL> select * from dual@ttslink;

D
-
X

在目標資料庫中建立使用者方案LDJC,CDZJ

SQL> create user ldjc identified by "ldjc";

User created.

SQL> grant dba,connect,resource to ldjc;

Grant succeeded.

SQL> create user cdzj identified by "cdzj";

User created.


SQL> grant dba,connect,resource to cdzj;

Grant succeeded.


IBMP740-2:/oracle11/xtts_script$impdp system/abcd directory=dump_dir logfile=tts_imp.log network_link=ttslink transport_full_check=no transport_tablespaces=CDZJ,LDJC transport_datafiles='/oracle11/oradata/jycs/jycs/CDZJ_7.dbf','/oracle11/oradata/jycs/jycs/LDJC_6.dbf'

Import: Release 11.2.0.4.0 - Production on Wed Aug 16 19:49:01 2017

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

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":  system/******** directory=dump_dir logfile=tts_imp.log network_link=ttslink transport_full_check=no transport_tablespaces=CDZJ,LDJC transport_datafiles=/oracle11/oradata/jycs/jycs/CDZJ_7.dbf,/oracle11/oradata/jycs/jycs/LDJC_6.dbf
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT
Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/COMMENT
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT
Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at Wed Aug 16 19:50:19 2017 elapsed 0 00:01:17


IBMP740-2:/home/oracle11$impdp system/abcd directory=dump_dir logfile=ysj.log schemas=ldjc,cdzj content=metadata_only exclude=table,index network_link=ttslink

Import: Release 11.2.0.4.0 - Production on Fri Aug 18 08:40:01 2017

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

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_IMPORT_SCHEMA_01":  system/******** directory=dump_dir logfile=ysj.log schemas=ldjc,cdzj content=metadata_only exclude=table,index network_link=ttslink
Processing object type SCHEMA_EXPORT/USER
ORA-31684: Object type USER:"LDJC" already exists
ORA-31684: Object type USER:"CDZJ" already exists
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/SYNONYM/SYNONYM
Processing object type SCHEMA_EXPORT/TYPE/TYPE_SPEC
Processing object type SCHEMA_EXPORT/DB_LINK
Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/FUNCTION/FUNCTION
Processing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
Processing object type SCHEMA_EXPORT/VIEW/VIEW
ORA-39082: Object type VIEW:"LDJC"."DB03" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."AA10" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."AA12" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."AB01" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."AB01H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."AB01_LOG" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."AB01_USER" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."AB01_WEB" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."AB01_WEB_NSLOG" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."AB02" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."AB02H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."AB02_WEB" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB01" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB01H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB01_WEB" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB02" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB02H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB02_WEB" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB03" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB03H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB03_WEB" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB04" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB04H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB04_WEB" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB05" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB05H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BB05_WEB" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BC02" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BC02H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BC02_LOG" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BD01_WEB" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BD02_WEB" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BD03_WEB" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BF01" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BF01H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ01" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ01H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ01_1" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ02" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ02H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ02_1" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ03" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ03H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ04" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ04H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ04_1" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ05" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ05H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ05_1" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ06" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ06H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ07" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ07H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ07_1" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ08" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ08H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ09" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ09H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ09_TEMP" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ10" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ10H" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ10_LOG" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."BZ11_WEB" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."OAE300_LOG" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."TEMP_AAB002" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."V_JCXT_AJGL_JABP" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."JCXT_AJGL_ZWNR" created with compilation warnings
ORA-39082: Object type VIEW:"LDJC"."V_JCXT_AJGL_LABP" created with compilation warnings
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
ORA-39082: Object type PACKAGE_BODY:"LDJC"."QUEST_SOO_PKG" created with compilation warnings
ORA-39082: Object type PACKAGE_BODY:"LDJC"."QUEST_SOO_SQLTRACE" created with compilation warnings
Processing object type SCHEMA_EXPORT/JOB
Processing object type SCHEMA_EXPORT/POST_SCHEMA/PROCOBJ
Job "SYSTEM"."SYS_IMPORT_SCHEMA_01" completed with 72 error(s) at Fri Aug 18 08:40:22 2017 elapsed 0 00:00:20




SQL> select * from ldjc.jy_test;

   USER_ID
----------
         1
         2
         3

SQL> select * from cdzj.jy_test;

   USER_ID
----------
         1
         2
         3

在後設資料匯入後,可以將源資料庫中的表空間ldjc,cdzj修改為read write狀態

SQL> alter tablespace ldjc read write;

Tablespace altered.

SQL>  alter tablespace cdzj read write;

Tablespace altered.

如果不使用network_link執行匯入,那麼可以執行傳輸表空間模式的data pump匯出後設資料,然後將後設資料複製到目標資料庫,再執行匯入。

4.4 將目標資料庫中的表空間ldjc,cdzj修改為read write狀態

SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME                STATUS
------------------------------ ---------
SYSTEM                         ONLINE
SYSAUX                         ONLINE
UNDOTBS1                       ONLINE
TEMP                           ONLINE
USERS                          ONLINE
EXAMPLE                        ONLINE
CDZJ                           READ ONLY
LDJC                           READ ONLY


SQL> alter tablespace ldjc read write;

Tablespace altered.

SQL> alter tablespace cdzj read write;

Tablespace altered.

SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME                STATUS
------------------------------ ---------
SYSTEM                         ONLINE
SYSAUX                         ONLINE
UNDOTBS1                       ONLINE
TEMP                           ONLINE
USERS                          ONLINE
EXAMPLE                        ONLINE
CDZJ                           ONLINE
LDJC                           ONLINE

4.5 驗證傳輸的資料
在這一步,在目標資料庫中被傳輸過來的表空間設定為read only狀態,然後執行應用程式來進行驗證。也可以使用RMAN來檢查物理與邏輯塊損壞的情況。

IBMP740-2:/oracle11/xtts$export ORACLE_SID=jycs
IBMP740-2:/oracle11/xtts$rman target/

RMAN> validate tablespace LDJC,CDZJ check logical;

Starting validate at 2017-08-16 20:00:52
using channel ORA_DISK_1
channel ORA_DISK_1: starting validation of datafile
channel ORA_DISK_1: specifying datafile(s) for validation
input datafile file number=00007 name=/oracle11/oradata/jycs/jycs/LDJC_6.dbf
input datafile file number=00006 name=/oracle11/oradata/jycs/jycs/CDZJ_7.dbf
channel ORA_DISK_1: validation complete, elapsed time: 00:00:25
List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
6    OK     0              255625       262144          14690188839620
  File Name: /oracle11/oradata/jycs/jycs/CDZJ_7.dbf
  Block Type Blocks Failing Blocks Processed
  ---------- -------------- ----------------
  Data       0              6239
  Index      0              0
  Other      0              280

File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
7    OK     0              3818         655360          14690187700475
  File Name: /oracle11/oradata/jycs/jycs/LDJC_6.dbf
  Block Type Blocks Failing Blocks Processed
  ---------- -------------- ----------------
  Data       0              361553
  Index      0              286299
  Other      0              3690

Finished validate at 2017-08-16 20:01:17

5.清除階段
如果為了遷移建立了單獨的轉換home與例項,那麼在傳輸表空間操作完成之後可以關閉例項並刪除軟體。為了執行跨平臺增量備份傳輸表空間而建立的檔案與目錄也可以刪除了,例如:
.源系統中的dfcopydir目錄
.源系統中的backupformat目錄
.目標系統中的stageondest目錄
.目標系統中的backupondest目錄
.源系統與目標系統中的$TMPDIR環境變數

Perl指令碼xttdriver.pl選項
-S 準備傳輸源:-S選項只有當使用dbms_file_transfer方法傳輸資料檔案時使用。這個準備操作在源系統中只對源資料庫執行一次。這步操作將建立xttnewdatafiles.txt與getfile.sql檔案

-G 從源系統獲取資料檔案:-G選項只有當使用dbms_file_transfer方法傳輸資料檔案時使用。獲取資料檔案操作在目標系統中對目標資料庫只執行一次。-S選項必須在它之前執行一次,並將生成的xttnewdatafiles.txt與getfile.sql檔案傳輸到目標系統。-G選項會連線到目標資料庫並執行指令碼getfile.sql。getfile.sql將呼叫dbms_file_transfer.get_file()過程透過使用dblink(srclink)來從源資料庫的目錄物件(srcdir)中獲取要被傳輸的資料檔案到目標資料庫的目錄物件(dstdir)中。

-p 準備對源資料庫執行備份:-p選項只有當使用RMAN備份方法來生成資料檔案副本時才使用。這步操作在源系統中對源資料庫只執行一次。這步操作會連線到源資料庫並對要被傳輸的每個表空間執行一次xttpreparesrc.sql指令碼。xttpreparesrc.sql會執行以下操作:
1.驗證表空間是否處於online,read write模式與是否不包含離線資料檔案
2.標識第一次執行增量備份操作時所需要使用的SCN資訊並將它們寫入$TMPDIR目錄中的xttplan.txt檔案中
3.在源系統中會在xtt.properties檔案的dfcopydir引數所指定的目錄中建立初始化資料檔案副本。這些資料檔案副本必須手動傳輸到目標每張
4.建立RMAN指令碼$TMPDIR/rmanconvert.cmd,在目標系統中它將被用來將資料檔案副本的位元組序轉換為目標系統所使用的位元組序

-c 轉換資料檔案:-c選項只有當使用RMAN備份建立初始化資料檔案副本時才使用。在目標系統中轉換資料檔案副本只執行一次。這步操作將使用rmanconvert.cmd檔案來將資料檔案副本轉換為目標系統所使用的位元組序。轉換後的資料檔案副本會被儲存到xtt.properties檔案的storageondest引數所指定的目錄中,也就是最終目標資料庫儲存資料檔案的目錄。

-i 建立增量備份: 建立增量備份可以對源資料庫執行一次或多次。這個步驟會讀取$TMPDIR/xttplan.txt中所記錄的SCN並生成用於前滾目標系統上資料檔案副本的增量備份檔案。

-r 前滾資料檔案:對於建立的每個增量備份都會對目標資料庫的資料檔案進行前滾操作。這步操作會連線到cnvinst_home與cnvinst_sid所定義的增量轉換例項,轉換所建立的增量備份,那麼連線到目標資料庫對資料檔案應用增量備份進行前滾操作。

-s 判斷新的from_scn:對源資料庫判斷新的from_scn可以執行一次或多次。這步操作會計算下次增量備份所需要的from_scn,並將其記錄在xttplan.txt檔案中,然後當下一次建立增量備份的就會使用它。

-e 生成Data Pump TTS命令:在目標系統中對目標資料庫只執行一次來生成Data Pump TTS命令。這步操作將建立一個使用dblink來匯入後設資料的Data Pump Import命令

-d debug:-d選項能以debug模式來執行xttdriver.pl與RMAN命令。要啟用debug模式需要設定環境變數XTTDEBUG=1

xtt.properties檔案引數說明
tablespaces:用逗號來分隔從源資料庫要被傳輸到目標資料庫的表空間列表,例如tablespaces=TS1,TS2

platformid:從v$database.platform_id獲得的源資料庫的platform id,例如platformid=13

srcdir:源資料庫中的目錄物件,它指向源資料庫中儲存資料檔案的目錄。多個目錄可以使用逗號進行分隔。srcdir與dstdir的對映可以是N:1或N:N。例如可以有多個源目錄且檔案儲存到單個目標目錄或者檔案來自一個特定源目錄將被儲存到一個特定的目標目錄。這個引數只有使用dbms_file_transfer來傳輸資料檔案時才使用,例如srcdir=SOURCEDIR,srcdir=SRC1,SRC2

dstdir:目標資料庫中的目錄物件,它指向目標資料庫中儲存資料檔案的目錄。如果使用了多個源目錄(srcdir),那麼可以定義多個目標目錄以便將特定源目錄中的檔案寫入特定的目標目錄中。這個引數只有使用dbms_file_transfer來傳輸資料檔案時才使用,例如
dstdir=DESTDIR,dstdir=DST1,DST2

srclink:目標資料庫中連線到源資料庫的dblink。使用dbms_file_transfer傳輸資料檔案時會使用這個dblink。這個引數只有使用dbms_file_transfer來傳輸資料檔案時才使用,例如srclink=ttslink

dfcopydir:源系統中用來儲存xttdriver.pl -p操作所生成的資料檔案副本目錄。這個目錄要有足夠的空間來儲存所有被傳輸表空間的資料檔案副本。這個目錄可以是目標系統上透過NFS-mounted檔案系統所掛載到源系統中的一個目錄,在這種情況下,目標系統中的stageondest引數也引用這個相同的NFS目錄。可以參考See Note 359515.1 for mount option guidelines。 這個引數只有使用RMAN備份生成資料檔案副本時才使用,例如dfcopydir=/stage_source

backupformat:源系統中儲存增量備份檔案的目錄。這個目錄必須要有足夠的空間來儲存所有建立的增量備份檔案。這個目錄可以是目標系統上透過NFS-mounted檔案系統所掛載到源系統中的一個目錄,在這種情況下,目標系統中的stageondest引數也引用這個相同的NFS目錄。例如,backupformat=/stage_source

stageondest:目標系統中儲存從源系統中手動傳輸過來的資料檔案副本。這個目錄要有足夠的空間來儲存資料檔案副本。這個目錄同時也是用來儲存從源系統傳輸過來的增量備份檔案的目錄。在目標系統上執行xttdriver.pl -c轉換資料檔案與執行xttdriver.pl -r前滾資料檔案時會從這個目錄中讀取資料檔案副本與增量備份檔案。這個目標也可以是一個DBFS-mounted檔案系統。個目錄可以是源系統上透過NFS-mounted檔案系統所掛載到目標系統中的一個目錄,在這種情況下,源系統中的backupformat引數與dfcopydir引數就會引用這個相同的NFS目錄。可以參考See Note 359515.1 for mount option guidelines。例如stageondest=/stage_dest

storageondest:目標系統中用來儲存xttdriver.pl -c轉換操作後所生成的資料檔案副本的目錄,也就是目標資料庫最終儲存資料檔案的目錄。這個目錄要有足夠的空間來永久儲存資料檔案。這個引數當使用RMAN備份來生成初始化資料檔案副本時才使用,例如
storageondest=+DATA或者storageondest=/oradata/test

backupondest:目錄系統中用來儲存xttdriver.pl -r前滾操作所轉換後的增量備份檔案的目錄。這個目錄要有足夠的空間來儲存轉換後的增量備份檔案。注意,如果這個引數指向ASM磁碟目錄,那麼需要在xtt.properties引數檔案中定義asm_home與asm_sid引數。如果這個引數指向檔案系統目錄,那麼就從xtt.properties引數檔案中刪除asm_home與asm_sid引數。例如,backupondest=+RECO

cnvinst_home:如果需要使用一個單獨的增量轉換home目錄時才使用。它是目標系統中執行增量轉換例項的ORACLE_HOME,例如cnvinst_home=/u01/app/oracle/product/11.2.0.4/xtt_home

cnvinst_sid:如果需要使用一個單獨的增量轉換home目錄時才使用。它是目標系統中執行增量轉換例項的ORACLE_SID,例如cnvinst_xtt

asm_home:目標系統中ASM例項的ORACLE_HOME。注意如果backupondest設定為檔案系統目錄,那麼就要刪除asm_home與asm_sid引數,例如asm_home=/u01/app/11.2.0.4/grid

asm_sid:目標系統中ASM例項的ORACLE_SID。例如asm_sid=+ASM1

parallel:定義rmanconvert.cmd命令檔案中rman convert命令的並行度。如果不設定這個引數,那麼xttdriver.pl將使用parallel=8的預設並行度。例如,parallel=3

rollparallel:定義xttdriver.pl -r前滾操作的並行度,例如rollparallel=2

getfileparallel:定義xttdriver.pl -G獲取資料檔案副本操作的並行度,預設值是1,最大值為8,例如getfileparallel=4

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

相關文章