暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

XTTS传输表空间

abaoDiary 2017-04-10
897

源端: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;


文章转载自abaoDiary,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论