利用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`;

相关推荐
poemyang3 小时前
十年大厂员工终明白:MySQL性能优化的尽头,是对B+树的极致理解
mysql·pagecache·顺序i/o·局部性原理·b tree·b+ tree
wyiyiyi5 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
天宇_任5 小时前
Mysql数据库迁移到GaussDB注意事项
数据库·mysql·gaussdb
xiep14383335108 小时前
Ubuntu 安装带证书的 etcd 集群
数据库·etcd
Java小白程序员9 小时前
Spring Framework:Java 开发的基石与 Spring 生态的起点
java·数据库·spring
老虎06279 小时前
数据库基础—SQL语句总结及在开发时
数据库·sql·oracle
爱掘金的土拨鼠11 小时前
国产化dm数据库锁表解锁
数据库
花花无缺11 小时前
MySQL 的存储引擎-InnoDB 和 MyISAM的对比
mysql
苏琢玉11 小时前
如何让同事自己查数据?写一个零依赖 PHP SQL 查询工具就够了
mysql·php
庖丁解java11 小时前
N个Utils
数据库