异常处理

如果发现检查结果异常,可以根据以下内容进行修复。

表 1 检查openGauss运行状态

检查项

异常状态

处理方法

CheckClusterState(检查openGauss状态)

openGauss未启动或openGauss实例未启动

使用以下命令启动openGauss及实例。

  1. gs_om -t start

openGauss状态异常或openGauss实例异常

检查各主机、实例状态,根据状态信息进行排查。

  1. gs_check -i CheckClusterState

CheckDBParams(检查数据库参数)

数据库参数错误

通过gs_guc工具修改数据库参数为指定值。

CheckDebugSwitch(检查调试日志)

日志级别不正确

使用gs_guc工具将log_min_messages改为指定内容。

CheckDirPermissions(检查目录权限)

路径权限错误

修改对应目录权限为指定数值(750/700)。

  1. chmod 750 DIR

CheckReadonlyMode(检查只读模式)

只读模式被打开

确认数据库节点所在磁盘使用率未超阈值(默认60%)且未在执行其他运维操作。

  1. gs_check -i CheckDataDiskUsage
  2. ps ux

使用gs_guc工具关闭openGauss只读模式

  1. gs_guc reload -N all -I all -c default_transaction_read_only = off
  2. gs_guc reload -N all -I all -c default_transaction_read_only = off

CheckEnvProfile(检查环境变量)

环境变量不一致

重新执行前置更新环境变量信息。

CheckBlockdev(检查磁盘预读块)

磁盘预读块大小不为16384

使用gs_checkos设置预读块大小为16384KB,并写入自启动文件。

  1. gs_checkos -i B3

CheckCursorNum(检查游标数)

检查游标数失败

检查数据库能否正常连接,openGauss状态是否正常。

CheckPgxcgroup(检查重分布状态)

有未完成重分布的pgxc_group表

继续完成扩容或缩容的数据重分布操作。

  1. gs_expandgs_shrink

CheckDiskFormat(检查磁盘配置)

各节点磁盘配置不一致

将各节点的磁盘规格改为相同。

CheckSpaceUsage(检查磁盘空间使用率)

磁盘可用空间不足

清理或扩展对应目录所在的磁盘。

CheckInodeUsage(检查磁盘索引使用率)

磁盘可用索引不足

清理或扩展对应目录所在的磁盘。

CheckSwapMemory(检查交换内存)

交换内存大于物理内存

将交换内存调小或关闭。

CheckLogicalBlock(检查磁盘逻辑块)

磁盘逻辑块大小不为512

使用gs_checkos修改磁盘逻辑块大小为512KB,并写入开机自启动文件。

  1. gs_checkos -i B4

CheckIOrequestqueue(检查IO请求)

IO请求值不为32768

使用gs_checkos设置IO请求值为32768,并写入开机自启动文件。

  1. gs_checkos -i B4

CheckCurConnCount(检查当前连接数)111

当前连接数超过最大连接数的90%

断开未使用的数据库主节点连接。

CheckMaxAsyIOrequests(检查最大异步请求)

最大异步请求值小于104857600或当前节点数据库实例数)*1048576

使用gs_checkos设置最大异步请求值为104857600和当前节点数据库实例数1048576中的最大值。

  1. gs_checkos -i B4

CheckMTU(检查MTU值)

MTU值不一致

设置各节点的MTU一致为1500或8192。

  1. ifconfig eth MTU 1500

CheckIOConfigure(检查IO配置)

IO配置不是deadline

使用gs_checkos设置IO配置为deadline,并写入开机自启动文件。

  1. gs_checkos -i B4

CheckRXTX(检查RXTX值)

网卡RX/TX值不是4096

使用checkos设置openGauss使用的物理网卡RX/TX值为4096

  1. gs_checkos -i B5

CheckPing(检查网络通畅)

存在openGauss IP无法ping通

检查异常ip间网络设置和状态、防火墙状态。

CheckNetWorkDrop(检查网络丢包率)

网络通信丢包率高于1%

检查对应IP间网络负载、状态。

CheckMultiQueue(检查网卡多队列)

未开启网卡多队列并未将网卡中断绑定到不同CPU核心

开启网卡多队列并将网卡队列中断绑定到不同的CPU核心。

CheckEncoding(检查编码格式)

各节点编码格式不一致

在/etc/profile中写入一致的编码信息。

  1. echo export LANG=XXX >> /etc/profile

CheckFirewall(检查防火墙)

防火墙未关闭

关闭防火墙服务。

  1. redHat(CentOS)7.xsystemctl status firewalld.service
  2. redHat(CentOS)6.xservice iptables down
  3. SuSESuSEfirewall2 down

CheckKernelVer(检查内核版本)

内核版本不一致

使用gs_replace替换不一致的节点。

  1. gs_replace

CheckMaxHandle(检查最大文件句柄数)

最大文件句柄数小于1000000

设置91-nofile.conf/90-nofile.conf最大文件句柄数软硬限制为1000000。

  1. gs_checkos -i B2

CheckNTPD(检查时间同步服务)

NTPD服务未开启或时间误差超过一分钟

开启NTPD服务并设置时钟一致。

CheckOSVer(检查操作系统版本)

操作系统不被支持或不在同一混搭列表

使用gs_replace将异常节点替换为受支持系统或在同一混搭列表内的系统的节点。

  1. gs_replace

CheckSysParams(检查操作系统参数)

操作系统参数设置不满足要求

使用gs_checkos进行参数设置或手动设置。

  1. gs_checkos -i B1
  2. vim /etc/sysctl.conf

CheckTHP(检查THP服务)

THP服务未开启

使用gs_checkos设置THP服务

  1. gs_checkos -i B6

CheckTimeZone(检查时区)

时区不一致

设置各节点为同一时区

  1. cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime

CheckCPU(检查CPU)

CPU占用过高或IO等待过高

进行CPU配置升级或磁盘性能升级

CheckSshdService(检查SSHD服务)

未开启SSHD服务

启动SSHD服务并写入开机自启动文件

  1. server sshd start
  2. echo server sshd start >> initFile

CheckSshdConfig(检查SSHD配置)

SSHD服务配置错误

设置SSHD服务,

  1. PasswordAuthentication=no;
  2. MaxStartups=1000;
  3. UseDNS=yes;
  4. ClientAliveInterval=10800/ClientAliveInterval=0

并重启服务:

  1. server sshd start

CheckCrondService(检查Crond服务)

Crond服务未启动

安装Crond服务并启用

CheckStack(检查堆栈大小)

堆栈大小小于3072

使用gs_checkos设置为3072并重启堆栈值过小进程。

  1. gs_checkos -i B2

CheckNoCheckSum(检查NoCheckSum参数)

NoCheckSum设置错误或不一致

设置各节点的NoCheckSum值一致(存在redHat6.46.5且为bond0时全部设为Y,否则全部设为N)

  1. echo Y > /sys/module/sctp/parameters/no_checksums

CheckSysPortRange(检查系统端口设置)

系统ip端口不在预期范围内或openGauss端口在系统ip端口内

设置系统ip端口范围参数到26000-65535之中;设置openGauss端口在系统ip端口范围外

  1. vim /etc/sysctl.conf

CheckMemInfo(检查内存信息)

各节点内存大小不一致

使用相同规格的物理内存

CheckHyperThread(检查超线程)

未开启CPU超线程

开启CPU超线程

CheckTableSpace(检查表空间)

表空间路径和openGauss路径存在嵌套或表空间路径相互存在嵌套

将表空间数据迁移到路径合法的表空间中

CheckSctpService(检查SCTP服务)

未开启SCTP服务

部署并开启SCTP服务

  1. modprobe sctp