在 Percona Blog 上看到這篇 Optimizing Percona XtraDB Cluster for write hotspots 優化多重寫入 MySQL 的狀況,舉例來說,要計算 global counter 的時候,就會遇到很頻繁的寫入 (write hotspot),目前是不能同時寫入資料到同一個 record,會造成 performance 降低,所以大家開始導入 Percona XtraDB Cluster 來解決同時間寫入到同一個 record,大家都認為,搞了三台 Percona Server,可以將寫入的動作分散到其他兩台,就不會遇到 Lock 問題,但是實際上根本就不是這樣。
[Read More]在 Debian 安裝 Percona Xtradb Cluster 5.5.34 注意事項
最近幫公司安裝新的三台機器,全部上 Debian 7.5 Server 版本,統一安裝 Percona Xtradb Cluster 最新版本 5.5.37。設定完第一台 Node,並且透過底下指令 boot up 成第一台 PXC。
$ /etc/init.d/mysql bootstrap-pxc
後續第二台要啟動跟第一台進行 SST,寫到一半直接噴底下錯誤訊息
[Read More]WSREP_SST: [ERROR] Cleanup after exit with status:32 (20140702 10:57:28.004) WSREP_SST: [INFO] Removing the sst_in_progress file (20140702 10:57:28.006) 140702 10:57:28 [ERROR] WSREP: Process completed with error: wsrep_sst_xtrabackup –role ‘joiner’ –address ‘192.168.1.101’ –auth ‘xxxxx:xxxxxx’ –datadir ‘/var/lib/mysql/’ –defaults-file ‘/etc/mysql/my.cnf’ –parent ‘16042’: 32 (Broken pipe) 140702 10:57:28 [ERROR] WSREP: Failed to read uuid:seqno from joiner script. 140702 10:57:28 [ERROR] WSREP: SST failed: 32 (Broken pipe)
免費下載 Percona MySQL eBooks
玩 MySQL 的一定知道 Percona,這次 Percona MySQL 推出免費電子書,電子書內容是從 MySQLPerformanceBlog 裡面精心挑選文章收錄,文章內容也幾乎都是 MySQL 專家寫出來的,電子書內容包含了MySQL server, Percona Server, Percona XtraDB Cluster, MySQL performance, and MySQL troubleshooting,所有的電子書都是免費下載。
- How to find bugs in MySQL
- InnoDB Full Text Search in MySQL 5.6
- InnoDB Performance Optimization
- Percona XtraDB Cluster 5.6
- Percona XtraDB Cluster
更多主題可以直接參考 MySQL eBooks
OSDC 2014 Talk: Introduction to Percona XtraDB Cluster and HAProxy
2014.05.07 OSDC 影片檔出爐
很高興可以參加今年 2014 OSDC,投了一篇 Introduction to Percona XtraDB Cluster and HAProxy,主要介紹 Percona XtraDB Cluster 這套 open source 軟體搭配前端 HAProxy,底下是 Slides
[Read More]Percona Cloud Tools for MySQL 介紹及安裝
Percona 去年推出一套 Cloud Tools for MySQL,藉由這套雲端服務可以幫忙分析 MySQL 系統內全部 Slow Query,並且計算出時間,畫出統計圖,此套系統目前還在 Beta 版,並且有些限制,只能開 3 個 organizations,每個 organizations 只能有 5 agents,最後資料只會保留 8 天,超過就會清除。這套系統後端是由 GO Language 完成,前端則是由 AngularJS 串起來,上個月 Percona 還在 MySQL Performance Blog 徵求 GO 的開發者,可見 Percona 也看好此服務,大膽使用 Google 推的 GO Language。
[Read More]Percona XtraDB Cluster 5.6 找合適 IST Donor
Gcache 是用來紀錄 MySQL 最近所使用的 SQL Command,其本身是佔用記憶體空間,大小可以由 wsrep_provider_options
定義,如果有任何 MySQL Node 重新啟動,那麼可以經由 Live Node 內的 Gcache 將尚未同步的資料補上,同步資料的方式分為兩種一種為 IST(Incremental State Transfer) 另一種為 SST(State Snapshot Transfer),但是同步資料時,管理者無法決定同步方式。先來看看 Gcache 一些特性
- node 重新啟動,Gcache 資料會全部消失
- Gcache 大小為固定,如果超過大小,則回刪除最早資料
- 選擇 Donor node 會直接忽略 Gcache 狀態
- Node 重新啟動,需要同步的資料並非在指定 Node Gcahe 內,則會啟動 SST 同步
- 到目前版本為止,沒有任何方式可以知道 Gcache 狀態
根據以上特性可以知道,當 Node 重新啟動,很容易就執行 SST 模式,舉例子來說,當有 Node crashed 超過一個晚上,你要如何知道其他 Node 內的 Gcache 資料大於需要同步的資料量?或者是當 Cluster 內只有兩台機器,那重新啟動任何一台 Node 都會是跑 SST 同步。
[Read More]啟動 Percona XtraDB Cluster 注意事項
在 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
Percona XtraDB Cluster 搭配 HAProxy
本篇文章紀錄安裝 Percona XtraDB Cluster (簡稱 PXC) 及搭配 HAProxy 做分散流量系統,其實在業界已經很常看到 HAProxy + MySQL Cluster Database 解決方案,HAProxy 幫您解決負載平衡,並且偵測系統是否存活,管理者也就不用擔心 MySQL 服務是否會掛掉。本篇會著重於 HAProxy 設定部份,並且紀錄每一步安裝步驟。之前本作者寫過一篇 Galera Cluster for MySQL Multi-master Replication,也可以參考。今天測試系統都會以 CentOS 為主,各位讀者可以直接開 Amazone EC2 來測試,測試完成再關閉即可。
[Read More]Percona XtraDB Server 出現 read only issue
最近在整理 Percona XtraDB Server 將 Read Write 全部拆開,寫入部份只開一台 Node,讀取機器 Replica 則是越多越好,當然如果預計 write 都不會有任何 conflict 的話,那就不用拆開,read write 都可以在同一台即可,拆開的目的要解決 Innodb transaction locking
問題。今天遇到的是將機器讀寫都放在同一台,然後同時多台 Master 架構,結果跑在 CodeIgniter 上面出現底下錯誤訊息
[Read More]The MySQL server is running with the –read-only option so it cannot execute this statement
Sysbench 測試 Percona XtraDB Server 效能
今天拿 MySQL benchmark tool - Sysbench 來測試看看 Percona XtraDB Server + Haproxy 效能如何,實驗主機是執行在 CentOS 6.4 版本,記憶體 128 G,在 CentOS 本身用 Yum 安裝 Sysbench 時,內建的版本為 0.4.12,單機測試 MySQL 效能不會出現任何錯誤,但是只要是透過 Haproxy,並且有兩台以上的 Server,就會噴出底下錯誤訊息:
[Read More]ALERT: failed to execute mysql_stmt_execute(): Err1317 Query execution was interrupted