基于DataKit迁移MySQL到openGauss

news2024/11/23 15:01:50

📢📢📢📣📣📣
哈喽!大家好,我是【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开发的插件工具,可以灵活的在基座上面安装卸载,方便客户按需使用。

在这里插入图片描述

📣 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

在这里插入图片描述

📣 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

在这里插入图片描述

📣 4.MySQL迁移

✨ 4.1 前置操作

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

1)创建MySQL数据源
ip为192.168.6.22
port为默认端口3306
用户名mysql_test
密码password123

在这里插入图片描述

2)创建openGauss数据源
ip为实际192.168.6.22
port为默认端口5432
用户名datakit_admin
密码Sample@123

在这里插入图片描述

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

在这里插入图片描述

–DataKit服务器管理中添加服务器
在datakit平台–资源中心–服务器管理中添加对应的服务器,被管理的机器才可用于安装迁移插件,本次实验用本机作为迁移插件的执行机
请注意这里密码为root用户的密码,并需要勾选记住密码,否则将不能用作迁移插件的执行机。

在这里插入图片描述

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

在这里插入图片描述

在用户管理界面添加个人用户test
用户添加完成后会显示在用户列表中显示已添加的用户

在这里插入图片描述

✨ 4.2 迁移配置

MySQL迁移全流程包括全量迁移、全量校验、增量迁移、增量校验和反向迁移五个阶段,下面将详细介绍迁移全流程。
1.创建迁移任务
在Datakit平台数据迁移–迁移任务中心–创建迁移任务,选定源端数据库(source_db)和目的端数据库(target_db),添加子任务,迁移过程模式选择在线模式。
迁移模式包括离线和在线两种模式,其中离线模式包括全量迁移和全量校验两个阶段,在线模式包括全量迁移、全量校验、增量迁移、增量校验、反向迁移和五个阶段,本次实践选择在线模式,囊括业务割接的整个过程。
详细描述如下:
(1)在Datakit平台数据迁移–迁移任务中心–创建迁移任务
(2)选定源端数据库(source_db)和目的端数据库(target_db),添加子任务,迁移过程模式选择在线模式。

在这里插入图片描述

(3)编辑配置参数
可直接使用默认参数,无需修改,或者根据实际自定义

在这里插入图片描述

2.安装迁移插件
首次创建迁移任务时,需安装迁移插件,针对服务器管理中添加的服务器,选择开始安装即可。
若无对应的物理机,请记得将要安装插件的机器添加至服务器管理中,并添加。

在这里插入图片描述
在这里插入图片描述

✨ 4.3 迁移任务

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

在这里插入图片描述
在这里插入图片描述

(2)首先进行全量迁移
全量迁移会将表、数据、视图、函数、触发器、存储过程迁移至openGauss数据库,全量迁移结束后,可在openGauss端验证数据及对象是否成功迁移。
图示为全量迁移完成:

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1415939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为二层交换机与防火墙配置上网示例

二层交换机与防火墙对接上网配置示例 组网图形 图1 二层交换机与防火墙对接上网组网图 二层交换机简介配置注意事项组网需求配置思路操作步骤配置文件相关信息 二层交换机简介 二层交换机指的是仅能够进行二层转发,不能进行三层转发的交换机。也就是说仅支持二层…

[SwiftUI]系统弹窗和自定义弹窗

一、系统弹窗 在 SwiftUI 中,.alert 是一个修饰符,用于在某些条件下显示一个警告对话框。Alert 可以配置标题、消息和一系列的按钮。每个按钮可以是默认样式、取消样式,或者是破坏性的样式,它们分别对应不同的用户操作。 1.Aler…

Power ModeII 插件的下载与使用-----idea

下载 Marketplace里面搜索下载即可 使用 下载后重启软件就可以用了 下面是一些关于Power ModeII ,我的个性化设置截图 以及相关设置解释 插件或扩展的设置面板【用于给代码编辑器或集成开发环境(IDE)添加视觉效果】 主要设置 ENTER POWE…

【控制算法笔记】卡尔曼滤波(二)——基于状态空间表达的KF基本计算流程以及Python实现

本文是个人学习笔记,包含个人理解,如有错误欢迎指正。 KF算法更多的情况下会用来处理复杂的非线性数据,尤其是当对象特征或检测的状态量不止一个时就得使用状态方程的方法,利用线性代数的计算方式来解决噪声的估计问题。这其中涉及…

uniapp微信小程序-请求二次封装(直接可用)

一、请求封装优点 代码重用性:通过封装请求,你可以在整个项目中重用相同的请求逻辑。这样一来,如果 API 发生变化或者需要进行优化,你只需在一个地方修改代码,而不是在每个使用这个请求的地方都进行修改。 可维护性&a…

Java基础数据结构之哈希表

概念 顺序结构以及平衡树 中,元素关键码与其存储位置之间没有对应的关系,因此在 查找一个元素时,必须要经过关键 码的多次比较 。 顺序查找时间复杂度为 O(N) ,平衡树中为树的高度,即 O( log2N ) ,搜索的效…

应急响应-内存分析

在应急响应过程中,除了上述几个通用的排查项,有时也需要对应响应服务器进行内存的提权,从而分析其中的隐藏进程。 内存的获取 内存的获取方法有如下几种: 基于用户模式程序的内存获取;基于内核模式程序的内存获取&a…

SparkSql---用户自定义函数UDFUDAF

文章目录 1.UDF2.UDAF2.1 UDF函数实现原理2.2需求:计算用户平均年龄2.2.1 使用RDD实现2.2.2 使用UDAF弱类型实现2.2.3 使用UDAF强类型实现 1.UDF 用户可以通过 spark.udf 功能添加自定义函数,实现自定义功能。 如:实现需求在用户name前加上"Name:…

lv14 内核内存管理、动态分频及IO访问 12

一、内核内存管理框架 内核将物理内存等分成N块4KB,称之为一页,每页都用一个struct page来表示,采用伙伴关系算法维护 补充: Linux内存管理采用了虚拟内存机制,这个机制可以在内存有限的情况下提供更多可用的内存空…

docker compose实现mysql一主多从

参考了很多博客,死磕了几天,最终跑起来了,不容易,晚上喝瓶82年可乐庆祝下。 1、整体文件结构,这里忽略log、conf、data映射目录 2、docker-compose.yml文件内容如下: version: 3.3 services:mysql-master…

Android App开发-简单控件(3)——常用布局

3.3 常用布局 本节介绍常见的几种布局用法,包括在某个方向上顺序排列的线性布局,参照其他视图的位置相对排列的相对布局,像表格那样分行分列显示的网格布局,CommonLayouts以及支持通过滑动操作拉出更多内容的滚动视图。 3.3.1 线…

代码随想录算法训练DAY29|回溯5

算法训练DAY29|回溯5 491.递增子序列 力扣题目链接 给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。 示例: 输入: [4, 6, 7, 7] 输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]] 说…

【QT】QPainter基本绘图

目录 1 QPainter绘图系统 1.1 QPainter与QPaintDevice 1.2 paintEvent事件和绘图区 1.3 QPainter绘图的主要属性 1.4 创建实例 2 QPen的主要功能 2.1 线条样式 2.2 线条端点样式 2.3 线条连接样式 3 QBrush的主要功能 4 渐变填充 5 QPainter绘制基本图形元件 5.1 基本图形元件 …

burp靶场--身份认证漏洞

burp靶场–身份认证漏洞 https://portswigger.net/web-security/authentication#what-is-authentication 1.身份认证漏洞: ### 身份验证漏洞 从概念上讲,身份验证漏洞很容易理解。然而,由于身份验证和安全性之间的明确关系,它们…

基于Java SSM框架实现学校招生信息网系统项目【项目源码+论文说明】

基于java的SSM框架实现学生招生信息网系统演示 摘要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,学校招生信息网当然也不能排除在外。学校招生信息网是以实际运用为开发背…

【大数据】Flink 中的状态管理

Flink 中的状态管理 1.算子状态2.键值分区状态3.状态后端4.有状态算子的扩缩容4.1 带有键值分区状态的算子4.2 带有算子列表状态的算子4.3 带有算子联合列表状态的算子4.4 带有算子广播状态的算子 在前面的博客中我们指出,大部分的流式应用都是有状态的。很多算子都…

OpenCV 0 - VS2019配置OpenCV

1 配置好环境变量 根据自己的opencv的安装目录配置 2 新建一个空项目 3 打开 视图->工具栏->属性管理器 4 添加新项目属性表 右键项目名(我这是opencvdemo)添加新项目属性表,如果有配置好了的属性表选添加现有属性表 5 双击选中Debug|x64的刚添加的属性表 6 (重点)添…

[LVGL] 可点击的文字label

LVGL8.x 自带的label 是没有点击响应的功能,即使加了lv_obj_add_event_cb 也不起作用,为了解决这个问题,我们使用了按钮控件去模拟纯label的效果;有了这个demo用户就可以实现类似超链接 点击一个文字就跳转到某个页面的功能。 st…

Kotlin 教程(环境搭建)

Kotlin IntelliJ IDEA环境搭建 IntelliJ IDEA 免费的社区版下载地址:Download IntelliJ IDEA – The Leading Java and Kotlin IDE 下载安装后,我们就可以使用该工具来创建项目,创建过程需要选择 SDK, Kotlin 与 JDK 1.6 一起使…

【大数据】详解 Flink 中的 WaterMark

详解 Flink 中的 WaterMark 1.基础概念1.1 流处理1.2 乱序1.3 窗口及其生命周期1.4 Keyed vs Non-Keyed1.5 Flink 中的时间 2.Watermark2.1 案例一2.2 案例二2.3 如何设置最大乱序时间2.4 延迟数据重定向 3.在 DDL 中的定义3.1 事件时间3.2 处理时间 1.基础概念 1.1 流处理 流…