MySQL Fabric安裝 MySQL Fabric是Oracle提供的用於輔助進行ha\sharding的工具,它的基本架構: 從上面看出,藉助於Fabric, 可以搭建 HA 集群、Sharing 、HA+Sharding。 應用從fabric中得知各個資料庫、表、分區等的映射關係,然後訪問相 ...
MySQL Fabric安裝
MySQL Fabric是Oracle提供的用於輔助進行ha\sharding的工具,它的基本架構:
從上面看出,藉助於Fabric, 可以搭建 HA 集群、Sharing 、HA+Sharding。
應用從fabric中得知各個資料庫、表、分區等的映射關係,然後訪問相應的mysql 實例。
Fabric由三個組件組成:
1)fabric 的管理工具(也就是 mysqlfabric)。
2)fabric nodes,可以啟動1到多個node。每個node也是一個進程。用於處理fabric的管理請求、應用的mapping請求。
3)backstore,它也是一個mysql server,維護了HA Group、Sharding Group。
下載
在mysql 5.6之後的版本,可以使用fabric的對應版本是1.5,在mysql官網上可以直接下載。由於fabric是由python語言編寫的,並且內部通信用會用到 mysql-connector- python,所以也要下載對應的python驅動。
我下載的版本是:
mysql-utiltities-1.5.6-1.el6.noarch.rpm mysql-connector-ptyhon-2.0.4-1.el6.noarch.rpm
安裝
1、安裝介質
使用操作系統root用戶來安裝。
先安裝mysql-connector-ptyhon,再安裝mysql-utilities:
rpm –i mysql-connector-ptyhon-2.0.4-1.el6.noarch.rpm rpm –i mysql-utiltities-1.5.6-1.el6.noarch.rpm
安裝完畢後,會有一個mysqlfabric命令可以使用。所以可以通過該命令來判定是否安裝成功。
2、配置文件
在安裝好fabric之後,就會有一個預設的配置文件:fabric.cfg。
預設的配置文件的位置:
Platform |
Package |
Location |
Microsoft Windows |
mysql-utilities-1.5.6-win32.msi |
UTILITIES_INSTALLDIR/etc/mysql/fabric.cfg |
Ubuntu Linux 14.04 |
mysql-utilities_1.5.6-1ubuntu14.04_all.deb |
/etc/mysql/fabric.cfg |
Debian Linux 6.0 |
mysql-utilities_1.5.6-1debian6.0_all.deb |
/etc/mysql/fabric.cfg |
Red Hat Enterprise Linux 6 / Oracle Linux 6 |
mysql-utilities-1.5.6-1.el6.noarch.rpm |
/etc/mysql/fabric.cfg |
OS X |
mysql-utilities-1.5.6-osx10.9.dmg |
/etc/mysql/fabric.cfg |
預設的配置文件預覽:
[DEFAULT] prefix = /usr/local sysconfdir = /usr/local/etc logdir = /var/log [storage] address = localhost:3306 user = fabric_store password = secret database = mysql_fabric auth_plugin = mysql_native_password connection_timeout = 6 connection_attempts = 6 connection_delay = 1 [servers] user = fabric_server password = secret backup_user = fabric_backup backup_password = secret restore_user = fabric_restore restore_password = secret unreachable_timeout = 5 [protocol.xmlrpc] address = localhost:32274 threads = 5 user = admin password = secret disable_authentication = no realm = MySQL Fabric ssl_ca = ssl_cert = ssl_key = [protocol.mysql] address = localhost:32275 user = admin password = secret disable_authentication = no ssl_ca = ssl_cert = ssl_key = [executor] executors = 5 [logging] level = INFO url = file:///var/log/fabric.log [sharding] mysqldump_program = /usr/bin/mysqldump mysqlclient_program = /usr/bin/mysql [statistics] prune_time = 3600 [failure_tracking] notifications = 300 notification_clients = 50 notification_interval = 60 failover_interval = 0 detections = 3 detection_interval = 6 detection_timeout = 1 prune_time = 3600 [connector] ttl = 1
在這個配置文件中,會涉及到很多種帳戶:
·backstore
在[storage]區域,用來配置backstore mysql server的信息。所以這裡配置的就是backstore mysql server的操作帳戶。
該用戶必需的許可權:
ALTER - alter some database objects CREATE - create most database objects CREATE VIEW - create views DELETE - delete rows DROP - drop most database objects EVENT - manage events REFERENCES - foreign keys INDEX - create indexes INSERT - insert rows SELECT - select rows UPDATE - update rows
·server
在[servers]區域配置的,是所有的受管mysql server的帳戶。
該用戶必需的許可權:
其中全局滿圍的許可權:
DELETE - prune_shard PROCESS - list sessions to kill RELOAD - RESET SLAVE REPLICATION CLIENT - SHOW SLAVE STATUS REPLICATION SLAVE - SHOW SLAVE HOSTS
其中Fabric 資料庫的許可權:
ALTER - alter some database objects CREATE - create most database objects DELETE - delete rows DROP - drop most database objects INSERT - insert rows SELECT - select rows UPDATE - update rows
·backup
在[servers]區域配置的,它是所有的受管mysql server上用於backup的帳戶。例如執行mysqldump。
該用戶的許可權:
EVENT - show event information EXECUTE - show routine information inside views REFERENCES - foreign keys SELECT - read data SHOW VIEW - SHOW CREATE VIEW TRIGGER - show trigger information
·restore
在[servers]區域配置的,它是所有的受管mysql server上用於restore的帳戶。Restore 用戶可以使用mysql client執行restore操作。
該用戶的許可權:
ALTER - ALTER DATABASE ALTER ROUTINE - ALTER {PROCEDURE|FUNCTION} CREATE - CREATE TABLE CREATE ROUTINE - CREATE {PROCEDURE|FUNCTION} CREATE TABLESPACE - CREATE TABLESPACE CREATE VIEW - CREATE VIEW DROP - DROP TABLE (used before CREATE TABLE) EVENT - DROP/CREATE EVENT INSERT - write data LOCK TABLES - LOCK TABLES (--single-transaction) REFERENCES - Create tables with foreign keys SELECT - LOCK TABLES (--single-transaction) SUPER - SET @@SESSION.SQL_LOG_BIN = 0 TRIGGER - CREATE TRIGGER
·admin
在[protocol.mysql]、[protocol.xmlrpc]中配置的admin用戶,是Fabric 的客戶端(包括mysqlfabric、使用jdbc驅動的應用等) 與fabric node交互使用的用戶、密碼。
在使用mysqlfabric時,可以使用預設的配置文件,也可以使用自定義的配置文件。不管使用哪個配置文件,相關的配置項都是要配的。
3、創建backstore 帳戶
創建一個mysql 實例作為fabric 的backstore。然後創建一個fabric backstore帳戶。
CREATE USER 'fabric_store'@'localhost' IDENTIFIED BY 'secret'; GRANT ALTER, CREATE, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, SELECT, UPDATE ON mysql_fabric.* TO 'fabric_store'@'localhost';
創建的這個用戶名、密碼要跟配置文件fabric.cfg中[storeage]區域中的user、password相同。
此時fabric資料庫還沒有創建,但是也不要自己去創建。
4、初始化fabric資料庫、表
使用mysqlfabric初始化:
mysqlfabric manage setup
如果要使用自定義的fabric.cfg配置文件:
mysqlfabric --config=/your/fabric/cfg/path manage setup
5、mysqlfabric命令
1)啟動fabric節點
mysqlfabric --config=/your/fabric/cfg/path manage start
2)停止fabric節點
mysqlfabric --config=/your/fabric/cfg/path manage stop
至於其它命令,可以參考官方文檔。