首页 > 数据库 > 国内数据库 > Kingbase日常运维命令
作者:Digital Observer(施嘉伟)
Oracle ACE Pro: Database
PostgreSQL ACE Partner
11年数据库行业经验,现主要从事数据库服务工作
拥有Oracle OCM、DB2 10.1 Fundamentals、MySQL 8.0 OCP、WebLogic 12c OCA、KCP、PCTP、PCSD、 PGCM、OCI、PolarDB技术专家、达梦师资认证、数据安全咨询高级等认证
ITPUB认证专家、PolarDB开源社区技术顾问、HaloDB技术顾问、TiDB社区技术布道师、青学会MOP技术社区专家顾问、国内某高校企业实践指导教师
公众号:Digital Observer;CSDN:施嘉伟;ITPUB:sjw1933;墨天轮:Digital Observer;PGFans:施嘉伟。
test=# select * from pg_stat_activity;
最耗时 SQL,单次调用最耗时 SQL TOP 5 test=# select userid::regrole, dbid, query from sys_stat_statements order by mean_exec_time desc limit 5; 总最耗时 SQL TOP 5 test=# select userid::regrole, dbid, query from sys_stat_statements order by total_exec_time desc limit 5;
1.3 日志文档
查看pg_log目录下csv文件。
$ ps aux | grep kingbase
$ ksql -p 54321 -U system test -c "select 1;"
test=# select pg_is_in_recovery(); #f为主库,t为备库
test=# select client_addr, pg_wal_lsn_diff(sent_lsn, write_lsn) as sent_lag, pg_wal_lsn_diff(sent_lsn, replay_lsn) as apply_lag, state, sync_state from pg_stat_replication;
$ df -h
test=# select datname, usename, count(*) as connection_count from pg_stat_activity where usename is not null group by datname, usename;
test=# select * from pg_stat_archiver;
test=# select * from pg_stat_activity where xact_start + interval '1 h' < now();
test=# select blocked_locks.pid as blocked_pid, blocked_activity.query as blocked_statement, blocking_locks.pid as blocking_pid, blocking_activity.query as blocking_statement from pg_catalog.pg_locks as blocked_locks join pg_catalog.pg_stat_activity as blocked_activity on blocked_activity.pid = blocked_locks.pid join pg_catalog.pg_locks as blocking_locks on blocking_locks.locktype = blocked_locks.locktype and blocking_locks.database is not distinct from blocked_locks.database and blocking_locks.relation is not distinct from blocked_locks.relation and blocking_locks.page is not distinct from blocked_locks.page and blocking_locks.tuple is not distinct from blocked_locks.tuple and blocking_locks.virtualxid is not distinct from blocked_locks.virtualxid and blocking_locks.transactionid is not distinct from blocked_locks.transactionid and blocking_locks.classid is not distinct from blocked_locks.classid and blocking_locks.objid is not distinct from blocked_locks.objid and blocking_locks.objsubid is not distinct from blocked_locks.objsubid and blocking_locks.pid != blocked_locks.pid join pg_catalog.pg_stat_activity as blocking_activity on blocking_activity.pid = blocking_locks.pid where not blocked_locks.granted;
test=# select datname, age(datfrozenxid) as age from pg_database where datname not in ('template1','template0') order by age desc;
test=# select c.oid::regclass as relname,
greatest(age(c.relfrozenxid),age(t.relfrozenxid)) as age
from pg_class c
left join pg_class t
on c.reltoastrelid = t.oid
where c.relkind in ('r', 'm')
and greatest(age(c.relfrozenxid),age(t.relfrozenxid)) > 500000
order by age desc;
test=# select relname, coalesce(round(n_dead_tup * 100 / (case when n_live_tup + n_dead_tup = 0 then null else n_live_tup + n_dead_tup end), 2), 0.00) as ratio from pg_stat_all_tables where n_dead_tup >= 10000 and coalesce(round(n_dead_tup * 100 / (case when n_live_tup + n_dead_tup = 0 then null else n_live_tup + n_dead_tup end), 2), 0.00) > 50 order by ratio desc;
test=# vacuum full 表名;
test=# analyze 表名;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23825935/viewspace-3050562/ ,如需转载,请注明出处,否则将追究法律责任。