相关推荐recommended
基于DataKit迁移MySQL到openGauss
作者:mmseoamin日期:2024-02-05

📢📢📢📣📣📣

哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验

一位上进心十足的【大数据领域博主】!😜😜😜

中国DBA联盟(ACDU)成员,目前服务于工业互联网

擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。

✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞

❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

    • 📣 1.DataKit介绍
    • 📣 2.安装包
    • 📣 3.JDK安装
    • 📣 3.DataKit部署
      • ✨ 3.1 解压安装包
      • ✨ 3.2 创建工作目录
      • ✨ 3.3 修改配置文件
      • ✨ 3.4 创建ssl文件
      • ✨ 3.5 启动datakit
      • ✨3.6 登录datakit平台
      • 📣 4.MySQL迁移
        • ✨ 4.1 前置操作
        • ✨ 4.2 迁移配置
        • ✨ 4.3 迁移任务

          DataKit是一个以资源(物理机,数据库)为底座的开发运维工具

          📣 1.DataKit介绍

          DataKit是一个以资源(物理机,数据库)为底座的开发运维工具,将上层的开发运维工具插件化,各插件之间相互独立,方便用户按需引入。各插件围绕DataKit的资源中心进行扩展开,完成数据库的运维,监控,迁移,开发,建模等复杂的操作。

          DataKit是基于spring-brick开发的插件化的工具,前台使用vue,后台使用spring-bot技术栈。DataKit基座提供资源管理,安全中心,日志中心等基础的公共能力,具体的数据库安装,运维,监控,数据迁移等能力是基于spring-brick开发的插件工具,可以灵活的在基座上面安装卸载,方便客户按需使用。

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第1张

          📣 2.安装包

          1.Datakit安装包

          https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.1.0/tools/Datakit/Datakit-5.1.0.tar.gz

          2.PortalControl安装包

          https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.1.0/tools/centos7/PortalControl-5.1.0-x86_64.tar.gz

          3.openGauss极简版

          https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.1.0/x86/openGauss-5.1.0-CentOS-64bit.tar.bz2

          4.jdk11

          https://www.oracle.com/java/technologies/downloads/#java11

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第2张

          📣 3.JDK安装

          1.关闭防火墙
          systemctl stop firewalld
          systemctl disable firewalld
          systemctl status firewalld
          2.当前JDK版本
          [root@centos79 ~]# java -version
          openjdk version "1.8.0_262"
          OpenJDK Runtime Environment (build 1.8.0_262-b10)
          OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)
          [root@centos79 ~]# rpm -qa | grep jdk
          java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
          java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
          copy-jdk-configs-3.3-10.el7_5.noarch
          yum -y remove copy-jdk-configs.noarch 
          3.压缩安装包
          tar -zxvf jdk-11.0.21_linux-x64_bin.tar.gz -C /usr/local
          ln -s /usr/local/jdk-11.0.21/bin/java /usr/bin/java
          4.环境变量导入
          vi /etc/profile
          export JAVA_HOME=/usr/local/jdk-11.0.21
          export JRE_HOME=${JAVA_HOME}/jre
          export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
          export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
          export PATH=$PATH:${JAVA_PATH}
          5.环境变量生效
          source /etc/profile
          6.确认安装是否成功
          [root@centos79 ~]# java -version
          java version "11.0.21" 2023-10-17 LTS
          Java(TM) SE Runtime Environment 18.9 (build 11.0.21+9-LTS-193)
          Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.21+9-LTS-193, mixed mode)
          

          📣 3.DataKit部署

          ✨ 3.1 解压安装包

          [root@centos79 ~]# mkdir -p /datakit/datakit5.1

          [root@centos79 ~]# tar -zxvf /opt/Datakit-5.1.0.tar.gz -C /datakit/datakit5.1

          ✨ 3.2 创建工作目录

          [root@centos79 ~]# cd /datakit/datakit5.1
          [root@centos79 datakit5.1]# ll
          total 92228
          -rw-r--r--. 1 root root      939 Sep 28 14:17 application-temp.yml
          drwxr-xr-x. 2 root root     4096 Sep 28 14:21 doc
          -rw-r--r--. 1 root root 94426176 Sep 28 14:17 openGauss-datakit-5.1.0.jar
          drwxr-xr-x. 2 root root     4096 Sep 28 14:21 visualtool-plugin
          [root@centos79 datakit5.1]# mkdir -p logs config ssl files
          

          ✨ 3.3 修改配置文件

          [root@centos79 ~]# cd /datakit/datakit5.1
          [root@centos79 datakit5.1]# cp ./application-temp.yml ./config
          修改config目录下默认配置文件application-temp.yml文件中的数据库连接ip、port、database、username、password,
          并将配置文件中涉及的默认工作目录/ops均修改为实际工作目录/datakit/datakit5.1,test-while-idle配置为false。
          vi /datakit/datakit5.1/config/application-temp.yml
          system:
            # File storage path
            defaultStoragePath: /datakit/datakit5.1/files
            # Whitelist control switch
            whitelist:
              enabled: false
          server:
            port: 9494
            ssl:
              key-store: /datakit/datakit5.1/ssl/keystore.p12
              key-store-password: 123456
              key-store-type: PKCS12
              enabled: false
            servlet:
              context-path: /
          logging:
            file:
              path: /datakit/datakit5.1/logs/
          spring:
            datasource:
              type: com.alibaba.druid.pool.DruidDataSource
              driver-class-name: org.opengauss.Driver
              url: jdbc:opengauss://192.168.6.22:5432/datakit?currentSchema=public&batchMode=off
              username: datakit_admin
              password: Sample@123
              druid:
                test-while-idle: false
                test-on-borrow: true
                validation-query: "select 1"
                validation-query-timeout: 10000
                connection-error-retry-attempts: 0
                break-after-acquire-failure: true
                max-wait: 3000
          management:
            server:
          

          ✨ 3.4 创建ssl文件

          –root用户下操作

          keytool -genkey -noprompt

          -dname “CN=opengauss, OU=opengauss, O=opengauss, L=Beijing, S=Beijing, C=CN”

          -alias opengauss

          -storetype PKCS12

          -keyalg RSA

          -keysize 2048

          -keystore /datakit/datakit5.1/ssl/keystore.p12

          -validity 3650

          -storepass 123456

          ✨ 3.5 启动datakit

          cd /datakit/datakit5.1

          nohup java -Xms2048m -Xmx4096m -jar openGauss-datakit-5.1.0.jar

          –spring.profiles.active=temp > ./logs/datakit.out 2>&1 &

          ##查看日志

          tail -200f /datakit/datakit5.1/logs/datakit.out

          ✨3.6 登录datakit平台

          启动成功后,可通过浏览器界面访问datakit平台

          登录地址:https://192.168.6.22:9494/,其中192.168.6.22为实际ip

          初始用户:admin

          初始密码:admin123

          首次登录需修改初始密码

          admin123@123

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第3张

          📣 4.MySQL迁移

          ✨ 4.1 前置操作

          –DataKit实例管理中创建数据源

          MySQL和openGauss数据库启动后可在datakit平台–资源中心–实例管理中创建对应的数据源

          1)创建MySQL数据源

          ip为192.168.6.22

          port为默认端口3306

          用户名mysql_test

          密码password123

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第4张

          2)创建openGauss数据源

          ip为实际192.168.6.22

          port为默认端口5432

          用户名datakit_admin

          密码Sample@123

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第5张

          创建完成后DataKit平台界面会显示对应的数据源

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第6张

          –DataKit服务器管理中添加服务器

          在datakit平台–资源中心–服务器管理中添加对应的服务器,被管理的机器才可用于安装迁移插件,本次实验用本机作为迁移插件的执行机

          请注意这里密码为root用户的密码,并需要勾选记住密码,否则将不能用作迁移插件的执行机。

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第7张

          服务器添加完成后DataKit平台会显示对应的服务器信息

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第8张

          在用户管理界面添加个人用户test

          用户添加完成后会显示在用户列表中显示已添加的用户

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第9张

          ✨ 4.2 迁移配置

          MySQL迁移全流程包括全量迁移、全量校验、增量迁移、增量校验和反向迁移五个阶段,下面将详细介绍迁移全流程。

          1.创建迁移任务

          在Datakit平台数据迁移–迁移任务中心–创建迁移任务,选定源端数据库(source_db)和目的端数据库(target_db),添加子任务,迁移过程模式选择在线模式。

          迁移模式包括离线和在线两种模式,其中离线模式包括全量迁移和全量校验两个阶段,在线模式包括全量迁移、全量校验、增量迁移、增量校验、反向迁移和五个阶段,本次实践选择在线模式,囊括业务割接的整个过程。

          详细描述如下:

          (1)在Datakit平台数据迁移–迁移任务中心–创建迁移任务

          (2)选定源端数据库(source_db)和目的端数据库(target_db),添加子任务,迁移过程模式选择在线模式。

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第10张

          (3)编辑配置参数

          可直接使用默认参数,无需修改,或者根据实际自定义

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第11张

          2.安装迁移插件

          首次创建迁移任务时,需安装迁移插件,针对服务器管理中添加的服务器,选择开始安装即可。

          若无对应的物理机,请记得将要安装插件的机器添加至服务器管理中,并添加。

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第12张

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第13张

          ✨ 4.3 迁移任务

          对于在线模式的迁移任务,任务启动后,会首先进入全量迁移阶段,将MySQL端预置的数据迁移至目标库,全量迁移结束后会进入全量校验阶段,会输出每个表的校验结果;之后进入增量迁移阶段,增量迁移阶段会同步执行增量校验。详情界面可以看到迁移过程状态信息。

          详细描述如下:

          (1)启动迁移任务

          详情界面可以看到详细的迁移过程状态信息

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第14张

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第15张

          (2)首先进行全量迁移

          全量迁移会将表、数据、视图、函数、触发器、存储过程迁移至openGauss数据库,全量迁移结束后,可在openGauss端验证数据及对象是否成功迁移。

          图示为全量迁移完成:

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第16张

          3)全量迁移完成后进行全量校验,全量校验输出每个表的校验结果

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第17张

          (3)全量校验完成后进行增量迁移

          增量迁移会将增量的数据(增删改)和DDL迁移至openGauss数据库,与增量迁移并行执行的还有增量校验。

          基于DataKit迁移MySQL到openGauss,在这里插入图片描述,第18张