使用mydumper流式传输MySQL数据

522 阅读2分钟

使用mydumper流式传输MySQL数据

Kabilesh P R [hudson译]

2022年9月22日

Mydumper从版本0.11.3和最新版本Mydumper0.12.3 开始开始支持流式备份,它允许压缩流备份。这是Mydumper最值得期待的特性,使其成为一个更强大的将数据迁移到RDS或云的工具。

图片

如果你是第一次听到mydumper,那么让我们快速了解一下mydumper是什么,它到底做了什么。

Mydumper是MySQL及其分支的多线程逻辑备份和恢复工具。要了解更多信息,请参阅下面我们以前的博客/演示文稿。

在这篇博客中,我们将简短地讨论这个流处理过程是如何工作的,以及如何获得所需的输出。

1.如何工作?

2.如何使用?

3.关键要点:

如何工作?

流的工作非常简单

  • Mydumper线程从源数据库读取数据并并行写入文件系统。
  • 现在,mydumper流线程将这些文件逐个排队,并将它们通过管道传输到标准输出。
  • Myloader流读取它们并写入其本地文件系统。
  • 现在,myloader线程通过维护thread_id序列,将它们在目标系统上并行恢复。

img

如何使用

下面是我在生产用例中使用的工作命令,用于使用流将表还原到RDS。

mydumper -t 6 -u mydbops --password='XXXXXXX' -h localhost -P 3306 --compress -o /mysql/logs/backup -B 'testdb' -T 'testdb.member --stream | myloader --threads=4 -u admin --password='XXXXX' -h 'mydbops-stg.bvbkjkuliuie.ap-south-1.rds.amazonaws.com' -P 3308 -v 4 -d /mysql/logs/restore -o -B ‘testdb’ --stream

–stream:mydumper表示创建的文件需要通过STDOUT流式传输。

–stream:myloader将创建一个线程来读取流并在本地创建文件

–不删除:在本地保留源和目标中的文件,这是可选的

默认情况下,一旦文件从源成功传输,它将立即被删除,同样,在目的地,一旦应用流文件,它将从其文件系统中删除,以避免在迁移大量数据时文件备份期间的高磁盘利用率。

Logs: 
** Message: 12:11:12.002: File backup/testdb-member-create.sql.gz transfered | Global: 0 MB/s

** Message: 12:11:12.003: Thread 3 dumping schema for `testdb`.`member`

** Message: 12:11:12.003: Thread 4 dumping data for`testdb`.`member`| Remaining jobs: -3

** Message: 12:11:12.003: Opening: backup/testdb-member-schema.sql.gz

** Message: 12:11:12.003: File backup/testdb-member-schema.sql.gz transfered | Global: 0 MB/s

** Message: 12:11:12.064: Non-InnoDB dump complete, unlocking tables

** Message: 12:11:12.064: Shutdown jobs enqueued

** Message: 12:27:54.912: Finished dump at: 2022-06-09 12:27:54

** Message: 12:27:54.913: Removing file: /mysql/logs/restore/restore/testdb-member-schema.sql.gz

** Message: 12:27:54.914: Thread 4 restoring table `testdb`.`member` from 

** Message: 12:27:56.433: Removing file: /mysql/logs/restore/restore/testdb-member.00000.sql.gz

** Message: 12:27:56.434: Shutting down stream thread 2

** Message: 12:27:56.434: Starting table checksum verification

关键要点:

  • 通过流,Mydumper被认为是一种简单快捷的数据迁移方法。
  • 通过自动清除备份文件,磁盘利用率始终可控。