mysql - 使用 Galera 集群在 MariaDB 中进行分区轮换

标签 mysql mariadb partitioning galera

如何在 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/

相关文章:

arrays - 是否有 "named"算法用于按存储桶大小分区数组

algorithm - 求解划分问题的递归回溯算法

azure - Service Fabric 可靠服务 : Communication and Partitioning essentials

mysql - 从源代码编译 mariadb/mysql 时删除未使用的命令行工具

spring - 部署在连接到 mariadb 的 tomcat 上的 spring 应用程序的连接池的最佳选择

javascript - 在 Node.js 中处理回滚的 MySQL 事务

mysql - Nodejs中有多少个工作线程?是否可以修改该数量以获得更好的性能?

mysql - CONVERT功能无法正常工作

mysql - 为什么使用 group by 的子查询会进行两次全扫描?

mysql从结果中排名