华为GaussDB(集中式/分布式,505/507版本)日常运维命令300条

命令默认以数据库操作系统用户 omm 执行,并已配置 $GAUSSHOME、$PGDATA、$GAUSSLIB 等环境变量;分布式集群相关命令(cm_ctl、gs_expansion、gs_dropnode)仅适用于分布式部署。

一、集群与实例启停管理(1--32)

bash 复制代码
# 1  查看集群整体状态(含主备角色、实例目录)
gs_om -t status --detail
# 2  查看指定节点状态
gs_om -t status -h node1
# 3  启动整个集群
gs_om -t start
# 4  启动指定节点
gs_om -t start -h node1
# 5  停止整个集群
gs_om -t stop
# 6  停止指定节点
gs_om -t stop -h node1
# 7  重启集群
gs_om -t restart
# 8  查询集群运行信息
gs_om -t query
# 9  刷新集群静态配置文件
gs_om -t refreshconf
# 10 生成集群静态配置文件
gs_om -t generateconf
# 11 启动 etcd 组件
gs_om -t startetcd
# 12 停止 etcd 组件
gs_om -t stopetcd
# 13 集群主备切换(带超时)
gs_om -t switchover --time-out 60
# 14 强制切换
gs_om -t switch --time-out 60
# 15 查看 gs_om 帮助
gs_om --help
# 16 单机/单节点启动实例
gs_ctl start -D $PGDATA -Z single_node -l /home/omm/log/start.log
# 17 快速停止实例(推荐)
gs_ctl stop -D $PGDATA -m fast
# 18 智能停止实例(等会话结束)
gs_ctl stop -D $PGDATA -m smart
# 19 立即停止实例(等同 kill)
gs_ctl stop -D $PGDATA -m immediate
# 20 重启实例
gs_ctl restart -D $PGDATA
# 21 重载配置文件(不重启)
gs_ctl reload -D $PGDATA
# 22 查看实例状态
gs_ctl status -D $PGDATA
# 23 查询主备关系与日志进度
gs_ctl query -D $PGDATA
# 24 全量重建备机
gs_ctl build -D $PGDATA -b full
# 25 增量重建备机
gs_ctl build -D $PGDATA -b incremental
# 26 单实例主备切换
gs_ctl switchover -D $PGDATA
# 27 单实例故障切换
gs_ctl failover -D $PGDATA
# 28 通知主备角色变更
gs_ctl notify -D $PGDATA
# 29 备机日志回放完成后结束回放状态
gs_ctl finishredo -D $PGDATA
# 30 查看 CM 集群状态(含 VIP、实例、进程)
cm_ctl query -Cvipd
# 31 停止指定节点实例
cm_ctl stop -n 1 -m fast
# 32 启动指定节点实例
cm_ctl start -n 1

二、参数配置管理(33--52)

bash 复制代码
# 33 校验参数取值是否合法
gs_guc check -D $PGDATA -c "max_connections"
# 34 设置单个实例参数(写配置文件)
gs_guc set -D $PGDATA -c "max_connections=2000"
# 35 在线重载参数(无需重启)
gs_guc reload -D $PGDATA -c "work_mem=64MB"
# 36 全节点全实例统一设置参数
gs_guc set -N all -I all -c "max_connections=2000"
# 37 全集群重载共享内存类参数
gs_guc reload -N all -I all -c "shared_buffers=8GB"
# 38 仅对数据节点设置参数
gs_guc set -Z datanode -N all -I all -c "log_min_duration_statement=1000"
# 39 配置客户端认证规则(pg_hba.conf)
gs_guc set -N all -I all -h "host all all 192.168.0.0/24 sha256"
# 40 生成客户端证书/密钥
gs_guc generate -S 'Gauss@123' -D $GAUSSHOME/bin -o client
# 41 加密服务端密码文件
gs_guc encrypt -K 'Gauss@123' -D /home/omm/cert -M server
# 42 查看参数当前生效值
gsql -d postgres -p 8000 -c "show max_connections;"
# 43 查看参数单位与生效方式
gsql -d postgres -p 8000 -c "select name,setting,unit,context from pg_settings where name='shared_buffers';"
# 44 列出需重启或重载的参数
select name,setting,context from pg_settings where context in ('postmaster','sighup') order by name;
# 45 检查配置文件是否存在语法错误
select * from pg_file_settings where error is not null;
# 46 会话级/系统级动态修改参数
alter system set work_mem='64MB';
# 47 动态开启慢 SQL 记录(毫秒)
alter system set log_min_duration_statement=1000;
# 48 为指定数据库设置默认 search_path
alter database db1 set search_path=public,app;
# 49 为指定用户设置语句超时
alter role app1 set statement_timeout='60s';
# 50 查看全部参数
show all;
# 51 手动触发配置重载
select pg_reload_conf();
# 52 记录 DDL 语句到日志
gs_guc set -D $PGDATA -c "log_statement='ddl'"

三、连接、会话与权限(53--76)

bash 复制代码
# 53 本地连接数据库(自动重连)
gsql -d postgres -p 8000 -r
# 54 远程连接指定库
gsql -d db1 -h 192.168.0.11 -p 8000 -U omm -W 'Gauss@123' -r
# 55 执行 SQL 脚本文件
gsql -d db1 -p 8000 -f /home/omm/script/check.sql
# 56 执行单条 SQL
gsql -d db1 -p 8000 -c "select version();"
# 57 查看所有数据库及大小
gsql -d db1 -p 8000 -c "\l+"
# 58 切换数据库
\c db2
# 59 查看表及大小
\dt+
# 60 查看索引
\di+
# 61 查看 schema
\dn+
# 62 查看用户与角色
\du
# 63 查看视图
\dv
# 64 查看函数
\df
# 65 查看扩展
\dx
# 66 查看表权限
\z tablename
# 67 开启 SQL 执行耗时显示
\timing on
# 68 结果按列展开显示
\x
# 69 每 5 秒刷新执行一次
\watch 5
# 70 结果输出到文件
\o /tmp/out.txt
# 71 在会话内执行脚本
\i /home/omm/s.sql
# 72 查看当前连接信息
\conninfo
# 73 查看全部会话
select * from pg_stat_activity;
# 74 按库、用户、状态统计会话数
select datname,usename,state,count(*) from pg_stat_activity group by 1,2,3 order by 4 desc;
# 75 查找长时间空闲会话
select pid,usename,client_addr,state,now()-state_change as idle_time,query from pg_stat_activity where state<>'active' order by idle_time desc limit 20;
# 76 清理超 2 小时的空闲会话
select pg_terminate_backend(pid) from pg_stat_activity where state='idle' and now()-state_change>interval '2 hours';
# 77 取消正在执行的语句(不断连接)
select pg_cancel_backend(pid);
# 78 创建业务用户
create user app1 identified by 'Pass@123';
# 79 修改用户密码
alter user app1 identified by 'New@123' replace 'Pass@123';
# 80 授权连接数据库
grant connect on database db1 to app1;
# 81 锁定用户
alter user app1 account lock;

四、空间与对象维护(82--105)

bash 复制代码
# 82 查看单库大小
select pg_size_pretty(pg_database_size('db1'));
# 83 按大小排序列出所有库
select datname, pg_size_pretty(pg_database_size(datname)) from pg_database order by pg_database_size(datname) desc;
# 84 查看表总大小(含索引)
select pg_size_pretty(pg_total_relation_size('public.t1'));
# 85 查看表数据大小
select pg_size_pretty(pg_relation_size('public.t1'));
# 86 查看表索引大小
select pg_size_pretty(pg_indexes_size('public.t1'));
# 87 找出最大的 20 张表
select relname, pg_size_pretty(pg_total_relation_size(relid)) sz from pg_catalog.pg_statio_user_tables order by pg_total_relation_size(relid) desc limit 20;
# 88 查看表空间使用量
select spcname, pg_size_pretty(pg_tablespace_size(oid)) from pg_tablespace;
# 89 查看死元组最多的表
select relname,n_live_tup,n_dead_tup,last_vacuum,last_autovacuum from pg_stat_user_tables order by n_dead_tup desc limit 20;
# 90 常规清理表
vacuum t1;
# 91 回收表空间(会锁表)
vacuum full t1;
# 92 清理并更新统计信息
vacuum analyze t1;
# 93 冻结表(防 XID 回卷)
vacuum freeze t1;
# 94 收集表统计信息
analyze t1;
# 95 带详细输出的统计信息收集
analyze verbose t1;
# 96 重建表索引
reindex table t1;
# 97 重建单个索引
reindex index idx_t1;
# 98 重建整库索引
reindex database db1;
# 99 按索引重排表数据
cluster t1 using idx_t1;
# 100 快速清空表
truncate table t1;
# 101 创建表空间
create tablespace tbs1 relative location 'tablespace/tbs1_1';
# 102 调整表填充因子
alter table t1 set (fillfactor=80);
# 103 查看表存储参数
select relname,reloptions from pg_class where relname='t1';
# 104 查看指定 schema 下的索引定义
select schemaname,tablename,indexname,indexdef from pg_indexes where schemaname='public';
# 105 查看指定 schema 下的表清单
select * from pg_tables where schemaname='public';

五、备份与恢复(106--131)

bash 复制代码
# 106 逻辑备份为纯文本 SQL
gs_dump -U omm -W 'Gauss@123' -p 8000 -f /home/omm/backup/db1.sql db1
# 107 逻辑备份为自定义压缩格式
gs_dump -U omm -p 8000 -Fc -f /home/omm/backup/db1.dmp db1
# 108 逻辑备份为 tar 包
gs_dump -U omm -p 8000 -Ft -f /home/omm/backup/db1.tar db1
# 109 仅备份对象结构
gs_dump -U omm -p 8000 -s -f /home/omm/backup/db1_schema.sql db1
# 110 仅备份数据
gs_dump -U omm -p 8000 -a -f /home/omm/backup/db1_data.sql db1
# 111 按 schema 备份
gs_dump -U omm -p 8000 -n public -f /home/omm/backup/public.sql db1
# 112 按表备份
gs_dump -U omm -p 8000 -t public.t1 -f /home/omm/backup/t1.sql db1
# 113 排除指定表备份
gs_dump -U omm -p 8000 -T public.t_log -f /home/omm/backup/db1_notlog.sql db1
# 114 使用 INSERT 语句形式导出
gs_dump -U omm -p 8000 --inserts -f /home/omm/backup/db1_ins.sql db1
# 115 全库全对象备份
gs_dumpall -U omm -p 8000 -f /home/omm/backup/all.sql
# 116 仅导出全局对象(角色、表空间)
gs_dumpall -U omm -p 8000 -g -f /home/omm/backup/globals.sql
# 117 恢复自定义格式备份
gs_restore -U omm -p 8000 -d db1 /home/omm/backup/db1.dmp
# 118 查看备份包内对象清单
gs_restore -l /home/omm/backup/db1.dmp
# 119 恢复前先清理已有对象
gs_restore -U omm -p 8000 -d db1 -c /home/omm/backup/db1.dmp
# 120 恢复时自动建库
gs_restore -U omm -p 8000 -d postgres -C /home/omm/backup/db1.dmp
# 121 只恢复指定表
gs_restore -U omm -p 8000 -d db1 -t t1 /home/omm/backup/db1.dmp
# 122 只恢复指定 schema
gs_restore -U omm -p 8000 -d db1 -n public /home/omm/backup/db1.dmp
# 123 物理基础备份(需复制账号)
gs_basebackup -D /home/omm/backup/base -h 192.168.0.11 -p 8000 -U repl -W
# 124 物理备份带进度显示
gs_basebackup -D /home/omm/backup/base -Fp -Xs -P -v
# 125 物理备份打包压缩
gs_basebackup -D /home/omm/backup/base -Ft -z -P
# 126 初始化 probackup 备份目录
gs_probackup init -B /home/omm/backup/probackup
# 127 注册备份实例
gs_probackup add-instance -B /home/omm/backup/probackup -D $PGDATA --instance=dn1
# 128 执行全量物理备份
gs_probackup backup -B /home/omm/backup/probackup --instance=dn1 -b FULL
# 129 按备份 ID 恢复
gs_probackup restore -B /home/omm/backup/probackup --instance=dn1 -i <backup_id>
# 130 查看备份列表
gs_probackup show -B /home/omm/backup/probackup --instance=dn1
# 131 校验备份有效性
gs_probackup validate -B /home/omm/backup/probackup --instance=dn1

六、主备复制与高可用(132--149)

bash 复制代码
# 132 查看主备复制状态
select * from pg_stat_replication;
# 133 查看复制槽
select * from pg_replication_slots;
# 134 查看活跃复制槽
select slot_name,slot_type,active from pg_replication_slots;
# 135 查看当前 XLOG 写入位点
select pg_current_xlog_location();
# 136 查看备机回放位点
select pg_xlog_replay_location();
# 137 查看备机接收位点
select pg_last_xlog_receive_location();
# 138 判断当前实例是否为备机
select pg_is_in_recovery();
# 139 CM 查看集群主备详情
cm_ctl query -Cvid
# 140 CM 指定节点主备切换
cm_ctl switchover -n 1 -D $PGDATA
# 141 CM 全集群自动切换
cm_ctl switchover -a
# 142 CM 全量重建指定备机
cm_ctl build -n 2 -D $PGDATA -b full
# 143 CM 增量重建指定备机
cm_ctl build -n 2 -D $PGDATA -b incremental
# 144 CM 立即停止指定节点
cm_ctl stop -n 2 -m immediate
# 145 CM 启动指定节点
cm_ctl start -n 2
# 146 查看 CM 配置视图
cm_ctl view
# 147 动态修改 CM 参数
cm_ctl set --param --server -k log_level=DEBUG
# 148 查询 CM 参数
cm_ctl get --param --server
# 149 重载 CM 参数
cm_ctl reload --param --server

七、锁、事务与阻塞(150--169)

bash 复制代码
# 150 查看未获得锁的请求
select * from pg_locks where not granted;
# 151 查看锁视图全貌
select * from gs_locks;
# 152 按锁类型统计
select locktype,mode,granted,count(*) from pg_locks group by 1,2,3 order by 4 desc;
# 153 查找等待锁的会话
select pid,wait_event_type,wait_event,query from pg_stat_activity where wait_event_type='Lock';
# 154 从 ASP 定位阻塞源头
select * from gs_asp where block_sessionid is not null order by sample_time desc limit 50;
# 155 终止阻塞会话
select pg_terminate_backend(<blocking_pid>);
# 156 查看长事务/空闲事务
select * from pg_stat_activity where state='idle in transaction';
# 157 按事务持续时间排序
select pid,now()-xact_start as xact_age from pg_stat_activity where state='idle in transaction' order by 2 desc;
# 158 查看两阶段残留事务
select * from pg_prepared_xacts;
# 159 提交残留两阶段事务
commit prepared '<gid>';
# 160 回滚残留两阶段事务
rollback prepared '<gid>';
# 161 查看事务隔离级别
show transaction_isolation;
# 162 设置可重复读隔离级别
set transaction isolation level repeatable read;
# 163 查看当前事务 ID
select txid_current();
# 164 查看锁等待超时
show lock_timeout;
# 165 设置锁等待超时
set lock_timeout='10s';
# 166 设置语句超时
set statement_timeout='60s';
# 167 查看死锁检测间隔
show deadlock_timeout;
# 168 查看未授予的锁明细
select * from gs_locks where granted='f';
# 169 关联锁与会话信息
select pid,state,query from pg_stat_activity where pid in (select pid from pg_locks where not granted);

八、性能诊断与慢 SQL(170--201)

bash 复制代码
# 170 按调用次数排序的语句统计
select * from dbe_perf.statement order by n_calls desc limit 20;
# 171 查看指定 SQL 的详细统计
select * from dbe_perf.statement where unique_sql_id=<id>;
# 172 按耗时排序的历史语句
select * from dbe_perf.statement_history order by duration desc limit 20;
# 173 查看近 1 小时慢语句
select * from dbe_perf.statement_history where start_time > now()-interval '1 hour' order by duration desc limit 50;
# 174 查看语句汇总统计
select * from dbe_perf.summary_statement order by n_calls desc limit 20;
# 175 查看实时作业执行信息
select * from gs_wlm_session_info order by duration desc limit 20;
# 176 查看历史作业执行信息
select * from gs_wlm_session_history order by duration desc limit 20;
# 177 查看活跃会话采样记录
select * from gs_asp order by sample_time desc limit 100;
# 178 按等待事件统计近 10 分钟样本
select event,count(*) from gs_asp where sample_time>now()-interval '10 min' group by event order by 2 desc;
# 179 按等待状态统计样本
select wait_status,count(*) from gs_asp group by wait_status order by 2 desc;
# 180 查看 SQL 执行计数
select * from gs_sql_count;
# 181 查看操作系统运行状态
select * from gs_os_run_info;
# 182 查看实例时间模型
select * from gs_instance_time;
# 183 查看等待事件定义
select * from gs_wait_events;
# 184 查看会话内存占用
select * from gs_session_memory_detail order by totalsize desc limit 20;
# 185 查看共享内存上下文
select * from gs_shared_memory_detail order by totalsize desc limit 20;
# 186 查看会话统计信息
select * from gs_session_stat_activity;
# 187 查看数据库级统计
select * from pg_stat_database;
# 188 查看各库事务与缓存命中情况
select datname,xact_commit,xact_rollback,blks_read,blks_hit from pg_stat_database;
# 189 查看后台写进程统计
select * from pg_stat_bgwriter;
# 190 找出全表扫描过多的表
select * from pg_stat_user_tables where seq_scan>1000 order by seq_scan desc limit 20;
# 191 找出从未被使用的索引
select * from pg_stat_user_indexes where idx_scan=0;
# 192 按更新次数排序的表
select * from pg_stat_all_tables order by n_tup_upd desc limit 20;
# 193 查看基础执行计划
explain select * from public.t1 where id=1;
# 194 查看实际执行计划与耗时
explain analyze select * from public.t1 where id=1;
# 195 查看执行计划与缓冲区读写
explain (analyze on, buffers on, verbose on) select * from public.t1 where id=1;
# 196 输出详细性能执行计划
explain performance select * from public.t1 where id=1;
# 197 获取索引推荐建议
select gs_index_advise('select * from public.t1 where id=1');
# 198 手工创建 WDR 快照
select create_wdr_snapshot();
# 199 生成 WDR 报告
select generate_wdr_report(<begin_snap_id>,<end_snap_id>,'cluster','summary');
# 200 查看指定库近 20 条历史语句
select * from dbe_perf.statement_history where db_name='db1' order by start_time desc limit 20;
# 201 关闭顺序扫描验证索引效果
set enable_seqscan=off; show enable_seqscan;

九、巡检、日志与信息收集(202--227)

bash 复制代码
# 202 列出可用巡检项
gs_check -U omm -L
# 203 检查 CPU 状态
gs_check -U omm -i CheckCPU
# 204 检查内存信息
gs_check -U omm -i CheckMemInfo
# 205 检查磁盘 I/O
gs_check -U omm -i CheckIO
# 206 检查网络丢包
gs_check -U omm -i CheckNetWorkDrop
# 207 检查慢 SQL 日志配置
gs_check -U omm -i CheckSlowQueryLog
# 208 检查 SQL 类型分布
gs_check -U omm -i CheckSQLTypeDist
# 209 检查连接池数量配置
gs_check -U omm -i CheckPoolerNum
# 210 操作系统级巡检(全部项)
gs_checkos -i A
# 211 操作系统级巡检(B 类子项)
gs_checkos -i B1
# 212 性能巡检总览
gs_checkperf
# 213 指定巡检项与用户
gs_checkperf -i PMK -U omm
# 214 按时间窗口采集日志与配置
gs_collector --begin-time "2026-11-03 00:00" --end-time "2026-11-03 12:00" -o /home/omm/collect
# 215 仅采集日志
gs_collector --collect-type log -o /home/omm/collect
# 216 仅采集集群配置
gs_collector --collect-type config -o /home/omm/collect
# 217 仅采集操作系统信息
gs_collector --collect-type os -o /home/omm/collect
# 218 查看日志目录
ls -lh $GAUSSLOG/pg_log
# 219 实时查看当日日志
tail -n 200 $GAUSSLOG/pg_log/postgresql-$(date +%Y-%m-%d)*.log
# 220 统计错误级日志
grep -iE "error|fatal|panic" $GAUSSLOG/pg_log/*.log | tail -50
# 221 检索死锁日志
grep -i "deadlock" $GAUSSLOG/pg_log/*.log | tail -20
# 222 检索内存不足日志
grep -iE "out of memory|memory is not enough" $GAUSSLOG/pg_log/*.log | tail -20
# 223 查找近一天更新的日志文件
find $GAUSSLOG -name "*.log" -mtime -1 -exec ls -lh {} \;
# 224 手动轮转日志
select pg_rotate_logfile();
# 225 查看两阶段事务清理工具用法
gs_clean --help
# 226 查看日志目录占用
du -sh $GAUSSLOG/pg_log
# 227 统计 ERROR 出现次数
grep -c "ERROR" $GAUSSLOG/pg_log/*.log

十、安全加固与审计(228--241)

bash 复制代码
# 228 查看口令加密算法类型
show password_encryption_type;
# 229 查看 SSL 开关
show ssl;
# 230 查看审计总开关
show audit_enabled;
# 231 查看全部审计相关参数
select name,setting from pg_settings where name like 'audit%';
# 232 调整口令加密类型
gs_guc reload -D $PGDATA -c "password_encryption_type=2"
# 233 设置会话空闲超时(秒)
gs_guc reload -D $PGDATA -c "session_timeout=1800"
# 234 限制网段访问并启用口令认证
gs_guc set -N all -I all -h "host all all 0.0.0.0/0 sha256"
# 235 生成密钥
gs_ktool -g
# 236 列出已有密钥
gs_ktool -l
# 237 创建审计角色
create role auditor with login password 'Audit@123';
# 238 授予审计角色查询权限
grant select on all tables in schema public to auditor;
# 239 回收业务用户表权限
revoke all privileges on public.t1 from app1;
# 240 解锁用户
alter role app1 account unlock;
# 241 查看角色安全属性
select rolname,rolsuper,rolcanlogin,rolconnlimit from pg_roles;

十一、扩容缩容与节点变更(242--251)

bash 复制代码
# 242 集群安装前环境预置
gs_preinstall -U omm -G dbgrp -X /opt/script/cluster.xml
# 243 执行集群安装
gs_install -X /opt/script/cluster.xml --gsinit-parameter="--encoding=UTF8"
# 244 单机初始化数据目录
gs_initdb -D /data/dn1 -w 'Gauss@123' --nodename=dn1
# 245 新增节点扩容
gs_expansion -U omm -G dbgrp -X /opt/script/cluster.xml -h node4
# 246 移除节点缩容
gs_dropnode -U omm -G dbgrp -h node4
# 247 批量执行集群命令
gs_ssh -c "gs_om -t status --detail"
# 248 按主机清单批量执行
gs_ssh -f /opt/script/hosts -c "date"
# 249 集群卸载后清理环境
gs_postuninstall -U omm -X /opt/script/cluster.xml
# 250 查看缩容工具帮助
gs_dropnode --help
# 251 查看扩容工具帮助
gs_expansion --help

十二、操作系统层运维(252--287)

bash 复制代码
# 252 按线程查看数据库进程 CPU 占用
top -H -p $(pgrep -f gaussdb | head -1)
# 253 查看 CPU、内存、上下文切换
vmstat 1 5
# 254 查看磁盘 I/O 利用率与等待
iostat -x 1 5
# 255 查看 CPU 使用率历史
sar -u 1 5
# 256 查看内存使用率历史
sar -r 1 5
# 257 查看 I/O 负载历史
sar -b 1 5
# 258 查看网卡流量
sar -n DEV 1 5
# 259 查看各 CPU 核负载
mpstat -P ALL 1 5
# 260 查看进程 I/O 明细
pidstat -d 1 5
# 261 查看内存总体使用
free -m
# 262 查看内存详细分布
cat /proc/meminfo
# 263 查看文件系统空间
df -h
# 264 查看 inode 使用
df -i
# 265 查看数据目录占用
du -sh $PGDATA
# 266 查看日志目录占用
du -sh $GAUSSLOG
# 267 查看块设备与挂载关系
lsblk
# 268 查看数据盘挂载参数
mount | grep -E "data|gauss"
# 269 查看 CPU 架构信息
lscpu
# 270 查看 NUMA 拓扑
numactl --hardware
# 271 检查透明大页状态
cat /sys/kernel/mm/transparent_hugepage/enabled
# 272 检查内存交换倾向
cat /proc/sys/vm/swappiness
# 273 检查内存过量分配策略
cat /proc/sys/vm/overcommit_memory
# 274 检查信号量参数
cat /proc/sys/kernel/sem
# 275 检查共享内存页数
cat /proc/sys/kernel/shmall
# 276 检查共享内存上限
cat /proc/sys/kernel/shmmax
# 277 查看资源限制
ulimit -a
# 278 查看数据库进程清单
ps -ef | grep gaussdb | grep -v grep
# 279 统计数据库线程数
ps -eLf | grep gaussdb | wc -l
# 280 检查监听端口
ss -lntp | grep 8000
# 281 检查端口连接明细
netstat -anp | grep 8000
# 282 查看套接字汇总
ss -s
# 283 检查节点网络连通性
ping -c 4 192.168.0.12
# 284 检查时间同步状态
ntpq -p
# 285 检查 chrony 时间源
chronyc sources -v
# 286 查看内核日志
dmesg -T | tail -50
# 287 检查 OOM 杀进程记录
dmesg -T | grep -iE "oom|killed process"

十三、日常维护与应急处置(288--300)

bash 复制代码
# 288 查找执行超 5 分钟的活跃语句
select * from pg_stat_activity where state='active' and now()-query_start>interval '5 min';
# 289 统计当前连接总数
select count(*) from pg_stat_activity;
# 290 查看指定用户会话
select * from pg_stat_activity where usename='app1';
# 291 查看有连接的数据库
select * from pg_stat_database where numbackends>0;
# 292 找出长期未自动清理的表
select * from pg_stat_user_tables where last_autovacuum is null and n_dead_tup>10000;
# 293 按死元组占比排序
select relname,n_live_tup,n_dead_tup,round(n_dead_tup*100.0/nullif(n_live_tup+n_dead_tup,0),2) dead_pct from pg_stat_user_tables order by dead_pct desc limit 20;
# 294 找出长期未收集统计信息的表
select * from pg_stat_all_tables where last_analyze is null order by n_mod_since_analyze desc limit 20;
# 295 全库清理并收集统计信息
vacuum analyze;
# 296 手动触发检查点
checkpoint;
# 297 手动切换 XLOG 文件
select pg_switch_xlog();
# 298 查看当前 XLOG 文件名
select pg_xlogfile_name(pg_current_xlog_location());
# 299 检查被禁止连接的数据库
select * from pg_database where datallowconn=false;
# 300 为业务库设置语句超时保护
alter database db1 set statement_timeout='120s';