ITPub博客

首页 > 数据库 > Oracle > 【XTTS】Oracle传输表空间xtts增量方式

【XTTS】Oracle传输表空间xtts增量方式

原创 Oracle 作者:xysoul_云龙 时间:2019-01-21 14:55:23 0 删除 编辑
--在线传输表空间,增量方式
--创建相关目录
create directory sourcedir as '+DATA/mydb/datafile';
create directory destdir as '/oracle/app/oracle/oradata/mytest';
--创建dblink
create public database link ttslink connect to system identified by oracle using 'mydb';
select * from dual@ttslink;
 
export TMPDIR=/home/oracle/xtt
mkdir -p /stage_source
chown oracle:oinstall /stage_source
scp -r/home/oracle/xtt mystandby:/home/oracle
--相关表空间
TEST,MYDB,TMOVE,TBSADD,TSB01
tablespaces=          ----需要迁移的表空间
platformid=           ----源 OS 平台 ID
dfcopydir=            ----源数据库备份文件存放目录
backupformat=         ---源数据库增备文件存放目录
stageondest=          ----目标据库备份文件存放目录
storageondest=        ----目标据库正式文件存放目录
backupondest=         ----目标据库增备文件存放目录
parallel=             ----备份,转化的并行度
rollparallel=         ----增备的并行度
getfileparallel=      ---- 使用 dbms_file_transfer 方式的并行度
--源端块跟踪
alter database enable block change tracking using file '+data';
--源端运行,导出数据
export TMPDIR=/home/oracle/xtt
$ORACLE_HOME/perl/bin/perl xttdriver.pl -p
--nfs
/stage_source 192.168.8.0/24(rw,no_root_squash,no_all_squash,sync)
exportfs -r
service rpcbind start
service nfs start
mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600 192.168.8.24:/stage_source /stage_dest
--挂在的nfs,无需拷贝
--scp oracle@source:/stage_source/* /stage_dest
cd /home/oracle/xtt/
scp rmanconvert.cmd mystandby:/home/oracle/xtt
--chown -R oracle:oinstall /stage_dest/*
export TMPDIR=/home/oracle/xtt
$ORACLE_HOME/perl/bin/perl xttdriver.pl -c
--源端创建增量备份
export TMPDIR=/home/oracle/xtt
$ORACLE_HOME/perl/bin/perl xttdriver.pl -i
--nfs无需拷贝
--scp `cat incrbackups.txt` oracle@dest:/stage_dest
cd /home/oracle/xtt/
scp xttplan.txt mystandby:/home/oracle/xtt
scp tsbkupmap.txt mystandby:/home/oracle/xtt
--目标端
export ORACLE_SID=mytest
export TMPDIR=/home/oracle/xtt
$ORACLE_HOME/perl/bin/perl xttdriver.pl -r
--源端更新scn
$ORACLE_HOME/perl/bin/perl xttdriver.pl -s
--目标端创建相关用户,注意密码即将过期用户无法查到(open)
select 'create user '||d.username||' identified by values '''||u.password||''' default tablespace USERS temporary tablespace '||d.TEMPORARY_TABLESPACE||';' from dba_users d,user$ u where d.username=u.name and account_status='OPEN' and username not in('SYS','SYSTEM');
select 'grant '||granted_role||' to '||grantee||';' from dba_role_privs where grantee in (select username from dba_users where account_status='OPEN' and username not in('SYS','SYSTEM'))
union
select 'grant '||PRIVILEGE||' to '||grantee||';' from DBA_SYS_PRIVS where grantee in (select username from dba_users where account_status='OPEN' and username not in('SYS','SYSTEM')); 
--源端设置表空间只读TEST,MYDB,TMOVE,TBSADD,TSB01
 alter tablespace TEST read only;
 alter tablespace MYDB read only;
 alter tablespace TMOVE read only;
 alter tablespace TBSADD read only;
 alter tablespace TSB01 read only;
--最后增量
--源端创建增量备份,注意nfs目录权限
chown -R oracle:oinstall /stage_source
export TMPDIR=/home/oracle/xtt
$ORACLE_HOME/perl/bin/perl xttdriver.pl -i
--nfs无需拷贝,incrbackups.txt 备份信息
--scp `cat incrbackups.txt` oracle@dest:/stage_dest
cd /home/oracle/xtt/
scp xttplan.txt tsbkupmap.txt mystandby:/home/oracle/xtt
--目标端
su - root
chown -R oracle:oinstall /stage_dest/
su - oracle
export ORACLE_SID=mytest
export TMPDIR=/home/oracle/xtt
$ORACLE_HOME/perl/bin/perl xttdriver.pl -r
--生成导入脚本
$ORACLE_HOME/perl/bin/perl xttdriver.pl -e
--编辑导入脚本,例如
impdp directory=DATA_PUMP_DIR logfile=tts_imp.log \
network_link=ttslink transport_full_check=no \
transport_tablespaces=ABC \
transport_datafiles='/oracle/app/oracle/oradata/mytest/ABC_12.dbf'
--设置表空间读写
 alter tablespace TEST read write;
 alter tablespace MYDB read write;
 alter tablespace TMOVE read write;
 alter tablespace TBSADD read write;
 alter tablespace TSB01 read write;
 
--修改目标端用户默认表空间(语句在源端查询)
select 'alter user '||d.username||' default tablespace '||d.default_tablespace||' temporary tablespace '||d.TEMPORARY_TABLESPACE||';' from dba_users d,user$ u where d.username=u.name and account_status='OPEN' and username not in('SYS','SYSTEM');
--取消块跟踪
alter database disable block change tracking;
--删除dblink
drop database link ttslink;
--参考
http://www.xifenfei.com/2017/11/xtts.html
https://blog.csdn.net/heguanghuicn/article/details/79460198
11G - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID 1389592.1)
https://yq.aliyun.com/articles/129601


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29487349/viewspace-2564303/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
主要从事数据库相关工作,其他操作系统、中间件等也有涉及,热衷分享、开源,支持国产,期待中华民族全面的伟大复兴。近日骤然醒悟,欲在IT江湖中闯荡一番,如有幸在诸多侠客中留点踪迹,也算不虚此行。 【文盲筱烨】好读书爱运动的IT技术爱好者 微博:文盲筱烨 微信公众号:筱烨视点

注册时间:2014-02-15

  • 博文量
    168
  • 访问量
    757044