MySQL8集群之MGR的重要參數(shù)使用及說(shuō)明
記錄一下MySQL8.0.x 官方推薦集群方案MGR,相關(guān)的重要參數(shù)設(shè)置
環(huán)境說(shuō)明
- 版本 MySQL 8.0.27
- 一主兩從3臺(tái)服務(wù)器做的MGR集群
- 主要設(shè)置 my.cnf中的參數(shù)
- Linux 系統(tǒng)環(huán)境
重要參數(shù)
MySQL8的全部參數(shù)的官方說(shuō)明文檔地址:
https://dev.mysql.com/doc/refman/8.0/en/server-system-variable-reference.html
在安裝MySQL,配置MGR集群之前,
請(qǐng)務(wù)必重點(diǎn)注意:所有服務(wù)器的 hostname 確保不一樣 ,如果修改主機(jī)名稱使用類(lèi)似如下命令:
sudo hostnamectl set-hostname NEWHOSTNAMEHERE
另外記得修改 /etc/hosts 文件中的內(nèi)容,將本次所有的主機(jī)名稱配置對(duì)應(yīng)IP地址,特別注意第1、2兩行127.0.0.1的對(duì)應(yīng)關(guān)系
127.0.0.1 localhost 127.0.1.1 mgr-node1 192.168.30.222 mgr-master mgr-master 192.168.30.247 mgr-node1 mgr-node1 192.168.30.248 mgr-node2 mgr-node2
下面列舉MGR集群主要關(guān)注的幾個(gè)參數(shù),
| 參數(shù)名稱 | 默認(rèn)數(shù)值 | 建議說(shuō)明 |
|---|---|---|
| server-id | 1 | 唯一服務(wù)ID,務(wù)必確保每一臺(tái)服務(wù)器不一樣 |
| port | 3306 | 客戶端 和 服務(wù)端口 這兩個(gè)可以不一樣,建議所有服務(wù)器上端口一樣 |
| admin_port | 33062 | 管理接口,獨(dú)立管理通道 防止客戶端無(wú)法登錄 ,通常還需要配置 admin_address 來(lái)指定監(jiān)聽(tīng)的 IP 地址 |
| mysqlx-port | 33060 | 用于 X 協(xié)議(MySQL X Protocol)所使用的 TCP 端口。X 協(xié)議是 MySQL 8.0 (以及 5.7.12+) 引入的一種新的、現(xiàn)代化的客戶端-服務(wù)器通信協(xié)議,旨在提供更豐富的功能和更好的性能,特別是在與 MySQL Shell、NoSQL 式訪問(wèn) 和 文檔存儲(chǔ) 功能結(jié)合使用時(shí) |
| disabled_storage_engines | 空 | 需要禁止使用的存儲(chǔ)引擎,MGR環(huán)境下禁止使用這種存儲(chǔ),一般可設(shè)置 MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY |
| transaction_isolation | REPEATABLE-READ | 事務(wù)提交模式,建議使用 READ-COMMITTED |
| gtid_mode | OFF | MGR 強(qiáng)制依賴 GTID 進(jìn)行事務(wù)跟蹤 必須設(shè)置 ON |
| log_bin & log_slave_updates | OFF | MGR 的基礎(chǔ) 必須設(shè)置為 ON |
| binlog_format | ROW | MGR 依賴行格式 必須設(shè)置為 ROW |
| transaction_write_set_extraction | XXHASH64 | MGR 用它來(lái)識(shí)別事務(wù)中修改的行(寫(xiě)入集),用于沖突檢測(cè)和應(yīng)用,通常設(shè)置為 XXHASH64。必須在所有成員上保持一致 |
| innodb_flush_log_at_trx_commit | 1 | 控制事務(wù)提交時(shí) redo log 如何寫(xiě)入磁盤(pán),強(qiáng)烈建議設(shè)置為 1,這保證了事務(wù)的 ACID 特性(完全持久化) |
| sync_binlog | 1 | 控制 binlog 刷新到磁盤(pán)的頻率,設(shè)置為 1 可確保每個(gè)事務(wù)提交后 binlog 都被同步到磁盤(pán) |
| group_replication_transaction_size_limit | 150MB | 限制MGR中可以接受的事務(wù)大小上限,超過(guò)此大小的事務(wù)將被拒絕 |
| max_allowed_packet | 64MB | 定義服務(wù)器能夠接收的最大網(wǎng)絡(luò)包大小,建議小于上面參數(shù)值 |
| replica_pending_jobs_size_max | 128MB | 復(fù)制線程可以排隊(duì)的最大事務(wù)大小 |
| innodb_log_file_size | 512MB | InnoDB重做日志文件大小,通常設(shè)置為512MB-1GB之間 |
| group_replication_group_name | 空 | 【必填】復(fù)制組的唯一標(biāo)識(shí)符。在同一個(gè)MySQL集群中的所有節(jié)點(diǎn)都必須使用相同的組名 |
| group_replication_start_on_boot | 空 | 【必填】表示MySQL服務(wù)器啟動(dòng)時(shí),Group Replication會(huì)自動(dòng)啟動(dòng)并嘗試加入復(fù)制組 |
| group_replication_bootstrap_group | 空 | 【必填】 這個(gè)參數(shù)通常在初始化復(fù)制組的第一個(gè)節(jié)點(diǎn)時(shí)設(shè)置為ON,表示該節(jié)點(diǎn)將啟動(dòng)一個(gè)新的復(fù)制組。一旦組已經(jīng)啟動(dòng),其他節(jié)點(diǎn)加入時(shí)都應(yīng)將其設(shè)置為OFF |
| group_replication_local_address | 空 | 【必填】當(dāng)前MySQL實(shí)例用于Group Replication通信的本地地址和端口 |
| group_replication_group_seeds | 空 | 【必填】 復(fù)制組中至少一個(gè)或多個(gè)已知成員的地址列表。當(dāng)一個(gè)新節(jié)點(diǎn)啟動(dòng)或嘗試重新加入組時(shí),它會(huì)使用這些地址來(lái)發(fā)現(xiàn)并連接到復(fù)制組的其他成員。這是一個(gè)引導(dǎo)列表,不要求列出所有成員 |
| group_replication_ip_allowlist | 空 | 【必填】 定義了允許連接到Group Replication組的IP地址或IP地址范圍。這有助于增強(qiáng)安全性,只允許來(lái)自指定網(wǎng)絡(luò)的成員加入組,例如:“127.0.0.1,192.168.30.0/24” |
| report_host | 空 | 重要: 用于告知MySQL服務(wù)器在將信息報(bào)告給監(jiān)控工具,對(duì)應(yīng)performance_schema.replication_group_members 表中MEMBER_HOST的值,如果不配置,則默認(rèn)取當(dāng)前主機(jī)的hostname作為該字段值 |
除了以上列出的參數(shù)值,一般時(shí)間,時(shí)區(qū)等各節(jié)點(diǎn)都需要保證一致性。
另外最重要的是:
你的應(yīng)用程序中的事務(wù)要盡可能的小
例如 DELETE UPDATE 范圍數(shù)據(jù)的時(shí)候,需要優(yōu)化完善之前的程序保證每一次范圍盡可能的??!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql中GROUP_CONCAT函數(shù)使用技巧及問(wèn)題詳解
這篇文章主要給大家介紹了關(guān)于mysql中GROUP_CONCAT函數(shù)使用技巧及問(wèn)題的相關(guān)資料,GROUP_CONCAT是MySQL中的一個(gè)聚合函數(shù),它用于將多行數(shù)據(jù)按照指定的順序連接成一個(gè)字符串并返回結(jié)果,需要的朋友可以參考下2023-11-11
MySQL中OR條件查詢引發(fā)索引失效的場(chǎng)景及解決方案
這篇文章主要為大家詳細(xì)介紹了MySQL中OR條件查詢引發(fā)索引失效的場(chǎng)景及解決方案,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-10-10
詳細(xì)深入聊一聊Mysql中的int(1)和int(11)
mysql數(shù)據(jù)庫(kù)作為當(dāng)前常用的關(guān)系型數(shù)據(jù)庫(kù),肯定會(huì)遇到設(shè)計(jì)表的需求,下面對(duì)設(shè)計(jì)表時(shí)int類(lèi)型的設(shè)置進(jìn)行分析,下面這篇文章主要給大家介紹了關(guān)于Mysql中int(1)和int(11)的相關(guān)資料,需要的朋友可以參考下2022-08-08
mysql復(fù)制data文件遷移的實(shí)現(xiàn)步驟
有時(shí)候,我們需要遷移整個(gè)數(shù)據(jù)庫(kù),包括數(shù)據(jù)文件,本文將介紹如何通過(guò)復(fù)制MySQL的data文件來(lái)完成數(shù)據(jù)庫(kù)遷移,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11
linux修改mysql數(shù)據(jù)庫(kù)文件的路徑
在網(wǎng)上找了好多,沒(méi)有確定哪個(gè)是最終的答案,由于網(wǎng)站在運(yùn)行中,實(shí)在不敢輕易動(dòng)手,怎么奈我是個(gè)菜鳥(niǎo)呢!先把找到的東西簡(jiǎn)單記錄一下,回頭再說(shuō)2012-01-01

