Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Зеркалирование
Управление ресурсами
Безопасность
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по SQL
Часто задаваемые вопросы
Этот документ описывает распространённые проблемы новой архитектуры YMatrix 5.X.
В эпоху 4.X поддерживался перезапуск компонентов, таких как графический интерфейс (MXUI), с помощью sudo systemctl restart matrixdb.supervisor.service.
Однако в архитектуре 5.X Supervisor управляет большим количеством дочерних процессов, включая etcd, службы высокой доступности и процессы Postmaster.
Поэтому при произвольном останове или перезапуске Supervisor произойдёт перезапуск ключевых процессов, таких как etcd и Postmaster. В лучшем случае кластер аварийно завершит работу, в худшем — произойдёт потеря данных.
Следовательно, за исключением случаев удаления кластера базы данных, удаления программного обеспечения базы данных и т.п., не используйте команду для перезапуска Supervisor.
Новая архитектура разработана с учётом обеспечения высокой доступности даже при самых строгих сетевых разделениях.
Сервис Cluster/Shard отвечает за управление состоянием кластера базы данных. Если сетевые разделения препятствуют его связи с другими частями кластера, которые должны работать корректно, он не сможет принять правильное решение о состоянии кластера.
Чтобы максимально сохранить доступность кластера базы данных в любой ситуации сбоя, сервисы, требующие принятия решений о состоянии кластера, также обеспечивают собственную высокую доступность. Способность объективно оценивать ситуацию при различных сетевых исключениях — это ключевая причина внедрения кластеров etcd.
Обычно набор сервисов Cluster/Shard запускается на каждом узле. Однако в рамках всего кластера одновременно может быть активен только один экземпляр каждого сервиса. Остальные неактивные экземпляры автоматически выберут один из них в качестве нового активного, как только истечёт таймаут активного экземпляра.
Вы можете использовать Графический интерфейс для операций масштабирования.
Причины отказа от использования matrixdb.supervisor.service
В архитектуре YMatrix 5 supervisor управляет большим количеством дочерних процессов, включая кластеры etcd, службы высокой доступности, процессы postmaster и др. Произвольная остановка или перезапуск supervisor приведёт к перезапуску ключевых процессов, таких как etcd и postmaster, что вызовет проблемы с базой данных.
Поэтому при необходимости перезапуска определённого компонента рекомендуется использовать инструмент supervisorctl.
Управление отдельными компонентами
supervisor[mxadmin@mdw3 ~]$ systemctl status matrixdb5.supervisor.service
● matrixdb5.supervisor.service - MatrixDB 5 Supervisord Daemon
Loaded: loaded (/usr/lib/systemd/system/matrixdb5.supervisor.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-05-24 21:04:35 PDT; 1h 28min ago
Process: 4426 ExecStop=/bin/bash -c exec "$MXHOME"/bin/supervisorctl shutdown (code=exited, status=1/FAILURE)
Main PID: 4439 (supervisord)
Memory: 605.4M
CGroup: /system.slice/matrixdb5.supervisor.service
├─ 954 /bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
├─ 955 /bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
├─ 3357 /bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
├─ 4439 /opt/ymatrix/matrixdb5/bin/supervisord -c /etc/matrixdb5/supervisor.conf
├─ 4451 mxctl telegraf exec --gpname mdw3 --mxui-collector --socket-addr mdw3:51574 --cluster-id AuWFhsrjyywC4xfMahgyor --master-role --dbhost mdw3 --dbport ...
├─ 4461 mxctl telegraf exec --gpname mdw3 --mxui-collector --socket-addr mdw3:56639 --cluster-id GFpQhTxkwGqb7qM6iYVA8y --master-role --dbhost mdw3 --dbport ...
├─ 4470 /opt/ymatrix/matrixdb5/bin/cylinder -nofile -port 4637 -db-cluster-id AuWFhsrjyywC4xfMahgyor
├─ 4479 /opt/ymatrix/matrixdb5/bin/telegraf --config /tmp/mxui_collector_AuWFhsrjyywC4xfMahgyor.conf
├─ 4515 /opt/ymatrix/matrixdb5/bin/telegraf --config /tmp/mxui_collector_GFpQhTxkwGqb7qM6iYVA8y.conf
├─ 4528 /bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
├─ 4539 /bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
├─ 4997 /opt/ymatrix/matrixdb5/bin/mxui
├─12093 /usr/lib64/sa/sadc -S DISK 4 2 /tmp/sysstat-3640257011
└─12094 /usr/lib64/sa/sadc -S DISK 4 2 /tmp/sysstat-3256168522
[mxadmin@mdw3 ~]$ supervisorctl status
Status:
1. pc_id:{group:"mxui_collector_AuWFhsrjyywC4xfMahgyor" name:"mxui_collector_AuWFhsrjyywC4xfMahgyor"} describe:"pid 4451, uptime 1:29:17" now:1684992833 state:"Running" log_file:"/var/log/matrixdb5/mxui_collector_AuWFhsrjyywC4xfMahgyor.log" stdout_log_file:"/var/log/matrixdb5/mxui_collector_AuWFhsrjyywC4xfMahgyor.log" pid:4451
2. pc_id:{group:"cylinder_AuWFhsrjyywC4xfMahgyor" name:"cylinder_AuWFhsrjyywC4xfMahgyor"} describe:"pid 4470, uptime 1:29:17" now:1684992833 state:"Running" log_file:"/var/log/matrixdb5/cylinder_AuWFhsrjyywC4xfMahgyor.log" stdout_log_file:"/var/log/matrixdb5/cylinder_AuWFhsrjyywC4xfMahgyor.log" pid:4470
3. pc_id:{group:"shard_AuWFhsrjyywC4xfMahgyor" name:"shard_AuWFhsrjyywC4xfMahgyor"} describe:"pid 4477, uptime 1:29:17" now:1684992833 state:"Running" log_file:"/var/log/matrixdb5/shard_AuWFhsrjyywC4xfMahgyor.log" stdout_log_file:"/var/log/matrixdb5/shard_AuWFhsrjyywC4xfMahgyor.log" pid:4477
4. pc_id:{group:"mxui" name:"mxui"} describe:"pid 4997, uptime 1:24:43" now:1684992833 state:"Running" log_file:"/var/log/matrixdb5/mxui.log" stdout_log_file:"/var/log/matrixdb5/mxui.log" pid:4997
5. pc_id:{group:"replication-1_AuWFhsrjyywC4xfMahgyor" name:"replication-1_AuWFhsrjyywC4xfMahgyor"} describe:"pid 4484, uptime 1:29:17" now:1684992833 state:"Running" log_file:"/var/log/matrixdb5/replication-1_AuWFhsrjyywC4xfMahgyor.log" stdout_log_file:"/var/log/matrixdb5/replication-1_AuWFhsrjyywC4xfMahgyor.log" pid:4484
6. pc_id:{group:"replication-3_AuWFhsrjyywC4xfMahgyor" name:"replication-3_AuWFhsrjyywC4xfMahgyor"} describe:"pid 4466, uptime 1:29:17" now:1684992833 state:"Running" log_file:"/var/log/matrixdb5/replication-3_AuWFhsrjyywC4xfMahgyor.log" stdout_log_file:"/var/log/matrixdb5/replication-3_AuWFhsrjyywC4xfMahgyor.log" pid:4466
7. pc_id:{group:"etcd" name:"etcd"} describe:"pid 4450, uptime 1:29:17" now:1684992833 state:"Running" log_file:"/mxdata_20230514185455/etcd/log/etcd.log" stdout_log_file:"/mxdata_20230514185455/etcd/log/etcd.log" pid:4450
8. pc_id:{group:"replication-2_AuWFhsrjyywC4xfMahgyor" name:"replication-2_AuWFhsrjyywC4xfMahgyor"} describe:"pid 4453, uptime 1:29:17" now:1684992833 state:"Running" log_file:"/var/log/matrixdb5/replication-2_AuWFhsrjyywC4xfMahgyor.log" stdout_log_file:"/var/log/matrixdb5/replication-2_AuWFhsrjyywC4xfMahgyor.log" pid:4453
9. pc_id:{group:"cluster_AuWFhsrjyywC4xfMahgyor" name:"cluster_AuWFhsrjyywC4xfMahgyor"} describe:"pid 4454, uptime 1:29:17" now:1684992833 state:"Running" log_file:"/var/log/matrixdb5/cluster_AuWFhsrjyywC4xfMahgyor.log" stdout_log_file:"/var/log/matrixdb5/cluster_AuWFhsrjyywC4xfMahgyor.log" pid:4454
10. pc_id:{group:"deployer" name:"deployer"} describe:"pid 4457, uptime 1:29:17" now:1684992833 state:"Running" log_file:"/var/log/matrixdb5/deployer.log" stdout_log_file:"/var/log/matrixdb5/deployer.log" pid:4457
11. pc_id:{group:"mxui_collector_GFpQhTxkwGqb7qM6iYVA8y" name:"mxui_collector_GFpQhTxkwGqb7qM6iYVA8y"} describe:"pid 4461, uptime 1:29:17" now:1684992833 state:"Running" log_file:"/var/log/matrixdb5/mxui_collector_GFpQhTxkwGqb7qM6iYVA8y.log" stdout_log_file:"/var/log/matrixdb5/mxui_collector_GFpQhTxkwGqb7qM6iYVA8y.log" pid:4461
[mxadmin@mdw3 ~]$ supervisorctl restart mxui
Restarted:
1. name:"mxui"
Нет.
Сервис Supervisor не запускает Segment (или группу процессов PostgreSQL) автоматически. Supervisor может запускать только те сервисы, которые зарегистрированы в нём. Группа процессов PostgreSQL является потомком процесса службы репликации и управляется именно этим процессом, а не сервисом Supervisor. Запуск и остановка группы процессов осуществляются исключительно инструментами управления кластером (mxstart, mxstop, mxrecover и др.) через вызов API службы репликации.