▍MariaDB MaxScale¶
MariaDB HA Cluster with MaxScale¶
Настройка MaxScale¶
Checking MaxScale status with MaxCtrl
ubuntu@maxscale:~$ sudo maxctrl list servers
┌─────────┬──────────────┬──────┬─────────────┬─────────────────────────────┬──────┐
│ Server │ Address │ Port │ Connections │ State │ GTID │
├─────────┼──────────────┼──────┼─────────────┼─────────────────────────────┼──────┤
│ primary │ 10.10.10.40 │ 3306 │ 0 │ Master, Auth Error, Running │ │
├─────────┼──────────────┼──────┼─────────────┼─────────────────────────────┼──────┤
│ repl01 │ 10.10.10.212 │ 3306 │ 0 │ Auth Error, Running │ │
└─────────┴──────────────┴──────┴─────────────┴─────────────────────────────┴──────┘
Fixed Auth Error
Step 4: Initialize Replication process We should be ready to start Replication process on the slave server. Start by checking Status on the master:
MariaDB [(none)]> show master status\G *************************** 1. row *************************** File: mariadb-bin.000003 Position: 344 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.000 sec) Take a note of current Master log file and position. Then configure Slave server with details obtained from the master status command.
Login to MariaDB Slave server as root user and configure connection to the Master server
$ mysql -u root -p CHANGE MASTER TO MASTER_HOST='192.168.18.40', MASTER_USER='mysql_replica', MASTER_PASSWORD='StrongPassword', MASTER_LOG_FILE='mariadb-bin.000003', MASTER_LOG_POS=344; Then start replication on the slave:
mysql> start slave; Query OK, 0 rows affected (0.002 sec) To check slave status, use:
MariaDB [(none)]> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.18.40 Master_User: mysql_replica Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mariadb-bin.000003 Read_Master_Log_Pos: 344 Relay_Log_File: mysqld-relay-bin.000002 Relay_Log_Pos: 557 Relay_Master_Log_File: mariadb-bin.000003 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 344 Relay_Log_Space: 867 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 100 Master_SSL_Crl: Master_SSL_Crlpath: Using_Gtid: No Gtid_IO_Pos: Replicate_Do_Domain_Ids: Replicate_Ignore_Domain_Ids: Parallel_Mode: conservative SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it Slave_DDL_Groups: 0 Slave_Non_Transactional_Groups: 0 Slave_Transactional_Groups: 0 1 row in set (0.001 sec) Slave IO and SQL should indicate running state:
Slave_IO_Running: Yes Slave_SQL_Running: Yes Check of process list on the master should also display connections from slave servers.
MariaDB [(none)]> select ID,user,host,db,command,time,state from information_schema.processlist order by time desc limit 5; +----+---------------+---------------------+------+-------------+------+------------------------------------------------------------------+ | ID | user | host | db | command | time | state | +----+---------------+---------------------+------+-------------+------+------------------------------------------------------------------+ | 38 | mysql_replica | 192.168.18.41:51522 | NULL | Binlog Dump | 988 | Master has sent all binlog to slave; waiting for binlog to be up | | 2 | system user | | NULL | Daemon | 0 | InnoDB purge worker | | 5 | system user | | NULL | Daemon | 0 | InnoDB shutdown handler | | 1 | system user | | NULL | Daemon | 0 | InnoDB purge coordinator | | 4 | system user | | NULL | Daemon | 0 | InnoDB purge worker | +----+---------------+---------------------+------+-------------+------+------------------------------------------------------------------+ 5 rows in set (0.000 sec)
https://github.com/himanshugogoi-eng/mariadb-maxscale-ha-cluster