利用mydumper从MySQL迁移数据到OceanBase数据库命令记录

一:中转服务器环境准备

1、下载安装包。

请根据需要在 下载安装包 中,下载对应的安装包并安装。

2、在数据库主机上解压缩安装包。

mydumper-0.12.7-2-zstd.el7.x86_64.rpm 为示例。

复制代码
rpm2cpio mydumper-0.12.7-2-zstd.el7.x86_64.rpm | cpio -div
  1. 验证是否正确安装。

    复制代码
    ./usr/bin/mydumper --help

    在备份目的文件夹中,会生成 metadata 文件和对应的表结构或表数据文件。

二:备份操作

备份全库
复制代码
mydumper -h xx.xx.xx.xx -P3306 -u username -p ****** -o /data/backup/mysql/
备份指定数据库 test
复制代码
mydumper -h xx.xx.xx.xx -P3306 -u username -p ******  -B test -o /data/backup/mysql/
备份指定数据库指定表(t1,t2)
复制代码
mydumper -h xx.xx.xx.xx -P3306 -u username -p ****** -B test -T t1,t2 -o /data/backup/mysql/
仅备份表数据
复制代码
mydumper -h xx.xx.xx.xx -P3306 -u username -p ****** -B test -T t1 -m -o /data/backup/mysql/
备份 t1 表的数据,开并行和数据压缩
复制代码
mydumper -h xx.xx.xx.xx -P3306 -u username -p ****** -B test -T t1 -t 6 -c -o /data/backup/mysql/

三:恢复操作

禁用外键检查约束

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

复制代码
MySQL [oceanbase]> SET GLOBAL foreign_key_checks=off;
Query OK, 0 rows affected

MySQL [oceanbase]> SHOW GLOBAL VARIABLES LIKE '%foreign%';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| foreign_key_checks | OFF   |
+--------------------+-------+
1 row in set

备份数据后,您可通过 source 命令或 myloader 命令恢复数据。

使用 source 命令恢复数据

若无法直接还原单表,可以找到对应的单表 sql 文件,进入命令行,使用 source 命令恢复数据。

复制代码
source test.t1-schema.sql 还原表结构

source test.t1.00000.sql 还原表数据
使用 myloader 命令恢复数据
  • 导入表结构和数据。

    复制代码
    myloader -h xx.xx.xx.xx -P2883 -u 'user@tenantname#clustenamer' -p ******  -B test -o -d /data/backup/mysql/
  • 导入数据库(若目标库不存在则会新建)。

    复制代码
    myloader -h xx.xx.xx.xx -P2883 -u 'user@tenantname#clustenamer' -p ******  -B test -s test1 -o -d /data/backup/mysql/

更多关于 mydumper 和 myloader 的使用方法,请参见 https://github.com/mydumper/mydumper

四、oceanbase 删除数据库

在OceanBase中,删除数据库的操作通常意味着要删除数据库实例。OceanBase不支持直接删除数据库这一概念,而是需要通过删除数据库实例来完成数据库的"删除"操作。

在OceanBase中删除数据库实例的操作通常需要DBA权限。以下是删除OceanBase数据库实例的基本步骤:

  1. 登录到OceanBase数据库管理系统。

  2. 确认要删除的数据库实例及其内容。

  3. 执行删除实例的命令。

这里是一个示例SQL命令,用于删除OceanBase数据库实例:

DROP DATABASE IF EXISTS `your_database_name`;

相关推荐
技术净胜6 分钟前
MySQL 8.0 超详细保姆级官方版下载安装完整教程步骤(含环境配置+安装包下载)
数据库·mysql·adb
闲人编程24 分钟前
商品管理与库存系统
服务器·网络·数据库·python·api·数据模型·codecapsule
h***381831 分钟前
maven导入spring框架
数据库·spring·maven
樱花味的小奶牛39 分钟前
DECLARE CURSOR 才允许使用 FOR UPDATE 子句
数据库·sql
雁凡彡41 分钟前
mybatis-plus中sqlserver 查询数组中指定位置前的数据
数据库·sqlserver·mybatis
问今域中1 小时前
Spring Security登录认证
数据库·sql·oracle
qq_12498707531 小时前
基于springboot的仁和机构的体检预约系统的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·mysql·spring·毕业设计·计算机毕业设计
jgyzl2 小时前
2026.1.7 tlias三层架构
java·mysql·架构
JOEH602 小时前
🚀 数据库插入 1000 万数据?别再傻傻用 for 循环了!实测 5 种方式效率对比
数据库·后端
lllsure2 小时前
【MySQL】数据分片
数据库·mysql