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

相关推荐
尘浮生1 小时前
Java项目实战II基于Spring Boot的美食烹饪互动平台的设计与实现(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·微信小程序·小程序·美食
forestqq1 小时前
构建后端为etcd的CoreDNS的容器集群(七)、编写适合阅读的域名管理脚本
运维·数据库·etcd
hongkid1 小时前
MongoDB常用操作
数据库·mongodb
岁岁岁平安2 小时前
mysql上课总结(1)(mysql中的常见的存储引擎)(面试)
数据库·mysql·innodb·存储引擎
幽兰的天空3 小时前
python实现excel数据导入数据库
数据库
昨天今天明天好多天4 小时前
【Linux】MySQL部署
linux·mysql·adb
我还能再卷一点4 小时前
Linux安装mysql【超详细】
linux·mysql·adb
尘佑不尘4 小时前
shodan5,参数使用,批量查找Mongodb未授权登录,jenkins批量挖掘
数据库·笔记·mongodb·web安全·jenkins·1024程序员节
传输能手5 小时前
从三方云服务器将数据迁移至本地,如何保障安全高效?
大数据·服务器·数据库
BinTools图尔兹5 小时前
CQ社区版 v2024.10 | 支持k8s、helm部署!
数据库·安全·k8s·helm·数据安全·数据库管理员