繁体   English   中英

将数据库还原到新集群

[英]Restoring database to new cluster

我们正在使用Percona 5.7.16-10服务器。 我想用XtraDB集群扩展当前的解决方案。 因此,与此同时,我创建了其他机器并启动了集群(在5.7.17-11-57 Percona XtraDB集群版本上运行),并且在那里进行了一些测试(一切似乎都正常工作)。 现在,我想从正在运行的服务器中转储当前数据库并将其插入集群。 停止群集没有问题(因为它是用于测试的)。 但是当我像以前那样创建mysqldump时,由于pcx_strict_mode(无法在此处查看信息),所以无法将其插入群集中-强制执行Percona-XtraDB-Cluster prohibits use of LOCK TABLE/FLUSH TABLE <table> WITH READ LOCK with pxc_strict_mode = ENFORCING因为mysqldump创建的脚本包含禁止的表锁。 因此,我测试了更多选项,例如MASTER,该选项不检查此规则,但没有帮助,因为转储中的插入查询卡住了,什么也没发生。

是否有任何mysqldump选项来避免表锁定查询,还是我必须通过XtraBackup以某种方式还原它并将XtraBackup用于当前正在运行的服务器?

我在这里阅读了几个主题,但没有一个人遇到同样的问题。 每个人都在解决如何从某些失败而不是从零开始恢复群集的问题。

我对mysqldump的任何建议或将旧数据库“插入”集群的正确方法感到高兴。

如果您可以关闭当前计算机,并且从头开始构建集群,那么我认为这些(在mysqldump )将避免使用strict_mode,并且可能还会引起其他一些麻烦:

--skip_add_locks --skip-lock-tables

而且不要使用

--single-transaction --lock-all-tables

在集群中的第一个节点上加载数据, 然后添加其他节点,让它们使用SST加载自身,这也可能是明智的。

如果需要使当前服务器保持活动状态,那么我们需要讨论使其成为主服务器,而新集群的一个节点成为从服务器。 再加上XtraBackup可能更适合。 但是现在,锁和单笔交易将是必需的。 因此,由于正在构建群集且尚未启用群集,因此将strict_mode设置为DISABLED似乎是正确的。

(注意:我没有执行您的任务的经验;如果其他人提供了更令人信服的答案,请与他们一起去。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM