Oracle 12C xtts and rman

这篇文章将介绍在12c及更高的版本中,为了在不同字节序的系统之间迁移数据使用跨平台增量备份传输表空间迁移数据将会使用最少的停机时间。

使用跨平台增量备份传输表空间迁移数据的第一步就是在源系统中对源数据库生成一个完全备份副本。然后,使用一系列的增量备份,每一次增量备份都会比上一次的小,在停机之前,目标数据库中的数据已经非常接近源数据库中的数据。只有最后一次增量备份与导出\导入元数据才需要源数据库停机。

跨平台增量备份功能不会影响XTTS的其它操作所花费的时间,比如元数据导出\导入的时间。因此,数据库有大量元数据(DDL语句)时,像Oracle E-Business Suite与其它的包应用程序,它们将是影响跨平台增量备份传输表空间迁移数据效率的关键,因为这种迁移最终停机时间由于导出\导入元数据操作所决定的,而不是由传输数据文件与转换数据文件而决定的。

只有物理存储在被传输表空间中的数据库对象会被复制到目标系统中。如果需要传输存储在不同表空间中的(比如,pl/sql对象,序列等,存储在system表空间中的对象)其它对象,可以data pump将这些对象复制到目标系统中。

跨平台增量备份传输表空间的主要操作如下:
1.初始化阶段
2.准备阶段(源数据处于online状态)
2.1对被传输的表空间生成(level=0)的备份
2.2传输备份文件与其它需要的配置文件到目标系统中
2.3将数据文件还原到目标系统,并且转换为目标系统所使用的字节序

3.前滚阶段(源数据处于online状态,为了使用目标数据文件的内容接近源数据库的内容可以执行多次前滚操作)
3.1在源系统中创建增量备份
3.2将增量备份文件与其它的配置文件传输到目标系统中
3.3在目标系统中将增量备份文件转换为目标系统所使用的字节序并应用到数据文件副本
3.4在源系统中执行操作来决定下一次增量备份的开始scn(from_scn)
3.5重复该阶段操作直到准备执行传输阶段的操作为止

注意,在版本3的转换脚本中,如果向被传输的表空间增加数据文件,或者向xtt.properties文件中的tablespaces参数增加新的表空间名,将会要执行额外的指令。

4.传输阶段
4.1将源数据库中要被传输的表空间设置为read only状态
4.2执行最后一次前滚操操作,这步操作将使用目标数据库中的数据文件的内容与源数据库中数据文件的内容保持一致。当处理大量数据时,
这步操作所花费的时间要比传统的XTTS方法所用的时间更短,因为增量备份的大小更小。
4.3使用data pump将被传输的表空间所存的对象的元数据导入到目标数据库中
4.4将目标数据库中被传输过来的表空间设置为read write状态

这篇文章提供了一个例子来介绍如何使用跨平台增量备份来减少传输表空间的停机时间。

源系统可以是先决条件所引用的和平台与数据库所满足的列表中所列出任何平台。如果从一种小字节序平台迁移到Oracle Linux,那么最应该考虑的方法是使用Data Guard,可以参考Note 413484.1关于在当前小字节序平台与Oracle Linux之间Data Guard所支持的异构平台。

这里将介绍如何从Aix平台上将表空间cdzj,ldjc使用跨平台增量备份的传输表空间方法来迁移到Oracle Linux平台。在执行完初始化阶段后执行以下三个阶段来执行数据的迁移操作:
准备阶段
在准备阶段,在源系统上会对要被传输的表空间的数据文件生成level=0的备份。备份文件会被传输到目标系统中,然后将数据文件还原并转换后目标系统所使用的字节序。

前滚阶段
在前滚阶段,在准备阶段被转换后的数据文件将会使用来自源数据库的增量备份来进行前滚操作。通过多次执行该阶段的操作,每次成功的增量备份将会更小与更快的应用到数据文件副本,允许目标系统中的数据都是来自源系统中。在执行前滚阶段时应用程序可以完全访问源数据。

传输阶段
在传输阶段,在源数据库中将要被传输的表空间设置为read only状态,并且在源平台上执行最后一次增量备份并且将它传输到目标平台上并应用到数据文件副本,使用目标系统中的数据文件副本与源数据库中的数据文件保护一致。一旦数据文件状态一致,从源数据库中导出所传输表空间所存储对象的元数据,并且在目标平台导入这些元数据。最后在目标数据库中将传输过来的表空间设置为read write状态。在传输阶段应用程序是不能更新源数据的。

跨平台增量备份所支持的脚本
跨平台增量备份的核心功能是基于Oracle 11.2.0.4与之后的版本。这时所介绍的操作只能用于Oracle 12c,12.1及之后的版本,请查看条件与建议部分了解详细信息。。另外有一组支持脚本存储在rman-xttconvert_2.0.zip。其中有两个主要支持的脚本:
.Perl脚本xttdriver.pl 这个脚本用来执行跨平台增量备份传输表空间的主要步骤。
.参数文件xtt.properties 这个文件包含自已平台特定配置

执行跨平台增量备份传输表空间的条件与建议
执行跨平台增量备份传输表空间的条件
在执行跨平台增量备份传输表空间之前需要检查是否满足以下条件:
.传输表空间的限制
.其它必须满足的条件
当前版本不支持windows
源数据库的compatible参数必须设置为12.1.0或更高版本
源数据库的compatible参数必须不能比目标数据库的compatible参数的值大
源数据库必须启用了archivelog模式
源数据库的RMAN不能对DEVICE TYPE DISK使用COMPRESSED配置
目标数据库的compatible参数必须设置为12.1.0或更高版本
源数据库中将要被迁移的表空间必须是online,并且不能包含脱机数据文件。表空间必须为read write状态。表空间为read only那么可以使用正常的XTTS方法进行迁移。
尽管首选目标系统是Linux操作系统(可以是64位的Oracle Linux或者是已经认证的Redhat Linux),但这个过程也可以在其它Unix操作系统中执行。然而,对于任何non-Linux操作系统来说数据库的版本必须是12.1.0.1或更高的版本。
源数据库的版本必须小于或等于目标数据库的版本

.所有步骤中执行操作的用户必须是Oracle用户并且它是OSDBA组的成员。操作系统审计被用来连接源数据库与目标数据库。
.对于备库或快照备库是不支持这种操作的
.这种方法不支持多租户数据库。增强bug 22570430解决了这个限制。

诊断
为了启用诊断模式,可以使用-d参数来执行xttdriver.pl脚本,或者在执行xttdriver.pl脚本之前设置环境变量XTTDEBUG=1。Debug模式会启用额外的屏幕输出并且造成所有RMAN操作使用debug命令行选项。

已知问题
1.如果前滚阶段(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.最后的增量备份阶段
5.传输阶段导入元数据
6.验证传输的数据
7.清除操作

1.初始化设置阶段
1.1安装目标数据库软件并创建目标数据库
在目标系统上安装目标Oracle数据库软件,版本应该为Oracle12c,操作系统是Linux,我这里都是12.2.0.1。在源数据库中创建了一个要被传输到目标数据库的表空间jy,用户方案jy,源数据库版本也是12.2.0.1,操作系统是Linux。

1.2识别要被传输的表空间
源数据库中要被传输的表空间为jy,用户方案jy。

1.3在源系统上安装xttconvert脚本

[oracle@jytest3 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

1.4 创建需要使用的目录
在源系统中创建目录/ora_xtts/backupformat用来存储源系统中对源数据库生成的备份及增量备份文件,xtt.properties文件中的backupformat参数设置该目录。

[oracle@jytest3 ora_xtts]$ mkdir backupformat

在目标系统中创建目录/tts/backup用来存储手动从源系统中传输过来的备份及增量备份文件,xtt.properties文件中的stageondest参数设置该目录。

[oracle@jytest1 tts]$ mkdir backup

xtt.properties文件中的storageondest参数设置目标数据库最终存储数据文件的目录,这里是+DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile/目录。

1.5在源系统中配置xtt.properties文件

SQL> select platform_id from v$database;

PLATFORM_ID
-----------
         13


[oracle@jytest3 xtts_script]$ vi xtt.properties
tablespaces=JY
platformid=13
storageondest=+DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile/
backupformat=/ora_xtts/backupformat
stageondest=/tts/backup
asm_home=/u01/app/product/12.2.0/crs
asm_sid=+ASM1
parallel=4

1.6将源系统中的xttconvert脚本与xtt.properties文件复制到目标系统中
在源系统中以Oracle软件用户来进行复制

[oracle@jytest1 tts]$ scp -r oracle@10.138.130.173:/ora_xtts/xtts_script/ /tts/
The authenticity of host '10.138.130.173 (10.138.130.173)' can't be established.
ECDSA key fingerprint is 67:29:52:b1:c0:74:ff:33:fc:67:63:53:31:14:69:ec.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.138.130.173' (ECDSA) to the list of known hosts.
oracle@10.138.130.173's password:
rman_xttconvert_v3.zip                                                                                                                                                                                    100%   33KB  33.2KB/s   00:00
xttcnvrtbkupdest.sql                                                                                                                                                                                      100% 1390     1.4KB/s   00:00
xttdbopen.sql                                                                                                                                                                                             100%   71     0.1KB/s   00:00
xttdriver.pl                                                                                                                                                                                              100%  136KB 136.1KB/s   00:00
xttprep.tmpl                                                                                                                                                                                              100%   11KB  11.4KB/s   00:00
xttstartupnomount.sql                                                                                                                                                                                     100%   52     0.1KB/s   00:00
xtt.properties.jy                                                                                                                                                                                         100% 7969     7.8KB/s   00:00
xtt.properties                                                                                                                                                                                            100%  217     0.2KB/s   00:00

[oracle@jytest1 tts]$ cd xtts_script
[oracle@jytest1 xtts_script]$ ls -lrt
total 212
-rw-r--r-- 1 oracle oinstall  33949 Aug 18 23:35 rman_xttconvert_v3.zip
-rw-r--r-- 1 oracle oinstall   1390 Aug 18 23:35 xttcnvrtbkupdest.sql
-rw-r--r-- 1 oracle oinstall     71 Aug 18 23:35 xttdbopen.sql
-rw-r--r-- 1 oracle oinstall 139331 Aug 18 23:35 xttdriver.pl
-rw-r--r-- 1 oracle oinstall  11710 Aug 18 23:35 xttprep.tmpl
-rw-r--r-- 1 oracle oinstall     52 Aug 18 23:35 xttstartupnomount.sql
-rw-r--r-- 1 oracle oinstall   7969 Aug 18 23:35 xtt.properties.jy
-rw-r--r-- 1 oracle oinstall    217 Aug 18 23:35 xtt.properties

1.7设置环境变量TMPDIR
在源系统与目标系统中设置环境变量TMPDIR。使用shell来执行Perl脚本xttdriver.pl所生成的文件会存储在$TMPDIR目录中,如果没有设置
TMPDIR环境变量,那么生成的文件会存储在/tmp目录中。

源系统

[oracle@jytest3 ora_xtts]$ export TMPDIR=/ora_xtts/xtts_script

目标系统

[oracle@jytest1 tts]$ export TMPDIR=/tts/xtts_script

2.准备阶段
在准备阶段,要被传输的表空间会在源系统中生成备份,然后将备份传输到目标系统中,并通过执行xttdriver.pl脚本将备份还原。注意,对于要传输大量数据文件,可以使用dbms_file_transfer进行传输(可以参考文档 1389592.1中的准备阶段)会要比手动传输备份文件到目标系统中快很多。这种方法也适用于Oracle 12c,11G – Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID 1389592.1).

2.1在源系统中对要传输的表空间生成备份
在源系统中,以oracle软件用户登录,并设置环境变量(ORACLE_HOME与ORACLE_SID)来指向源数据库,执行以下命令来生成备份

[oracle@jytest3 xtts_script]$ export ORACLE_HOME=/u01/app/oracle/product/12.2.0/db
[oracle@jytest3 xtts_script]$ export ORACLE_SID=orcl

[oracle@jytest3 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup
============================================================
trace file is /ora_xtts/xtts_script/backup_Aug19_Sat_03_17_33_312//Aug19_Sat_03_17_33_312_.log
=============================================================

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


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


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


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


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

Prepare source for Tablespaces:
                  'JY'  /tts/backup
xttpreparesrc.sql for 'JY' started at Sat Aug 19 03:17:33 2017
xttpreparesrc.sql for  ended at Sat Aug 19 03:17:34 2017
Prepare source for Tablespaces:
                  ''''  /tts/backup
xttpreparesrc.sql for '''' started at Sat Aug 19 03:17:40 2017
xttpreparesrc.sql for  ended at Sat Aug 19 03:17:40 2017

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


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


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

[oracle@jytest3 backupformat]$ ls -lrt
total 1072
-rw-r-----. 1 oracle asmadmin 1097728 Aug 19 03:17 JY_5_25sc8t6j_1_1.bkp

[oracle@jytest3 xtts_script]$ cat xttplan.txt
JY::::1586999
5
[oracle@jytest3 xtts_script]$ cat tsbkupmap.txt
::5:::1=JY_5_25sc8t6j_1_1.bkp
[oracle@jytest3 xtts_script]$ cat xttnewdatafiles.txt
::JY
5,+DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile//JY_5.dbf

2.2将备份文件传输到目标系统
将上一步生成的备份文件从源系统中的backupformat目录(/ora_xtts/backupformat)传输到目标系统中的stageondest目录(/tts/backup)

[oracle@jytest3 backupformat]$ scp /ora_xtts/backupformat/* oracle@10.138.130.171:/tts/backup/
The authenticity of host '10.138.130.171 (10.138.130.171)' can't be established.
ECDSA key fingerprint is 7a:62:58:8b:77:98:52:94:d6:d5:0c:c4:6c:87:a6:7f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.138.130.171' (ECDSA) to the list of known hosts.
oracle@10.138.130.171's password:
JY_5_25sc8t6j_1_1.bkp                                                                                                                                                                                     100% 1072KB   1.1MB/s   00:00

[oracle@jytest1 backup]$ ls -lrt
total 1072
-rw-r----- 1 oracle oinstall 1097728 Aug 18 23:58 JY_5_25sc8t6j_1_1.bkp

将上一步生成的tsbkupmap.txt与xttnewdatafiles.txt文件传到目标系统中的$TMPDIR目录(/tts/xtts_script)

[oracle@jytest3 xtts_script]$ scp /ora_xtts/xtts_script/tsbkupmap.txt oracle@10.138.130.171:/tts/xtts_script
oracle@10.138.130.171's password:
tsbkupmap.txt                                                                                                                                                                                             100%   30     0.0KB/s   00:00
[oracle@jytest3 xtts_script]$ scp /ora_xtts/xtts_script/xttnewdatafiles.txt oracle@10.138.130.171:/tts/xtts_script
oracle@10.138.130.171's password:
xttnewdatafiles.txt                                                                                                                                                                                       100%   68     0.1KB/s   00:00


[oracle@jytest1 xtts_script]$ ls -lrt
total 220
-rw-r--r-- 1 oracle oinstall  33949 Aug 18 23:35 rman_xttconvert_v3.zip
-rw-r--r-- 1 oracle oinstall   1390 Aug 18 23:35 xttcnvrtbkupdest.sql
-rw-r--r-- 1 oracle oinstall     71 Aug 18 23:35 xttdbopen.sql
-rw-r--r-- 1 oracle oinstall 139331 Aug 18 23:35 xttdriver.pl
-rw-r--r-- 1 oracle oinstall  11710 Aug 18 23:35 xttprep.tmpl
-rw-r--r-- 1 oracle oinstall     52 Aug 18 23:35 xttstartupnomount.sql
-rw-r--r-- 1 oracle oinstall   7969 Aug 18 23:35 xtt.properties.jy
-rw-r--r-- 1 oracle oinstall    217 Aug 18 23:35 xtt.properties
-rw-r--r-- 1 oracle oinstall     30 Aug 19 00:02 tsbkupmap.txt
-rw-r--r-- 1 oracle oinstall     68 Aug 19 00:03 xttnewdatafiles.txt

2.3在目标系统中还原数据文件
在目标系统中,以Oracle软件用户登录并设置环境变量(ORACLE_HOME与ORACLE_SID)来指向目标数据库,执行以下还原操作:

[oracle@jytest1 xtts_script]$ export ORACLE_HOME=/u01/app/oracle/product/12.2.0/db
[oracle@jytest1 xtts_script]$ export ORACLE_SID=jy1

[oracle@jytest1 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore
============================================================
trace file is /tts/xtts_script/restore_Aug19_Sat_00_06_38_642//Aug19_Sat_00_06_38_642_.log
=============================================================

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


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


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


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


--------------------------------------------------------------------
Start restore/recover
--------------------------------------------------------------------


--------------------------------------------------------------------
End of restore/recover phase
--------------------------------------------------------------------

数据文件将会存储到storageondest参数所指定目录中

ASMCMD [+DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile] > ls -lt
Type      Redund  Striped  Time             Sys  Name
DATAFILE  UNPROT  COARSE   AUG 19 00:00:00  N    jy_5.dbf => +DATA/jy/4D98CBB596437310E053AD828A0A6B56/DATAFILE/JY.317.952387605

3.前滚阶段
在这个阶段会在源系统中对源数据库创建增量备份,将增量备份文件传输到目标系统并转换为目标系统所使用的字节序,然后将转换后的增量备份应用到数据文件。这个阶段的操作可以执行多次。每一次成功的增量备份所花的时间要比上一次的少,这将使用目标数据库中的数据文件的内容更接近源数据库的内容。在执行这个阶段操作时被传输的数据完全可以被访问。

3.1在源系统中创建增量备份
在源系统中,以oracle软件用户登录,并设置环境变量(ORACLE_HOME与ORACLE_SID)来指向源数据库,执行以下命令来生成增量备份

[oracle@jytest3 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --bkpinc
============================================================
trace file is /ora_xtts/xtts_script/bkpincr_Aug19_Sat_03_37_38_757//Aug19_Sat_03_37_38_757_.log
=============================================================

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


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


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


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


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

Prepare newscn for Tablespaces: 'JY'
Prepare newscn for Tablespaces: ''''

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


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

上面的操作将会创建增量备份文件,并会创建以下文件

xttplan.txt
tsbkupmap.txt
incrbackups.txt

[oracle@jytest3 xtts_script]$ cat tsbkupmap.txt
JY::5:::1=26sc8uc7_1_1
[oracle@jytest3 xtts_script]$ cat xttplan.txt
JY::::1586999
5
[oracle@jytest3 xtts_script]$ cat incrbackups.txt
/ora_xtts/backupformat/26sc8uc7_1_1

3.2将增量备份文件传输到目标系统中

[oracle@jytest3 xtts_script]$  scp `cat incrbackups.txt` oracle@10.138.130.171:/tts/backup/
oracle@10.138.130.171's password:
26sc8uc7_1_1                                                                                                                                                                                              100%   48KB  48.0KB/s   00:00
[oracle@jytest3 xtts_script]$ scp /ora_xtts/xtts_script/xttplan.txt oracle@10.138.130.171:/tts/xtts_script
oracle@10.138.130.171's password:
xttplan.txt                                                                                                                                                                                               100%   16     0.0KB/s   00:00
[oracle@jytest3 xtts_script]$ scp /ora_xtts/xtts_script/tsbkupmap.txt oracle@10.138.130.171:/tts/xtts_script
oracle@10.138.130.171's password:
tsbkupmap.txt                                                                                                                                                                                             100%   23     0.0KB/s   00:00
[oracle@jytest3 xtts_script]$ scp /ora_xtts/xtts_script/incrbackups.txt oracle@10.138.130.171:/tts/xtts_script
oracle@10.138.130.171's password:
incrbackups.txt                                                                                                                                                                                           100%   36     0.0KB/s   00:00


[oracle@jytest1 backup]$ ls -lrt
total 1120
-rw-r----- 1 oracle oinstall 1097728 Aug 18 23:58 JY_5_25sc8t6j_1_1.bkp
-rw-r----- 1 oracle oinstall   49152 Aug 19 00:18 26sc8uc7_1_1

[oracle@jytest1 xtts_script]$ cat xttplan.txt
JY::::1586999
5
[oracle@jytest1 xtts_script]$ cat tsbkupmap.txt
JY::5:::1=26sc8uc7_1_1
[oracle@jytest1 xtts_script]$ cat incrbackups.txt
/ora_xtts/backupformat/26sc8uc7_1_1

如果源系统中的backupformat目录是目标系统中stageondest目录通过NFS挂载到源系统中的话,那么就不需要复制这些备份文件目标系统就可以使用。然而,(xttplan.txt,tsbkupmap.txt,incrbackups.txt)文件在每次增量备份后都需要传输到目标系统中。

3.3在目标系统将增量备份应用到数据文件
在目标系统中,以Oracle软件用户登录并设置环境变量(ORACLE_HOME与ORACLE_SID)来指向目标数据库,执行以下命令来执行前滚操作:

[oracle@jytest1 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --recover
============================================================
trace file is /tts/xtts_script/recover_Aug19_Sat_00_25_22_517//Aug19_Sat_00_25_22_517_.log
=============================================================

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


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


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


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


--------------------------------------------------------------------
Start restore/recover
--------------------------------------------------------------------


--------------------------------------------------------------------
End of restore/recover phase
--------------------------------------------------------------------

3.4生成下一次增量备份需要的from_scn
在源系统中,为了以后生成增量备份,以oracle软件用户登录,并设置环境变量(ORACLE_HOME与ORACLE_SID)来指向源数据库,执行以下命令来生成新的from_scn:

[oracle@jytest3 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -s
============================================================
trace file is /ora_xtts/xtts_script/determinescn_Aug19_Sat_03_51_12_712//Aug19_Sat_03_51_12_712_.log
=============================================================

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


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


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


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

Prepare newscn for Tablespaces: 'JY'
Prepare newscn for Tablespaces: ''''
New /ora_xtts/xtts_script/xttplan.txt with FROM SCN's generated

这步操作会计算新的from_scn,并将其记录到xttplan.txt文件,在下次生成增量备份时将会使用。

[oracle@jytest3 xtts_script]$ cat xttplan.txt
 JY::::1587737
 5

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.

我这里再次执行前滚操作

SQL> select * from jy_test;

no rows selected

SQL> insert into jy_test values(1);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from jy_test;

   USER_ID
----------
         1

在源系统中创建增量备份
在源系统中,以oracle软件用户登录,并设置环境变量(ORACLE_HOME与ORACLE_SID)来指向源数据库,执行以下命令来生成增量备份

[oracle@jytest3 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --bkpinc
============================================================
trace file is /ora_xtts/xtts_script/bkpincr_Aug19_Sat_03_55_51_357//Aug19_Sat_03_55_51_357_.log
=============================================================

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


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


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


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


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

Prepare newscn for Tablespaces: 'JY'
Prepare newscn for Tablespaces: ''''

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


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

上面的操作将会创建增量备份文件,并会创建以下文件
xttplan.txt
tsbkupmap.txt
incrbackups.txt

[oracle@jytest3 xtts_script]$ cat tsbkupmap.txt
JY::5:::1=27sc8vec_1_1
[oracle@jytest3 xtts_script]$ cat xttplan.txt
 JY::::1587737
 5
[oracle@jytest3 xtts_script]$ cat incrbackups.txt
/ora_xtts/backupformat/27sc8vec_1_1

3.2将增量备份文件传输到目标系统中

[oracle@jytest3 xtts_script]$ scp `cat incrbackups.txt` oracle@10.138.130.171:/tts/backup/
oracle@10.138.130.171's password:
27sc8vec_1_1                                                                                                                                                                                              100%  128KB 128.0KB/s   00:00
[oracle@jytest3 xtts_script]$ scp /ora_xtts/xtts_script/xttplan.txt oracle@10.138.130.171:/tts/xtts_script
oracle@10.138.130.171's password:
xttplan.txt                                                                                                                                                                                               100%   18     0.0KB/s   00:00
[oracle@jytest3 xtts_script]$ scp /ora_xtts/xtts_script/tsbkupmap.txt oracle@10.138.130.171:/tts/xtts_script
oracle@10.138.130.171's password:
tsbkupmap.txt                                                                                                                                                                                             100%   23     0.0KB/s   00:00
[oracle@jytest3 xtts_script]$ scp /ora_xtts/xtts_script/incrbackups.txt oracle@10.138.130.171:/tts/xtts_script
oracle@10.138.130.171's password:
incrbackups.txt                                                                                                                                                                                           100%   36     0.0KB/s   00:00


[oracle@jytest1 backup]$ ls -lrt
total 1248
-rw-r----- 1 oracle oinstall 1097728 Aug 18 23:58 JY_5_25sc8t6j_1_1.bkp
-rw-r----- 1 oracle oinstall   49152 Aug 19 00:18 26sc8uc7_1_1
-rw-r----- 1 oracle oinstall  131072 Aug 19 00:33 27sc8vec_1_1

[oracle@jytest1 xtts_script]$ cat xttplan.txt
 JY::::1587737
 5
[oracle@jytest1 xtts_script]$ cat tsbkupmap.txt
JY::5:::1=27sc8vec_1_1
[oracle@jytest1 xtts_script]$ cat incrbackups.txt
/ora_xtts/backupformat/27sc8vec_1_1

如果源系统中的backupformat目录是目标系统中stageondest目录通过NFS挂载到源系统中的话,那么就不需要复制这些备份文件目标系统就可以使用。然而,(xttplan.txt,tsbkupmap.txt,incrbackups.txt)文件在每次增量备份后都需要传输到目标系统中。

3.3在目标系统将增量备份应用到数据文件
在目标系统中,以Oracle软件用户登录并设置环境变量(ORACLE_HOME与ORACLE_SID)来指向目标数据库,执行以下命令来执行前滚操作:

[oracle@jytest1 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --recover
============================================================
trace file is /tts/xtts_script/recover_Aug19_Sat_00_35_56_534//Aug19_Sat_00_35_56_534_.log
=============================================================

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


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


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


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


--------------------------------------------------------------------
Start restore/recover
--------------------------------------------------------------------


--------------------------------------------------------------------
End of restore/recover phase
--------------------------------------------------------------------

3.4生成下一次增量备份需要的from_scn
在源系统中,为了以后生成增量备份,以oracle软件用户登录,并设置环境变量(ORACLE_HOME与ORACLE_SID)来指向源数据库,执行以下命令来生成新的from_scn:

[oracle@jytest3 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -s
============================================================
trace file is /ora_xtts/xtts_script/determinescn_Aug19_Sat_04_00_04_92//Aug19_Sat_04_00_04_92_.log
=============================================================

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


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


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


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

Prepare newscn for Tablespaces: 'JY'
Prepare newscn for Tablespaces: ''''
New /ora_xtts/xtts_script/xttplan.txt with FROM SCN's generated

这步操作会计算新的from_scn,并将其记录到xttplan.txt文件,在下次生成增量备份时将会使用。

[oracle@jytest3 xtts_script]$ cat xttplan.txt
 JY::::1588547
 5

4.最后一次增量备份
在这个阶段,需要将源数据库中要被传输的表空间设置为read only状态,通过创建与应用最后一次增量备份使用目标数据文件与源数据库的内容达到一致状态。然后可以使用正常的传输表空间操作来从源数据库中导出元数据并导入目标数据库,直到这个阶段的操作完成之前源数据库中被传输的表空间会处于read only状态。

4.1 将源数据库中的表空间JY设置为read only状态
在源系统中,以oracle软件用户登录,并设置环境变量(ORACLE_HOME与ORACLE_SID)来指向源数据库,执行以下操作:

SQL> insert into jy_test values(2);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from jy_test;

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

SQL> alter tablespace jy read only;

Tablespace altered.

4.2创建最后一次的增量备份并将相关文件传输到目标系统
在源系统中,以oracle软件用户登录,并设置环境变量(ORACLE_HOME与ORACLE_SID)来指向源数据库,执行以下命令来生成最后的增量备份

[oracle@jytest3 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --bkpexport
============================================================
trace file is /ora_xtts/xtts_script/bkpexport_Aug19_Sat_04_06_32_838//Aug19_Sat_04_06_32_838_.log
=============================================================

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


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


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


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


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

============================================================
No new datafiles added
=============================================================
Prepare newscn for Tablespaces: 'JY'
Prepare newscn for Tablespaces: ''''

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


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

上面的操作将会创建增量备份文件,并会创建以下文件
xttplan.txt
tsbkupmap.txt
incrbackups.txt

[oracle@jytest3 xtts_script]$ cat xttplan.txt
 JY::::1588547
 5
[oracle@jytest3 xtts_script]$ cat tsbkupmap.txt
DMPEXP::29sc9068_1_1
::5:::1=28sc9066_1_1
[oracle@jytest3 xtts_script]$ cat incrbackups.txt
/ora_xtts/backupformat/29sc9068_1_1
/ora_xtts/backupformat/28sc9066_1_1

[oracle@jytest3 xtts_script]$ scp `cat incrbackups.txt` oracle@10.138.130.171:/tts/backup/
oracle@10.138.130.171's password:
29sc9068_1_1                                                                                                                                                                                              100%  192KB 192.0KB/s   00:00
28sc9066_1_1                                                                                                                                                                                              100%  128KB 128.0KB/s   00:00
[oracle@jytest3 xtts_script]$ scp /ora_xtts/xtts_script/xttplan.txt oracle@10.138.130.171:/tts/xtts_script
oracle@10.138.130.171's password:
xttplan.txt                                                                                                                                                                                               100%   18     0.0KB/s   00:00
[oracle@jytest3 xtts_script]$ scp /ora_xtts/xtts_script/tsbkupmap.txt oracle@10.138.130.171:/tts/xtts_script
oracle@10.138.130.171's password:
tsbkupmap.txt                                                                                                                                                                                             100%   42     0.0KB/s   00:00
[oracle@jytest3 xtts_script]$ scp /ora_xtts/xtts_script/incrbackups.txt oracle@10.138.130.171:/tts/xtts_script
oracle@10.138.130.171's password:
incrbackups.txt                                                                                                                                                                                           100%   73     0.1KB/s   00:00


[oracle@jytest1 backup]$ ls -lrt
total 1568
-rw-r----- 1 oracle oinstall 1097728 Aug 18 23:58 JY_5_25sc8t6j_1_1.bkp
-rw-r----- 1 oracle oinstall   49152 Aug 19 00:18 26sc8uc7_1_1
-rw-r----- 1 oracle oinstall  131072 Aug 19 00:33 27sc8vec_1_1
-rw-r----- 1 oracle oinstall  196608 Aug 19 00:47 29sc9068_1_1
-rw-r----- 1 oracle oinstall  131072 Aug 19 00:47 28sc9066_1_1

[oracle@jytest1 xtts_script]$ cat xttplan.txt
 JY::::1588547
 5
[oracle@jytest1 xtts_script]$ cat tsbkupmap.txt
DMPEXP::29sc9068_1_1
::5:::1=28sc9066_1_1
[oracle@jytest1 xtts_script]$ cat incrbackups.txt
/ora_xtts/backupformat/29sc9068_1_1
/ora_xtts/backupformat/28sc9066_1_1

4.3应用最后的增量备份
在目标系统中,以Oracle软件用户登录并设置环境变量(ORACLE_HOME与ORACLE_SID)来指向目标数据库,执行以下命令来应用最后的增量备份

[oracle@jytest1 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --resincrdmp
============================================================
trace file is /tts/xtts_script/resincrdmp_Aug19_Sat_00_49_56_533//Aug19_Sat_00_49_56_533_.log
=============================================================

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


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


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


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


--------------------------------------------------------------------
Start restore/recover
--------------------------------------------------------------------


--------------------------------------------------------------------
End of restore/recover phase
--------------------------------------------------------------------


--------------------------------------------------------------------
Start creating dumpfile
--------------------------------------------------------------------


--------------------------------------------------------------------
End of creating dumpfile
--------------------------------------------------------------------


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


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

上面的操作将会对数据文件应用最后的增量备份。另外,还会还原阶段5A导入元数据所需要的dump文件与xttplugin.txt文件

[oracle@jytest1 xtts_script]$ cat xttplugin.txt
impdp directory= logfile= \
dumpfile=impdp_Aug19_Sat_00_49_56_533.dmp \
transport_datafiles='+DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile//JY_5.dbf'
[oracle@jytest1 xtts_script]$ ls -lrt

-rw-r----- 1 oracle asmadmin 167936 Aug 19 00:50 impdp_Aug19_Sat_00_49_56_533.dmp
-rw-r--r-- 1 oracle oinstall    183 Aug 19 00:50 xttplugin.txt

5.传输阶段:将对象元数据导入目标数据库
在这个阶段表空间将会被附加到目标数据库中。这里有两种方法。第一种是使用步骤4.3所创建的dump文件来进行导入。第二种方法是通过连接两个数据库的dblink来进行导入。

5a 通过dump文件导入
5a.1 创建datapump目录并授权

SQL>create directory dpump_tts as '/tts/xtts_script';
SQL>GRANT READ, WRITE ON DIRECTORY dpump_tts TO system;

5a.2 修改导入命令并执行

[oracle@jytest1 xtts_script]$ impdp directory=pump_tts logfile=tts_imp.log
dumpfile=impdp_Aug19_Sat_00_49_56_533.dmp
transport_datafiles='+DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile//JY_5.dbf'

5b使用dblink导入元数据
5b.1创建dblink
在目标系统中,以Oracle软件用户登录并设置环境变量(ORACLE_HOME与ORACLE_SID)来指向目标数据库,执行以下命令:

[oracle@jytest1 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -e
============================================================
trace file is /tts/xtts_script/generate_Aug19_Sat_00_58_39_839//Aug19_Sat_00_58_39_839_.log
=============================================================

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


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


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


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


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


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

[oracle@jytest1 xtts_script]$ cat xttplugin.txt
impdp directory= logfile= \
network_link= transport_full_check=no \
transport_tablespaces=JY \
transport_datafiles='+DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile//JY_5.dbf'

5b.2 在目标数据库中创建dblink

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

Database link created.

SQL> select name from v$database@ttslink;

NAME
---------
ORCL

5b.3修改导入脚本并执行脚本

SQL> create directory dpump_tts as '/tts/xtts_script';

Directory created.

SQL> GRANT READ, WRITE ON DIRECTORY dpump_tts TO public;

Grant succeeded.


[oracle@jytest1 xtts_script]$ impdp system/abcd@jypdb directory=dpump_tts logfile=tts_imp.log network_link=ttslink transport_full_check=no transport_tablespaces=JY transport_datafiles='+DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile//JY_5.dbf' exclude=statistics

Import: Release 12.2.0.1.0 - Production on Sat Aug 19 01:08:07 2017

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

Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Starting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_03":  system/********@jypdb directory=dpump_tts logfile=tts_imp.log network_link=ttslink transport_full_check=no transport_tablespaces=JY transport_datafiles=+DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile//JY_5.dbf exclude=statistics
Source time zone is +08:00 and target time zone is +00:00.
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_03" successfully completed at Sat Aug 19 01:09:09 2017 elapsed 0 00:00:49


[oracle@jytest1 xtts_script]$ impdp system/abcd@jypdb directory=dpump_tts logfile=ysj.log schemas=jy content=metadata_only exclude=table,index network_link=ttslink

Import: Release 12.2.0.1.0 - Production on Sat Aug 19 01:11:32 2017

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

Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Starting "SYSTEM"."SYS_IMPORT_SCHEMA_01":  system/********@jypdb directory=dpump_tts logfile=ysj.log schemas=jy content=metadata_only exclude=table,index network_link=ttslink
Processing object type SCHEMA_EXPORT/USER
ORA-31684: Object type USER:"JY" 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/STATISTICS/MARKER
Job "SYSTEM"."SYS_IMPORT_SCHEMA_01" completed with 1 error(s) at Sat Aug 19 01:11:55 2017 elapsed 0 00:00:21

6.验证传输数据
6.1检查表空间是否有损坏

[oracle@jytest1 xtts_script]$ rman target sys/abcd@jypdb

Recovery Manager: Release 12.2.0.1.0 - Production on Sat Aug 19 01:17:35 2017

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

connected to target database: JY:JYPDB (DBID=2825277312)

RMAN> validate tablespace jy check logical;

Starting validate at 19-AUG-17
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1144 instance=jy1 device type=DISK
channel ORA_DISK_1: starting validation of datafile
channel ORA_DISK_1: specifying datafile(s) for validation
input datafile file number=00083 name=+DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile/jy_5.dbf
channel ORA_DISK_1: validation complete, elapsed time: 00:00:07
List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
83   OK     0              1            64001           1590987
  File Name: +DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile/jy_5.dbf
  Block Type Blocks Failing Blocks Processed
  ---------- -------------- ----------------
  Data       0              5
  Index      0              0
  Other      0              63994

Finished validate at 19-AUG-17

6.2将目标数据库中的表空间JY修改为read write状态

SQL> alter tablespace jy read write;

Tablespace altered.

7.清除操作
如果使用单独的转换home与实例,那么可以关闭转换实例并删除转换home。还可以删除源系统中创建的backupformat目录,目标系统中创建的bacup目录,源系统与目标系统中设置的环境变量$TMPDIR。

xttdriver.pl脚本选项
–backup:对源数据库中要被传输的表空间创建level 0级备份。这些备份将被写到xtt.properties文件中backupoformat参数所指定的目录中。这些备份需要手动复制到目标系统中stageondest参数所指定的目录中。而且还会生成tsbkupmap.txt与xttnewdatafiles.txt文件并且也需要复制到目标系统中相应目录(TMPDIR变量所指向的目录)

–restore:在目标系统中还原并转换stageondest目录中的数据文件备份的副本。还原的文件将会存储到storageondest参数所指定的目录中

–bkpincr:在源系统中对表空间创建增量备份并存储在backupformat参数所指定的目录中。这步操作还会创建incrbackups.txt文件它列出了所创建的备份。这个文件与tsbkupmap.txt必须复制到目标系统中的stageondest参数所指定的目录中

-recover:将增量备份应用到已经还原的数据文件上

-s:对源数据库判断新的from_scn可以执行一次或多次。这个操作将会计算下一个from_scn,并记录在xttplan.txt文件中,然后使用创建增量备份时会使用。

-bkpexport:将执行最后一次增量备份并且会创建元数据的dump文件用来导入数据文件。增量备份将会存储在backupformat参数所指定的目录中并且会创建incrbckups.txt与tsbkupmaps.txt文件,这些都要复制到目标系统中

–resincrdmp:将恢复最后一次增量备份并应用到数据文件。同时dump文件会被还原到TMPDIR变量所指定的目录中,dump文件可以用来导入

-e:在目标系统中生成传输表空间要导入的元数据脚本

-d debug:为了以debug模式来执行xttdriver.pl 与RMAN脚本。也可以设置环境变量XTTDEBUG=1,debug级别可以为1,2,3,例如xttdriver.pl -3

xtt.properties文件参数说明
tablespaces:用逗号来分隔从源数据库要被传输到目标数据库的表空间列表,例如tablespaces=TS1,TS2

platformid:从v$database.platform_id获得的源数据库的platform id,例如platformid=13

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

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

发表评论

电子邮件地址不会被公开。