|
|
51CTO旗下网站
|
|
移步端
  • 实操:副Oracle到GaussDB的多寡迁移

    近些年各省运营商O域核心业务系统之必发娱乐登录计划从Oracle搬迁至GaussDB,必发娱乐登录服务器也从SUN直升机转到华为TaishanARM传感器。自己有幸参与其中,重点承担Oracle到GaussDB的多寡迁移环节。数量迁移前期使用Datasync工具进行导数测试,但由于导数效率无法满足生产系统之停机要求,而华为这个时节正好推出新的迁移工具―SDR,于是利用SDR拓展了一轮新的迁移测试。

    笔者:莫熙钟 来源:DBAplus社群| 2020-02-13 15:39

     一、前景

    近些年各省运营商O域核心业务系统之必发娱乐登录计划从Oracle搬迁至GaussDB,必发娱乐登录服务器也从SUN直升机转到华为TaishanARM传感器。自己有幸参与其中,重点承担Oracle到GaussDB的多寡迁移环节。数量迁移前期使用Datasync工具进行导数测试,但由于导数效率无法满足生产系统之停机要求,而华为这个时节正好推出新的迁移工具—SDR,于是利用SDR拓展了一轮新的迁移测试。

    1、空气信息

    1)硬件配置信息

    目标库Taishan传感器硬件配置信息如下所示:

    源库Sun小机硬件配置如下所示:

    2)硬件配置信息

    Taishan传感器操作系统及必发娱乐登录软件版本如下所示:

    源库Sun小机操作系统及必发娱乐登录软件版本如下所示:

    出于此次文章的基本点不在于环境的搭建,故此操作系统及GaussDB的设置过程就不细述。

    2、SDR产品描述

    GaussDB SDR(Swift Data Replicator)是一款基于日志的暂时CDC硬件,支持对多种关系型必发娱乐登录交易数据的暂时捕获、转移与加载,重点应用于数据迁移、数量复制、外地容灾、应急备份、双作业骨干、实时数仓/数量湖、查询卸载等景象。重点特征有:实时、很快的多寡同步、增长的异构同步能力、产业化插件、非侵入、安全无干扰和全程可视化运维管理等。

    二、SDR的气氛准备

  • 支持源端为Oracle 9i及以上版本(高考使用的SDR本子只支持到11R2)
  • 支持对象端为GaussDB 100 V300R100
  • 持可选schema、可选表进行全量数据同步
  • 支持可配条件导出源库数据,名将满足条件的多寡导入目标库
  • 支持多表并发同步,可安排并发个数
  • 支持单表数据的并发导出,可安排并发个数,不支持单表之并发导入
  • 支持自动同步表结构,机动进行数据类型映射,品种映射见下表
  • 1)硬件要求

    SDR脚下只支持x86的64位操作系统,对软件资源之要求主要取决于源端必发娱乐登录的多寡变化量。

    表面 2-1 能源要求

    2)硬件要求

    注:此次迁移测试将SDR布局在一台独立的x86传感器上,穿过必发娱乐登录业务端口访问两边必发娱乐登录,出于大部分迁移操作都是平台网页进行,故此还提议准备一台能直接访问这台x86劳务7007/7008/7009端口的windows传感器。

    1、SDR工具准备

    1)创造安装用户和目录(x86传感器上操作)

    为SDR硬件创建一个新用户,并创造一个安装目录/home/sdr:

          
    1. su - root 
    2. groupaddsdr 
    3. useradd -g sdr -d /home/sdr -s /bin/shsdr 
    4. chown -R sdr:sdr /home/sdr/ 

    2)改制到安装用户下,上流传安装包

          
    1. su - sdr 
    2. ls -l  / home /sdr/ 
    3. depend.tgz 
    4. GaussDB_SDR_8.0.RC1_RHEL_x86_64.tar.gz 
    5. licence.dat.tar.gz 

    3)解压所有压缩包

          
    1. tar -xf depend.tgz 
    2. tar -xf GaussDB_SDR_8.0.RC1_RHEL_x86_64.tar.gz 
    3. tar -xf licence.dat.tar.gz 

    2、SDR工具安装

    1)安装SDR_HOME空气容量

          
    1. su - sdr 
    2. export DIP_HOME=/opt/sdr 

    2)推行安装

          
    1. cd /home/sdr 
    2. ./GaussDB_SDR_8.0.RC1_INSTALL 
    3. Creating directory SDR.pack 
    4. Verifying archive integrity... All good. 
    5. Uncompressing swift data replicator 100% 
    6. Swift Data Replicator installation! 
    7. ©2019 Huawei Technologies Co., Ltd. 
    8. Swift Data Replicator software will install into directory [/home/sdr] 
    9. Please input Swift Data Replicator web server IP address: [127.0.0.1] 
    10. Please input Swift Data Replicator web server port: [7008] 
    11. Please input Swift Data Replicator manager server IP address: [127.0.0.1] 
    12. Please input Swift Data Replicator manager server port: [7009] 
    13. Please input Swift Data Replicator queue transfer server port: [7007] 
    14. Please input Swift Data Replicator admin server port: [7006] 
    15. Please input Swift Data Replicator kafka component port: [7005] 
    16. Please input Swift Data Replicator database IP address: [127.0.0.1] 
    17. Please input Swift Data Replicator database port: [1888] 
    18. Please set default Swift Data Replicator Share Memory Size
    19. [1]- 1GB 
    20. [2]- 4GB 
    21. [3]- 8GB 
    22. [4]-16GB 
    23. [5]-input other value(GB) 
    24. please choose 1,2,3,4: [1]4 
    25. Input value and choice list below, please confirm: 
    26. http IP address : 127.0.0.1 
    27. http port : 7008 
    28. Manager IP address : 127.0.0.1 
    29. Manager Port : 7009 
    30. Transfer Port : 7007 
    31. AdminServerPort : 7006 
    32. Kafka component Port : 7005 
    33. SDR Database IP : 127.0.0.1 
    34. SDR Database Port : 1888 
    35. Share memory size : 16G 
    36. Kafka Server Port : 7005 
    37. Press any key to begin install. ( Ctrl-c to interrupt ) 
    38. Uncompressing bin.tgz... 
    39. Uncompressing dbpkg.tgz... 
    40. Uncompressing etc.tgz... 
    41. Uncompressing lib.tgz... 
    42. Uncompressing web.tgz... 
    43. Wait a few of minutes, installing database... 
    44. Checking parameters... 
    45. Checking user... 
    46. Checking old install... 
    47. Checking kernel parameters... 
    48. Checking dir... 
    49. Checking integrality of run file... 
    50. Decompressing run file... 
    51. Warning: Dialect Scripts not found! But still proceed installation 
    52. Setting user env... 
    53. Checking data dir and config file 
    54. Initiate db instance... 
    55. Creating database... 
    56. Changing file permission due to security audit... 
    57. Install successfully, for more detail information see /home/sdr/zengineinstall.log. 
    58. Refreshing config... 
    59. Creating db user... 
    60. Initialize data... 
    61. all done  →顺手安装完成 

    3)安排depend

    进去depend目录。

          
    1. cd /home/sdr/depend/ 
    2. sh enable.sh 
    3. Enable success 

    4)加载 licence文件

          
    1. cd /home/sdr 
    2. cp licence.dat etc/ 
    3. ls etc/ 
    4. dip_config.xml licence.dat odbcinst.ini version xlog.ini 

    5)起先SDR组件

    起先组件前需要先加载环境容量

          
    1. su - sdr 
    2. cd /home/sdr/ 
    3. ../env 
    4. (1)起先后台必发娱乐登录 
    5. cd /home/sdr/db/app/bin 
    6. python zctl.py -t start 
    7. (2)起先其他组件 
    8. cd /home/sdr/ 
    9. start_all 
    10. (3)起先web劳务 
    11. cd /home/sdr 
    12. start_web 

    迄今,SDR整整安装准备工作成就。

    三、SDR安排

    SDR管理范围需要通过浏览器进入,传感器可选择chrome或IE 9.0上述。网址为x86传感器的IP,端口为安装时指定的端口,必须是HTTPS,如https://IP:port。初步帐号密码admin/admin。

    希冀-1-登录 SDR 看台

    登录后,要求先新建一个项目。

    希冀-2-创造项目

    步入项目名称,并保留。

    点击进入项目下,会进入配置管理主界面。点击左上角的“兴建”按钮,创造任务组。

    希冀 -3-兴建任务组

    步入组名,和该组下进程的运作日志保留时间,点击“保留组”。

    此次迁移测试是副Oracle到GaussDB,属于异构必发娱乐登录迁移,可以直接行使模板库中的异构链路进行布局,直接点击“异构链路”即可,如下图所示:

    希冀 -4-异构链路配置

    浮动链路后,双击链路中的源库组件,在弹出的对话框中展开源库配置。(着重次配置后,可以选择作为模板保存,以便后续使用)。

    希冀 -5-源库必发娱乐登录配置

    注:源必发娱乐登录类型为Oracle时要求对导出的目标添加附加日志,补充附加日志的SQL可以在“必要环境布置”官方一键生成,并拿到源库中实施。

    安排完源库信息后,然后要安排捕获进程,破获进程主要是用于从源库中抽数,可安排需要迁移的schema和目标类型,以及抽数时间间隔,分配内存等数,安排如下:

    希冀-6-破获配置

    希冀-7-安排捕获进程的高档选项

    注:源库为Oracle RAC时,要求把整个节点的消息都潜入进去,并且选择“ENABLE”

    安排好捕获进程之后,然后需要配置队列信息。任何链路需要配置两个队,一度是导出队列,一度是导入队列,可以先按顺序配置导出队列。现实安排如下:

    希冀 -8-安排导出队列

    列配置完成后,要求配置ETL转移环节。在安排好源库信息后,ETL的多数内容都会自动填充,直接行使默认配置就完成了。现实安排如下:

    希冀 -9- 安排ETL

    接着是调度导入队列,此地不多叙述。安排如下:

    希冀 -10- 安排导入队列

    按链路顺序,然后是调度转载进程,但在安排之前,会唤起需要先配置好目标库信息,故此只能先跳到最后的对象库信息配置,形成后再回去来部署转载进程信息。故此下面是调度目标GaussDB库的消息(同样,着重次配置时可以选择保存为GaussDB库的模版,富有后续使用。)

    希冀 -11- 安排目标库信息

    然后终于得以愉快地安排转载进程信息了。转载进程可安排的情节比较多,重点分为:包含条件,排除条件和高级选项。

    包含条件中可安排要导入的schema和目标类型,以及是否在目标库替换schema_name。(此次测试进行了schema_name的更换,高考结果顺利。)

    希冀 -12- 安排装载包含条件

    然后是调度排除条件,此次测试没有添加排除条件,有需求的同窗可添加测试。

    希冀 -13- 安排装载排除条件

    下是调度高级选项,下截图是全部默认设置,可按需进行调整。

    希冀 -14- 安排装载高级选项

    确认保存后,搬迁所需的各个组件配置完成。

    四、SDR全量迁移

    SDR工具自带数据初始化的效应,点击工具栏的“工具集 >年产量数据同步”,弹出配置界面。可安排导出任务的并发数以及单表之并发数,需注意掌握并发数大小,极端情况可能会出现导出进程总数等于任务并发数 * 表面内并发数。此外,“名将数据导出为字符串”的挑选必须勾选,不然速度虽然会大幅度加快,但是导出导入失败率也会大大增强。

    希冀 -15- 安排全量数据同步-导出条件配置

    (注:起来初始化之前,要求在目标环境手动创建用户/权限/表面空间等,创造命令跟Oracle基本一致。)

    导出条件配置完并保留后,然后配置导入条件配置。出于目标库没有业务压力,并发数可选择大些,也可根据需要选择是否“组建目标表”,“清空目标表”和“组建索引”等选择。

    希冀-16- 安排全量数据同步-导入条件配置

    安排完成兵保存后,点击“起来全同步”此后即开始存量数据同步。

    希冀 -17-翻开全量同步实时信息

    等待导出导入完成后即存量数据的搬迁工作。搬迁过程存在的报错信息可以在“导出错误信息”和“导入错误信息”官方直接查阅。如果报错信息缺失或不足,可以进入到x86传感器中安装目录的log目录查看更详细信息。

    五、SDR客流迁移(专业迁移使用的步子)

    划重点!!眼前的全量迁移和下要说的饲养量迁移是两回事,如果按照前面步骤做完全量数据迁移,要做增量迁移也要求把目标库的多寡全删掉重新再来!

    在采取增备前,要求先下源库中获取最新的scn号。在源端Oracle库获取最新的SCN号:

          
    1. select current_scn from v$database
    2. CURRENT_SCN 
    3. ------------------ 
    4. 16493654040783 

    1、起来捕捉进程

    要求提前按文“SDR全量迁移”安排异构链路,此地不复述。安排完成后单独开启捕捉进程。在办事区选择捕获进程后,点击“起先”即可开启。

    希冀-18- 起来捕捉进程

    2、起先存量备份

    当下存量备份需要把拿到的流行scn号送入进去,以便把这个scn号的一切数据都同步到目标库。

    希冀-19- 安排存量数据同步

    3、起先增备

    等待存量备份完成后,单独开启转换和装载进程。以指定SCN办法启动转换过程,步入的scn就是在一开始获取到的流行SCN号。

    希冀-20- 指定scn起先转换过程

    ETL起先完成后如图:

    希冀-21- 起来转换过程后

    以指定SCN办法启动装载进程,步入的scn就是在一开始获取到的流行SCN号。

    希冀-22- 指定scn起先装载进程

    转载进程启动完成后,状态如图:

    希冀-23- 起来装载进程后

    都启动完成后,在办事区选择“列表”办法查看各进程状态,都为running则正常。

    希冀-24- 列表方式查看状态

    迄今,增备启动完成。

    增备发起后,源库对操作表的DML和DDL都市准实时同步到目标端,直到手动终止或报错为止。(局部DDL不支持,例如:add database,add datafile,role相关操作等等)

    4、搬迁过程问题

    1)慎选自动创建表的时节,分区表的基站信息(interval等)无法自动同步,导致导入GaussDB此后分区表变回普通表

    消灭思路:在初始导数前,手动在目标环境创建所有分区表,在产量数据导入时不选择“组建表”慎选

    2)导出时,一度表上同时有long和clob品种的字段会报错

    报错信息:table[dcpp.aqua_explain_1483468080]include LOB and LONG column,unsupport

    消灭思路:在初始导数前,手动在目标环境创建所有报错表,在产量数据导入时不选择“组建表”慎选

    3)起先存量数据同步时,即使是同样的安排选项,点击“起来全同步“此后,经常出现同步进程无法正常启动的题材

    现实现象是:

  • 耗资:00H00M00S ,不起来计时
  • 源库Oracle官方,倡导一个询问全量表信息的SQL此后,没有继续履行具体表的导出SQL,而是直接终结会话
  • 导出/导入报错信息中,没有其他信息
  • 消灭思路:多尝试几次,或者降低并发量。

    六、总结

    采用过程感觉SDR比起类似Oracle的OGG工具。上班流程可简化为:指定scn导入此scn明天全部数据进行初始化,初始化完成后根据此scn起来自动增量同步,直至手动结束同步。任何迁移过程只要求前期配置好同步进程,末了人工介入的年华就特别少(为期检查同步进程状态和日志状态还是必须的),而且因为数据一直在准实时同步,故此生产系统上的搬迁时间就足以减少的独特短,可以预留更多的年华做多少校验和任何操作。

    【编纂推荐】

    1. 记一次Oracle必发娱乐登录实验--目录的宽广执行计划
    2. 详解Oracle必发娱乐登录的三大索引类型
    3. 详解Oracle必发娱乐登录并行操作常见等待事件及脚本
    4. 详解Oracle必发娱乐登录LRU书法:LRU链、脏块与脏LRU链
    5. 一文搞懂各种必发娱乐登录SQL推行计划:MySQL、Oracle等
    【义务编辑: 武晓燕 TEL:(010)68476606】

    点赞 0
  • Oracle  GaussDB  数量迁移
  • 分享:
    大家都在看
    猜你喜欢
  • 订阅专栏+更多

    Kubernetes:21远处完美通关

    Kubernetes:21远处完美通关

    从小白到修神
    共29章 | king584911644

    190人口订阅学习

    Python使用场景实战手册

    Python使用场景实战手册

    Python使用场景实战手册
    共3章 | KaliArch

    122人口订阅学习

    一步到位玩儿透Ansible

    一步到位玩儿透Ansible

    Ansible
    共17章 | 骏马金龙1

    209人口订阅学习

    订阅51CTO邮刊

    点击这里查看样刊

    订阅51CTO邮刊

    51CTO劳务号

    51CTO官微