DataKit之OpenGauss数据迁移工具

# 在讲openGauss和datakit之前,我先说下pgloader这个工具也支持将数据从mysql同步到openGauss或者postgresql,但是
注意了,官网明确说明了不支持视图和触发器的迁移,如果你只是迁移表结构和数据,那么这个既简单又快下面我简述下安装部署流程和可能会遇到的问题
安装一种是docker(github地址最下面就有)一种是编译安装
1、docker
docker pull ghcr.io/dimitri/pgloader:latest
docker run --rm -it ghcr.io/dimitri/pgloader:latest pgloader --version启动docker
docker run -tid --name pgloader_test dimitri/pgloader创建迁移脚本
vim openGauss.loader
LOAD DATABASE
FROM mysql://root:12345@192.168.1.202:3306/test
INTO postgresql://root:12345@192.168.1.202:5432/postgres
WITH include drop, create tables, create indexes, reset no sequences,workers = 8, concurrency = 1,multiple readers per thread, rows per range = 50000
CAST
type varchar when(= 1 precision) to "boolean" drop typemod keep default keep not null;将配置文件拷贝到docker内执行
docker cp ./openGauss.loader pgloader_test:/进行docker容器
docker exec -it pgloader_test /bin/bash执行迁移任务(一种是执行自定义的迁移脚本,另外一种是直接执行迁移任务)
1、pgloader openGauss.loader
2、pgloader mysql://root:12345@192.168.1.202:3306/test postgresql://jroot:12345@192.168.1.202:5432/postgres2、编译安装
cd /usr/local
tar -zxvf pgloader-3.6.9.tar.gz
cd pgloader-3.6.9/
chmod 755 bootstrap-centos.sh#需要下载很多关联插件
./bootstrap-centos.sh#先package打包,后还要下载一些资源包
#此版本打包时,需要用到 openSSL11 版本的 so 库,
#如果有提示到 ("libcrypto.so.1.1" "libcrypto.so.1.0.0" "libcrypto.so.3" "libcrypto.so") 相关信息,
#需要先执行一下 yum -y install openssl openssl-devel ,再重新 make 。
make pgloader#复制执行文件到用户本地执行目录
cp build/bin/pgloader /usr/local/bin/#查看版本
pgloader --version执行迁移任务
pgloader mysql://root:12345@192.168.1.202:3306/test postgresql://jroot:12345@192.168.1.202:5432/postgres可能遇到的问题:
1、Condition QMYND:MYSQL-UNSUPPORTED-AUTHENTICATION was signalled
解决:
pgloader不支持caching_sha2_password
在/etc/my.cnf 中增加 default-authentication-plugin=mysql_native_password
重启mysql
2、KABOOM!
INFO: Control stack guard page unprotected
Control stack guard page temporarily disabled: proceed with cautionWhat I am doing here?Control stack exhausted (no more space for function call frames).
This is probably due to heavily nested or infinitely recursive function
calls, or a tail call that SBCL cannot or has not optimized away.PROCEED WITH CAUTION.
解决:
出现这个问题我是docker安装的,后来改用编译安装的方式了参考:
https://blog.csdn.net/2401_83143557/article/details/137864590(docker安装参考)
https://www.cnblogs.com/java365/articles/17789520.html(编译安装参考)
https://pgloader.readthedocs.io/en/latest/ref/mysql.html#mysql-schema-transformations(pgloader的doc)
https://github.com/dimitri/pgloader(pgloader的github)
#1 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld#2 当前JDK版本
wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gzvim /etc/profile
export JAVA_HOME=/usr/local/jdk-11.0.2
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profilejava -version# 一定要创建软连接
ln -s /usr/local/jdk-11.0.2/bin/java /usr/bin/java#3 安装python环境
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
tar -zxvf Python-3.6.8.tgz
cd Python-3.6.8
./configure --prefix=/root/python3.6.8
make && make installvi ~/.bashrc
alias python='/root/python3.6.8/bin/python3.6'
alias pip='/root/python3.6.8/bin/pip3'
source ~/.bashrcpython -V
pip --version# 4 修改国内镜像源
vim /etc/docker/daemon.json 
{
"registry-mirrors": ["https://rsk59qvc.mirror.aliyuncs.com"]
}
service docker restart#5 安装mysql
docker run --name mysql8 --restart=always -v /mysql_8.0.26/conf.d:/etc/mysql/conf.d -v /mysql_8.0.26/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=jysa -d mysql:8.0.26 docker-entrypoint.sh --character-set-server=utf8mb4 --collation-server=utf8mb4_0900_ai_ci --lower-case-table-names=1[mysqld]
binlog_format = ROW
log_bin = mysql-bin
server_id = 1
binlog_row_image = FULL
enforce_gtid_consistency = ON
gtid_mode = ONdocker restart 容器id一定要修改mysql的密码校验插件
将caching_sha2_password修改为mysql_native_password
一定记得改完插件类型后,修改密码,不然可能导致登录不上(如图一)# 6 设置
vi /etc/sysctl.conf
kernel.sem = 250 32000 100 999
sysctl -p# 7 安装opengauss:5.1.0
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.1.0/x86/openGauss-5.1.0-CentOS-64bit.tar.bz2useradd openGauss
passwd openGauss
usermod -aG openGauss openGauss
cat /etc/sudoers | grep openGauss
openGauss	ALL=(ALL) 	ALLsu openGauss
sudo mkdir /ops/openGauss5.1.0
sudo yum -y install bzip2
sudo tar -jxf openGauss-5.1.0-CentOS-64bit.tar.bz2/ops/openGauss5.1.0/simpleInstall
sh install.sh -w "Jyzx2024" && source ~/.bashrc# 修改配置文件
编辑 postgresql.conf
listen_addresses = '*'
local_bind_address = '*'
max_connections = 1000
password_encryption_type = 1cd /ops/openGauss5.1.0/bin
gsql -d postgres
create user jyzx with createdb password 'Jyzx2024';
grant all privileges to jyzx;# 这里使用的是openGuass用户
gs_ctl restart -D $GAUSSHOME/data/single_node -Z single_node# 注意上面openGauss是通过部署包安装,也可以通过docker镜像安装
镜像包我放到这儿了,启动命令也在这儿:https://download.csdn.net/download/AinUser/89600056
启动容器之后,需要通过命令su - omm命令切换用户,然后执行相关的创建用户并授权的SQL,这个SQL上面有# 8 安装openGauss datakit
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.1.0/tools/Datakit/Datakit-5.1.0.tar.gzmkdir /ops/datakit5.1.0
tar -zxvf Datakit-5.1.0.tar.gzmkdir -p logs config ssl files
cp ./application-temp.yml ./config/
vim ./config/application-temp.yml
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: org.opengauss.Driverurl: jdbc:opengauss://192.168.1.202:5432/postgres?currentSchema=public&batchMode=offusername: jyzxpassword: Jyzx@2024.druid:test-while-idle: falsetest-on-borrow: truevalidation-query: "select 1"validation-query-timeout: 10000connection-error-retry-attempts: 0break-after-acquire-failure: truemax-wait: 6000keep-alive: truemax-active: 30min-evictable-idle-time-millis: 600000# 生成ssl
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 /ops/datakit5.1.0/ssl/keystore.p12 \
-validity 3650 \
-storepass 123456/ops/datakit5.1
java -Xms4096m -Xmx8092m -jar openGauss-datakit-5.1.0.jar --spring.profiles.active=temp# 注意
1、java软连接一定要建立,不然使用新创建的用户可能会找不到java命令
2、datakit平台,服务器管理一定要记住密码,迁移任务中心才会显示设备
3、启动datakit的内存一定要大,不然可能导致zookeeper和kafka进程被杀
4、进入容器后切用户一定要记得使用su - omm参考:
https://jeames.blog.csdn.net/article/details/134016239(安装openGuass数据库)
https://blog.csdn.net/weixin_41645135/article/details/135891534(安装datakit)
https://opengauss.org/zh/download/archive/(官网下载包)
https://docs-opengauss.osinfra.cn/zh/docs/5.0.0/docs/DataMigrationGuide/%E5%85%A8%E9%87%8F%E8%BF%81%E7%A7%BB.html(官网全量迁移文档)
https://app.yinxiang.com/fx/a780e65f-2852-4e83-b91f-8cfbc16d7996(同事的笔记)备注:
手动启动kafka和zookeeper,如果是启动,第一次会先启动zookeeper,再一次执行启动命令,才会启动kafka-- 可以先执行停止kafka的命令,确保Kafka进程已停止,避免启动时出错,停止kafka的命令如下
java -Dpath=/data/dgq/portal/portal/ -Dorder=stop_kafka -Dskip=true -jar /data/dgq/portal/portal/portalControl-6.0.0rc1-exec.jar
-- 启动kafka进程的命令
java -Dpath=/data/dgq/portal/portal/ -Dorder=start_kafka -Dskip=true -jar /data/dgq/portal/portal/portalControl-6.0.0rc1-exec.jar

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Go的tls库搭建HTTPS服务

文章目录 tls.go 中文文档使用OpenSSL生成证书Win系统安装openssl生成证书 HTTP情况下的通信编写服务器代码编写客户端代码 tls.go 中文文档 https://studygolang.com/pkgdoc 使用OpenSSL生成证书 Win系统安装openssl 安装地址 https://slproweb.com/products/Win32OpenSSL.…

设计模式17-适配模式

设计模式17-适配模式 动机定义与结构C代码推导总结应用具体应用示例 动机 在软件系统中由于应用环境的变化常常需要将一些现存的对象。放到新的环境中去应用。但是新环境要求的接口是这些现存对象所不满足的。那么这种情况下如何应对这种迁移的变化?如何既能利用现…

计算机毕业设计选题推荐-戏曲文化体验系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

Python自动发送邮件如何设置邮件内容格式?

Python自动发送邮件时,如何自动化发送HTML格式邮件? Python是一种功能强大且灵活的编程语言,广泛用于各种自动化任务,其中包括自动发送邮件。AokSend将介绍在使用Python自动发送邮件时,如何设置邮件内容的格式&#x…

【系统架构设计师】二十二、嵌入式系统架构设计理论与实践②

目录 五、嵌入式中间件 5.1 嵌入式中间件定义 5.2 嵌入式中间件的分类 六、嵌入式系统软件架构设计方法 6.1 基于架构的软件设计开发方法的应用 6.2 属性驱动的软件设计方法 6.2.1 ADD 开发方法的质量属性与场景 6.2.2 ADD 开发过程 6.3 实时系统设计方法 6.3.1 DART…

索引:SpringCloudAlibaba分布式组件全部框架笔记

索引:SpringCloudAlibaba分布式组件全部框架笔记 一推荐一套分布式微服务的版本管理父工程pom模板:Springcloud、SpringCloudAlibaba、Springboot二SpringBoot、SpringCloud、SpringCloudAlibaba等各种组件的版本匹配图:三Spring Cloud Aliba…

【MySQL篇】Percona XtraBackup标准化全库完整备份策略(第三篇,总共五篇)

💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨ 💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️…

C++初学(8)

8.1、string类简介 现在可以用string类型的变量而不是字符数组来存储字符串,string类也用的会比数组简单,同时提供了将字符串作为一种数据类型的表示方式。 要使用string类,必须在程序中包含头文件string。string类位于名称空间std中&#…

2024年8月1日 十二生肖 今日运势

小运播报:2024年8月1日,星期四,农历六月廿七 (甲辰年辛未月丁酉日),法定工作日。今天建军节,祝保家卫国、英勇无畏的解放军战士们节日快乐! 红榜生肖:龙、牛、猪 需要注…

使用CLI脚手架搭建Vue2项目

一、配置前端的环境 1、下载安装Node.js 网址:Node.js 中文网 (nodejs.com.cn) 参考:【简明图文教程】Node.js的下载、安装、环境配置及测试_node下载安装-CSDN博客 推荐安装路径C盘改为D盘 2、配置nodejs及环境变量【安装的时候勾选Add to PATH就不…

GPT 和 BERT 系列论文阅读总结

文章目录 1. GPT1.1 GPT的目的和任务1.2 GPT的实现1.2.1 Unsupervised pre-training1.2.2 Supervised fine-tuning1.2.3 特定任务的输入格式 2. BERT2.1 BERT的目的和任务2.2 BERT的实现2.2.1 Masked Language Model2.2.2 Next Sentence Prediction (NSP) 3. GPT-23.1 初见 pro…

2-51 基于matlab的IFP_FCM(Improved fuzzy partitions-FCM)

基于matlab的IFP_FCM(Improved fuzzy partitions-FCM),改进型FCM(模糊C均值)聚类算法,解决了FCM算法对初始值设定较为敏感、训练速度慢、在迭代时容易陷入局部极小的问题。并附带了Box和Jenkins煤气炉数据模型辨识实例。程序已调通&#xff0…

基于单片机的电梯控制系统的设计

摘 要: 本文提出了一种基于单片机的电梯控制系统设计 。 设计以单片机为核心,通过使用和设计新型先进的硬件和控制程序来模拟和控制整个电梯的运行,在使用过程中具有成本低廉、 维护方便、 运行稳定 、 易于操作 、 安全系数高等优点 。 主要设计思路是…

RocketMQ消息发送基本示例(推送消费者)

消息生产者通过三种方式发送消息 1.同步发送:等待消息返回后再继续进行下面的操作 同步发送保证了消息的可靠性,适用于关键业务场景。 2.异步发送:不等待消息返回直接进入后续流程.broker将结果返回后调用callback函数,并使用 CountDownLatch计数 3.单向发送:只…

MySQL---JDBC

一、JDBC是什么? JDBC(Java Database Connectivity):是Java访问数据库的解决方案。 JDBC定义了一套标准的接口,即访问数据库的通用API,不同数据库的厂商根据各自数据库的特点实现这些接口。 JDBC希望用相同的方式访问不同的数据库&#xff0c…

cocos creator绘制网格背景(基于矢量绘图)

在2D游戏开发中,设计2D地图的背景实现通常有以下几种方式: 静态背景图: 最简单的方式是使用静态背景图,即将整个背景作为一个静态图像加载到游戏中。这种方式适用于简单的游戏或者背景不需要变化的场景。 平铺背景图:…

java~反射

反射 使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码) 原理图 加载完类后,在堆中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对…

湖南(市场调研公司)源点咨询 如何进行精准化用户画像细分研究

湖南源点咨询认为,用户画像,是根据用户的基本属性、用户偏好、生活习惯、用户行为等信息而抽象出来的标签化用户模型。我们在这里为大家分析为什么要建立用户画像,进行用户细分调研。 一、什么是用户画像 简单来讲,就是想要在通…

Java每日一练,技术成长不间断

目录 题目1.下列关于继承的哪项叙述是正确的?2.Java的跨平台特性是指它的源代码可以在多个平台运行。()3.以下 _____ 不是 Object 类的方法4.以下代码:5.下面哪个流类不属于面向字符的流()总结 题目 选自牛…

KubeSphere 部署向量数据库 Milvus 实战指南

作者:运维有术星主 Milvus 是一个为通用人工智能(GenAI)应用而构建的开源向量数据库。它以卓越的性能和灵活性,提供了一个强大的平台,用于存储、搜索和管理大规模的向量数据。Milvus 能够执行高速搜索,并以…