XTTS from solaris sparc to linux


原文转载于http://blog.csdn.net/renfengjun/article/details/52880292
 

XTTS from solaris sparc to linux


跨平台表空间增量迁移



 
platform
OS’version
IP 地址
数据库版本
desc
10-8-28-71
solaris sparc X64
5.11
ip1
11.2.0.4
源端
orcl6
Oracle Linux X64
6
ip2
11.2.0.4
目标端
SQL> select * from V$TRANSPORTABLE_PLATFORM order by 1;
PLATFORM_ID PLATFORM_NAME                            ENDIAN_FORMAT
----------- ---------------------------------------- --------------
          1 Solaris[tm] OE (32-bit)                  Big
          2 Solaris[tm] OE (64-bit)                  Big
          3 HP-UX (64-bit)                           Big
          4 HP-UX IA (64-bit)                        Big
          5 HP Tru64 UNIX                            Little
          6 AIX-Based Systems (64-bit)               Big
          7 Microsoft Windows IA (32-bit)            Little
          8 Microsoft Windows IA (64-bit)            Little
          9 IBM zSeries Based Linux                  Big
         10 Linux IA (32-bit)                        Little
         11 Linux IA (64-bit)                        Little
PLATFORM_ID PLATFORM_NAME                            ENDIAN_FORMAT
----------- ---------------------------------------- --------------
         12 Microsoft Windows x86 64-bit             Little
         13 Linux x86 64-bit                         Little
         15 HP Open VMS                              Little
         16 Apple Mac OS                             Big
         17 Solaris Operating System (x86)           Little
         18 IBM Power Based Linux                    Big
         19 HP IA Open VMS                           Little
         20 Solaris Operating System (x86-64)        Little
         21 Apple Mac OS (x86-64)                    Little
20 rows selected.
此次为跨字节序的迁移动作。
确定要传输的表空间是否字包含,如果传输多个表空间,中间加逗号。
EXECUTEDBMS_TTS.TRANSPORT_SET_CHECK('xttbs',true) ;
SELECT * FROM TRANSPORT_SET_VIOLATIONS;
create tablespace xtidx datafile '/u01/app/oracle/oradata/startrek/xtidx01.dbf' size 100m autoextend on next 100m maxsize unlimited ;
create tablespace xttbs datafile '/u01/app/oracle/oradata/startrek/xttbs01.dbf' size 100m autoextend on next 100m maxsize unlimited ;
source
dexter
xiaojun
创建了一些测试数据。
SQL> select * from tab
  2  ;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
TB1                            TABLE
TB2                            TABLE
TB3                            TABLE
TB4                            TABLE
xttbs  表数据
xtidx  索引数据
需要迁移的数据如下所示:
表空间名称
数据文件
包含内容
数据 owner
xttbs
/u01/app/oracle/oradata/startrek/xttbs01.dbf
表数据
dexter
xtidx
/u01/app/oracle/oradata/startrek/xtidx01.dbf
索引数据
dexter
directory 信息
源端
sourcedir /u01/sourcedir
targetdir /u01/targetdir 
xtt.properties 中几个重要参数说明:
tablespaces=xttbs,xtidx  要迁移的表空间
platformid=2 source platform 编号,查看 V$TRANSPORTABLE_PLATFORM 视图
srcdir=/u01/app/oracle/oradata/startrek  dstdir 联合使用,有点像 dg 中的 convert ,当数据文件在源端以及 target 端不一致的时候可以使用
dstdir=/u01/app/oracle/oradata/startrek
dfcopydir=/u01/sourcedir/dfcopy  源端目录,使用 rmanbackup 的时候,将 datafile copy 放置在源端的目录
backupformat=/u01/sourcedir/incbk  源端目录,源端增量备份生成的目录
stageondest=/u01/targetdir/datafiledir  目标端目录,源端的 datafilecopy  传输到目标段临时存放的目录。(未转换前)
storageondest=/u01/target/rmanbk  目标端目录, datafile copy 以及 incremental backup  使用 -c 转换后的目录。正经需要使用的目录,转换后的数据文件会在这个目录生成。 如果目标端为asm可以设定为+DATA磁盘组名称。
backupondest=/u01/target/rmaninc  目标段目录,当使用 -r roll forward datafiles  阶段, inc backup 存放的目录。使用rman incremental recover的时候不需要这个参数。如果目标端为asm可以设定为+DATA磁盘组名称。
具体:
## Location where converted incremental backups on the destination system
## will be written during the "-r roll forward datafiles" step.
##
其他内容,请具体看下面的文件。

cd /u01/sourcedir
执行下面命令
$ORACLE_HOME/perl/bin/perl xttdriver.pl –p
这个脚本执行三个主要步骤
  • Creates datafile copies of the tablespaces that will be transported in the location specified by the xtt.properties parameterdfcopydir.
    • 创建给定表空间相关的数据文件 copy dfcopydir 下面。
  • Verifies the tablespaces are online, in READ WRITE mode, and do not contain offline datafiles.
    • 验证给定的表空间为 online readwrite 、不包含 offline 的数据文件
  • Creates the following files used later in this procedure:
    • xttplan.txt
    • rmanconvert.cmd
      • 创建两个相关的文件 xttplan.txt,rmanconvert.cmd
别忘了源库需要在归档模式
生成的相关两个文件内容如下所示
cat xttplan.txt
XTTBS::::2785883
5
XTIDX::::2785883
6
-bash-4.1$ cat rmanconvert.cmd
host 'echo ts::XTTBS';
  convert from platform 'Solaris[tm] OE (64-bit)'
  datafile
   '/u01/targetdir/datafiledir/XTTBS_5.tf'
  format '/u01/target/rmanbk/%N_%f.xtf'
 parallelism 3;
host 'echo ts::XTIDX';
  convert from platform 'Solaris[tm] OE (64-bit)'
  datafile
   '/u01/targetdir/datafiledir/XTIDX_6.tf'
  format '/u01/target/rmanbk/%N_%f.xtf'
 parallelism 3;
将源端生成的
rmanconvert.cmd  XTIDX_6.tf  XTTBS_5.tf  xttplan.txt
两个 datafile copy 文件 copy target 端的 stageondest 目录下。另外两个生成的文件置于 xtt 相关脚本主目录下面。
然后执行下面的语句:
$ORACLE_HOME/perl/bin/perl xttdriver.pl –c
其实就是执行了 rman convert 命令。
上述脚本执行后会执行下面两个文件
[oracle@orcl6 targetdir]$ cat xttnewdatafiles.txt
::XTTBS
5,/u01/targetdir/rmanbk/XTTBS_5.xtf
::XTIDX
6,/u01/targetdir/rmanbk/XTIDX_6.xtf
神秘分割线
原文地址:blog.csdn.net/renfengjun

然后执行源端增量备份
$ORACLE_HOME/perl/bin/perl xttdriver.pl –i
生成了下面四个文件
04rgpbpl_1_1  05rgpbpn_1_1 
tsbkupmap.txt
incrbackups.txt
-bash-4.1$ cat rmanincr.cmd
set nocfau;
host 'echo ts::XTTBS';
backup incremental from scn 2785883
  tag tts_incr_update tablespace 'XTTBS'  format
 '/u01/sourcedir/incbk/%U';
set nocfau;
host 'echo ts::XTIDX';
backup incremental from scn 2785883
  tag tts_incr_update tablespace 'XTIDX'  format
 '/u01/sourcedir/incbk/%U';
-bash-4.1$ cat tsbkupmap.txt
XTIDX::6:::1=05rgpbpn_1_1
XTTBS::5:::1=04rgpbpl_1_1
将上述几个文件 copy target 端的 stageondest 目录下。
tsbkupmap.txt 以及新生成的 xttplan.txt.new 文件 copy target 端的脚本主目录。
重命名为 xttplan.txt
执行下面语句完成 roll forwad
$ORACLE_HOME/perl/bin/perl xttdriver.pl –r
源端执行下面的脚本以确定下一次执行 incremental backup   from_scn
$ORACLE_HOME/perl/bin/perl xttdriver.pl –s
神秘分割线

分割线中间即为  repeat 重复执行的内容。 $ORACLE_HOME/perl/bin/perl xttdriver.pl –s
上面的语句就算是最后一步也需要执行,因为最后还需要进行一次增量备份恢复。
先将表空间置于 readonly 状态。(这个脚本其实就是减少了 down 机时间)
SQL> alter tablespace xttbs read only ;
Tablespace altered.
SQL> alter tablespace xtidx read only ;
Tablespace altered.
SQL> 
执行最后一次增量备份
$ORACLE_HOME/perl/bin/perl xttdriver.pl –i
将相关四个文件传送到 target
tsbkupmap.txt
xttplan.txt
inc09
inc10
相应的目录中。
执行最后一次 incremental recover
[oracle@dest]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl –r
然后执行下面的命令
[oracle@dest]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl –e
可以生成一个 impdp 的命令,然后适当的改一下即可。
[oracle@orcl6 targetdir]$ cat xttplugin.txt
impdp directory=<DATA_PUMP_DIR> logfile=<tts_imp.log> \
network_link=<ttslink> transport_full_check=no \
transport_tablespaces=XTTBS,XTIDX \
transport_datafiles='/u01/targetdir/rmanbk/XTTBS_5.xtf','/u01/targetdir/rmanbk/XTIDX_6.xtf'
这是在另个系统网络通畅的情况下使用的命令,如果不通则需要手动的 expdp impdp import metadata

expdp dexter/xiaojun dumpfile=xtts_xttbs_xtidx.dmp directory=sourcedir transport_tablespaces=xttbs,xtidx logfile=exp_xtts_xttbs_xtidx.log

传送文件 xtts_xttbs_xtidx.dmp target 端相应的目录然后执行导入即可。

impdp system/xiaojun dumpfile= xtts_xttbs_xtidx.dmp directory=targetdir transport_datafiles='/u01/targetdir/rmanbk/XTTBS_5.xtf','/u01/targetdir/rmanbk/XTIDX_6.xtf'  logfile= imp_xtts_xttbs_xtidx.dmp.log

导入结束后相关的表都级联生成(记得先创建用户)
[oracle@orcl6 targetdir]$ sqlplus dexter/xiaojun
SQL*Plus: Release 11.2.0.4.0 Production on Mon Sep 26 14:21:25 2016
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 * from tab ;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
TB1                            TABLE
TB2                            TABLE
TB3                            TABLE
TB4                            TABLE
SQL> select count(*) from tb2 ;
  COUNT(*)
----------
     10000
SQL> select count(*) from tb3 ;
  COUNT(*)
----------
     87079
SQL>
xtts 就完成了。
数据库的 down 机时间取决于最后一次执行 incremental 的速度。
随着执行 incremental 的次数的增加 down 机时间越来越少。
相关文档见:
11G - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup ( 文档  ID 1389592.1)
12c –  使用跨平台增量备份来减少传输表空间的停机时间  ( 文档  ID 2102859.1)





如需转载,请注明出处。

跨平台表空间增量迁移



 
platform
OS’version
IP 地址
数据库版本
desc
10-8-28-71
solaris sparc X64
5.11
ip1
11.2.0.4
源端
orcl6
Oracle Linux X64
6
ip2
11.2.0.4
目标端
SQL> select * from V$TRANSPORTABLE_PLATFORM order by 1;
PLATFORM_ID PLATFORM_NAME                            ENDIAN_FORMAT
----------- ---------------------------------------- --------------
          1 Solaris[tm] OE (32-bit)                  Big
          2 Solaris[tm] OE (64-bit)                  Big
          3 HP-UX (64-bit)                           Big
          4 HP-UX IA (64-bit)                        Big
          5 HP Tru64 UNIX                            Little
          6 AIX-Based Systems (64-bit)               Big
          7 Microsoft Windows IA (32-bit)            Little
          8 Microsoft Windows IA (64-bit)            Little
          9 IBM zSeries Based Linux                  Big
         10 Linux IA (32-bit)                        Little
         11 Linux IA (64-bit)                        Little
PLATFORM_ID PLATFORM_NAME                            ENDIAN_FORMAT
----------- ---------------------------------------- --------------
         12 Microsoft Windows x86 64-bit             Little
         13 Linux x86 64-bit                         Little
         15 HP Open VMS                              Little
         16 Apple Mac OS                             Big
         17 Solaris Operating System (x86)           Little
         18 IBM Power Based Linux                    Big
         19 HP IA Open VMS                           Little
         20 Solaris Operating System (x86-64)        Little
         21 Apple Mac OS (x86-64)                    Little
20 rows selected.
此次为跨字节序的迁移动作。
确定要传输的表空间是否字包含,如果传输多个表空间,中间加逗号。
EXECUTEDBMS_TTS.TRANSPORT_SET_CHECK('xttbs',true) ;
SELECT * FROM TRANSPORT_SET_VIOLATIONS;
create tablespace xtidx datafile '/u01/app/oracle/oradata/startrek/xtidx01.dbf' size 100m autoextend on next 100m maxsize unlimited ;
create tablespace xttbs datafile '/u01/app/oracle/oradata/startrek/xttbs01.dbf' size 100m autoextend on next 100m maxsize unlimited ;
source
dexter
xiaojun
创建了一些测试数据。
SQL> select * from tab
  2  ;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
TB1                            TABLE
TB2                            TABLE
TB3                            TABLE
TB4                            TABLE
xttbs  表数据
xtidx  索引数据
需要迁移的数据如下所示:
表空间名称
数据文件
包含内容
数据 owner
xttbs
/u01/app/oracle/oradata/startrek/xttbs01.dbf
表数据
dexter
xtidx
/u01/app/oracle/oradata/startrek/xtidx01.dbf
索引数据
dexter
directory 信息
源端
sourcedir /u01/sourcedir
targetdir /u01/targetdir 
xtt.properties 中几个重要参数说明:
tablespaces=xttbs,xtidx  要迁移的表空间
platformid=2 source platform 编号,查看 V$TRANSPORTABLE_PLATFORM 视图
srcdir=/u01/app/oracle/oradata/startrek  dstdir 联合使用,有点像 dg 中的 convert ,当数据文件在源端以及 target 端不一致的时候可以使用
dstdir=/u01/app/oracle/oradata/startrek
dfcopydir=/u01/sourcedir/dfcopy  源端目录,使用 rmanbackup 的时候,将 datafile copy 放置在源端的目录
backupformat=/u01/sourcedir/incbk  源端目录,源端增量备份生成的目录
stageondest=/u01/targetdir/datafiledir  目标端目录,源端的 datafilecopy  传输到目标段临时存放的目录。(未转换前)
storageondest=/u01/target/rmanbk  目标端目录, datafile copy 以及 incremental backup  使用 -c 转换后的目录。正经需要使用的目录,转换后的数据文件会在这个目录生成。 如果目标端为asm可以设定为+DATA磁盘组名称。
backupondest=/u01/target/rmaninc  目标段目录,当使用 -r roll forward datafiles  阶段, inc backup 存放的目录。使用rman incremental recover的时候不需要这个参数。如果目标端为asm可以设定为+DATA磁盘组名称。
具体:
## Location where converted incremental backups on the destination system
## will be written during the "-r roll forward datafiles" step.
##
其他内容,请具体看下面的文件。

cd /u01/sourcedir
执行下面命令
$ORACLE_HOME/perl/bin/perl xttdriver.pl –p
这个脚本执行三个主要步骤
  • Creates datafile copies of the tablespaces that will be transported in the location specified by the xtt.properties parameterdfcopydir.
    • 创建给定表空间相关的数据文件 copy dfcopydir 下面。
  • Verifies the tablespaces are online, in READ WRITE mode, and do not contain offline datafiles.
    • 验证给定的表空间为 online readwrite 、不包含 offline 的数据文件
  • Creates the following files used later in this procedure:
    • xttplan.txt
    • rmanconvert.cmd
      • 创建两个相关的文件 xttplan.txt,rmanconvert.cmd
别忘了源库需要在归档模式
生成的相关两个文件内容如下所示
cat xttplan.txt
XTTBS::::2785883
5
XTIDX::::2785883
6
-bash-4.1$ cat rmanconvert.cmd
host 'echo ts::XTTBS';
  convert from platform 'Solaris[tm] OE (64-bit)'
  datafile
   '/u01/targetdir/datafiledir/XTTBS_5.tf'
  format '/u01/target/rmanbk/%N_%f.xtf'
 parallelism 3;
host 'echo ts::XTIDX';
  convert from platform 'Solaris[tm] OE (64-bit)'
  datafile
   '/u01/targetdir/datafiledir/XTIDX_6.tf'
  format '/u01/target/rmanbk/%N_%f.xtf'
 parallelism 3;
将源端生成的
rmanconvert.cmd  XTIDX_6.tf  XTTBS_5.tf  xttplan.txt
两个 datafile copy 文件 copy target 端的 stageondest 目录下。另外两个生成的文件置于 xtt 相关脚本主目录下面。
然后执行下面的语句:
$ORACLE_HOME/perl/bin/perl xttdriver.pl –c
其实就是执行了 rman convert 命令。
上述脚本执行后会执行下面两个文件
[oracle@orcl6 targetdir]$ cat xttnewdatafiles.txt
::XTTBS
5,/u01/targetdir/rmanbk/XTTBS_5.xtf
::XTIDX
6,/u01/targetdir/rmanbk/XTIDX_6.xtf
神秘分割线
原文地址:blog.csdn.net/renfengjun

然后执行源端增量备份
$ORACLE_HOME/perl/bin/perl xttdriver.pl –i
生成了下面四个文件
04rgpbpl_1_1  05rgpbpn_1_1 
tsbkupmap.txt
incrbackups.txt
-bash-4.1$ cat rmanincr.cmd
set nocfau;
host 'echo ts::XTTBS';
backup incremental from scn 2785883
  tag tts_incr_update tablespace 'XTTBS'  format
 '/u01/sourcedir/incbk/%U';
set nocfau;
host 'echo ts::XTIDX';
backup incremental from scn 2785883
  tag tts_incr_update tablespace 'XTIDX'  format
 '/u01/sourcedir/incbk/%U';
-bash-4.1$ cat tsbkupmap.txt
XTIDX::6:::1=05rgpbpn_1_1
XTTBS::5:::1=04rgpbpl_1_1
将上述几个文件 copy target 端的 stageondest 目录下。
tsbkupmap.txt 以及新生成的 xttplan.txt.new 文件 copy target 端的脚本主目录。
重命名为 xttplan.txt
执行下面语句完成 roll forwad
$ORACLE_HOME/perl/bin/perl xttdriver.pl –r
源端执行下面的脚本以确定下一次执行 incremental backup   from_scn
$ORACLE_HOME/perl/bin/perl xttdriver.pl –s
神秘分割线

分割线中间即为  repeat 重复执行的内容。 $ORACLE_HOME/perl/bin/perl xttdriver.pl –s
上面的语句就算是最后一步也需要执行,因为最后还需要进行一次增量备份恢复。
先将表空间置于 readonly 状态。(这个脚本其实就是减少了 down 机时间)
SQL> alter tablespace xttbs read only ;
Tablespace altered.
SQL> alter tablespace xtidx read only ;
Tablespace altered.
SQL> 
执行最后一次增量备份
$ORACLE_HOME/perl/bin/perl xttdriver.pl –i
将相关四个文件传送到 target
tsbkupmap.txt
xttplan.txt
inc09
inc10
相应的目录中。
执行最后一次 incremental recover
[oracle@dest]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl –r
然后执行下面的命令
[oracle@dest]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl –e
可以生成一个 impdp 的命令,然后适当的改一下即可。
[oracle@orcl6 targetdir]$ cat xttplugin.txt
impdp directory=<DATA_PUMP_DIR> logfile=<tts_imp.log> \
network_link=<ttslink> transport_full_check=no \
transport_tablespaces=XTTBS,XTIDX \
transport_datafiles='/u01/targetdir/rmanbk/XTTBS_5.xtf','/u01/targetdir/rmanbk/XTIDX_6.xtf'
这是在另个系统网络通畅的情况下使用的命令,如果不通则需要手动的 expdp impdp import metadata

expdp dexter/xiaojun dumpfile=xtts_xttbs_xtidx.dmp directory=sourcedir transport_tablespaces=xttbs,xtidx logfile=exp_xtts_xttbs_xtidx.log

传送文件 xtts_xttbs_xtidx.dmp target 端相应的目录然后执行导入即可。

impdp system/xiaojun dumpfile= xtts_xttbs_xtidx.dmp directory=targetdir transport_datafiles='/u01/targetdir/rmanbk/XTTBS_5.xtf','/u01/targetdir/rmanbk/XTIDX_6.xtf'  logfile= imp_xtts_xttbs_xtidx.dmp.log

导入结束后相关的表都级联生成(记得先创建用户)
[oracle@orcl6 targetdir]$ sqlplus dexter/xiaojun
SQL*Plus: Release 11.2.0.4.0 Production on Mon Sep 26 14:21:25 2016
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 * from tab ;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
TB1                            TABLE
TB2                            TABLE
TB3                            TABLE
TB4                            TABLE
SQL> select count(*) from tb2 ;
  COUNT(*)
----------
     10000
SQL> select count(*) from tb3 ;
  COUNT(*)
----------
     87079
SQL>
xtts 就完成了。
数据库的 down 机时间取决于最后一次执行 incremental 的速度。
随着执行 incremental 的次数的增加 down 机时间越来越少。
相关文档见:
11G - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup ( 文档  ID 1389592.1)
12c –  使用跨平台增量备份来减少传输表空间的停机时间  ( 文档  ID 2102859.1)





如需转载,请注明出处。

猜你喜欢

转载自blog.csdn.net/oradbm/article/details/53598320
今日推荐