检查openGauss状态

通过openGauss提供的工具查询数据库和实例状态,确认数据库和实例都处于正常的运行状态,可以对外提供数据服务。

  • 检查实例状态

    ""gs_check -U omm -i CheckClusterState
    
  • 检查参数

    ""openGauss=# SHOW parameter_name;
    

    上述命令中,parameter_name需替换成具体的参数名称。

  • 修改参数

    ""gs_guc reload  -D /gaussdb/data/dbnode -c "paraname=value"
    

检查锁信息

锁机制是数据库保证数据一致性的重要手段,检查相关信息可以检查数据库的事务和运行状况。

  • 查询数据库中的锁信息

    ""openGauss=# SELECT * FROM pg_locks;
    
  • 查询等待锁的线程状态信息

    ""openGauss=# SELECT * FROM pg_thread_wait_status WHERE wait_status = 'acquire lock';
    
  • 结束系统进程

    查找正在运行的系统进程,然后使用kill命令结束此进程。

    ""ps ux
    kill -9 pid
    

统计事件数据

SQL语句长时间运行会占用大量系统资源,用户可以通过查看事件发生的时间,占用内存大小来了解现在数据库运行状态。

  • 查询事件的时间

    查询事件的线程启动时间、事务启动时间、SQL启动时间以及状态变更时间。

    ""openGauss=# SELECT backend_start,xact_start,query_start,state_change FROM pg_stat_activity;
    
  • 查询当前服务器的会话计数信息

    ""openGauss=# SELECT count(*) FROM pg_stat_activity;
    
  • 查询系统级统计信息

    查询当前使用内存最多的会话信息。

    ""openGauss=# SELECT * FROM pv_session_memory_detail() ORDER BY usedsize desc limit 10;
    

对象检查

表、索引、分区、约束等是数据库的核心存储对象,其核心信息和对象维护是DBA重要的日常工作。

  • 查看表的详细信息

    ""openGauss=# \d+ table_name 
    
  • 查询表统计信息

    ""openGauss=# SELECT * FROM pg_statistic;
    
  • 查看索引的详细信息

    ""openGauss=# \d+ index_name
    
  • 查询分区表信息

    ""openGauss=# SELECT * FROM pg_partition;
    
  • 收集统计信息

    使用ANALYZE语句收集数据库相关的统计信息。

    使用VACUUM语句可以回收空间并更新统计信息。

  • 查询约束信息

    ""openGauss=# SELECT * FROM pg_constraint;
    

SQL报告检查

使用EXPLAIN语句查看执行计划。

备份

数据备份重于一切,日常应检查备份执行情况,并检查备份有效性,确保备份能够保障数据安全,备份安全加密也应兼顾。

  • 指定用户导出数据库

    ""gs_dump dbname -p port -f out.sql -U user_name -W password
    
  • 导出schema

    ""gs_dump dbname -p port -n schema_name -f out.sql
    
  • 导出table

    ""gs_dump dbname -p port -t table_name -f out.sql
    

基本信息检查

基本信息包括版本、组件、补丁集等信息,定期检查数据库信息并登记在案是数据库生命周期管理的重要内容之一。

  • 版本信息

    ""openGauss=# SELECT version();
    
  • 容量检查

    ""openGauss=# SELECT pg_table_size('table_name');
    openGauss=# SELECT pg_database_size('database_name');
    

检查操作系统参数

检查办法

通过openGauss提供的gs_checkos工具可以完成操作系统状态检查。

前提条件

  • 当前的硬件和网络环境正常。
  • 各主机间root互信状态正常。
  • 只能使用root用户执行gs_checkos命令。

操作步骤

  1. 以root用户身份登录任意一台服务器。

  2. 执行如下命令对openGauss节点服务器的OS参数进行检查。

    ""gs_checkos -i A
    

    检查节点服务器的OS参数的目的是保证openGauss正常通过预安装,并且在安装成功后可以安全高效的运行。详细的检查项目请参见《工具与命令参考》中“服务端工具 > gs_checkos”章节。

示例

执行gs_checkos前需要先使用gs_preinstall工具执行前置脚本,准备环境。以参数“A”为例。

""gs_checkos -i A
Checking items:
    A1. [ OS version status ]                                   : Normal
    A2. [ Kernel version status ]                               : Normal
    A3. [ Unicode status ]                                      : Normal
    A4. [ Time zone status ]                                    : Normal
    A5. [ Swap memory status ]                                  : Normal
    A6. [ System control parameters status ]                    : Normal
    A7. [ File system configuration status ]                    : Normal
    A8. [ Disk configuration status ]                           : Normal
    A9. [ Pre-read block size status ]                          : Normal
    A10.[ IO scheduler status ]                                 : Normal
    A11.[ Network card configuration status ]                   : Normal
    A12.[ Time consistency status ]                             : Warning
    A13.[ Firewall service status ]                             : Normal
    A14.[ THP service status ]                                  : Normal
Total numbers:14. Abnormal numbers:0. Warning number:1.

以参数“B”为例。

""gs_checkos -i B
Setting items:
    B1. [ Set system control parameters ]                       : Normal
    B2. [ Set file system configuration value ]                 : Normal
    B3. [ Set pre-read block size value ]                       : Normal
    B4. [ Set IO scheduler value ]                              : Normal
    B5. [ Set network card configuration value ]                : Normal
    B6. [ Set THP service ]                                     : Normal
    B7. [ Set RemoveIPC value ]                                 : Normal
    B8. [ Set Session Process ]                                 : Normal
Total numbers:6. Abnormal numbers:0. Warning number:0. 

异常处理

使用gs_checkos检查openGauss状态,可以使用如下命令查看详细的错误信息。

""gs_checkos -i A --detail

其中,Abnormal为必须处理项,影响openGauss安装。Warning可以不处理,不会影响openGauss安装。

  • 如果操作系统版本(A1)检查项检查结果为Abnormal,需要将不属于混编范围的操作系统版本替换为混编范围内的操作系统版本。

  • 如果内核版本(A2)检查项检查结果为Warning,则表示openGauss集群内操作系统平台的内核版本不一致。

  • 如果Unicode状态(A3)检查项检查结果为Abnormal,需要将各主机的字符集设置为相同的字符集,可以在/etc/profile文件中添加“export LANG=XXX”(XXX为Unicode编码)。

    ""vim /etc/profile
    
  • 如果时区状态(A4)检查项检查结果为Abnormal,需要将各主机的时区设置为相同时区,可以将/usr/share/zoneinfo/目录下的时区文件拷贝为/etc/localtime文件。

    ""cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime
    
  • 如果交换内存状态(A5)检查项检查结果为Abnormal,可能是因为Swap空间大于Mem空间,可减小Swap解决或者增大Mem空间解决。

  • 如果系统控制参数(A6)检查项检查结果为Abnormal,可以使用以下两种方法进行设置。

    • 可以使用如下命令进行设置。

      ""gs_checkos -i B1
      
    • 根据错误提示信息,在/etc/sysctl.conf文件中进行设置。然后执行sysctl -p使其生效。

      ""vim /etc/sysctl.conf
      
  • 如果文件系统配置状态(A7)检查项检查结果为Abnormal,可以使用如下命令进行设置。

    ""gs_checkos -i B2
    
  • 如果磁盘配置状态(A8)检查项检查结果为Abnormal,需修改磁盘挂载格式为:“rw,noatime,inode64,allocsize=16m”。

    使用linux的man mount命令挂载XFS选项:

    ""rw,noatime,inode64,allocsize=16m
    

    也可以在/etc/fstab文件中设定XFS选项。如下示例:

    ""/dev/data /data xfs rw,noatime,inode64,allocsize=16m 0 0
    
  • 如果预读块大小(A9)检查项检查结果为Abnormal,可以使用如下命令进行设置。

    ""gs_checkos -i B3
    
  • 如果IO调度状态(A10)检查项检查结果为Abnormal,可以使用如下命令进行设置。

    ""gs_checkos -i B4
    
  • 如果网卡配置状态(A11)检查项检查结果为Warning,可以使用如下命令进行设置。

    ""gs_checkos -i B5
    
  • 如果时间一致性(A12)检查项检查结果为Abnormal,需检查是否安装ntp服务,以及ntp服务是否启动;并与ntp时钟源同步。

  • 如果防火墙状态(A13)检查项检查结果为Abnormal,需关闭防火墙服务。使用如下命令进行设置。

    • SuSE:

      ""SuSEfirewall2 stop
      
    • RedHat7:

      ""systemctl disable firewalld
      systemctl stop firewalld
      
    • RedHat6:

      ""service iptables stop
      
  • 如果THP服务(A14)检查项检查结果为Abnormal,可以使用如下命令进行设置。

    ""gs_checkos -i B6
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐