由于我的 mysql 数据库仅与小型 Web 应用程序一起使用,因此我不需要任何复制功能。在监视时,我注意到一个名为
thread/sql/compress_gtid_table
的东西。当用 mysqldump
转储一些桌子时,我收到了这个警告:
Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.
我如何确定所有 GTID 功能都已完全禁用并且不会造成开销?
这是我的配置:
mysql> SHOW VARIABLES LIKE '%GTID%';
+----------------------------------+----------------+
| Variable_name | Value |
+----------------------------------+----------------+
| binlog_gtid_simple_recovery | ON |
| enforce_gtid_consistency | OFF |
| gtid_executed_compression_period | 1000 |
| gtid_mode | OFF |
| gtid_next | AUTOMATIC |
| gtid_owned | |
| gtid_purged | |
| session_track_gtids | OFF |
+----------------------------------+----------------+
我在搜索该警告时刚刚被链接到这里。我正在设置 GTID,但此页面可能对您有帮助:https://dev.mysql.com/doc/refman/5.7/en/replication-gtids-howto.html
请注意,有一个警告,一旦打开 GTID,您将无法轻易后退。我确信有办法,但可能不值得这么麻烦。
禁用 GTID 复制后,您不需要更多旧的二进制日志(带有 GTID 信息)并且从属设备已捕获所有二进制日志信息,您可以停止从属设备并执行
reset master;
它将清除服务器中的所有二进制日志,并且不会更多gtid信息将被保留。请参阅这篇post如何正确重新同步复制。