记一次mysql迁移至OceanBase操作记录

前言

mysqldump 是 MySQL 数据库系统中的一个命令行工具,用于创建 MySQL 数据库的逻辑备份。它能够导出数据库的结构和数据为 SQL 语句文件,这个文件可以用于恢复数据库或在其他服务器上重建数据库。

PS:本次迁移使用了最基本的mysqldump导出进行后续迁移操作。

源库导出前的配置及导出脚本

本次源数据版本:mysql 8.0.31

导出之前的操作---数据库设置参数:

复制代码
set persist default_collation_for_utf8mb4=utf8mb4_general_ci;

导出操作:

复制代码
/mysql/bin//mysqldump -h 192.168.40.129  -uroot -p'mysqlpasswd' -P3306 --single-transaction --master-data=2 --set-gtid-purged=OFF --hex-blob --default-character-set=utf8mb4  --databases shanjiadb > shanjiadb_to_ob.sql

--single-transaction:确保一致性导出。

--master-data=2:记录 binlog 位置,可用于后续搭建增量同步(如果需要)。

--set-gtid-purged=OFF:如果 MySQL 未开启 GTID,可忽略此选项。

处理导出后的SQL文件

检查 SQL 文件,可能需要手动修改一些 OceanBase不兼容的DDL或语法(例如,将LOCK语句注释掉).

如果前面没做字符集设置就导出了,可以用下列脚本批量替换:

复制代码
sed -i 's utf8mb3_general_ci utf8mb4_general_ci g' *.sql
sed -i 's utf8mb4_0900_ai_ci utf8mb4_general_ci g' *.sql
sed -i 'CHARSET=utf8mb3 CHARSET=utf8mb4' *.sql

目标OceanBase准备及导入操作

前面已经将前期准备做好了,接下来可以在目标端ob数据库进行后续操作了。

在备份的表结构语句里,可能包含外键。在导入 OceanBase MySQL 里时,如果外键依赖的表没有创建,导入脚本会报错,因此在导入之前需要禁用外键检查约束。

使用 source 命令或 mysql 客户端导入。

复制代码
mysql> use shanjiaobdb;

mysql> source /data/backup/shanjiadb_to_ob.sql;

导入大量数据时,建议先禁用外键检查以提高速度:

SET FOREIGN_KEY_CHECKS=0;

-- 导入操作

SET FOREIGN_KEY_CHECKS=1;

本次的迁移操作,因某方便原因,其他一些细节点,并没有放上去,姑且当个笔记记录吧。

文参考文档:

https://www.oceanbase.com/docs/common-oceanbase-database-standalone-1000000003577510

相关推荐
这就是佬们吗3 小时前
向量数据库选型与实战:从原理到生产环境的完整指南
数据库
Shawn Dev4 小时前
MySQL Binlog 数据误删除恢复完全指南
数据库·mysql·elasticsearch
oradh4 小时前
Oracle ADRCI 诊断数据工具总结
数据库·oracle·adrci
zzzll11114 小时前
Loop Engineering:循环工程的原理、实践与应用
java·数据库·python
IpdataCloud4 小时前
IPv6查出来的地理位置是错的?技术解析与双栈定位方案
数据库·tcp/ip·ip
数字新视界4 小时前
信创动环监控厂家深入剖析智能机房环境监控技术应用与挑战
服务器·数据库·物联网·芯片·动环监控系统
羑悻的小杀马特4 小时前
打破深海垄断:国产数据库如何托起固井软件的“数据心脏”?
数据库
今天AI了吗4 小时前
从 LLM 到 Agent Skill:把 AI 底层概念串起来
数据库·人工智能·sql·深度学习·神经网络·算法·机器学习
2401_894915535 小时前
新手落地 Geo 优化:源码下载、依赖安装、数据库初始化完整步骤
运维·服务器·数据库·人工智能·缓存·开源
陈卿诺语5 小时前
MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
sql·mysql·adb