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 文档
快速上手
集群部署
SQL参考
工具指南
现象
yum install matrixdb
安装包后报错 cpio read error
原因
用户环境为 Windows,使用 vm15 虚拟机,Windows 下载安装包后文件拖拽到虚拟机,导致文件被截断
解决方案
使用 vm 共享目录机制传输数据,参考 https://blog.csdn.net/highning/article/details/106000215
现象
创建 MARS 扩展时,报错:
could not load library "/usr/local/matrixdb-4.0.0.enterprise/lib/postgresql/mars.so": /lib64/libarrow.so.300: undefined symbol: LZ4F_resetDecompressionContext
原因
YMatrix 4依赖 arrow 300, arrow 需要 LZ4 的版本 >= 1.8
解决方案
升级 LZ4
现象
初始化时报错:
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,防止重启后,网络不通。
现象
报错:
error: could not access directory \"/data/mxdata_20221104084534/master/mxseg-1\": Permission denied
mxui 初始化日志:
"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
现象
setuptools 报告不支持参数:
unknown distribution option:"long_description_content_type'
原因
setuptools 版本比较老
解决方案
sudo python3 -m pip install --upgrade setuptools
现象
卸载重装后,无法重新初始化集群
原因
重装集群需要做必要的清理工作
解决方案
现象
ssh 默认端口不是 22
解决方案
.ssh/config 文件中增加主机名、端口号和用户的配置:
Host mdw
Hostname mdw
Port 29022
User mxadmin
Host sdw1
Hostname sdw1
Port 29022
User mxadmin
现象
JDBC 查询压力测试,并发 50,连接池采用阿里的 druid。2.5 分钟内响应时间平稳,之后响应时间变长,Master 开始出现如下错误:
ERROR "failed to acquire resources on one or more segments", "could not connect to server: Connection timed out"
Segment 无 error/panic log
原因
分布式数据库会有大量的 TCP/UDP 数据传输,每次传输都会使用不同的端口号,这些端口号或连接在 OS 看来都是一次路由(连接 conn),系统参数 nf_conntrack_max 的意思是 OS 最多可以同时维护路由信息的个数。因为我们的多台虚拟机在一个物理机上,虚拟网络用的应该是 NAT,这样当大量并发查询同时来的时候,会导致虚拟路由信息暴增,可能在短时间内超过 nf_conntrack_max 限制,进而导致网卡主动丢弃掉来不及处理的 package。这也可以解释之前一段时间内并发查询越大越容易发生丢包的现象。
解决方案
修改内核参数
sudo sysctl net.netfilter.nf_conntrack_buckets=262144
sudo sysctl net.netfilter.nf_conntrack_max=1048576
现象
查询中 motion 开销大
原因
解决方案
现象
UI 客户端访问远程数据库,长查询过程中或长时间 idle 后发查询,客户端有些时候会收到 log:
server closed the connection unexpectedly
原因
客户端存在查询超时 cancel 设置,或 idle 超时 cancel 连接设置
解决方案
更改客户端超时设置,取消超时
现象
PARTITION 表简单 Filter 操作的 UNION ALL 查询比 IN 查询慢
原因
PARTITION 表的 IN 查询,分区裁剪后只有 1 个 default 分区,但 UNION ALL 查询中每个子查询都裁剪到了 default 分区,做了多次 default 分区的扫描,性能影响明显
解决方案
对于 PARTITION 表
现象
insert int 类型,再 SELECT 查询单独跑很快,放到 plpgsql function 里很慢
原因
plpgsql function 内的查询是通过 SPI 运行,SPI Plan 输出结果里是两表 Join,采用了 nestloop,语句 rows=1,没有 analyze
解决方案
执行 ANALYSE
现象
PARTITION 分区裁剪更新操作,两个会话(Session)独立更新会导致互锁。
原因
分布式死锁
解决方案
打开分布式死锁检测
gpconfig -c gp_enable_global_deadlock_detector -v on
现象
数据加载性能低
原因
gpcheckperf 看磁盘性能,网络性能,发现磁盘性能仅 80MB/s
解决方案
加载多块磁盘提升 I/O 性能,WA 和 Data 数据盘分开提升 I/O 性能
现象
mxgate 同时开启加载 30 张表 ,报错:
failed to acquire resources on on or more segments ,fatal out of memory
原因
PG/GP 是多进程模式,高并发请求过来,连接数过多,无法分配内存给相应的请求,从而报错。
解决方案
调整参数 /etc/sysctl.conf vm.overcommit_memory = 2 mxgate prepared=10 改为 prepared=5
现象
PXF 部署后,访问 HDFS 报错:
remote component error,Failed connect to localhost:5888; Connection refused (libchurl.c:950)
解决方案
现象
文件入库时,某一个字段包含换行符,将一行数据切分成两行,再以分隔符切分,就会导致数据与字段数不一致,也就是说一行数据里有两个 \n 一个在中间一个在尾部 但是中间那个不能被当做换行符处理
解决方案
现象
需要离线安装 Grafana 监控
解决方案
点击下载 Grafana 仓库依赖包,创建本地仓库后再安装即可。
# ls
create_repo.sh grafana-7.3.6-1.x86_64.rpm grafana_repo
# sh create_repo.sh
Create ymatrix-grafana repo successfully!
# yum install --disablerepo=* --enablerepo=ymatrix_grafana grafana-7.3.6-1.x86_64.rpm