【学习目标】
集中学习下openGuass在日常工作中需要例行巡查以及维护相关的操作;
日常工作中,业务上线后都会经历相应的稳定期,但在此期间均会有例如数据库巡检,如运行状态、锁信息、表的日常维护等相关日常操作。
第一步:
检查数据库相关状态:
从操作系统层面检查数据库的进程状态:

使用数据库工具gs_ctl来检查数据库实例状态:

检查数据库参数配置情况:

第二步:
检查锁信息:
检查目前数据库中已存在有哪些事务锁:
SELECT * FROM pg_locks;

进一步查询锁等待的线程状态信息:
SELECT * FROM pg_thread_wait_status WHERE wait_status = 'acquire lock';

第三步:
统计事件数据:
1、查看慢sql语句相关信息,如相关的线程启动时间、执行时长,以及当前事件的状态:

2、查看当前数据库的活动会话的总量:

3、查询所有会话占用内存的具体情况,找出占用内存较大的会话:

4、查询表的统计信息:

第四步:
查询数据库版本、日志信息:
1、查询数据库的版本信息:

2、查看数据库的关键日志信息:
cd /var/lib/opengauss/data/pg_log
ls /var/lib/opengauss/data/pg_log

第五步:
检查应用连接数和确认数据库参数中设置的最大连接数:

第六步:
例行维护表:
在数据库正常运维一段时间后,由于表中的数据经常的插入、删除等操作,会导致类似于oracle数据库的表水平位上升的现象存在,因此在openGauss中也会涉及到对此类问题进行表级的维护,在openGauss中需要使用VACUUM FULL和ANALYZE来对表进行操作,不过此类操作和oracle一样,需要在业务空闲时段进行:
VACUUM customer_t;
VACUUM FULL customer_t;
更新表的统计信息:
更新统计信息,并输出表的相关信息
ANALYZE VERBOSE customer_t;
同时执行VACUUM ANALYZE命令进行查询优化
VACUUM ANALYZE customer_t;

第七步:
重建索引:
同第六步一样,由于长时间的数据的新增和删除等操作,一些表的索引的基表数据会失真,因此需要对一些特殊的表的索引进行定期重建,具体重建过程中,建议临时增大maintenance_work_mem和psort_work_mem的取值来加快索引的重建,操作方法如下:





