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

相关推荐
程序员柳16 分钟前
基于微信小程序的校园二手交易平台、微信小程序校园二手商城源代码+数据库+使用说明,layui+微信小程序+Spring Boot
数据库·微信小程序·layui
梦在深巷、35 分钟前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb
IT乌鸦坐飞机44 分钟前
ansible部署数据库服务随机启动并创建用户和设置用户有完全权限
数据库·ansible·centos7
IT_102444 分钟前
Spring Boot项目开发实战销售管理系统——数据库设计!
java·开发语言·数据库·spring boot·后端·oracle
Johny_Zhao1 小时前
Ubuntu系统安装部署Pandawiki智能知识库
linux·mysql·网络安全·信息安全·云计算·shell·yum源·系统运维·itsm·pandawiki
祁思妙想2 小时前
八股学习(三)---MySQL
数据库·学习·mysql
惊骇世俗王某人2 小时前
1.MySQL之如何定位慢查询
数据库·mysql
秦歌6663 小时前
向量数据库-Milvus快速入门
数据库·milvus
叁沐3 小时前
MySQL 04 深入浅出索引(上)
mysql
q9085447033 小时前
MySQL 二进制日志binlog解析
mysql·binlog·binlog2sql·my2sql