【问题标题】:Partition rotating in MariaDB with Galera cluster使用 Galera 集群在 MariaDB 中旋转分区
【发布时间】:2017-04-18 13:21:44
【问题描述】:

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

迈克。

【问题讨论】:

    标签: mysql mariadb partitioning galera


    【解决方案1】:

    如果您更改sql_log_bin,是否会出现问题。也就是说,您不会通过wsrep_on 关闭所有复制。我觉得这应该是答案。

    同时,请出示分区管理代码;那里可能有事情要做。

    您实际上是在做 RSU 吗?做TOI有用吗?

    如果我们可以加快管理,使 TOI 代替 RSU 可行呢?

    如果您正在执行“滑动时间刻度”,则很有可能使ALTER ... PARTITION 命令几乎是即时的。

    【讨论】:

    • 如果我没有切换 wsrep_on 整个集群可以被锁定。分区管理代码安静简单:只需读取配置表并创建 alter 表添加或删除分区。更改 OSU 方法无济于事。捕获相同的元数据锁。当我手动运行更改表添加分区时,它的工作速度非常快。 Percona 支持回答我的问题,即我应该在数据库上运行分区管理程序之前对架构进行小规模维护。
    • 如果它“快”,则删除所有标志设置并依靠 TOI 来“做正确的事”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 2017-02-06
    • 2013-06-26
    • 2014-07-30
    • 2014-05-21
    • 2019-01-07
    相关资源
    最近更新 更多