进行 mysql/mariadb 增量备份的正确方法

进行 mysql/mariadb 增量备份的正确方法

我已经阅读了几个小时关于这个主题的文章,但还没有完全掌握。我将使用 borg 备份到网络共享。

希望对 binlog 进行相当频繁的备份....大约每 5 分钟一次..

以下是我目前的看法:

  1. 使用 --log-bin 启动 mariadb 以启用二进制日志记录。--不确定将二进制日志文件放在哪里或如何备份它们。我是否必须停止一切来“备份”二进制日志文件?

  2. mysqldump 使用刷新日志和一些其他设置将 bin 日志的时间点放入 mysql 转储文件中。

我想我正在寻找的只是确保我正确备份我的 Maria/Mysql 数据库的将军。

-R

我在想...使用完整和增量的 mariabackup....但我不确定如何正确地使用二进制日志来填充等式的最后一部分,以便真正能够将数据库恢复到其故障点。

答案1

不要使用 mysqldump,它效率低下且速度慢。使用 xtrabackup,它几乎可以不停机运行,而 mysqldump 需要锁定所有表才能写入以获得一致的副本。

一个好的选择是让从属服务器复制 binlog,这样您的 binlog 就会立即保存。在较新的 MariaDB 版本中,您可以让从属服务器落后,这样它将获取 binlog,但直到经过一定时间后才会执行它们。

答案2

通过 binlog 备份是最明显的计划;但是,恢复非常长的 binlog 链将非常繁琐。

对于如此短的 RPO/RTO,我建议使用块级备份,即以以下形式zfs send/recv:只需在 ZFS 数据集上运行 MariaDB,然后使用它send/recv进行复制其他ZFS 机器。更好的是,您可以使用萨诺德使事情自动化。

如果你想避免使用非主线模块,还有另一种方法:你可以在精简 lvm 卷要将副本同步到另一台机器,每 5 分钟通过以下方式对精简卷(在源、目标或两者上)进行一次快照鲷鱼

相关内容