天天看點

使用TiDB為Zabbix建構分布式MySQL資料庫支援

TiDB介紹

TiDB 是一個分布式 NewSQL 資料庫。支援水準擴充、高可用、ACID 事務、SQL 等特性。同時 TiDB 還支援 MySQL 文法和 MySQL 協定。

TiDB項目位址:

https://github.com/pingcap/tidb

由PingCAP公司開發并開源:

對于熟悉Codis的小夥伴們來說,就更好解釋了,就是當初豌豆莢開發Codis的團隊出來創業組建的。

TiDB項目架構:

使用TiDB為Zabbix建構分布式MySQL資料庫支援
TiDB部署

詳細的内容請看github上的中文手冊。來了解并部署TiDB。

https://github.com/pingcap/docs-cn

TiDB在Zabbix使用中授權注意事項

這裡不會去介紹Zabbix Server的安裝步驟,有幾個注意事項需要說明下。

1.注意:在Tidb授權的時候,不能直接使用grant授權并設定密碼。應該使用下面的方式。

MySQL [(none)]> create user 'zabbix'@'192.168.99.0/255.255.255.0' identified by 'zabbix';
Query OK, 1 row affected (0.00 sec)

MySQL [(none)]> grant all on zabbix.* to 'zabbix'@'192.168.99.0/255.255.255.0';
Query OK, 2 rows affected (0.01 sec)
           
注意:TiDB 支援對使用者授權,這裡隻是支援授權文法,并且記錄在系統表中。但是實際上隻對 DropTable 語句進行權限檢查,對其他的語句并不會做權限檢查。實作使用者授權主要是為了相容已有的 MySQL 業務。 請參考: https://github.com/pingcap/docs-cn/blob/master/faq.md

2.TiDB在建立Zabbix表結構的時候會比較慢

當我們初始化安裝建立Zabbix表結構的時候,會發現卡住遲遲不動,這主要是TiDB的設計方式,為了資料的一緻性和業務不受影響,DDL操作會比較慢。

zcat create.sql.gz | mysql -h 192.168.99.x -P 4000 -uzabbix -pzabbix zabbix

官方是這麼介紹的:TiDB 實作了 Google F1 的線上 Schema 變更算法(具體參見 F1 論文 和我們的一篇 Blog)。 一般情況下,DDL 并不是一個頻繁的操作,我們首先要保證的是資料的一緻性以及線上業務不受影響。一個完整的 DDL 過程會有 2 到 5 個階段(取決于語句類型),每個階段至少會執行 2lease 時間,假設 lease 設為 1分鐘,對于 Drop Table 語句(需要兩個階段),會執行 22*1 = 4 分鐘。除此之外,DDL 的時間還取決其他的條件,比如做 Add Index 操作時,表中已有的資料量是影響 DDL 時間的主要因素。我們也了解過 Google 内部在 F1 上是如何做 DDL,一般是送出給 DBA,DBA 再通過專用的工具執行,執行的時間會很長。

耐心的等待着哦!如果不放心,可以use zabbix;show tables;看看表是不是在不停的增長!喝杯咖啡吧,這可能是一個漫長的過程。

TiDB運維技術交流QQ群:

  • 群名稱:TiDB技術交流群
  • 群 号:463640808
使用TiDB為Zabbix建構分布式MySQL資料庫支援

近期我也在不停的測試TiDB,并持續給官方進行回報,有興趣的小夥伴環境,加入一起交流TiDB在生産環境中的使用經驗。