我可以 运行 Xtrabackup 直接在 Galera 集群中的一个成员上吗?
Can I run Xtrabackup directly on one of the members in a Galera cluster?
我有一个由三个节点组成的 Galera 集群 (MySQL),目前我依赖 mysqldump 进行备份。至少可以说,这很麻烦,因为数据库多年来一直在增长,现在接近 20 GiB,而 mysqldump 需要大约半小时才能完成它的工作。
Percona xtrabackup 似乎很有前途,我已经在单个节点上的数据库副本上进行了试用,结果非常好,备份时间从根本上减少了。
我没能找到的是是否可以在其中一个节点上安装 xtrabackup(最好是今天 运行ning mysqldump 上的一个)和 运行 在集群上的节点数据库?我已经阅读了很多关于 xtrabackup 的文章,但是我没有在任何地方找到任何关于 运行 在其中一个集群成员上使用它的任何风险的信息。
我想不出有什么风险。
但是,可能还有更快的方法...
方案A:
使用第 4 台机器 运行 备份脚本。或者,至少,将转储写入第四台机器。任何转储程序都是 I/O-heavy,甚至可能是 I/O-bound。通过在另一台机器上写入转储,您可以卸载 Galera 节点的 I/O.
我假设您在备份期间将节点从集群中取出?并让 gcache 足够大,以便它执行 IST 而不是 SST 来重新同步?
B计划:
更进一步,使用 4 个节点而不是 3 个。这样一来,让一个节点离线会产生更小的影响和更少的曝光。
方案C:
使用第 4 台机器作为其中一个节点的从机。
问题...节点的地理分布是什么?如果这三者目前坐在一起,想想龙卷风、地震、洪水等
备份的目的是什么?备份数据会不会在异地? (注意:这会给备份方法增加一些延迟。)
我有一个由三个节点组成的 Galera 集群 (MySQL),目前我依赖 mysqldump 进行备份。至少可以说,这很麻烦,因为数据库多年来一直在增长,现在接近 20 GiB,而 mysqldump 需要大约半小时才能完成它的工作。
Percona xtrabackup 似乎很有前途,我已经在单个节点上的数据库副本上进行了试用,结果非常好,备份时间从根本上减少了。
我没能找到的是是否可以在其中一个节点上安装 xtrabackup(最好是今天 运行ning mysqldump 上的一个)和 运行 在集群上的节点数据库?我已经阅读了很多关于 xtrabackup 的文章,但是我没有在任何地方找到任何关于 运行 在其中一个集群成员上使用它的任何风险的信息。
我想不出有什么风险。
但是,可能还有更快的方法...
方案A:
使用第 4 台机器 运行 备份脚本。或者,至少,将转储写入第四台机器。任何转储程序都是 I/O-heavy,甚至可能是 I/O-bound。通过在另一台机器上写入转储,您可以卸载 Galera 节点的 I/O.
我假设您在备份期间将节点从集群中取出?并让 gcache 足够大,以便它执行 IST 而不是 SST 来重新同步?
B计划:
更进一步,使用 4 个节点而不是 3 个。这样一来,让一个节点离线会产生更小的影响和更少的曝光。
方案C:
使用第 4 台机器作为其中一个节点的从机。
问题...节点的地理分布是什么?如果这三者目前坐在一起,想想龙卷风、地震、洪水等
备份的目的是什么?备份数据会不会在异地? (注意:这会给备份方法增加一些延迟。)