更新时间:2024-07-23
功能说明
DMP 2.0.2 及以上版本的 DTS 能够支持 Oracle 数据库迁移。其底层通过调用 Oracle 的数据泵或 RMAN 工具来实现数据的迁移,涵盖迁移对象结构以及对象数据,并且支持全量和增量迁移。
前提条件
- DMP能访问到源端和目标端数据库。
- 目标端和源端数据库服务器网络连通,如果有防火墙,则需要放通数据库端口(如1521) 、SSH端口。
注意事项
- DBLINK方式不支持迁移全库,如果要迁移全库需要使用转储文件方式。
- 迁移必须使用具有DBA角色的用户,否则无法迁移。
- 迁移配置好后,必须连通性探测通过才能下一步。
- 如果源库或目标库是Oracle RAC数据库,需要连接到其中一个节点,应填写节点的VIP或Public IP,不应填写SCAN IP(Single Client Access Name)。
- 增量迁移源库要开启归档,ssh服务器开启,安装nfs客户端工具、root用户密码。
- 全量迁移最大数据量不能超过2TB。
操作步骤
详情可以参考《数据库迁移场景》章节。
- 进入[数据库/数据库工具/数据库迁移(DTS)]页面,点击<新建迁移任务>按钮,选择Oracle迁移,根据场景选择迁移类型。
全量迁移:适用于可以接受较长停机时间的业务迁移、备份、测试场景
全量+增量:适用于连续性要求较高、期望更短停机时间的业务迁移、备份等场景
结构迁移:迁移源库的所有数据库表结构,不包含数据;适用于部署新业务的场景
- 全量迁移、结构迁移方式:
- 1)填写迁移的源、目标数据库信息,通常使用system用户进行连接。填写后需要进行连通性探测,确定是否能够访问到数据库。
- 2)选择需要迁移的对象。可以选择全部对象,会覆盖目标库信息;也可以选择用户,最多同时选择50个用户,需要迁移的用户事先和用户确认。
- 进行全部对象迁移时,只能选择转储文件。此时目标端路径必须配置, 源端文件路径可选,如果不配置,则迁移不支持自定义类型、不支持LONG格式数据、并发数设置为1。配置源端路径时确保源库剩余可用空间不低于源库数据文件大小。
- 进行用户迁移时,先选择要迁移的用户。可以选择转储文件和db-link方式迁移。 转储文件的要求和全部对象迁移时一致。dblink迁移时直接通过网络迁移源端对象到目标端,如果源端存在LONG格式数据,则不能选择此方式。
- 常规的迁移中通常会以业务用户的维度进行迁移工作,即迁移类型选择“全量迁移”,迁移对象选择“用户(Schema)”,迁移方式选择“转储文件”。
- 并发数默认用2, 可以选择更高并发,会影响源库性能。
- 迁移后数据校验可选, 会增加迁移完成的时间,具体时间根据数据量大小而不同。
- DTS-VM配置网络配置根据实际环境填写。
- 全量+增量迁移方式:
1)填写迁移的源库IP、ssh端口,root口令, 选择目标端数据库。
2)选择要迁移的实例,设置自动增量间隔、源库备份并发数。备份源数据库时支持压缩和加密。
- DTS-VM配置网络配置根据实际环境填写。
- 填写完成之后,点击<确定>提交迁移任务。
选项说明如下:
表44迁移选项说明
选项 |
说明 |
迁移类型 |
- 全量数据迁移:一次性将所选对象结构以及数据同时传输到目标端 - 结构迁移:只将所选的对象结构在目标端创建,不会传递数据 - 增量迁移:先做一次全库数据同步,在割接之前定时做增量数据同步 |
迁移对象 |
- 全部对象:将源端数据库的所有对象都传输到目标端 - 用户(Schema):选项会列出源端所有用户,作为可选的传输对象 |
迁移方式 |
- 转储文件:在源端所选的目录下生成所选对象的导出的转储文件,再通过数据库的传输工具将文件传输到目标端,在目标端执行导入 - DBLINK:在目标端创建一个指向源端的数据库连接,并通过此数据库连接将所选对象直接导入到目标端,减少转储文件的创建过程,能节省大量迁移时间,但数据库中存在“LONG”类型的对象时不支持 |
并发数 |
加大并发可提升迁移速度,但可能对源端性能有影响 |
迁移服务(DTS-VM)配置 |
用于执行迁移任务的工具,包括数据导出与导入、日志抽取与重放等;不会占用迁移配额,将占用少量计算和存储资源,迁移完成后将自动删除该云主机并释放对应的资源。 |
- 点击<确定>按钮确认配置信息,自动创建DTSVM和进行预检查。
表45预检查项说明
检查项 |
说明 |
数据库连通性检测 |
检测是否可以连通源数据库和目标数据库,校验IP、Port、用户、密码以及用户是否具有DBA权限。 目标库连通性不通过解决方案:按照连通性错误提示,检查用户密码和端口是否正常;检查目标库RDS是否异常。 ssh: connect to host 10.116.51.121 port 22345: No route to host,表示ip填写错误 connect to host 10.116.57.124 port 2234: Connection refused,表示端口填写错误,或者源库未安装SSH,或者源库未启动SSH服务 Permission denied, please try again,表示用户名或密码错误 源库连通性不通过解决方案:按照连通性错误提示,检查用户密码和端口是否正常;检查源库网络是否与当前DTS-VM连通。 迁移用户不具有DBA权限:重新创建拥有DBA权限的迁移用户;或者为当前用户赋予DBA权限,GRANT DBA TO DTS_USER。 |
用户权限检测 |
源库和目标库建议创建迁移用户DTS_USER,作为源库和目标库的迁移用户。 权限要求: GRANT DBA, CREATE ANY DIRECTORY, IMPORT FULL DATABASE, EXPORT FULL DATABASE, READ ANY FILE GROUP, WRITE ANY FILE GROUP TO DTS_USER;GRANT execute ON dbms_flashback TO DTS_USER。 |
迁移数据量检测 |
显示迁移数据大小以及迁移预估时间。 迁移数据量大小介于0-2TB之间,最佳迁移数据量为500GB以内。 迁移预估时间:作为参考使用,迁移具体时间受限于网络、源库负载、目标库性能以及磁盘空间影响。 |
数据库字符集检测 |
禁止不同字符集数据库之间进行迁移。如果字符集不一致,建议重新选择字符集和源库一致的目标库进行迁移。 |
特殊数据类型检测 |
DBLINK迁移不支持Long类型、用户自建类型。 |
迁移对象检测 |
迁移全库数据时,默认会跳过重名冲突的对象。 |
数据库归档检测 |
如果源库开启归档模式,请确保有充足的归档空间;如果目标库库开启归档模式,请确保有充足的归档空间,查看方式可以通过监控平台查看 |
数据库读写权限检测 |
检验数据库是否具有读写权限。要求当前数据库是可读可写的库, 即READ WRITE,不支持从只读数据库进行迁移,也不支持迁移到只读数据库。 |
数据库架构检测 |
支持多种架构,如单机、RAC、主从、多实例等;支持windows、Linux 系统数据库迁移。 |
数据库版本检测 |
Oracle Database 11g release 2 (11.2.0.2、11.2.0.3、11.2.0.4)。不支持低于Oracle 11g版本的数据库迁移入云;不支持从高版本到低版本进行数据迁移 |
数据库存储方式检测 |
支持目标库裸机存储、ASM存储。 |
Profile文件校验检测 |
如果迁移是全库迁移,将会检测源库所有的用户Profile,并提示用户需要在目标库创建缺少的Profile; 如果迁移是用户迁移,将会检测待迁移用户的Profile,并提示用户需要在目标库创建缺少的Profile。 |
ROLE权限检测 |
检查源库是否存在特殊ROLE,如自定义ROLE。 如果是SCHEMA迁移方式,会校验SCHEMA所具有的ROLE,目标库是否存在;如果存在自定义ROLE, 需要用户手动在目标创建对应的ROLE。 |
DBLINK连通性检测 |
检查目标库是否可以创建连接源库的DBLINK。检测时会创建目标库到源库的DBNLINK,并判断目标库是否可以远程连接源库;如果源数据库和目标数据库之间无法通过DBLINK连接,需要检测源库和目标库是否处于同一网段。 |
表空间检测 |
检查目标库是否存在源库依赖的表空间,如果不存在,则自动创建,并创建对应数量的的datafile。先判断目标库是否存在迁移数据依赖的表空间是否存在,如果不存在,则自动创建,目录地址为当前数据库默认表空间地址。如果是DTS在目标库自动创建依赖的表空间,则给出表空间创建提示。 |
临时表空间检测 |
检查目标库是否存在源库依赖的临时表空间,如果不存在,则自动创建。先判断目标库是否存在迁移数据依赖的表空间是否存在,如果不存在,则自动创建,目录地址为当前数据库默认表空间地址。如果是DTS在目标库自动创建依赖的表空间,则给出表空间创建提示。 |
迁移文件路径检测 |
迁移文件路径是迁移文件所要存放的路径地址。路径空间检测,会展示出路径名称以及路径对应的实际系统路径,需要用户保证路径地址所在磁盘满足迁移数据的最低要求;路径实际地址存在性检查,检查迁移文件是否存在、是否合法、是否可以存放备份文件,用户确保路径名称对应的路径在系统中真实存在、可以读写。源数据所在Windows系统下的迁移会给出以下告警语,可以忽略,所在Linux 系统下不可以忽略。应时刻关注迁移文件路径所在磁盘的剩余空间大小,以免空间占满,对数据库的业务产生影响。 |
- 在提交迁移任务后,DMP会自动创建DTSVM迁移环境。进入[数据库/数据库工具/数据库迁移(DTS)]界面,点击迁移任务名,进入任务详情页面。
- 如果存在未通过的检查项,根据提示对告警项进行修复后,点击重新检查,直到检查项完全通过。 告警项,在评估结果可以接受的情况下,可以继续迁移。确认检查项通过后,点击<开始迁移>按钮。输入当前登录DMP的用户密码,确认开始迁移。
- 此步骤仅限Oracle全量迁移。迁移任务开始后,源库后续新增的数据不会迁移到目标端, DMP根据迁移任务的设置导出和导入数据,完成数据库的全量迁移。
- 此步骤仅限oracle增量迁移。 迁移任务开始后, DMP先做数据库的全量迁移,然后创建2小时一次的增量迁移任务,自动进行增量迁移,直到数据库割接。在增量迁移期间,可以点击<手动增量迁移>按钮进行手动增量。
- 此步骤仅限oracle增量迁移,点击<开始割接切换>进行数据库割接。割接之前要停止业务应用, 可以选择关闭源库,确保割接期间不产生增量数据。输入当前登录DMP的用户密码,确认割接。
- 在任务中心或DTS任务详情界面观察迁移任务的进度,当任务完成后进度状态为“迁移完成”。