源端:db1 192.168.1.153
目标端:db2 192.168.1.154
在源端目标端创建目录/home/oracle/xtts /home/oracle/xtts/scirpt
在目标端创建dblink,和用于存放数据文件的目录
vi tnsnames.ora
create directory dump_oradata as '+DATA';
create public database link lnk_db1 connect to system identified by system using 'db1';
在源端
解压rman-xttconvert脚本,修改xtt.properties
mv xtt.properties xtt.properties.bak
cat xtt.properties.bak|grep -v ^#|grep -v ^$ >xtt.properties
配置文件参数说明:
tablespaces:要传输的表空间
platformid:源端平台ID,通过V$DATABASE.PLATFORM_ID查看
srcdir,dstdir,srclink:是用于通过dbms_file_transfer传输的参数,本测试通过rman,不使用
dfcopydir:源端生成数据文件的目录
backupformat:源端生成增量备份的目录
stageondest:目标端存放源数据文件和增量备份的目录
storageondest:目录端存放目标数据文件的目录
backupondest:目标端使用ASM时转换增量备份的目录,目标端使用数据文件建议和stageondest设的一样,测试发现目标端为ASM也可以把目录设为和stageondest一样,因为无需转换增量备份即可应用增量roll forward
parallel,rollparallel,getfileparallel:并行度,此处用的默认
asm_home,asm_sid:目标端使用ASM时,用于指定asm实例的oracle_home,sid.
此测试没使用的参数:cnvinst_home,cnvinst_sid目标端辅助实例的oracle_home,sid,如果目标端是单独又装的11.2.04的软件,需要指定
tablespaces=TEST
platformid=13
#srcdir=SOURCEDIR1,SOURCEDIR2
#dstdir=DESTDIR1,DESTDIR2
#srclink=TTSLINK
dfcopydir=/home/oracle/XTTS
backupformat=/home/oracle/XTTS
stageondest=/home/oracle/XTTS
storageondest=+DATA
backupondest=/home/oracle/XTTS
parallel=3
rollparallel=2
getfileparallel=4
#cnvinst_home=/u01/app/oracle/product/11.2.0/db_1
#cnvinst_sid=xtts
asm_home=/u01/app/11.2.0/grid
asm_sid=+ASM
将XTTS目录下内容都传输到目标端
scp
在源端执行准备prepare操作
ORACLE_SID=db1
TMPDIR=/home/oracle/XTTS/script
/u01/app/oracle/product/11.2.0/db_1/perl/bin/perl xttdriver.pl -p
生成4个文件
rmanconvert.cmd
xttplan.txt
xttprepare.cmd
xttpreparesrc.sql
将4个文件传输到目标端
scp rmanconvert.cmd xttplan.txt xttprepare.cmd xttpreparesrc.sql
生成数据文件
TEST_6.tf
将数据文件传输到目标端
scp TEST_6.tf oracle@192.168.1.154:/home/oracle/XTTS/
在目标端执行行转换convert操作
ORACLE_SID=db2
TMPDIR=/home/oracle/XTTS/script
/u01/app/oracle/product/11.2.0/db_1/perl/bin/perl xttdriver.pl -c
生成了新文件
xttnewdatafiles.txt
在源端模拟生成新增数据
ORACLE_SID=db1
sqlplus / as sysdba
create table test1.tb01 as select * from dba_objects;
insert into test1.tb01 select * from dba_objects;
commit;
在源端执行增量备份incremental
ORACLE_SID=db1
TMPDIR=/home/oracle/XTTS/script
/u01/app/oracle/product/11.2.0/db_1/perl/bin/perl xttdriver.pl -i
如果有报错需要删除FAILED
/u01/app/oracle/product/11.2.0/db_1/perl/bin/perl xttdriver.pl -L
生成新文件
incrbackups.txt
rmanincr.cmd
tsbkupmap.txt
xttdetnewfromscnsrc.sql
xttplan.txt.new
xttprepare.cmd
将script下文件全部传输到目标端
scp /home/oracle/XTTS/script/* oracle@192.168.1.154:/home/oracle/XTTS/script/
生成增量数据文件
02s1abi8_1_1
传输到目标端
scp 02s1abi8_1_1 oracle@192.168.1.154:/home/oracle/XTTS/
在目标端应用增量roll forward
ORACLE_SID=db2
TMPDIR=/home/oracle/XTTS/script
/u01/app/oracle/product/11.2.0/db_1/perl/bin/perl xttdriver.pl -r
在源端模拟新增数据,并将要传输的表空间设置只读
此时才开始计算停机时间
ORACLE_SID=db1
sqlplus / as sysdba
insert into test1.tb01 select * from dba_objects;
commit
alter tablespace TEST read only;
在源端执行 最后一次增量备份incremental
ORACLE_SID=db1
TMPDIR=/home/oracle/XTTS/script
/u01/app/oracle/product/11.2.0/db_1/perl/bin/perl xttdriver.pl -i
将script下文件传输到目标端
scp /home/oracle/XTTS/script/* oracle@192.168.1.154:/home/oracle/XTTS/script/
将增量备份文件传输到目标端
scp 03s1ac21_1_1 oracle@192.168.1.154:/home/oracle/XTTS/
在目标端应用最后一次增量roll formward
ORACLE_SID=db2
TMPDIR=/home/oracle/XTTS/script
/u01/app/oracle/product/11.2.0/db_1/perl/bin/perl xttdriver.pl -r
在目标端新建用户,导入传输表空间
create user test1 identified by test1;
grant connect,resource to test1;
导入语句在xttplugin.txt
impdp system/system directory=dump_oradata nologfile=y network_link=lnk_db1 transport_full_check=no transport_tablespaces=TEST transport_datafiles='+DATA/TEST_6.xtf'
目标端和源端数据是否一致
alter tablespace TEST read write;
alter user test1 default tablespace TEST;




