如何重新复制被忽略的表

问题描述 投票:0回答:1

我目前正在考虑以下问题:

客户在两个mariaDB系统之间建立了简单的主/从复制。由于未知原因,他们将标志“Replicate_Wild_Ignore_Table”设置为跳过“logdb。%”。显然,他们决定跳过该数据库的跳过,并希望logdb再次包含在复制中。

我现在很好奇,是否有可能以某种方式删除该标志并将有问题的数据库复制为其余数据库,或者无法绕过“停止从属,转储主服务器,导入转储,根据当前logpos重新创建复制,启动奴隶“程序?

mysql mariadb replication database-replication
1个回答
0
投票

您不能假设主服务器仍然具有曾经包含对logdb。%表的更新的所有相关binlog。也就是说,即使您可以重新应用这些更新,您是否有足够的历史记录来说明对表的所有更改?

另一个风险是,如果您使用基于语句的复制,如果有任何语句同时引用了logdb。%中的表和另一个数据库中的表,则复制过滤器已跳过该语句。例如:

INSERT INTO mydb.mytable SELECT * FROM logdb.othertable;

因此,即使是不在logdb。%中的表也可能会受到损害。关键是你不确定。

最重要的是,您现在应该通过获取主服务器的当前备份来重新初始化副本,并避免将来使用复制过滤器。

如果您使用InnoDB表,您可以考虑使用Percona XtraBackup来简化流程。见https://www.percona.com/doc/percona-xtrabackup/2.3/howtos/setting_up_replication.html

© www.soinside.com 2019 - 2024. All rights reserved.