【DB宝52】Oracle异构平台迁移利器之XTTS(使用rman方式)

4    12004    8

👉 本文共约8945个字,系统预计阅读时间或需34分钟。

[TOC]

【DB宝52】Oracle异构平台迁移利器之XTTS(使用rman方式)

一、XTTS简介

1.1、简介

XTTS(Cross Platform Transportable Tablespaces)属于跨平台迁移表空间,它是从Oracle 8i开始就引入的一种基于表空间传输的物理迁移方法,命名为TTS,经历各个版本的不断演进,从11gR2开始,在相对停机时间要求日益减少的情况,为了应对越来越大的数据量跨平台迁移,Oracle推出了新的解决方案—加强版TTS(以下简称XTTS),XTTS使用增量备份的方式实现跨平台的数据迁移,从真正意义上大大缩短停机时间。在U2L如火如荼的今天,通过XTTS快捷、高效、平稳、安全的将Oracle数据库“小型机+集中式存储”环境迁移至“X86架构平台+分布式存储”已然成为一大神技。

XTTS的发展历史:

  • 从8i,tts技术的诞生,引入了相同平台相同块大小之间的表空间传输。到了9i,tts开始支持同平台中,不同块大小的表空间传输。
  • 10g时代,不仅引入了跨平台的表空间传输方案,也就是我们说的xtts;10gR2开始支持传输整个数据库。
  • 11gR1开始,可以传输表空间中的某个特定分区。
  • 在11.2.0.4开始,为了应对越来越大的数据量,而停机时间甚至还在减少的情况,出现了新的解决方案—使用增量备份方式的xtts。

XTTS 各版本的功能比对如下:

【DB宝52】Oracle异构平台迁移利器之XTTS(使用rman方式)

在 Oracle11gR2(推荐使用 11.2.0.4 及之后版本)以后,Oracle 推出了通过前滚数据文件,拷贝数据后再进行多次增量备份的 XTTS 来完成迁移过程,在这个过程中通过开启块跟踪特性,根据 SCN 号来执行一系列的增量备份,并且通过对块跟踪文件的扫描,来完成增量数据的增量备份应用,最后在通过一定的停机时间,在源库 read only 的状态下进行最后一次增量备份转换应用,使得整个迁移过程的停机时间同源库数据块的变化率成正比。这样大大的缩短了停机时间。

为了减少正式的停机时间,oracle在xtts中引入了rman的增量备份前滚功能。通过一次又一次的增量备份,使停应用的时间主要包含四个方面:将表空间置为只读,最后进行一次增量前滚,元数据导入,数据文件校验。和传统的表空间传输相比,通过减少数据文件的传输时间,而大大减少了整体停机时间。

1.2、全量迁移方式

对于XTTS的全量操作,Oracle提供了2种方式来进行,分别如下:
1)dbms_file_transfer(DFT) -- (using xttdriver.pl -S and -G options)

DBMS_FILE_TRANSFER 包是 Oracle 提供的一个用于复制二进制数据库文件或在数据库之间传输二进制文件的程序包,在 XTTS 迁移中,利用不同的参数进行数据文件传输转换完成迁移。

要求:目标端数据库版本必须是11.2.0.4以及更新的版本。如果数据库版本低于11.2.0.4(大于Oracle10R1),那么目标端环境,仍然需要安装11.2.0.4以及更新版本的临时环境,因为XTTS增量的核心脚本功能必须是基于11.2.0.4(+)版本。

本人提供Oracle、MySQL、PG等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

如果准备使用DDBMS_FILE_TRANSFER 作为全量迁移方法,那么必须创建三个数据库对象:

  1. 源数据库中的数据库目录对象。
  2. 目标数据库中的数据库目录对象,放置数据文件的位置。
  3. 在目标数据库中创建指向源库的数据库链接。

2)RMAN(Recovery Manager )备份 -- (using xttdriver.pl -p and -c options)

通过使用 rman-xttconvert 包提供的参数,对数据库进行基于表空间的备份,将备份产生的备份集写到本地或者 NFS 盘上,然后再通过 rman-xttconvert 包中包含的不同平台之间数据文件格式转换的包对进行数据文件格式转换,最后通过记录的表空间 FILE_ID 号生产元数据的导入脚本,通过 db_link 执行完成。

1.3、脚本rman_xttconvert_v3.zip

XTTS基于一组 rman-xttconvert_3.0 的脚本文件包(Mos 1389592.1)来实现跨平台的数据迁移,主要包含 Perl脚本xttdriver 脚本。xttdriver.pl 是备份、转换和增量应用的执行脚本,xtt.properties 是属性文件,其中包含 XTTS 配置的路径、参数等。

脚本下载地址:11G - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID 1389592.1),内容参考:http://blog.itpub.net/26736162/viewspace-2767429/

脚本rman_xttconvert_v3.zip在小麦苗的微云下载:https://share.weiyun.com/57HUxNi 路径:小麦苗分享的资料>数据库系列>Oracle数据库>Oracle工具。

1.3.1、xttdriver.pl的选项

【DB宝52】Oracle异构平台迁移利器之XTTS(使用rman方式)

1.3.2、xtt.properties参数

【DB宝52】Oracle异构平台迁移利器之XTTS(使用rman方式)

【DB宝52】Oracle异构平台迁移利器之XTTS(使用rman方式)

1.3.3、文件介绍

  • xttplan.txt - containing the tablespace names, their current SCNs and their datafile numbers
  • xttnewdatafiles.txt - containing the tablespace names, datafile numbers, the destination directory object name and the source filenames
  • getfile.sql - The PL/SQL script(formatting ours) that will be used at the destination to get the datafilesfrom the source
  • xttpreparesrc.sql - the PL/SQL scriptused to create the files in this step
  • xttprepareNaNd - the command
  • tsbkupmap.txt - containing the tablespace names, datafile numbers and the incremental backup pieces
  • incrbackups.txt - containing the actual location of the incremental backup pieces
  • rmanincrNaNd - containing the RMAN scripts used to create the incremental backups.
  • xttdetnewfromscnsrc.sql - the PL/SQLscript used to create the files in this step
  • xttplan.txt.new- after the first run of'xttdriver.pl -i' this is just a copy of the xttplan.txt

1.4、参考文档

  • 11G - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (文档 ID 1389592.1)
  • 12c – 使用跨平台增量备份来减少传输表空间的停机时间 (文档 ID 2102859.1)
  • 12C - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (文档 ID 2005729.1)

http://blog.itpub.net/26736162/viewspace-2767646/

http://blog.itpub.net/26736162/viewspace-2767429/

1.5、迁移过程导图

【DB宝52】Oracle异构平台迁移利器之XTTS(使用rman方式)

    头像

    小麦苗

    学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

    您可能还喜欢...

    4 条回复

    1. 头像 Yuan说道:

      源库执行第一次增量,报错
      RMAN-03023: executing command: SET NOCFAU
      RMAN-06009: using target database control file instead of recovery catalog

      ts::APP_IDX
      RMAN-06134: host command complete

      RMAN-03090: Starting backup at 2022-06-30 16:29:14
      RMAN-08030: allocated channel: ORA_DISK_1
      RMAN-08500: channel ORA_DISK_1: SID=17307 device type=DISK
      RMAN-00571: ===========================================================
      RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
      RMAN-00571: ===========================================================
      RMAN-03002: failure of backup command at 06/30/2022 16:29:14
      RMAN-20202: Tablespace not found in the recovery catalog
      RMAN-06019: could not translate tablespace name "APP_IDX"

    2. 头像 nanying.xia说道:

      nice

    3. 头像 小麦苗说道:

      脚本下载位置:https://share.weiyun.com/57HUxNi , 路径:小麦苗分享的资料>数据库系列>Oracle数据库>Oracle工具。

    4. 头像 小鸟说道:

      很不错哈

    发表评论

    您的电子邮箱地址不会被公开。

    3 × 1 =

     

    嘿,我是小麦,需要帮助随时找我哦
    • 18509239930
    • 个人微信

    • 麦老师QQ聊天
    • 个人邮箱
    • 点击加入QQ群
    • 个人微店

    • 回到顶部
    返回顶部