最近專案需求需要實現單筆資料的版本控制,所以會有一張表 (foo) 專門儲存 key 資料,而有另外一張表 (bar) 專門存 Data 資料,那在 bar 這張表怎麼拿到全部 key 的最新版本資料?底下先看看 schema 範例
[Read More]在 Docker 偵測 MySQL 或 Postgres 是否啟動
監控 Service 是否存活也是 DevOps 重要的一環,此篇來紀錄在 Docker 內偵測 MySQL 或 Postgres 是否已經啟動。在 Docker 自動測試內,其中一步就是建立 Database 環境,底下為測試步驟:
[Read More]Laravel 50 個小技巧 + Laravel 5.2 新功能
在學習 Laravel 階段,一定會天天看 Laravel Documentation,但是有很多小技巧是在文件內沒寫出來的,網路上找到這篇 50 Laravel Tricks in 50 Minutes,寫了 50 個 Laravel 小技巧,包含了 IoC Container, Blade, Eloquent, Middleware, Routing, Commands, Queues, Events, Caching 等模組。
[Read More]優化 Percona XtraDB Cluster for write hotspots
在 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]MySQL 5.6 UUID 複製資料到 Slave Server
在 MySQL Performance Blog 看到這篇 Beware of MySQL 5.6 server UUID when cloning slaves,裡面提到如果是要複製資料到 Slave 機器,大部分的使用者肯定是將 /var/lib/mysql
目錄整個 copy 到 Slave 機器上。如果是 MySQL 5.6 Server 目錄內會有 auto.cnf
設定檔,這是 MySQL 5.6 新的功能叫做 server_uuid,在啟動 MySQL 後,就會自動建立 auto.cnf
檔案,此檔案就像是 my.cnf
或 my.ini
設定檔一樣,只是內容只有支援 [auto]
並且只有支援 server_uuid
這 key 值,例如