Mariadb
MariaDB 10.3.10 Galera Cluster 不同步 InnoDB 表定義
我有一個 3 節點多主 MariaDB Galera 集群,它沒有同步對 InnoDB 表定義的修改。
伺服器版本:10.3.10-MariaDB MariaDB 伺服器
wsrep_provider_version:25.3.24(r3825)
該表是
mysql.innodb_table_stats
,不同的是欄位的數據類型/長度table_name
。使用mysql_upgrade實用程序在 galera -01成員中執行的 DDL 操作:
ALTER TABLE innodb_index_stats MODIFY `table_name` varchar(199) COLLATE utf8_bin NOT NULL;
galera-01成員中的表定義:
CREATE TABLE `innodb_table_stats` ( `database_name` varchar(64) COLLATE utf8_bin NOT NULL, `table_name` varchar(199) COLLATE utf8_bin NOT NULL, `last_update` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `n_rows` bigint(20) unsigned NOT NULL, `clustered_index_size` bigint(20) unsigned NOT NULL, `sum_of_other_index_sizes` bigint(20) unsigned NOT NULL, PRIMARY KEY (`database_name`,`table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0
galera-02和galera-03成員中的表定義:
CREATE TABLE `innodb_table_stats` ( `database_name` varchar(64) COLLATE utf8_bin NOT NULL, `table_name` varchar(64) COLLATE utf8_bin NOT NULL, `last_update` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `n_rows` bigint(20) unsigned NOT NULL, `clustered_index_size` bigint(20) unsigned NOT NULL, `sum_of_other_index_sizes` bigint(20) unsigned NOT NULL, PRIMARY KEY (`database_name`,`table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0
集群似乎處於健康狀態,我不明白為什麼它不會同步特定的 DDL 操作。我在一些 innodb 測試表上嘗試了其他 DDL 操作,它就像一個魅力。
+--------------------------+--------------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------------+ | wsrep_cluster_state_uuid | 213a9d66-d207-11e8-b7bb-733e94f6ddc5 | | wsrep_cluster_conf_id | 294 | | wsrep_cluster_size | 3 | | wsrep_cluster_status | Primary | | wsrep_ready | ON | | wsrep_connected | ON | | wsrep_local_state_comment | Synced | | wsrep_local_recv_queue_avg | 0.038462 | | wsrep_flow_control_paused | 0.000000 | | wsrep_cert_deps_distance | 18.686275 | | wsrep_local_send_queue_avg | 0.200000 |
- Galera 不會複製 MyISAM 表。
- 一些系統表,(數據庫中的大部分錶
mysql
)是 MyISAM。- 升級時,
mysql_upgrade
必須執行。mysql_upgrade
經常更改系統表。因此,除非升級說明以某種方式為您完成任務,否則您必須
mysql_upgrade
在每個節點上執行。