MySQL 向 OceanBase 迁移数据的基本方法

本文详细介绍了如何使用mysqldump从MySQL迁移到OceanBase,以及通过DataX工具进行表结构和数据迁移的过程,包括环境设置、权限授予、数据备份和导入,以及迁移过程中遇到的问题和解决方案。

薅OBCP考试券的社区活动

https://ask.oceanbase.com/t/topic/35600926

本次实验目的:掌握从 MySQL 向 OceanBase 迁移数据的基本方法:mysqldump、datax 、canal 等。

一、mysql环境准备

OceanBase所在的环境中没有mysql环境,使用docker搭一个。
并开启远程访问
grant all privileges on . to ‘root’@‘%’;
flush privileges;

docker pull mysql

docker run -d -p 3306:3306   --name mysql -e MYSQL_ROOT_PASSWORD=Admin123  -v mysql_data:/var/lib/mysql mysql --lower-case-table-names=1

docker exec -it mysql bash

 
grant all privileges on *.*  to 'root'@'%';
flush privileges;

bash-4.4# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.3.0 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

grant all privileges on *.*  to 'root'@'%';
flush privileges;

创建测试表

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
5 rows in set (0.00 sec)

mysql> use testdb
Database changed
mysql> create table tb_mysql2ob(id int,name varchar(100));
Query OK, 0 rows affected (1.36 sec)

mysql> insert into tb_mysql2ob(id,name) values(1,'Tom');
Query OK, 1 row affected (0.16 sec)

mysql
### 使用 DataGrip 将 MySQL 数据迁移OceanBase DataGrip 是一款强大的数据库管理工具,支持多种数据库操作。对于从 MySQLOceanBase数据迁移工作,虽然官方推荐使用 `mysqldump` 或者 `mydumper/myloader` 工具来完成这项任务[^1],但在某些情况下也可以借助于像 DataGrip 这样的图形化界面工具来进行。 #### 准备阶段 为了确保迁移过程顺利,在开始之前应该准备好必要的环境配置: - **安装并启动源端 MySQL 和目标端 OceanBase**:确认两个数据库服务都处于正常运行状态。 - **备份现有数据**:建议先对原始 MySQL 中的数据做一次完整的备份,以防意外发生时可以快速恢复。 #### 创建连接 打开 DataGrip 应用程序后,按照如下步骤创建新的数据库连接: 1. 点击左上角的 "Database" 菜单项; 2. 选择 “New Connection”,接着分别添加指向本地 MySQL 及远程 OceanBase 的链接设置; 3. 输入相应的主机地址、用户名密码以及端口号等信息; #### 设计模式转换脚本 由于 MySQLOceanBase 存在一定的语法差异,因此可能需要编写一些 SQL 脚本来调整表定义语句以适应新平台的要求。这一步骤可以通过手动编辑或者利用第三方插件辅助完成。 ```sql -- Example of a table creation statement adjusted for compatibility with OceanBase. CREATE TABLE IF NOT EXISTS employees ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), position TEXT, hire_date DATE DEFAULT NULL ); ``` #### 执行数据传输 当所有的前期准备工作完成后,就可以正式实施数据转移了。通过 DataGrip 提供的功能可以直接将选定表格内的记录复制粘贴至另一个会话窗口内对应的对象里去。不过更高效的方式还是采用批量处理机制——即一次性读取多个文件夹下所有 .sql 文件内容再统一提交给目标服务器执行。 另外一种方法就是利用 DataGrip 自带的任务调度器安排定时作业定期同步两地之间的增量更新部分。这种方式特别适合那些业务逻辑复杂且实时性要求较高的应用场景。 #### 测试验证 最后务必仔细核验最终成果是否符合预期标准。具体做法包括但不限于对比两套系统的元数据属性(字段名长度限制、索引类型)、随机抽取若干条目检查其数值一致性等方面。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值