在 Percona XtraDB Cluster 推出 5.5.28 以前,最簡單的啟動方式就是打開 my.cnf
設定 wsrep_urls
在 [mysqld_safe]
section 內。假設我們有三台 Node 分別為底下 IP:
- node1 = 192.168.1.100
- node2 = 192.168.1.101
- node3 = 192.168.1.102
以前的設定方式為
wsrep_urls=gcomm://192.168.1.100:4567,gcomm://192.168.1.101:4567,gcomm://192.168.1.102:4567
當啟動 MySQL 時,Percona 會先去偵測 Cluster 內的 192.168.1.100 是否存在,如果不存在就在往下找,最後偵測 192.168.1.102 也不存在時,這時候 MySQL 就是啟動失敗,為了避免這情形,也就是全部的 Node Crash 狀況下,還是可以將 Cluster 啟動,可以改成底下設定
wsrep_urls=gcomm://192.168.1.100:4567,gcomm://192.168.1.101:4567,gcomm://192.168.1.102:4567,gcomm://
這在網路上很常看到此設定,如果全部的 Node 都不存在,表示此 Cluster 也就不存在,這時候我們就重新啟動 Cluster。但是 wsrep_urls
在 5.5.28 版本已經被列為 deprecated,所以請改用 wsrep_cluster_address
參數
wsrep_cluster_address=gcomm://192.168.1.100,192.168.1.101,192.168.1.102
大家看到此設定可以知道,不用在重複宣告 4567
port 以及 gcomm://
,但是這時候也會遇到如果全部的 Node 都關閉了,這樣 Cluster 也就消失了,有兩種方式可以啟動 Cluster。
- 使用任何一個 Node 將
wsrep_cluster_address
改成gcomm://
,但是這樣很麻煩,等其他 Node 啟動後,還是要在改回來 - 使用底下的 command 來啟動
$ /etc/init.d/myslqd start --wsrep-cluster-address="gcomm://"
此方式不用修改 my.cnf
設定,其他 Node 啟動成功後,再將此 Node 重新啟動即可。
Reference: How to start a Percona XtraDB Cluster
See also
- [SQL] 如何從單一資料表取得每個 key 前 n 筆資料
- 在 Docker 偵測 MySQL 或 Postgres 是否啟動
- Laravel 50 個小技巧 + Laravel 5.2 新功能
- 優化 Percona XtraDB Cluster for write hotspots
- 在 Debian 安裝 Percona Xtradb Cluster 5.5.34 注意事項
- 免費下載 Percona MySQL eBooks
- OSDC 2014 Talk: Introduction to Percona XtraDB Cluster and HAProxy
- Percona Cloud Tools for MySQL 介紹及安裝
- Percona XtraDB Cluster 5.6 找合適 IST Donor
- MySQL 5.6 UUID 複製資料到 Slave Server