如何在 Galera Cluster 上实时管理分区轮转?
在表上删除或添加分区时,我有时会遇到元数据锁定。 我的集群中有 3 个节点,所有应用程序连接都通过负载平衡转到第一个节点。如果第一个节点出现故障,连接会切换到第二个节点。
对于分区,我使用下一个 SP:
CREATE DEFINER=`root`@`localhost` PROCEDURE `manage_partitions`()
BEGIN
if @@GLOBAL.wsrep_on = 1
then SET wsrep_on=0; end if;
SET sql_log_bin = 0;
----- > Manage partitions here
SET sql_log_bin = 1;
if @@GLOBAL.wsrep_on = 1
then SET wsrep_on=1; end if;
END
我在不同时间在每个节点上执行这段代码。 有时捕获元数据锁并仅杀死创建/删除分区的进程才能解冻服务器。
那么,DBA,您如何使用 Galera clusetr 实时管理 MariaDB 中的分区轮换? 我使用 MariaDB 版本 - 10.1.13。
迈克。
最佳答案
如果您仅更改sql_log_bin
,是否会出现此问题。也就是说,您不会通过 wsrep_on
关闭所有复制。我觉得这应该是答案。
同时,请展示分区管理代码;那里可能有事情可做。
您本质上是在做 RSU 吗?做 TOI 有用吗?
如果我们可以加快管理速度,使 TOI 代替 RSU 可行,结果会怎样?
如果您正在执行“滑动时间尺度”,则很有可能使ALTER ... PARTITION
命令几乎瞬时执行。
关于mysql - 使用 Galera 集群在 MariaDB 中进行分区轮换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40952411/