云优惠
 云服务器优惠大全

首页    数据库    Oracle数据库怎么不停机迁移到PPAS?

Oracle数据库怎么不停机迁移到PPAS?

创建时间:2019-01-14 11:06
浏览量:0
收藏

适用场景

使用数据传输DTS可以将本地的Oracle的数据迁移至RDS For PostgreSQL Plus Advanced Server。同时,DTS提供的增量数据迁移功能,可以实现Oracle在提供服务的过程中,进行数据迁移,当Oracle跟PPAS两边数据达到动态同步过程,将业务切换到PPAS,使得依赖Oracle的应用停机时间最短。

本小节简单介绍使用DTS进行Oracle到RDS For PostgreSQL Plus Advanced Server不停机数据迁移的任务配置流程。

迁移类型

Oracle到RDS For PPAS的迁移,支持结构迁移、全量数据迁移及增量数据迁移。各个迁移阶段的支持范围如下:

  • 结构迁移

    DTS将迁移对象的结构定义迁移到目标实例。目前DTS支持的对象包括:表、视图、同义词、触发器、存储过程、存储函数、包、自定义类型。

  • 全量数据迁移

    DTS将源数据库迁移对象的存量数据迁移到目标实例。

    如果未选择增量数据迁移,那么Oracle数据库有数据写入的话,新增增量数据不一定能够被迁移到PPAS中。所以,如果要保证迁移数据一致性,那么尽量选择在业务低峰期进行停机迁移。

  • 增量数据迁移

    增量数据迁移会将迁移过程中,源Oracle实例的增量变更数据同步到目标PPAS实例,增量数据迁移可以实现Oracle实例在迁移过程中产生的增量数据被实时同步到目标库,最终Oracle同目标RDS PPAS实例进入动态数据同步的过程。

迁移限制

  • 迁移过程中,不支持DDL操作。

  • 不支持物化视图的迁移。

  • 结构迁移时,reverse index迁移到RDS For PPAS中,存储成普通索引。

  • 结构迁移时,位图索引迁移到RDS For PPAS,存储成普通索引。

  • 结构迁移时,分区索引迁移到RDS For PPAS,在每个分区上创建独立的索引。

  • 增量数据迁移只支持有主键,或有非空唯一索引的表。

  • 增量数据迁移不支持long类型。

迁移权限要求

当使用DTS进行Oracle到RDS For PPAS迁移时,不同迁移类型,对源及目标数据库的迁移帐号权限要求如下:

迁移类型结构迁移全量迁移增量数据迁移
本地Oracle实例schema的ownerschema的ownerSYSDBA
目的RDS for PPAS实例schema的ownerschema的ownerschema的owner

迁移前置条件

  • Oracle版本为10g,11g,12c。

  • Oracle 开启supplement log,且要求 supplemental_log_data_pk,supplemental_log_data_ui 开启。

  • Oracle要求开启archive log。

数据类型映射关系

由于Oracle跟RDS For PPAS的数据类型不是一一对应的,所以数据传输服务在进行结构迁移时,会根据两种数据库类型的数据类型定义,进行类型映射,下表为数据传输服务定义的数据类型映射关系。

Oracle数据类型PPAS数据类型数据传输服务是否支持
varchar2(n [char/byte])varchar2[(n)]支持
nvarchar2[(n)]nvarchar2[(n)]支持
char[(n [byte/char])]char[(n)]支持
nchar[(n)]]nchar[(n)]支持
number[(p[,s])]number[(p[,s])]支持
float(p)]double precision支持
longlong支持
datedate支持
binary_floatreal支持
binary_doubledouble precision支持
timestamp[(fractional_seconds_precision)]timestamp[(fractional_seconds_precision)]支持
timestamp[(fractional_seconds_precision)]with time zonetimestamp[(fractional_seconds_precision)]with time zone支持
timestamp[(fractional_seconds_precision)]with local time zonetimestamp[(fractional_seconds_precision)]with time zone支持
clobclob支持
nclobnclob支持
blobblob支持
rawraw(size)支持
long rawlong raw支持
bfile不支持
interval year(year_precision) to monthinterval year to month不支持
interval day(day_precision) to second[(fractional_seconds_precision)]interval day to second[(fractional_seconds_precision)]不支持

由于RDS For PPAS不支持数据类型timestamp[(fractional_seconds_precision)]with local time zone,所以数据传输服务在迁移这种类型的数据时,会将其转换成UTC时区后,存入RDS For PPAS的数据类型timestamp[(fractional_seconds_precision)]with time zone中。

环境准备

创建迁移帐号

迁移任务配置,需要提供Oracle数据库及目标RDS实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求。

如果您的Oracle实例的迁移账号尚未创建,那么您可以参考 Oracle Grant语法说明,创建满足要求的迁移账号。

RDS For PPAS 迁移账号的创建及授权操作如下:

  1. 通过PostgreSQL客户端,在RDS For PPAS中创建迁移账号,语法如下所示:


    参数说明:

    • username:要创建的账号。

    • password:该账号的登录密码。

    1. create user username IDENTIFIDE BY password;

  2. 在RDS FOR PPAS中给迁移账号授权,语法如下所示:


    参数说明:

    • privileges:该账号的操作权限,如SELECT、INSERT、UPDATE等。如果要授权账号所有权限,则使用ALL。

    • table:表名。如果要授权该账号所有的表权限则使用通配符*。

    • username:要授权的账号名。

    1. GRANT privileges ON tablename TO username;

操作步骤

  1. 以目标RDS实例所属阿里云账号登录DTS数据传输控制台,单击右上角的创建迁移任务,开始任务配置。

  2. 设置实例连接信息。这个步骤主要配置 迁移任务名称,Oracle连接信息及目标RDS实例连接信息。其中:

    • 实例类型:选择 RDS实例

    • RDS实例ID: 配置迁移的目标RDS实例的实例ID。 DTS支持经典网络、VPC网络的RDS实例。

    • 账号:RDS实例的连接账号。

    • 密码:上面RDS实例连接账号对应的密码。

    • 实例类型:选择 有公网IP的自建数据库

    • 数据库类型: 选择 Oracle

    • 主机名或IP地址: 配置Oracle访问地址,这个地址必须为公网访问方式。

    • 端口:Oracle实例的监听端口。

    • SID:Oracle实例的SID。

    • 数据库账号:Oracle实例的连接账号。

    • 数据库密码:上面Oracle连接账号对应的密码。

    • 任务名称

      DTS为每个任务自动生成一个任务名称,任务名称没有唯一性要求。您可以根据需要修改任务名称,建议为任务配置具有业务意义的名称,便于后续的任务识别。

    • 源实例信息

    • 目标实例信息

      oracle_ppas_步骤1

      当配置完连接信息后,单击右下角 授权白名单并进入下一步 进行白名单授权。这个步骤DTS会将DTS服务器的IP地址添加到目标RDS实例的白名单中,避免因为RDS实例设置了白名单,导致DTS服务器连接不上RDS实例导致迁移失败。

  3. 迁移对象及迁移类型配置。

    • 结构迁移

    • 全量数据迁移

    • 增量数据迁移

    • 如果需要进行不停机迁移,那么需要选择:结构迁移+全量数据迁移+增量数据迁移

    • 如果只进行全量迁移,那么需要选择:结构迁移+全量数据迁移

    • 迁移类型

      说明:

    • 迁移对象

      迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。默认情况下,对象迁移到RDS For PPAS实例后,对象名跟本地Oracle实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用DTS提供的对象名映射功能,详细使用方式可以参考库表列映射

      对象选择

    当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤。
  1. 预检查。

    在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。

    如果预检查失败,那么可以单击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。

    预检查失败

    当修复完成后,可以在任务列表中,选择这个任务,重新启动预检查。

  2. 购买实例并启动任务。

    当预检查通过后即进入迁移实例购买清单确认界面。请根据业务压力选择具体的规格并同意产品服务条款后,启动迁移任务。

    当任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。

    增量数据迁移是个动态同步的过程,所以建议在增量迁移达到无延迟状态时,在目标数据库上进行业务验证,如果验证成功,那么可以停掉迁移任务,然后将业务切换到目标数据库。

    至此,完成本地Oracle数据库到RDS for PPAS实例的不停机数据迁移的任务配置。

附:预检查内容

DTS在启动迁移之前,会进行前置预检查,本小节简单介绍Oracle->RDS For PPAS的预检查内容:

预检查项检查内容备注
源库连接性检查检查DTS服务同Oracle实例的连通性(1) 填写信息是否有误?如果填写信息有误,请修改后重新预检查
(2) 检查Oracle是否开启监听端口
目的库连接性检查检查DTS服务同目的RDS For PPAS实例的连通性检查填写信息是否有误,如果有误请先修改后重新预检查
源库版本检查检查Oracle实例的版本,DTS是否支持DTS目前只支持10g,11g,12c三个版本
源库权限检查检查Oracle实例访问账号的权限是否满足要求如果权限不足,请参照上面的权限要求一节授权后,重新预检查
目的库权限检查检查RDS For PPAS实例访问账号的权限是否满足要求如果权限不足,请参照上面的权限要求一节授权后,重新预检查
同名对象存在性检查检查待迁移对象在目标RDS For PPAS是否已经存在如果检查失败,请将目标库中这些已经存在的对象删除后,重新进行预检查
源端同名对象存在性检查检查待迁移对象中,要迁入目标同一个schema的对象是否同名如果检查失败,可以参考 库表列映射将重名对象进行重命名
源库日志模式检查检查源库是否开启archive log如果未开启,请启用后,重新预检查
约束完整性检查检查待迁移对象依赖的父对象是否迁移如果检查失败,那么可以修改迁移对象,同时迁移依赖的父对象后,重新预检查
DBLINK存在性检查检查源库是否存在DBLINK如果存在,那么需要修改迁移对象,不选择DBLINK
增量拓扑冲突检查检查同一个迁移对象是否已经存在迁移链路如果存在冲突链路,那么需要删除掉冲突链路后,重新预检查
字段类型检查检查待迁移表的是否存在数据类型为long类型的字段如果存在那么对应的表只能进行全量数据迁移,不能选择增量数据迁移
表是否存在主键或者唯一性非空索引检查检查待迁移表是否包含主键或非空唯一键如果存在那么对应的表只能进行全量数据迁移,不能选择增量数据迁移
补偿日志开启检查检查是否开启supplemental_log如果未开启,请启用后,重新预检查


免费领取阿里云1888元代金券大礼包

 

阿里云新老用户均可领取!
自领取后:限时7天使用!

阿里云服务器2折优惠:低至293元/年

 

 

突发性能实例t5 1核1G:293元/年

突发性能实例t5 1核2G:459元/年

突发性能实例t5 2核4G:798元/年

共享型xn4实例1核1G内存:394元/年

共享型n4实例1核2G内存:653元/年

计算网络增强型实例2核4G内存:1566元/年

计算网络增强型实例4核8G内存:2991元/年

点此查看2折活动详情

阿里云高性能云服务器

 

 

网络增强型云服务器:2核4G ¥720元/年

高频应用云服务器:8核16G ¥4109元/年

本地SSD型云服务器:4核16G ¥6218.40元/年

大数据型云服务器:8核32G ¥11375.00元/年

GPU异构云服务器:16核40G ¥15563.00元/年

新用户满立减:每满1000立减50

 

1、到阿里云官网选购产品
2、加入到购物车
3、结算时立享满减

注意:新用户首次购买时必须先加到购物车,然后一起结算才享受此优惠。

腾讯云CVM云服务器22.07元起

 

 

腾讯云1核1G:22.07元/月、794.73元/3年

腾讯云2核2G:36.48元/月、1313.35元/3年

腾讯云2核4G:43.01元/月、1548.5元/3年

腾讯云4核8G:178.5元/月、6426元/3年