【项目实战经验】DataKit迁移MySQL到openGauss(下)

这篇具有很好参考价值的文章主要介绍了【项目实战经验】DataKit迁移MySQL到openGauss(下)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一篇我们分享了安装、设置、链接、启动等步骤,本篇我们将继续分享迁移、启动~

 

目录

 9. 离线迁移

9.1. 迁移插件安装

中断安装,比如 kill 掉java进程(安装失败也要等待300s)

下载安装包准备上传

缺少mysqlclient lib包

mysql如果是二进制安装的话,我这个版本是没有18这个lib包的

安装成功后的截图

 主机上有对应的进程

10. 全量迁移

10.1. 选中主机,启动迁移

 10.2. 迁移中

 10.3. 迁移结束

 10.4. 日志所在目录

11. 增量迁移

11.1. PG里面创建第二个库

 11.2. 创建在线迁移任务

 11.3. 启动

11.4. 在mysql端进行DDL和DML

mysql 端进行了5个事务

第6次增量

停止增量

 12. 反向迁移

 12.1. 在PG端进行增删改

12.2. PG端DDL 


 9. 离线迁移

 【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

9.1. 迁移插件安装

中断安装,比如 kill 掉java进程(安装失败也要等待300s)
update tb_migration_host_portal_install set install_status=10;

【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

下载安装包准备上传

 【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

缺少mysqlclient lib包
  • mysql如果是二进制安装的话,我这个版本是没有18这个lib包的
[root@mysqldb lib]# ls -ltrh /usr/local/mysql/lib
total 1001M
-rw-r--r-- 1 mysql mysql 392M Jun 21  2023 libmysqld-debug.a
-rw-r--r-- 1 mysql mysql  43K Jun 21  2023 libmysqlservices.a
-rwxr-xr-x 1 mysql mysql  11M Jun 21  2023 libmysqlclient.so.20.3.30
-rw-r--r-- 1 mysql mysql  26M Jun 21  2023 libmysqlclient.a
-rw-r--r-- 1 mysql mysql 574M Jun 21  2023 libmysqld.a
lrwxrwxrwx 1 mysql mysql   25 Jun 21  2023 libmysqlclient.so.20 -> libmysqlclient.so.20.3.30
lrwxrwxrwx 1 mysql mysql   20 Jun 21  2023 libmysqlclient.so -> libmysqlclient.so.20
drwxr-xr-x 2 mysql mysql   28 Jan 10 13:36 pkgconfig
drwxr-xr-x 4 mysql mysql   28 Jan 10 13:36 mecab
drwxr-xr-x 3 mysql mysql 4.0K Jan 10 13:36 plugin
lrwxrwxrwx 1 root  root    25 Jan 10 14:41 libmysqlclient.so.18 -> libmysqlclient.so.20.3.30
  • 在porta安装日志下面,会有如下报错

[root@mysqldb logs]# cat /ops/portal/error.log 
/ops/portal/tools/chameleon/chameleon-5.1.0
install.sh: /ops/portal/tools/chameleon/chameleon-5.1.0/venv/bin/chameleon: /venv/bin/python3.6: bad interpreter: No such file or directory
Traceback (most recent call last):
  File "/ops/portal/tools/chameleon/chameleon-5.1.0/venv/lib/python3.6/site-packages/MySQLdb/__init__.py", line 18, in <module>
    from . import _mysql
ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:
  • 查看到符合当前mysql的版本,通过yum安装即可

Installed:
  mysql-community-libs-compat.x86_64 0:5.7.44-1.el7                                                                             

Complete!
[root@datakit bin]# rpm -ql mysql-community-libs-compat-5.7.44-1.el7.x86_64
/etc/ld.so.conf.d/mysql-x86_64.conf
/usr/lib64/mysql
/usr/lib64/mysql/libmysqlclient.so.18
/usr/lib64/mysql/libmysqlclient.so.18.1.0
/usr/lib64/mysql/libmysqlclient_r.so.18
/usr/lib64/mysql/libmysqlclient_r.so.18.1.0
/usr/share/doc/mysql-community-libs-compat-5.7.44
/usr/share/doc/mysql-community-libs-compat-5.7.44/LICENSE
/usr/share/doc/mysql-community-libs-compat-5.7.44/README
  • 其他有用命令

# 重新加载lib库
/sbin/ldconfig -v
# 查看位置
locate libmysql
# 手动配置lib库
vi /etc/ld.so.conf.d/mysql.conf
# 查看是否有对应的lib库
ldconfig -p|grep mysql
  • ldconfig,此时安装迁移插件应该没有问题

[root@mysqldb lib]# ldconfig -p|grep mysql
        libmysqlclient.so.20 (libc6,x86-64) => /usr/local/mysql/lib/libmysqlclient.so.20
        libmysqlclient.so.20 (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient.so.20
        libmysqlclient.so.18 (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient.so.18
        libmysqlclient.so (libc6,x86-64) => /usr/local/mysql/lib/libmysqlclient.so
  • 如果是在线安装,会遇到403错误,现在要登陆了才能下载

download portal package failed: 
--2024-01-09 12:11:24--  https://opengauss.obs.cn-south-1.myhuaweicloud.com/latest/tools/PortalControl-5.1.0.tar.gz
Resolving opengauss.obs.cn-south-1.myhuaweicloud.com (opengauss.obs.cn-south-1.myhuaweicloud.com)... 122.9.127.163, 122.9.127.162
Connecting to opengauss.obs.cn-south-1.myhuaweicloud.com (opengauss.obs.cn-south-1.myhuaweicloud.com)|122.9.127.163|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2024-01-09 12:11:25 ERROR 403: Forbidden.
  • 出现如下提示最终还是能成功安装的:

/ops/portal/tools/chameleon/chameleon-5.1.0 
install.sh: /ops/portal/tools/chameleon/chameleon-5.1.0
/venv/bin/chameleon: /venv/bin/python3.6: bad interpreter: No such file or directory
安装成功后的截图

 【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 主机上有对应的进程
[root@mysqldb alternatives]# jps
19073 QuorumPeerMain
19122 SupportedKafka
4874 Jps
19487 SchemaRegistryMai

10. 全量迁移

10.1. 选中主机,启动迁移

【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 10.2. 迁移中

【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 10.3. 迁移结束

 

【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 10.4. 日志所在目录

[root@mysqldb datacheck]# pwd
/ops/portal/workspace/2/logs/datacheck
[root@mysqldb datacheck]# ls -ltrh
total 36K
-rw-rw-r-- 1 appadm appadm 2.2K Jan 10 15:31 business-source.log
-rw-rw-r-- 1 appadm appadm 2.1K Jan 10 15:31 business-sink.log
-rw-rw-r-- 1 appadm appadm  282 Jan 10 15:31 business-check.log
-rw-rw-r-- 1 appadm appadm 3.1K Jan 10 15:31 source.log
-rw-rw-r-- 1 appadm appadm 3.3K Jan 10 15:31 sink.log
-rw-rw-r-- 1 appadm appadm  422 Jan 10 15:31 kafka-sink.log
-rw-rw-r-- 1 appadm appadm  422 Jan 10 15:31 kafka-source.log
-rw-rw-r-- 1 appadm appadm 3.3K Jan 10 15:31 check.log
-rw-rw-r-- 1 appadm appadm 2.1K Jan 10 15:31 kafka-check.log

[root@mysqldb datacheck]# ls -l /ops/portal/workspace/2/logs/
total 24
drwxrwxr-x 2 appadm appadm   204 Jan 10 15:30 datacheck
drwxrwxr-x 2 appadm appadm    51 Jan 10 15:30 debezium
-rw-rw-r-- 1 appadm appadm   162 Jan 10 15:31 error.log
-rw-rw-r-- 1 appadm appadm 17400 Jan 10 15:31 full_migration.log

[root@mysqldb datacheck]# find /ops -name schema-registry.log
/ops/portal/workspace/2/logs/debezium/schema-registry.log
/ops/portal/tools/debezium/confluent-5.5.1/logs/schema-registry.log

11. 增量迁移

11.1. PG里面创建第二个库

create database world2 with dbcompatibility='b';

 11.2. 创建在线迁移任务

【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 11.3. 启动

【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 

  • 全量迁移完成并校验成功后进入增量迁移

 【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 

11.4. 在mysql端进行DDL和DML

mysql 端进行了5个事务
root@localhost 16:08:00 [world]> create table t1(id int primary key,name varchar(32));
Query OK, 0 rows affected (0.01 sec)

root@localhost 16:08:31 [world]> insert into t1 values(1,'zhangsan');
Query OK, 1 row affected (0.01 sec)

root@localhost 16:08:45 [world]> insert into t1 values(2,'22'),(3,'33');
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

root@localhost 16:09:00 [world]> create table city_copy like city;
Query OK, 0 rows affected (0.03 sec)

root@localhost 16:09:22 [world]> insert into city_copy select * from city;
Query OK, 4079 rows affected (0.06 sec)
Records: 4079  Duplicates: 0  Warnings: 0

【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 上面一直卡住,再起一个的时候报错(内存不足):

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000680000000,

中间还有一次翻车了

py_opengauss.exceptions.ClientCannotConnectError: could not establish connection to server
CODE: 08001
LOCATION: CLIENT
CONNECTION: [failed]
failures[0]:
socket('192.168.2.3', 5432)
py_opengauss.exceptions.InsufficientPrivilegeError: Please use the original role to connect B-compatibility database first, to load extension dolphin
CODE: 42501
LOCATION: SERVER
CONNECTOR: [IP4] pq://datakit:***@192.168.2.3:5432/world4?[sslmode]=disable
category: None
DRIVER: py_opengauss.driver.pq3.Driver
第6次增量

在mysql端进行增删改和DDL

root@localhost 16:48:04 [world]> delete from t1 where id=3;
Query OK, 1 row affected (0.01 sec)

root@localhost 16:48:12 [world]> insert into t1 values(4,44);
Query OK, 1 row affected (0.01 sec)

root@localhost 16:48:24 [world]> update t1 set name=222 where id=2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

root@localhost 16:48:36 [world]> update t1 set name=2223 where id=2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

root@localhost 16:49:03 [world]> create table t2 (id int primary key, name char(20));
Query OK, 0 rows affected (0.01 sec)

root@localhost 16:49:41 [world]> insert into t2 select * from t1;
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 

停止增量

【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 12. 反向迁移

 【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 12.1. 在PG端进行增删改

world4=# \c world4
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "world4" as user "omm".
world4=# set search_path=world;
SET
world4=# select * from t2;
 id |         name         
----+----------------------
  1 | zhangsan            
  2 | 2223                
  4 | 44                  
(3 rows)

world4=# insert into t2 values(5,55);
INSERT 0 1
world4=# update t2 set name=5555 where id=5;
UPDATE 1
world4=# delete from t2 where id=1;
DELETE 1

【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 

12.2. PG端DDL 

PG建表无法同步到mysql,但是继续在PG继续进行DML,原有表的数据依然能同步到mysql

orld4=# create table pg_table( id bigint primary key);
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "pg_table_pkey" for table "pg_table"
CREATE TABLE
world4=# create table t3(id bigint primary key);
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "t3_pkey" for table "t3"
CREATE TABLE
world4=# show tables;
 Tables_in_world 
-----------------
 city
 city_copy
 country
 countrylanguage
 pg_table
 t1
 t2
 t3
(8 rows)

world4=# update t2 set name=55555555 where id=5;              
UPDATE 1
world4=# create table t4(id bigint);
CREATE TABLE
world4=# insert into t4 values(1),(2);
INSERT 0 2
world4=# select * from t4;
 id 
----
  1
  2
(2 rows)

 【项目实战经验】DataKit迁移MySQL到openGauss(下),openGauss经验总结,adb,android,gaussdb,数据库,SQL,sql,oracle

 


root@localhost 17:01:41 [world]> show tables;
+-----------------+
| Tables_in_world |
+-----------------+
| city            |
| city_copy       |
| country         |
| countrylanguage |
| t1              |
| t2              |
+-----------------+
6 rows in set (0.00 sec)

root@localhost 17:03:08 [world]> select * from t2;
+----+----------+
| id | name     |
+----+----------+
|  2 | 2223     |
|  4 | 44       |
|  5 | 55555555 |
+----+----------+
3 rows in set (0.00 sec)

至此,迁移部分实践分享结束,欢迎大家一起交流学习。文章来源地址https://www.toymoban.com/news/detail-851322.html

到了这里,关于【项目实战经验】DataKit迁移MySQL到openGauss(下)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 项目经验分享|openGauss 陈贤文:受益于开源,回馈于开源

    开源之夏 项目经验分享 2023 #08 #nbsp;关于 o penGauss nbsp;社区 openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性。同时openGauss也是一个开源的数据库平台,鼓励社

    2024年02月08日
    浏览(39)
  • 【数据库迁移系列】使用pgloader将数据从MySQL迁移到openGauss的最佳实践

    数据库迁移是实际工作中经常遇到的问题,比如由于磁盘空间、业务性能、项目改造等等原因,有从甲服务器迁移到乙服务器,从A种数据库迁移到B种数据库,从源路径迁移到另一个目标路径、同一个机器下从一个用户迁移到另一个用户等各种场景,有时需要整个数据库所有

    2024年02月02日
    浏览(65)
  • 网吧掉线的解决经验总结

    确实,网吧掉线会给网吧的运营带来致命的打击。如果网吧网络不稳定,一切运营方法都是徒然的。就因为如此,现在有人还专门从事攻击网吧的勾当。所以网吧对于这类攻击不得不防,下面就是一个老网吧技术网管总结出来的网吧掉线及解决方法的经验和工具下载,请认真

    2024年02月05日
    浏览(37)
  • H3C无线路由的配置方法的经验总结

    在配置H3C无线路由器之前,首先要做的是将电脑与无线路由器用网线连接起来,网线的另一端要接到无线路由器的LAN口上,建议按照无线路由器配置页面中的向导引导进行配置。   一、 有些人在使用无线路由器上网时,速度时快时慢,笔记本与无线路由器的距离很近,其实

    2024年02月05日
    浏览(37)
  • 【经验分享】openGauss容灾集群搭建

    openGauss 推出了容灾架构,相比之前的一个集群主从架构,而容灾架构是两个集群间的数据同步。为了更深入了解其原理,本文试图通过阅读 gs_sdr 命令相关的代码来学习下相关的各种操作。 1.容灾搭建过程可以参考:https://www.modb.pro/db/628767 2.vscode调试配置可以参考:https://w

    2024年02月08日
    浏览(49)
  • 软件测试——项目实战经验(电商、银行、APP)

    1、项目名称:家电购 项目描述: “家电购”商城系统是基于web浏览器的电子商务系统,通过互联网实现商品的线上电子化销售及业务流程处理。该系统主要以系统会员及普通游客为服务目标,提供方便快捷的商品展示和线上购物。项目由前后台共同构成,前台主要提供与用

    2024年02月05日
    浏览(90)
  • vue项目实战经验,相关库的安装,继续完善

    最近在系统学习vue3的项目实战,这里是对学习过程中的总结,包括一些库,框架的网站。 项目介绍 本项目基于Vue3 + ElementPlus + Vite实战开发商城后台管理系统,其中包括Vite的使用,Vue3全新的 1.node官网下载 https://nodejs.org/zh-cn/ 2.npm 淘宝镜像安装 1.vite官网和介绍 http://www.vite

    2024年02月08日
    浏览(50)
  • 缺项目经验的看过来,真实的软件测试实战项目来了

    这是一个电商项目,你可以在网站上购买各种宠物。 常见的电商网站操作在这个项目中都可以找到,比如注册,登录,查找商品,选择商品,添加购物车,下单,查看定位,确认收货地址等等。   网站需要的个人信息并不需要真实的,付款也不需要真的付钱,并不需要担心

    2024年02月07日
    浏览(50)
  • 【Android入门到项目实战--4.8】—— 如何查看数据库?(adb)

    目录 什么是adb? 配置adb 使用adb 本文使用adb shell来查看数据库。         adb是Android SDK中自带的一个调试工具,可以直接对连接在电脑上的手机或模拟器进行调试操作,它存放在sdk的platform-tools目录里,如果想在命令行中使用,先把它的路径配置到环境变量里。       

    2024年02月15日
    浏览(35)
  • 100个精选Python实战项目案例,送给缺乏练手经验的你

    随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中。为什么这么多人学 Python ?我要喊出那句话了:“人生苦短,我用 Python!”,正是因为语法简单、容易学习,所以 Python 深受大家喜爱。(Python!Python!Python!) Python 初学者在迈过安装编程环境和基本语法的

    2024年02月13日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包