2016-12-03 71 views
0

如何在Galera集群上管理分区实时轮换?使用Galera集群在MariaDB中旋转分区

我不时捕获元数据锁,同时在表上删除或添加分区。 我在集群中有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 

我在不同的时间在每个节点上执行该代码段。 有的时候捕获元数据锁,只有杀掉进程的哪个创建/删除分区才能解冻服务器。

所以,数据库管理员,你怎么在MariaDB的管理分区旋转,带实时加莱拉clusetr? 我使用MariaDB版本 - 10.1.13。

Mike。

回答

0

如果您只有只有更改sql_log_bin是否会发生问题。那就是你不要关掉所有的复制wsrep_on。我觉得这应该是答案。

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

你实质上是在做一个RSU吗?它会工作做TOI吗?

如果让TOI是可行的,而不是RSU我们可以加快管理?

如果你正在做一个“滑动时间标度”,很可能使得ALTER ... PARTITION命令几乎是瞬间完成的。

+0

如果我不切换wsrep_on,整个群集都可以被锁定。分区管理代码安静简单:只需读取配置表并创建阿列特表添加或删除分区。更改OSU方法不起作用。捕获相同的元数据锁。改变表格添加分区工作非常快,当我手动运行它。 Percona支持在我对数据库运行分区管理程序之前对模式进行小维护的问题上的回答。 – mgavrilov

+0

如果它“很快”,那么删除所有标志设置并依靠TOI来“做正确的事情”。 –

相关问题