集群部署常见问题
本文档介绍集群部署中的常见问题。
- 具体步骤详情可见:
1 error: could not access directory \"/data/mxdata_20221104084534/master/mxseg-1\": Permission denied
图形化界面初始化日志:
"error": "execute: do execute: run: initialize_database: 7 errors occurred: *
error execute \"/usr/local/matrixdb-4.5.0.community/bin/initdb\"\n\n STDOUT:
The files belonging to this database system will be owned by user \"mxadmin\".
This user must also own the server process.
The database cluster will be initialized with locale \"en_US.utf8\".\n The default text search configuration will be set to \"english\".
Data page checksums are enabled.
STDERR:
initdb: error: could not access directory \"/data/mxdata_20221104084534/master/mxseg-1\": Permission denied\n * error execute \"/usr/local/matrixdb-4.5.0.community/bin/initdb\"
STDOUT:
The files belonging to this database system will be owned by user \"mxadmin\".
This user must also own the server process.\n\n The database cluster will be initialized with locale \"en_US.utf8\".
The default text search configuration will be set to \"english\".
Data page checksums are enabled.
问题分析
data 目录只有所有者有 rwx 权限, 所属组和其他用户无访问权限。
[root@mdw ~]# ll /
total 36
lrwxrwxrwx. 1 root root 7 Jun 1 19:38 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Oct 26 18:28 boot
drwxr-xr-x 20 root root 3200 Oct 26 14:45 dev
drwxr-xr-x. 80 root root 8192 Oct 28 13:53 etc
drwxr-xr-x. 5 root root 8192 Oct 26 18:17 export
drwxr-xr-x. 5 root root 105 Oct 26 18:28 home
drwx------. 5 root root 105 Oct 26 18:28 data
解决方案
修改数据目录权限即可。
sudo chmod 755 /data
2 yum
安装 matrixdb 包后报错 cpio read error
问题分析
用户环境为 Windows,使用 vm15 虚拟机,Windows 下载安装包后文件拖拽到虚拟机,导致文件被截断。
解决方案
使用 vm 共享目录机制传输数据。
3 could not connect to server: No route to host
初始化时报错:
could not connect to server: No route to host
Is the server running on host "192.168.88.203" and accepting
TCP/IP connections on port 40000?
(seg0 192.168.88.203:40000)
问题分析
203 机器关掉了 iptables,但是没有 disable
,重启机器后,防火墙又启动了。
端口默认没有放开,导致初始化时机器无法通信,现象就是初始化一直卡住,无法完成。
解决方案
清空 203 机器上的防火墙规则,停掉 iptables 服务并且 disable
,防止重启后,网络不通。
4 setuptools 报告不支持参数: unknown distribution option:"long_description_content_type'
问题分析
setuptools 版本比较老。
解决方案
sudo python3 -m pip install --upgrade setuptools
5 ssh 默认端口不是 22
解决方案
.ssh/config
文件中增加主机名、端口号和用户的配置:
Host mdw
Hostname mdw
Port 29022
User mxadmin
Host sdw1
Hostname sdw1
Port 29022
User mxadmin
6 MXUI 初始化报错:ping <主机名1> error:lookup multiple ip:<IP 地址1>,<IP 地址1> ping <主机名2> error:lookup multiple ip:<IP 地址2>,<IP 地址2>
问题分析
/etc/hosts
中存在相同条目,如:
<IP 地址1> <主机名1>
<IP 地址1> <主机名1>
<IP 地址2> <主机名2>
<IP 地址2> <主机名2>
解决方案
删除 /etc/hosts
中的多余的条目:
<IP 地址1> <主机名1>
<IP 地址2> <主机名2>
修改后可以正常初始化。
7 使用图形化界面部署 MatrixDB 报错 failed to connect to host=mdw user=mxadmin database=postgres
: dial error (dial tcp 192.168.247.132:5432: connect: connection refused)
图形化界面出现如下报错:
failed to connect to host=mdw user=mxadmin database=postgres: dial error (dial tcp 192.168.247.132:5432: connect: connection refused)
问题分析
你很可能已经使用浏览器安装过一次 MatrixDB。由于某些原因之前的 MatrixDB 环境已经被清理掉,如再次加载此图形化界面,默认会在 URL 地址最后增加 /datastream
路径。
例如:http://192.168.247.132:8240/datastream
解决方案
将 datastream
关键字改为 installer
。
例如:http://192.168.247.132:8240/installer
再次使用图形化界面进行下一步安装即可。
8 添加主机失败 collect: do collect: unmarshal remote: json: cannot unmarshal string into Go struct field Disk.hardware.disk.ineligibleDesc of type mxi18n.Message
使用图形化界面安装部署 MatrixDB 集群时,添加节点报错:
添加主机失败 collect: do collect: unmarshal remote: json: cannot unmarshal string into Go struct field Disk.hardware.disk.ineligibleDesc of type mxi18n.Message
问题分析
各个服务器节点安装的 MatrixDB 版本不一致导致。
检查办法
依次检查每台服务器节点的 MatrixDB 版本。
检查主节点 mdw MatrixDB 版本。
[root@mdw matrixdb]# ll /usr/local/matrixdb
lrwxrwxrwx 1 root root 25 12月 9 18:02 /usr/local/matrixdb -> matrixdb-4.7.5.enterprise
检查数据节点 sdw1 MatrixDB 版本。
[root@sdw1 ~]$ ll /usr/local/matrixdb
lrwxrwxrwx 1 root root 25 12月 22 17:24 /usr/local/matrixdb -> matrixdb-4.6.2.enterprise
检查数据节点 sdw2 MatrixDB 版本。
[root@sdw2 ~]# ll /usr/local/matrixdb
lrwxrwxrwx 1 root root 25 12月 9 18:02 /usr/local/matrixdb -> matrixdb-4.7.5.enterprise
检查数据节点 sdw3 MatrixDB 版本。
[root@sdw3 ~]# ll /usr/local/matrixdb
lrwxrwxrwx 1 root root 25 12月 9 18:02 /usr/local/matrixdb -> matrixdb-4.7.5.enterprise
检查结果
sdw1 节点的数据库版本是 4.6.2,其他节点的数据库版本是 4.7.5。
解决方案
将 sdw1 节点的数据库版本升级和其他节点相同的版本,命令如下:
停止 Supervisor 服务。
[root@sdw1 ~]$ systemctl stop matrixdb.supervisor.service
卸载 MatrixDB 老版本软件。
[root@sdw1 ~]$ yum -y remove matrixdb
安装 MatrixDB 新版本软件。
[root@sdw1 ~]$ yum -y install /home/mxadmin/matrixdb-4.7.5.enterprise-1.el7.x86_64.rpm
启动 Supervisor 服务。
[root@sdw1 ~]$ systemctl start matrixdb.supervisor.service
9 集群启动报错
报错信息
20221223:09:55:10:001626 gpstart:mdw:mxadmin-[CRITICAL]:-Error occurred: non-zero rc: 1
Command was: 'env GPSESSID=0000000000 GPERA=None $GPHOME/bin/pg_ctl -D /mxdata_20221221165810/master/mxseg-1 -l /mxdata_20221221165810/master/mxseg-1/log/startup.log -w -t 600 -o " -p 5432 -c gp_role=utility " start'
rc=1, stdout='waiting for server to start.... stopped waiting
', stderr='pg_ctl: could not start server
Examine the log output.
'
问题分析
查看日志文件。
[mxadmin@mdw ~]$ cd /mxdata_20221221165810/master/mxseg-1/log
[mxadmin@mdw log]$ vi startup.log
"FATAL","42501","could not create lock file ""/tmp/.s.PGSQL.5432.lock"": Permission denied",,,,,,,,"CreateLockFile","miscinit.c",994,1 0xd44e33 postgres errstart (elog.c:498)
查看 /tmp
路径的权限。由于 /tmp
路径的权限必须为 777
,因此将其修改回来即可。
[mxadmin@mdw ~]$ ll / | grep tmp
drw-r-xr-x. 7 root root 8192 12月 23 10:00 tmp
解决方案
在 root 用户下将 /tmp
路径权限修改为 777
权限。
[mxadmin@mdw ~]$ exit
[root@mdw ~]# chmod 777 /tmp
重新启动集群。
[root@mdw ~]# su - mxadmin
[mxadmin@mdw ~]$ gpstart -a
10 图形化部署 MatrixDB 报错:优化操作系统配置 ... 已撤销 { "error": "execute: do execute: run: launch_matrixdb: error execute \"/usr/local/matrixdb-4.7.5.enterprise/bin/pg_ctl -w -l /mxdata_20221223100549/master/mxseg-1/log/startup.log -D /mxdata_20221223100549/master/mxseg-1 -o -i -p 5432 -c gp_role=utility -m start\"\n\nSTDOUT:\n waiting for server to start.... stopped waiting\n\nSTDERR:\n pg_ctl: could not start server\nExamine the log output.\n" }
问题分析
查看图形化部署日志文件
[mxadmin@mdw ~]$ cd /var/log/matrixdb/
[mxadmin@mdw matrixdb]$ vi mxui.log
[20221223:10:08:43][INFO] id=1; start: system_setup
[20221223:10:08:43][INFO] id=1; done
[20221223:10:08:43][INFO] id=2; start: create_user_and_directories
[20221223:10:08:43][INFO] id=2; done
[20221223:10:08:43][INFO] id=3; start: initialize_database
[20221223:10:08:44][INFO] id=3; running: 6%
[20221223:10:08:44][INFO] id=3; running: 6%
[20221223:10:08:44][INFO] id=3; running: 6%
[20221223:10:08:44][INFO] id=3; running: 6%
[20221223:10:08:44][INFO] id=3; running: 6%
[20221223:10:08:45][INFO] id=3; running: 6%
[20221223:10:08:45][INFO] id=3; running: 6%
[20221223:10:08:45][INFO] id=3; done
[20221223:10:08:45][INFO] id=4; start: launch_matrixdb
[20221223:10:08:45][ERROR] id=4; failed: launch_matrixdb: error execute "/usr/local/matrixdb-4.7.5.enterprise/bin/pg_ctl -w -l /mxdata_20221223100549/master/mxseg-1/log/startup.log -D /mxdata_20221223100549/master/mxseg-1 -o -i -p 5432 -c gp_role=utility -m start"
STDOUT:
waiting for server to start.... stopped waiting
STDERR:
pg_ctl: could not start server
Examine the log output.
[20221223:10:08:45][INFO] id=4; revert start: launch_matrixdb
[20221223:10:08:45][INFO] id=4; revert done
[20221223:10:08:45][INFO] id=3; revert start: initialize_database
[20221223:10:08:45][INFO] id=3; revert done
[20221223:10:08:45][INFO] id=2; revert start: create_user_and_directories
[20221223:10:08:45][INFO] id=2; revert done
[20221223:10:08:45][INFO] id=1; revert start: system_setup
[20221223:10:08:45][INFO] id=1; revert done
{
"error": "execute: do execute: run: launch_matrixdb: error execute \"/usr/local/matrixdb-4.7.5.enterprise/bin/pg_ctl -w -l /mxdata_20221223100549/master/mxseg-1/log/startup.log -D /mxdata_20221223100549/master/mxseg-1 -o -i -p 5432 -c gp_role=utility -m start\"\n\nSTDOUT:\n waiting for server to start.... stopped waiting\n\nSTDERR:\n pg_ctl: could not start server\nExamine the log output.\n"
}
execute: do execute: run: launch_matrixdb: error execute "/usr/local/matrixdb-4.7.5.enterprise/bin/pg_ctl -w -l /mxdata_20221223100549/master/mxseg-1/log/startup.log -D /mxdata_20221223100549/master/mxseg-1 -o -i -p 5432 -c gp_role=utility -m start"
STDOUT:
waiting for server to start.... stopped waiting
STDERR:
pg_ctl: could not start server
Examine the log output.
[GIN] 2022/12/23 - 10:08:45 | 200 | 148.13µs | 192.168.247.2 | GET "/api/installer/log"
查看图形化界面部署的步骤当前已经运行到 launch_matrixdb
,在日志中找到相关操作并且根据上下文分析:发现当前已经运行到 pg_ctl
启动实例这一步。这说明了启动实例失败,导致整个初始化操作失败并且回退。
可能导致启动实例失败的原因有如下几个,你需要根据实际情况逐一排查:
- CPU 负载过高。
- 内存使用量过大,剩余内存无法支撑实例(Instance)启动。
- 网络不稳定。
/tmp
权限不足,无法创建 lock 文件。
解决方案
由于前三个问题形成原因较复杂,需具体场景具体分析,在此不做详述。
4. 在 root 用户下将 /tmp
路径权限修改为 777
权限。
[root@mdw ~]# chmod 777 /tmp
11 安装 MatrixDB 安装包报错,缺少依赖
报错信息
[root@sdw4 yum.repos.d]# yum -y install /home/mxadmin/matrixdb-4.7.5.enterprise-1.el7.x86_64.rpm
已加载插件:fastestmirror
正在检查 /home/mxadmin/matrixdb-4.7.5.enterprise-1.el7.x86_64.rpm: matrixdb-4.7.5.enterprise-1.el7.x86_64
/home/mxadmin/matrixdb-4.7.5.enterprise-1.el7.x86_64.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 matrixdb.x86_64.0.4.7.5.enterprise-1.el7 将被 安装
--> 正在处理依赖关系 sysstat,它被软件包 matrixdb-4.7.5.enterprise-1.el7.x86_64 需要
Loading mirror speeds from cached hostfile
--> 解决依赖关系完成
错误:软件包:matrixdb-4.7.5.enterprise-1.el7.x86_64 (/matrixdb-4.7.5.enterprise-1.el7.x86_64)
需要:sysstat
您可以尝试添加 --skip-broken 选项来解决该问题
您可以尝试执行:rpm -Va --nofiles --nodigest
问题分析
缺少 sysstat 软件包。
解决方案
配置 yum 源,使用 yum -y install sysstat
安装 sysstat 工具,然后再安装 MatrixDB 软件包。
12 由于服务器内核参数配置异常导致 supervisor 启动异常 “panic: timeout to start gRPC service”
问题分析
在 MatrixDB 4.7.5版本安装包部署完成后,supervisor 进程启动异常,查看 /var/log/messages
后发现如下异常日志
Dec 22 19:08:59 sdw21 systemd: matrixdb.supervisor.service holdoff time over, scheduling restart.
Dec 22 19:08:59 sdw21 systemd: Stopped MatrixDB Supervisord Daemon.
Dec 22 19:08:59 sdw21 systemd: Started MatrixDB Supervisord Daemon.
Dec 22 19:08:59 sdw21 bash: time="2022-12-22T19:08:59+08:00" level=info msg="load configuration from file" file=/etc/matrixdb/supervisor.conf
Dec 22 19:08:59 sdw21 bash: time="2022-12-22T19:08:59+08:00" level=info msg="load config file over, content "
Dec 22 19:09:09 sdw21 bash: panic: timeout to start gRPC service
Dec 22 19:09:09 sdw21 bash: goroutine 1 [running]:
Dec 22 19:09:09 sdw21 bash: main.runServer()
Dec 22 19:09:09 sdw21 bash: /home/runner/work/matrixdb-ci/matrixdb-ci/cmd/supervisor/main.go:151 +0x4f0
Dec 22 19:09:09 sdw21 bash: main.main()
Dec 22 19:09:09 sdw21 bash: /home/runner/work/matrixdb-ci/matrixdb-ci/cmd/supervisor/main.go:216 +0x185
Dec 22 19:09:09 sdw21 systemd: matrixdb.supervisor.service: main process exited, code=exited, status=2/INVALIDARGUMENT
Dec 22 19:09:09 sdw21 systemd: Unit matrixdb.supervisor.service entered failed state.
Dec 22 19:09:09 sdw21 systemd: matrixdb.supervisor.service failed.
Dec 22 19:09:14 sdw21 systemd: matrixdb.supervisor.service holdoff time over, scheduling restart.
Dec 22 19:09:14 sdw21 systemd: Stopped MatrixDB Supervisord Daemon.
Dec 22 19:09:14 sdw21 systemd: Started MatrixDB Supervisord Daemon.
经过排查发现是 /etc/sysctl.conf
文件中变量取值过大,会导致 supervisor 运行不畅。 改成正常大小值即可,具体如下。
解决方案
-
改小
/etc/sysctl.conf
的内核参数配置,防止 supervisor 运行阻塞######### value too large, supervisor startup fail #net.core.rmem_default = 1800262144 #net.core.wmem_default = 1800262144 #net.core.rmem_max = 2000777216 #net.core.wmem_max = 2000777216 ######### net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216
-
supervisor 启动失败或故障,可以使用
journalctl --no-pager
抓取详细信息,包括崩溃的栈等。
13 安装 MatrixDB 收集信息失败
报错信息
收集信息失败 collect: do collect: hardware: GetDisk: createTempUser: error execute useradd: exit status 1 please create "mxadmin" user manually to workaround this issue useradd:无法打开 /etc/passwd
问题分析
根据报错信息分析,是 /etc/passwd 文件权限问题导致创建操作系统用户 mxadmin 失败。
解决方案
-
手动创建一个测试用户并查看报错信息
[root@sdw4 ~]# useradd test1 useradd:无法打开 /etc/passwd
-
查看
/etc/passwd
权限[root@sdw4 ~]# ll /etc/passwd -rw-r--r-- 1 root root 898 12月 24 01:48 /etc/passwd
结果显示 644 权限属于正常权限,没有问题
-
检查
/etc/passwd
是否有特殊权限[root@sdw4 ~]# lsattr /etc/passwd ----i----------- /etc/passwd
结果显示 /etc/passwd 文件存在特殊的权限 "i" (权限说明:任何用户不得更改及删除,包括 root)。
-
重复以上步骤检查
/etc/group
文件[root@sdw4 ~]# ll /etc/group -rw-r--r-- 1 root root 460 12月 24 01:48 /etc/group [root@sdw4 ~]# lsattr /etc/group ----i----------- /etc/group
-
将
/etc/passwd
、/etc/group
两个文件的特殊权限去掉[root@sdw4 ~]# chattr -i /etc/passwd [root@sdw4 ~]# chattr -i /etc/group
-
再次尝试手动创建一个测试用户
[root@sdw4 ~]# useradd test1
结果可以正常创建用户。
-
删除测试用户
[root@sdw4 ~]# userdel -r test1
-
使用图形化界面继续安装部署 MatrixDB
14 初始化失败,报 failed: initialize_database: error execute "/usr/local/matrixdb-4.7.2.enterprise/bin/initdb"
使用 MXUI 做初始化时,执行最后一步,报错如下:
[20221101:14:59:02][ERROR] id=3; failed: initialize_database: error execute "/usr/local/matrixdb-4.7.2.enterprise/bin/initdb"
STDOUT:
The files belonging to this database system will be owned by user "mxadmin".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.utf8".
The default text search configuration will be set to "english".
{
"error": "execute: do execute: run: initialize_database: error execute \"/usr/local/matrixdb-4.7.2.enterprise/bin/initdb\"\n\nSTDOUT:\n The files belonging to this database system will be owned by user \"mxadmin\".\nThis user must also own the server process.\n\nThe database cluster will be initialized with locale \"en_US.utf8\".\nThe default text search configuration will be set to \"english\".\n\nData page checksums are enabled.\n\nfixing permissions on existing directory /data/mxdata_20221101121858/primary/mxseg0 ... ok\ncreating subdirectories ... ok\nselecting dynamic shared memory implementation ... posix\nselecting default max_connections ... \nSTDERR:\n initdb: error: initdb: error 256 from: \"/usr/local/matrixdb-4.7.2.enterprise/bin/postgres\" --boot -x0 -F -c max_connections=1500 -c shared_buffers=262144 -c dynamic_shared_memory_type=posix \u003c \"/dev/null\" \u003e \"/dev/null\" 2\u003e\u00261\ninitdb: removing contents of data directory \"/data/mxdata_20221101121858/primary/mxseg0\"\n"
Data page checksums are enabled.
fixing permissions on existing directory /data/mxdata_20221101121858/primary/mxseg0 ... ok
creating subdirectories ... ok
}
selecting dynamic shared memory implementation ... posix
selecting default max_connections ...
STDERR:
initdb: error: initdb: error 256 from: "/usr/local/matrixdb-4.7.2.enterprise/bin/postgres" --boot -x0 -F -c max_connections=1500 -c shared_buffers=262144 -c dynamic_shared_memory_type=posix < "/dev/null" > "/dev/null" 2>&1
initdb: removing contents of data directory "/data/mxdata_20221101121858/primary/mxseg0"
问题分析
- 主机名绑定的 IP 不一致。
- 内存余量过低。
解决方案
- 在
/etc/hosts
中将本地 IP 与主机名(hostname)关联起来。 - 使用
free -g
命令检查内存大小。
15 可以使用 Nginx 为图形化界面配置域名吗?
可以的。
图形化客户端 MXUI 默认使用 http://<IP>:8240
对外提供服务,如果需要使其能通过域名 http://hostname
直接访问,可借助 Nginx 配置反向代理。
例如:如需设置 mxui.ymatrix.cn
为对外访问地址,Nginx 配置如下。
server
{
listen 80;
server_name mxui.ymatrix.cn; # 对外域名
# WebSocket 转发规则
location /ws {
proxy_pass http://127.0.0.1:8240/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
# 网页转发规则
location / {
proxy_pass http://127.0.0.1:8240;
}
}
注意!
MXUI 需要使用 WebSocket API 进行通信,需要单独为其配置转发规则才能正常使用。
16 Interconnect error writing an outgoing packet: operation not permitted
系统日志 /var/log/message
输出如下:
Mar 10 06:26:15 sdw37 kernel: nf_conntrack: table full, dropping packet
Mar 10 06:26:15 sdw37 kernel: nf_conntrack: table full, dropping packet
Mar 10 06:26:15 sdw37 kernel: nf_conntrack: table full, dropping packet
Mar 10 06:26:15 sdw37 kernel: nf_conntrack: table full, dropping packet
Mar 10 06:26:15 sdw37 kernel: nf_conntrack: table full, dropping packet
Mar 10 06:26:15 sdw37 kernel: nf_conntrack: table full, dropping packet
Mar 10 06:26:15 sdw37 kernel: nf_conntrack: table full, dropping packet
Mar 10 06:26:15 sdw37 kernel: nf_conntrack: table full, dropping packet
Mar 10 06:26:15 sdw37 kernel: nf_conntrack: table full, dropping packet
Mar 10 06:26:20 sdw37 kernel: nf_conntrack: table full, dropping packet
问题分析
系统参数 net.netfilter.nf_conntrack_max 默认最大跟踪 65536 个连接,当存在大量连接时出现该错误,可使用如下命令查看当前系统设置最大连接数:
cat /proc/sys/net/netfilter/nf_conntrack_max
解决方案
调大参数 net.netfilter.nf_conntrack_max 即可。
sysctl -w net.netfilter.nf_conntrack_max=655360
17 数据库可以正常使用,但是图形化界面报数据实例异常
问题描述
在数据部署完毕后,图形化界面告警信息一直报错,但是从数据库的 gp_segment_configuration
中看到节点状态是正常的。
问题分析
首先,需要通过 gpstate -a
命令来看一下集群节点状态。
如果输出信息如下:
Database status = unkown -- unable to load segment status
那么你需要到 /home/mxadmin/gpAdminLogs
目录下,查看类似 gpgetstatususingtransition.py_mdw:mxadmin_20230702.log
的日志文件。
大部分情况下,从日志中的报错信息可以明显看到是由于 netstat 命令执行失败。
解决方案
补充安装 net-tools 包即可。
18 安装数据库时 LOG: gp_role forced to 'utility' in single-user mode Y.sh: line 1: 11865 Illegal instruction
错误
报错信息
"LogCheckpointEnd","xlog.c",8916, LOG: gp_role forced to 'utility' in single-user mode Y.sh: line 1:
11865 Illegal instruction (core dumped) "/opt/ymatrix/matrixdb-5.0.0+community/bin/postgres" --single -F -O -j -c
gp_role=utility -c search_path=pg_catalog -c exit_on_error=true template1 > /dev/null child process exited with exit code 132
initdb: data directory "/mxdata_20231018165815/master/mxseg-1" not removed at user's request * rpc error:
问题分析
新版本的数据库支持了向量集用到了 SIMD 指令,在安装时会对 CPU 指令集的检测,如果 CPU 指令集不支持则会出现以上错误提示。
解决方案
- 使用以下命令查看是否支持以下指令
cat /proc/cpuinfo|grep -E "mmx|sse|sse2|ssse3|sse4_1|sse4_2|avx|avx2"
- 如果是虚拟机,在 CPU 工作模式处选择直通模式,然后重启虚拟机进行尝试。
19 在防火墙开启的情况下,需要配置哪些防火墙策略可以使得数据库集群正常运行?
# 集群内部IP之间网络需要打开所有端口,对外的端口可以只暴露服务端口
# 数据库防火墙配置,示例中假设 10.129.38.230、10.129.38.231、10.129.38.232 三台服务器构建了一套数据库集群
# 集群中所有主机之间开放所有端口,包括TCP、UDP协议
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.129.38.230" port protocol="tcp" port="0-65535" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.129.38.231" port protocol="tcp" port="0-65535" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.129.38.232" port protocol="tcp" port="0-65535" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.129.38.230" port protocol="udp" port="0-65535" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.129.38.231" port protocol="udp" port="0-65535" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.129.38.232" port protocol="udp" port="0-65535" accept"
# 开启 ping
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.129.38.230" port protocol="icmp" port="0-65535" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.129.38.231" port protocol="icmp" port="0-65535" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.129.38.232" port protocol="icmp" port="0-65535" accept"
# master 及 standby master 节点限制对外开放 5432 服务端口 8240
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --zone=public --add-port=8240/tcp --permanent
# Grafana
firewall-cmd --zone=public --add-port=3000/tcp --permanent
# 查看防火墙规则
firewall-cmd --list-all
# 重新加载防火墙,使配置生效
firewall-cmd --reload
systemctl restart firewalld.service