I have a galera cluster with mariadb 10.6.22 and maxscale 24.02.2 in ubuntu 22.04 server.
This is my configuration:
[maxscale]
threads=auto
[srv1]
type=server
address=127.0.0.1
port=3306
[srv2]
type=server
address=10.0.0.2
port=3306
[Galera-Cluster]
type=monitor
module=galeramon
servers=srv1,srv2
user=maxscale
password=xxxxxxxxxx
monitor_interval=2s
root_node_as_master=true
[RW-Router]
type=service
router=readwritesplit
cluster=Galera-Cluster
user=maxscale
password=xxxxxxxxxxx
[Read-Write-Listener]
type=listener
service=RW-Router
protocol=mariadbprotocol
address=0.0.0.0
port=4008
I'm experincing this issue: when I stop the master node, maxscale doesn't switch the slave to master.
┌────────┬────────────┬──────┬─────────────┬────────────────────────┬──────┬────────────────┐
│ Server │ Address │ Port │ Connections │ State │ GTID │ Monitor │
├────────┼────────────┼──────┼─────────────┼────────────────────────┼──────┼────────────────┤
│ srv1 │ 127.0.0.1 │ 3306 │ 0 │ Slave, Synced, Running │ │ Galera-Cluster │
├────────┼────────────┼──────┼─────────────┼────────────────────────┼──────┼────────────────┤
│ srv2 │ 10.0.0.11 │ 3306 │ 0 │ Down │ │ Galera-Cluster │
└────────┴────────────┴──────┴─────────────┴────────────────────────┴──────┴────────────────┘
I cannot understand the reason. Looking into maxscale log I dont find nothing useful:
MariaDB MaxScale /var/log/maxscale/maxscale.log Thu Jun 5 15:04:18 2025
----------------------------------------------------------------------------
notice : Module 'galeramon' loaded from '/usr/lib/x86_64-linux-gnu/maxscale/libgaleramon.so'.
notice : Module 'readwritesplit' loaded from '/usr/lib/x86_64-linux-gnu/maxscale/libreadwritesplit.so'.
notice : The logging of info messages has been enabled.
notice : Using up to 1.16GiB of memory for query classifier cache
notice : syslog logging is disabled.
notice : maxlog logging is enabled.
notice : Host: 'srv1.cinebot.it' OS: Linux@5.15.0-141-generic, #151-Ubuntu SMP Sun May 18 21:35:19 UTC 2025, x86_64 with 2 processor cores (2.00 available).
notice : Total main memory: 7.75GiB (7.75GiB usable).
notice : MaxScale is running in process 93218
notice : MariaDB MaxScale 24.02.2 started (Commit: b362d654969c495ec50fdf028f419514a854dd0a)
notice : Configuration file: /etc/maxscale.cnf
notice : Log directory: /var/log/maxscale
notice : Data directory: /var/lib/maxscale
notice : Module directory: /usr/lib/x86_64-linux-gnu/maxscale
notice : Service cache: /var/cache/maxscale
notice : Working directory: /var/log/maxscale
notice : Query classification results are cached and reused. Memory used per thread: 595.34MiB
notice : Password encryption key file '/var/lib/maxscale/.secrets' not found, using configured passwords as plaintext.
notice : The systemd watchdog is Enabled. Internal timeout = 30s
notice : Module 'pp_sqlite' loaded from '/usr/lib/x86_64-linux-gnu/maxscale/libpp_sqlite.so'.
info : pp_sqlite loaded.
notice : [MariaDBProtocol] Parser plugin loaded.
info : [pp_sqlite] In-memory sqlite database successfully opened for thread 140044797709888.
info : No 'auto_tune' parameters specified, no auto tuning will be performed.
notice : Using HS256 for JWT signatures
warning: The MaxScale GUI is enabled but encryption for the REST API is not enabled, the GUI will not be enabled. Configure
admin_ssl_key
and admin_ssl_cert
to enable HTTPS or add admin_secure_gui=false
to allow use of the GUI without encryption.
notice : Started REST API on [127.0.0.1]:8989
notice : srv1 sent version string '10.6.22-MariaDB-0ubuntu0.22.04.1'. Detected type: MariaDB, version: 10.6.22.
notice : Server 'srv1' charset: utf8mb4_general_ci
info : Variables have changed on 'srv1': 'character_set_client = utf8mb4', 'character_set_connection = utf8mb4', 'character_set_results = utf8mb4', 'max_allowed_packet = 16777216', 'session_track_system_variables = autocommit,character_set_client,character_set_connection,character_set_results,time_zone', 'system_time_zone = CEST', 'time_zone = SYSTEM', 'tx_isolation = REPEATABLE-READ', 'wait_timeout = 28800'
error : Monitor was unable to connect to server srv2[10.0.0.11:3306] : 'Can't connect to server on '10.0.0.11' (115)'
notice : [galeramon] Found cluster members
notice : Starting a total of 1 services...
notice : (Read-Write-Listener); Listening for connections at [0.0.0.0]:4008
notice : Service 'RW-Router' started (1/1)
info : [pp_sqlite] In-memory sqlite database successfully opened for thread 140044754216512.
info : Epoll instance for listening sockets added to worker epoll instance.
info : [pp_sqlite] In-memory sqlite database successfully opened for thread 140044745823808.
info : Epoll instance for listening sockets added to worker epoll instance.
notice : MaxScale started with 2 worker threads.
notice : Read 19 user@host entries from 'srv1' for service 'RW-Router'.
info : Accept authentication from 'admin', using password. Request: /v1/servers
info : Accept authentication from 'admin', using password. Request: /v1/servers
The galera status seems to be ok for the slave server:
wsrep_local_state 4
wsrep_local_state_comment Synced
wsrep_cluster_status Primary
wsrep_local_index 1
Do you have any idea why Maxscaler doesn't switch slave to master if master is down?
Asked by Tobia
(211 rep)
Jun 5, 2025, 01:30 PM
Last activity: Jun 10, 2025, 04:52 AM
Last activity: Jun 10, 2025, 04:52 AM