我有一个由三个节点组成的 Galera 集群 (MySQL),目前依靠 mysqldump 进行备份。至少可以说,这很麻烦,因为数据库多年来一直在增长,现在已接近 20 GiB,而 mysqldump 大约需要半个小时才能完成它的工作。
Percona xtrabackup 似乎很有前途,我已经在单个节点上的数据库副本上进行了尝试,取得了非常积极的结果,备份时间从根本上减少了。
我无法确定的是,是否可以在其中一个节点(最好是今天运行 mysqldump 的节点)上安装 xtrabackup 并在集群数据库上运行它?我已经阅读了很多有关 xtrabackup 的内容,但我没有找到任何有关在集群成员之一上运行它的任何风险的信息。
最佳答案
我想不出有什么风险。
但是,可能还有更快的方法......
A计划:
使用第四台计算机运行备份脚本。或者,至少将转储写入第四台机器。任何转储程序都是 I/O 密集型的,甚至可能是 I/O 密集型的。通过在另一台机器上写入转储,您可以卸载 Galera 节点的 I/O。
我假设您在备份期间将该节点从集群中取出?并且 gcache 足够大,以便它执行 IST(而不是 SST)来重新同步?
B计划:
更进一步,使用 4 个节点而不是 3 个。这样,节点离线的影响和曝光就会更小。
C 计划:
使用第四台机器作为其中一个节点的从属机器。
问题...节点的地理分布是什么?如果这三个人现在坐在一起,想想 Tornado 、地震、洪水等。
备份的目的是什么?备份数据的地理位置是否遥远? (注意:这会给备份方法增加一些延迟。)
关于mysql - 我可以直接在 Galera 集群中的成员之一上运行 Xtrabackup 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56175955/