使用XTTS异机迁移并升级11.2.0.4到12.2.0.1

0    1365    2

Tags:

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

目录

相关文章可以参考:

【DB宝53】Oracle异构平台迁移利器之XTTS(使用dbms_file_transfer方式):https://www.dbaup.com/dbbao53oracleyigoupingtaiqianyiliqizhixttsshiyongdbms_file_transferfangshi.html

【DB宝52】Oracle异构平台迁移利器之XTTS(使用rman方式):https://www.dbaup.com/dbbao52oracleyigoupingtaiqianyiliqizhixttsshiyongrmanfangshi.html

环境

环境情况如下:

源库目标库
版本11.2.0.412.2.0.1
ORACLE_SIDLHR11GLHR11G
用户表空间TS_LHR、USERSTS_LHR、USERS
业务用户lhr、scottlhr、scott
平台Linux x86 64-bitLinux x86 64-bit
字节序LittleLittle
IP地址172.17.0.2172.17.0.4
字符集AMERICAN_CHINA.AL32UTF8AMERICAN_CHINA.AL32UTF8
归档模式归档模式归档模式

XTTS迁移流程:

1、数据库检查

  • 源库必须为归档模式
  • 源端和目标的字符集需要一致
  • 源库的操作系统不是Windows
  • 源库的compatible参数最低为11.1.0.0.0
  • 源库的RMAN 配置里DEVICE TYPE DISK不能设置为COMPRESSED
  • 源端和目标端必须支持可传输平台
  • 源端需要迁移的表空间需要自包含
  • 源库开启块改变跟踪功能,加快增量备份的速度
  • 源端和目标端时区需要保持一致
  • 目标端建议打最新的PSU补丁
  • 目标端的db_files参数不能小于源端
  • 要迁移的表空间的数据文件必须都是online或者不包含offline的数据文件
  • 检查源数据库和目标库具有重名的表空间
  • 检查是否存在应用用户建在system,sysaux,users上的情况
  • 基于XMLSchema的XMLType对象检查
  • 失效对象检查
  • 迁移对象统计
  • 无论是源还是目标,GLOGIN.sql的存在都可能导致语法错误
  • 源库的版本不能大于目标库的版本

查询平台字节序和字符集

获取需要迁移的业务表空间和业务用户

排除系统表空间,避免冲突,并且检查业务表空间是否存在自包含

目标端需要删除已存在的和源库同名的表空间:

表空间自包含

需要传输的表空间为TS_LHR、TS_XXT、USERS,要确保这3个表空间为自包含的表空间。

在表空间传输的中,要求表空间集为自包含的,自包含表示用于传输的内部表空间集没有引用指向外部表空间集。自包含分为两种:一般自包含表空间集和完全(严格)自包含表空间集。

常见的以下情况是违反自包含原则的:

  • 索引在内部表空间集,而表在外部表空间集(相反地,如果表在内部表空间集,而索引在外部表空间集,则不违反自包含原则);

  • 分区表一部分区在内部表空间集,一部分在外部表空间集(对于分区表,要么全部包含在内部表空间集中,要么全不包含);

  • 如果在传输表空间时同时传输约束,则对于引用完整性约束,约束指向的表在外部表空间集,则违反自包含约束;如果不传输约束,则与约束指向无关;

  • 表在内部表空间集,而 lob 列在外部表空间集,则违反自包含约束。

通常可以通过系统包 DBMS_TTS 来检查表空间是否自包含,验证可以以两种方式执行:非严格方式和严格方式。

获取用户及其权限的SQL

检查环境变量

开启块改变跟踪功能

Block change tracking 进程记录自从上一次0级备份以来数据块的变化,并把这些信息记录在跟踪文件中。RMAN 使用这个文件判断增量备份中需要备份的变更数据。这极大的提高了备份性能和速度,RMAN 可以不再扫描整个文件以查找变更数据。

如果开启BCT,那么需要在源端安装补丁Bug 16850197。该补丁在11.2.0.3.9和11.2.0.4版本的PSU中提供。

incremental backup的目的是只备份那些自上次备份以来发生过改变的block。然而,即使只有一小部分发生改变,incremental backup也要读取完整的数据文件。block change tracking功能解决了这个问题。它使用change tracking writer(CTWR)后台进程,在change tracking file文件中,记录所有数据库中变化的物理位置。启动block change tracking功能后,level 0级的incremental backup依然要扫描整个数据文件,因为change tracking file还没有映射到block的状态。对于后续级别的incremental backups,RMAN使用change tracking data决定哪些需要读取。通过消除对整个数据文件的read,提高了性能。

时区需要一致

目标端补丁情况

建议目标端打最新的PSU补丁。

组件检查

目标端需要包含源端的所有组件。

目标端的db_files参数不能小于源端

迁移对象个数统计

需要确认,非业务用户下是否有业务数据,例如SYS用户是否有业务数据:

2、全量迁移

在此步骤中,表空间的数据文件将从源端数据库传输到目标端数据库,本步骤只需要执行一次,数据文件传输过程中不影响源端数据库正常访问。

此处有2种方法:dbms_file_transfer和rman方法。对于数据文件很多的情况下来说,dbms_file_transfer是推荐的方法。

方法A为dbms_file_transfer方式;方法B为rman方式。

方法2A.1、源端和目标端都需要配置XTTS脚本

2A.2、创建相关directories和dblink

源端创建SOURCEDIR:

目标端创建DESTDIR:

目标端创建DBLINK

在目标端创建指向源端的dblink:

2A.3、xttdriver.pl -S做迁移准备

首先,确保源库处于OPEN阶段,所有表空间都处于online状态:

在源端执行 xttdriver.pl -p做迁移准备:

此过程会产生2个脚本,xttnewdatafiles.txt和getfile.sql

2A.4、将源端xttnewdatafiles.txt和getfile.sql传到目标端

2A.5、在目标端执行数据文件的拷贝(全量迁移)

本步骤将花费数据库迁移的大部分时间,因为本步骤会传输源端的数据文件到目标端。如果目标端到源端的网络很慢,例如,走公网,速率不到2MB/S,那这个过程将很慢!

本步骤执行完成,可以在目标端数据库数据文件存储目录发现从源端传输过来的数据文件。

若字节序格式不同,也会在该步骤自动隐式进行转换。

方法2B.1、源端和目标端都需要配置XTTS脚本

2B.2、源端调用 xttdriver.pl -p做迁移准备

首先,确保源库处于OPEN阶段,所有表空间都处于online状态:

在源端执行 xttdriver.pl -p做迁移准备:

过程:

该操作执行过程包括以下内容:

1、此过程会将相关的表空间文件执行一次镜像拷贝过程,可以认为是全备,可以在rman中执行“list copy;”查看。此处会把数据文件拷贝一份到/u01/app/xtts/df_bk目录。需要注意目录/u01/app/xtts/df_bk的空间。

2、会在/home/oracle/scripts 目录下产生几个文件,xttplan.txt、rmanconvert.cmd和xttnewdatafiles.txt:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

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

您可能还喜欢...

发表回复