серверы, ИЗБЕГАЕМЫЕ proxysql в группе хостов

#mysql #database #mariadb #galera #proxysql

#mysql #База данных #mariadb #galera #proxysql

Вопрос:

У меня есть 2 proxysql (2.0.13) keepalived перед 3-узловым galera-кластером, и 2 из galera-узлов отображаются как «ИЗБЕГАЕМЫЕ» в моей hostgroup 10. Я не знаю, почему они отображаются как «ИЗБЕГАЕМЫЕ», и они никогда не восстанавливаются.

Итак, я надеялся, что кто-нибудь здесь сможет помочь мне вернуть удаленные серверы в цикл.

Что я пробовал: — Установить переменную mysql-shun_on_failures = 5000 amp; mysql-shun_recovery_time_sec = 10 — перезагрузить узлы proxysql

Я установил соединения с hostgroup 10 и выполнил несколько запросов, чтобы запустить восстановление, но их по-прежнему избегают.

Вот некоторая информация из proxysql

 Servers:
Admin> select * from runtime_mysql_servers;
 -------------- ----------- ------ ----------- --------- -------- ------------- ----------------- --------------------- --------- ---------------- --------- 
| hostgroup_id | hostname  | port | gtid_port | status  | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
 -------------- ----------- ------ ----------- --------- -------- ------------- ----------------- --------------------- --------- ---------------- --------- 
| 10           | 10.4.4.21 | 3306 | 0         | SHUNNED | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
| 20           | 10.4.4.21 | 3306 | 0         | ONLINE  | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
| 20           | 10.4.4.22 | 3306 | 0         | ONLINE  | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
| 30           | 10.4.4.23 | 3306 | 0         | ONLINE  | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
| 30           | 10.4.4.22 | 3306 | 0         | ONLINE  | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
| 30           | 10.4.4.21 | 3306 | 0         | ONLINE  | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
| 10           | 10.4.4.23 | 3306 | 0         | ONLINE  | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
| 10           | 10.4.4.22 | 3306 | 0         | SHUNNED | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
 -------------- ----------- ------ ----------- --------- -------- ------------- ----------------- --------------------- --------- ---------------- --------- 


Hostgroups:
Admin> select * from runtime_mysql_galera_hostgroups;
 ------------------ ------------------------- ------------------ ------------------- -------- ------------- ----------------------- ------------------------- -------------------- 
| writer_hostgroup | backup_writer_hostgroup | reader_hostgroup | offline_hostgroup | active | max_writers | writer_is_also_reader | max_transactions_behind | comment            |
 ------------------ ------------------------- ------------------ ------------------- -------- ------------- ----------------------- ------------------------- -------------------- 
| 10               | 20                      | 30               | 9999              | 1      | 1           | 1                     | 30                      | galera-hostgroup-1 |
 ------------------ ------------------------- ------------------ ------------------- -------- ------------- ----------------------- ------------------------- -------------------- 

Status:
Admin> select hostgroup,srv_host,status,ConnUsed,MaxConnUsed,Queries,Latency_us from stats.stats_mysql_connection_pool order by srv_host;
 ----------- ----------- --------- ---------- ------------- --------- ------------ 
| hostgroup | srv_host  | status  | ConnUsed | MaxConnUsed | Queries | Latency_us |
 ----------- ----------- --------- ---------- ------------- --------- ------------ 
| 10        | 10.4.4.21 | SHUNNED | 0        | 0           | 0       | 289        |
| 30        | 10.4.4.21 | ONLINE  | 0        | 0           | 0       | 289        |
| 20        | 10.4.4.21 | ONLINE  | 0        | 0           | 0       | 289        |
| 10        | 10.4.4.22 | SHUNNED | 0        | 0           | 0       | 281        |
| 30        | 10.4.4.22 | ONLINE  | 0        | 0           | 0       | 281        |
| 20        | 10.4.4.22 | ONLINE  | 0        | 0           | 0       | 281        |
| 10        | 10.4.4.23 | ONLINE  | 1        | 1           | 106     | 277        |
| 30        | 10.4.4.23 | ONLINE  | 0        | 0           | 0       | 277        |
 ----------- ----------- --------- ---------- ------------- --------- ------------ 

My ping-log:
Admin> select * from monitor.mysql_server_ping_log order by time_start_us DESC limit 0,10;
 ----------- ------ ------------------ ---------------------- ------------ 
| hostname  | port | time_start_us    | ping_success_time_us | ping_error |
 ----------- ------ ------------------ ---------------------- ------------ 
| 10.4.4.23 | 3306 | 1597916943398296 | 257                  | NULL       |
| 10.4.4.21 | 3306 | 1597916943298413 | 232                  | NULL       |
| 10.4.4.22 | 3306 | 1597916943198499 | 276                  | NULL       |
| 10.4.4.22 | 3306 | 1597916935355114 | 220                  | NULL       |
| 10.4.4.23 | 3306 | 1597916935277079 | 259                  | NULL       |
| 10.4.4.21 | 3306 | 1597916935199034 | 232                  | NULL       |
| 10.4.4.22 | 3306 | 1597916927359456 | 175                  | NULL       |
| 10.4.4.21 | 3306 | 1597916927278902 | 242                  | NULL       |
| 10.4.4.23 | 3306 | 1597916927198335 | 302                  | NULL       |
| 10.4.4.21 | 3306 | 1597916919324515 | 189                  | NULL       |
 ----------- ------ ------------------ ---------------------- ------------ 
  

Спасибо вам всем..

Ответ №1:

Я нашел причину, по которой они помечены как «избегаемые»:

Моя конфигурация hostgroup имеет значение max_writers = 1 — это означает, что ТОЛЬКО один из моих 3-х авторов (в моей группе хостов writer) должен быть доступен в данный момент, а 2 других должны быть готовы, поэтому они могут взять на себя управление, если текущий автор потерпит неудачу.

Это очень хорошо объяснено здесь — посмотрите в разделе «Поддержка ProxySQL 2.x для кластера Galera» https://severalnines.com/database-blog/how-run-and-configure-proxysql-20-mysql-galera-cluster-docker .

Ответ №2:

У нас аналогичная проблема, когда экземпляр в одном редко используемом пуле избегается, но проходит все проверки. Единственное, что я нашел, чтобы вернуть его в оперативный режим, — это использовать load mysql servers to runtime на одном из узлов кластера ProxySQL.