1、orchestrator环境请看上一篇:https://blog.51cto.com/860143/2429558
2、maxscale安装
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-maxscale-version="2.3" yum search maxscale sudo yum install maxscale maxkeys /var/lib/maxscale/ maxpasswd /var/lib/maxscale/ 123456 chown maxscale.maxscale /var/lib/maxscale/.secrets vim /etc/maxscale.cnf systemctl start maxscale systemctl status maxscale.service cd /var/log/maxscale/ vim maxscale.log systemctl start maxscale
3、maxscale配置文件
[root@mgr1 maxscale]# cat /etc/maxscale.cnf # MaxScale documentation: # https://mariadb.com/kb/en/mariadb-enterprise/mariadb-maxscale-23/ # Global parameters # # Complete list of configuration options: # https://mariadb.com/kb/en/mariadb-maxscale-23-mariadb-maxscale-configuration-usage-scenarios/ [maxscale] threads=auto # Server definitions # # Set the address of the server to the network # address of a MariaDB server. # [server1] type=server address=192.168.56.14 port=3306 protocol=MariaDBBackend [server2] type=server address=192.168.56.15 port=3306 protocol=MariaDBBackend [server3] type=server address=192.168.56.16 port=3306 protocol=MariaDBBackend # Monitor for the servers # # This will keep MaxScale aware of the state of the servers. # MariaDB Monitor documentation: # https://mariadb.com/kb/en/mariadb-maxscale-23-mariadb-monitor/ [MariaDB-Monitor] type=monitor module=mariadbmon servers=server1,server2,server3 user=orchestrator password=0FFC28BC3A8F402F10B0B798E347FD9B monitor_interval=2000 # 当复制slave全部断掉时,maxscale仍然可用,将所有的访问指向master节点 detect_stale_master=true # Service definitions # # Service Definition for a read-only service and # a read/write splitting service. # # ReadConnRoute documentation: # https://mariadb.com/kb/en/mariadb-maxscale-23-readconnroute/ [Read-Only-Service] type=service router=readconnroute servers=server1,server2,server3 user=orchestrator password=0FFC28BC3A8F402F10B0B798E347FD9B router_options=slave # ReadWriteSplit documentation: # https://mariadb.com/kb/en/mariadb-maxscale-23-readwritesplit/ [Read-Write-Service] type=service router=readwritesplit servers=server1,server2,server3 user=orchestrator password=0FFC28BC3A8F402F10B0B798E347FD9B # This service enables the use of the MaxAdmin interface # MaxScale administration guide: # https://mariadb.com/kb/en/mariadb-maxscale-23-maxadmin-admin-interface/ [MaxAdmin-Service] type=service router=cli # Listener definitions for the services # # These listeners represent the ports the # services will listen on. # [Read-Only-Listener] type=listener service=Read-Only-Service protocol=MariaDBClient port=4008 [Read-Write-Listener] type=listener service=Read-Write-Service protocol=MariaDBClient port=4006 [MaxAdmin-Listener] type=listener service=MaxAdmin-Service protocol=maxscaled socket=default [root@mgr1 maxscale]#
4、测试过程,把原来的主关闭,并以从库的方式重启,下面是maxscale自动发现的过程状态展示
[root@mgr1 maxscale]# maxadmin MaxScale> list servers Servers. -------------------+-----------------+-------+-------------+-------------------- Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+-------------------- server1 | 192.168.56.14 | 3306 | 0 | Slave of External Server, Running server2 | 192.168.56.15 | 3306 | 0 | Slave of External Server, Running server3 | 192.168.56.16 | 3306 | 0 | Master, Running -------------------+-----------------+-------+-------------+-------------------- MaxScale> list servers Servers. -------------------+-----------------+-------+-------------+-------------------- Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+-------------------- server1 | 192.168.56.14 | 3306 | 0 | Master, Running server2 | 192.168.56.15 | 3306 | 0 | Slave of External Server, Running server3 | 192.168.56.16 | 3306 | 0 | Down -------------------+-----------------+-------+-------------+-------------------- MaxScale> list servers Servers. -------------------+-----------------+-------+-------------+-------------------- Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+-------------------- server1 | 192.168.56.14 | 3306 | 0 | Master, Running server2 | 192.168.56.15 | 3306 | 0 | Slave of External Server, Running server3 | 192.168.56.16 | 3306 | 0 | Down -------------------+-----------------+-------+-------------+-------------------- MaxScale> list servers Servers. -------------------+-----------------+-------+-------------+-------------------- Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+-------------------- server1 | 192.168.56.14 | 3306 | 0 | Master, Running server2 | 192.168.56.15 | 3306 | 0 | Slave of External Server, Running server3 | 192.168.56.16 | 3306 | 0 | Down -------------------+-----------------+-------+-------------+-------------------- MaxScale> list servers Servers. -------------------+-----------------+-------+-------------+-------------------- Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+-------------------- server1 | 192.168.56.14 | 3306 | 0 | Master, Running server2 | 192.168.56.15 | 3306 | 0 | Slave of External Server, Running server3 | 192.168.56.16 | 3306 | 0 | Slave of External Server, Running -------------------+-----------------+-------+-------------+-------------------- MaxScale> list servers Servers. -------------------+-----------------+-------+-------------+-------------------- Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+-------------------- server1 | 192.168.56.14 | 3306 | 0 | Master, Running server2 | 192.168.56.15 | 3306 | 0 | Slave of External Server, Running server3 | 192.168.56.16 | 3306 | 0 | Slave of External Server, Running -------------------+-----------------+-------+-------------+-------------------- MaxScale> list servers Servers. -------------------+-----------------+-------+-------------+-------------------- Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+-------------------- server1 | 192.168.56.14 | 3306 | 0 | Master, Running server2 | 192.168.56.15 | 3306 | 0 | Slave of External Server, Running server3 | 192.168.56.16 | 3306 | 0 | Slave of External Server, Running -------------------+-----------------+-------+-------------+-------------------- MaxScale> list servers Servers. -------------------+-----------------+-------+-------------+-------------------- Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+-------------------- server1 | 192.168.56.14 | 3306 | 0 | Master, Running server2 | 192.168.56.15 | 3306 | 0 | Slave of External Server, Running server3 | 192.168.56.16 | 3306 | 0 | Slave of External Server, Running -------------------+-----------------+-------+-------------+-------------------- MaxScale> list servers