400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
系统配置参数
SQL 参考
常见问题(FAQ)
新架构 FAQ
集群部署 FAQ
SQL 查询 FAQ
MatrixGate FAQ
运维 FAQ
监控告警 FAQ
PXF FAQ
PLPython FAQ
性能 FAQ
本文档介绍 YMatrix 5.X 新架构的常见问题。
在 4.X 时代,支持用 sudo systemctl restart matrixdb.supervisor.service
来重启图形化界面(MXUI)等组件。
但在 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 被注册的服务才能被 supervisor 启动。postgresql 进程组作为副本(Replication)服务进程的子孙进程,由 replication 服务进程而不是 supervisor 服务进程管理。该进程组的启动只由集群管理工具(mxstart
,mxstop
,mxrecover
等)通过调用 replication 服务 API 启动或停止。