mysql-atlas安裝及使用教程

Atlas是由 Qihoo 360公司Web平臺部基礎架構團隊開發維護的一個基於MySQL協議的數據中間層項目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎上,修改了大量bug,添加了不少功能特性。目前該項目在360公司內部獲得了普遍應用,不少MySQL業務已經接入了Atlas平臺,天天承載的讀寫請求數達幾十億條。同時,有超過50家公司在生產環境中部署了Atlas,超過800人已加入了咱們的開發者交流羣,而且這些數字還在不斷增長。mysql

github地址
介紹git

1、安裝

安裝github

在安裝以前, 服務器上必需要裝有mysql, altas會用到mysql的組件。sql

在啓動時, 可能提示faild start altas of test之類的信息, 解決方法以下數據庫

echo '/usr/local/mysql/lib/' >> /etc/ld.so.conf
ldconfig

2、配置說明

[mysql-proxy]

(必備,默認值便可)管理接口的用戶名
admin-username = user

(必備,默認值便可)管理接口的密碼
admin-password = pwd

(必備,根據實際狀況配置)主庫的IP和端口
proxy-backend-addresses = 192.168.0.12:3306

(非必備,根據實際狀況配置)從庫的IP和端口,@後面的數字表明權重,用來做負載均衡,若省略則默認爲1,可設置多項,用逗號分隔。若是想讓主庫也能分擔讀請求的話,只須要將主庫信息加入到下面的配置項中。
proxy-read-only-backend-addresses = 192.168.0.13:3306,192.168.0.14:3306

(必備,根據實際狀況配置)用戶名與其對應的加密過的MySQL密碼,密碼使用PREFIX/bin目錄下的加密程序encrypt加密,用戶名與密碼之間用冒號分隔。主從數據庫上須要先建立該用戶並設置密碼(用戶名和密碼在主從數據庫上要一致)。好比用戶名爲myuser,密碼爲mypwd,執行./encrypt mypwd結果爲HJBoxfRsjeI=。若是有多個用戶用逗號分隔便可。則設置以下行所示:
pwds = myuser: HJBoxfRsjeI=,myuser2:HJBoxfRsjeI=

(必備,默認值便可)Atlas的運行方式,設爲true時爲守護進程方式,設爲false時爲前臺方式,通常開發調試時設爲false,線上運行時設爲true
daemon = true

(必備,默認值便可)設置Atlas的運行方式,設爲true時Atlas會啓動兩個進程,一個爲monitor,一個爲worker,monitor在worker意外退出後會自動將其重啓,設爲false時只有worker,沒有monitor,通常開發調試時設爲false,線上運行時設爲true
keepalive = true

(必備,根據實際狀況配置)工做線程數,推薦設置成系統的CPU核數的2至4倍
event-threads = 4

(必備,默認值便可)日誌級別,分爲message、warning、critical、error、debug五個級別
log-level = message

(必備,默認值便可)日誌存放的路徑
log-path = /usr/local/mysql-proxy/log

(必備,根據實際狀況配置)SQL日誌的開關,可設置爲OFF、ON、REALTIME,OFF表明不記錄SQL日誌,ON表明記錄SQL日誌,該模式下日誌刷新是基於緩衝區的,當日志填滿緩衝區後,纔將日誌信息刷到磁盤。REALTIME用於調試,表明記錄SQL日誌且實時寫入磁盤,默認爲OFF
sql-log = OFF

(可選項,可不設置)慢日誌輸出設置。當設置了該參數時,則日誌只輸出執行時間超過sql-log-slow(單位:ms)的日誌記錄。不設置該參數則輸出所有日誌。
sql-log-slow = 10

(可選項,可不設置)關閉不活躍的客戶端鏈接設置。當設置了該參數時,Atlas會主動關閉通過'wait-timeout'時間後一直未活躍的鏈接。單位:秒
wait-timeout = 10

(必備,默認值便可)Atlas監聽的工做接口IP和端口, 鏈接altas的地址
proxy-address = 0.0.0.0:1234

(必備,默認值便可)Atlas監聽的管理接口IP和端口 admin-address = 0.0.0.0:2345, 鏈接altas管理服務的地址

(可選項,可不設置)分表設置,此例中person爲庫名,mt爲表名,id爲分表字段,3爲子表數量,可設置多項,以逗號分隔,若不分表則不須要設置該項,子表須要事先建好,子表名稱爲表名_數字,數字範圍爲[0,子表數-1],如本例裏,子表名稱爲mt_0、mt_一、mt_2
tables = person.mt.id.3

(可選項,可不設置)默認字符集,若不設置該項,則默認字符集爲latin1
charset = utf8

(可選項,可不設置)容許鏈接Atlas的客戶端的IP,能夠是精確IP,也能夠是IP段,以逗號分隔,若不設置該項則容許全部IP鏈接,不然只容許列表中的IP鏈接
client-ips = 127.0.0.1, 192.168.1

(可選項,極少須要)Atlas前面掛接的LVS的物理網卡的IP(注意不是虛IP),如有LVS且設置了client-ips則此項必須設置,不然能夠不設置
lvs-ips = 192.168.1.1

3、Altas管理

執行mysql -h127.0.0.1 -uuser -ppwd -P2345進行鏈接, 進入altas管理後端

1. 查詢幫助

select * from help;

+----------------------------+---------------------------------------------------------+
| command                    | description                                             |
+----------------------------+---------------------------------------------------------+
| SELECT * FROM help         | 顯示幫助                                        |
| SELECT * FROM backends     | 查看後端服務器狀態                 |
| SET OFFLINE $backend_id    | 下線後端服務器, $backend_id is backend_ndx's id |
| SET ONLINE $backend_id     | 上線後端服務器, ...                              |
| ADD MASTER $backend        | 添加主服務器, example: "add master 127.0.0.1:3306", ...               |
| ADD SLAVE $backend         | 添加從服務器, example: "add slave 127.0.0.1:3306", ...                |
| REMOVE BACKEND $backend_id | 移除後端服務器example: "remove backend 1", ...                        |
| ADD CLIENT $client         | 添加客戶端 example: "add client 192.168.1.2", ...                  |
| REMOVE CLIENT $client      | 移除客戶端example: "remove client 192.168.1.2", ...               |
| SAVE CONFIG                | 保存配置到文件                         |
+----------------------------+---------------------------------------------------------+

2. 查看後端mysql狀態信息

mysql> select * from backends
    -> ;
+-------------+-------------------+-------+------+
| backend_ndx | address           | state | type |
+-------------+-------------------+-------+------+
|           1 | 10.211.55.9:3306  | up    | rw   |
|           2 | 10.211.55.10:3306 | up    | ro   |
+-------------+-------------------+-------+------+
2 rows in set (0.00 sec)

3. 下線mysql服務器

mysql> set offline 2
    -> ;
+-------------+-------------------+---------+------+
| backend_ndx | address           | state   | type |
+-------------+-------------------+---------+------+
|           2 | 10.211.55.10:3306 | offline | ro   |
+-------------+-------------------+---------+------+
1 row in set (0.00 sec)

4. 上線mysql服務器

mysql> set online 2;
+-------------+-------------------+---------+------+
| backend_ndx | address           | state   | type |
+-------------+-------------------+---------+------+
|           2 | 10.211.55.10:3306 | unknown | ro   |
+-------------+-------------------+---------+------+
1 row in set (0.00 sec)

mysql-atlas安裝及使用教程

相關文章
相關標籤/搜索