我正在使用MariaDB 10.4,并有关于无序并行复制的问题.
我正在优化数据库(约400 am的数据)上的硕士每周。由于主服务器上的优化DB不会产生任何负面影响,所以在从服务器上复制优化命令会造成巨大的复制滞后(最多半个小时)。我可以使用无序并行复制(https://mariadb.com/kb/en/parallel-replication/#out-of-order-parallel-replication)并为主服务器上的优化命令设置不同的gtid_domain_id来修复这个问题吗?
请注意,主程序上的表一直在更新。我不确定这是否安全?
也许不要在主人身上复制优化命令,在所有奴隶身上独立运行,这样会更安全吗?这会影响复制/滞后吗?
发布于 2020-06-17 03:15:37
如果您正在使用InnoDB (您应该使用),那么OPTIMIZE TABLE几乎是完全无用的。别乱跑了。
如果您是一个表中的DELETEing大块,并且这导致您想要使用OPTIMIZE,那么我们来讨论备选方案。
可以避免复制任何命令(S):
SET SESSION binlog = OFF; -- I forget the details
OPTIMIZE TABLE ...;
SET ... -- restore replication但似乎你想在奴隶上做OPTIMIZE,在那里做SELECTs?
如果你有一种优雅的方式让奴隶脱离轮转,你可以在奴隶之间“滚动”OPTIMIZE,一次一个。
如果目标是刷新“统计信息”,那么ANALYZE TABLE的速度要快得多,因此侵扰性较小。
如果正在清除“旧”数据,那么分区要比DELETE快得多,并且不需要OPTIMIZE;我们应该讨论这个问题吗?
https://dba.stackexchange.com/questions/269265
复制相似问题