首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数据库还原到新群集

将数据库还原到新群集
EN

Stack Overflow用户
提问于 2017-04-07 14:04:59
回答 1查看 5K关注 0票数 3

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

是否有避免表锁定查询的mysqldump选项,或者我是否必须通过XtraBackup以某种方式恢复它,并将XtraBackup用于当前运行的服务器?

我读过几个主题这里,但没有任何一个主题与相同的问题相匹配。每个人都在解决如何从失败中恢复集群,而不是从头开始。

对于mysqldump的任何建议,或者向集群中“插入”旧数据库的正确方法,我都会很高兴。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-10 00:46:58

如果您可以删除当前的机器,如果您正在从头构建集群,那么我认为(在mysqldump上)这些(在strict_mode上)将避免这个strict_mode,可能还会避免其他一些问题:

代码语言:javascript
运行
复制
--skip_add_locks --skip-lock-tables

也不要使用

代码语言:javascript
运行
复制
--single-transaction --lock-all-tables

同样明智的做法是获取集群中装载数据的第一个节点,然后添加到其他节点上,让它们使用SST加载自己。

如果您需要保持当前服务器的活力,那么我们需要讨论如何使它成为主服务器和新集群的一个节点为从节点。另外,XtraBackup可能会更适合。但现在,锁和单笔交易是必要的。因此,将strict_mode设置为DISABLED似乎是正确的,因为集群正在构建,而且还没有运行。

(请注意:我没有执行你的任务的经验;如果其他人提供了一个更有说服力的答案,那就跟他们去吧。)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43280164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档