PostgreSQL常用命令集合
1、PostgreSQL查询正在执行的SQL
SELECT procpid,START,now() - START AS lap,current_query
FROM
(
SELECT
backendid,
pg_stat_get_backend_pid (S.backendid) AS procpid,
pg_stat_get_backend_activity_start (S.backendid) AS START,
pg_stat_get_backend_activity (S.backendid) AS current_query
FROM
(
SELECT pg_stat_get_backend_idset () AS backendid
) AS S
) AS S
WHERE current_query <> '<IDLE>' ORDER BY lap DESC;
- procpid:进程id
- start:进程开始时间
- lap:经过时间
- current_query:执行中的sql
怎样停止正在执行的sql?
(1)SELECT pg_cancel_backend(进程id);
(2)用系统函数 kill -9 进程id;
2、PostgreSQL清理pg_xlog与archive日志
# 进入PGSQL归档日志目录
cd /opt/udb/instance/postgresql-9.6/7f424eba-0906-4c12-8e5e-d9a7a66df04a/archive
# 通过pg_archivecleanup工具进行清理
find / -name pg_archivecleanup # 查找pg_archivecleanup工具存放路径
/opt/udb/program/postgresql/postgresql-9.6.3/bin/pg_archivecleanup ./ 000000010000000000000020
注:清理000000010000000000000020 之前的archive[注意:./后面有空格]。
3、PostgreSQL清理pg_log日志
rm -rf postgresql-2020-11-17_{100..200}.log
rm -rf postgresql-2020-11-17*.log
4、PostgreSQL备份与恢复
# 备份数据
pg_dump -h $IP -p $port -U $user $database > /备份目录名/备份文件名.dmp
# 恢复数据
psql -U $user -h $IP -p $port -d $database -f 备份文件路径
5、关于wal_keep_segments参数
wal_keep_segments大小是否合适,取决于数据库实例大小和业务量,分别决定了备份耗时和wal增长速度。其占用磁盘大小,计算方法,即假设wal_keep_segments=1000,则占用磁盘空间为:10000*16MB。超过wal_keep_segments设置个数就会进行自动轮滚。
6、关于OOM
某个业务SQL操作,使用大量内存,触发OOM,但是由于PGSQL是多线程的,所以被kill掉的触发OOM的进程,不会影响整个PostgreSQL实例。
作者:UStarGao
链接:https://www.starcto.com/PostgreSQL/212.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UCloud云平台推荐
随便看看
- 2022-03-22Redis数据备份与恢复以及迁移解决方案
- 2022-08-16MySQL utf8mb4字符集之表情包存储/生僻词存储
- 2022-06-24一文搞懂MySQL日志区别-binlog/redo log/undo log
- 2021-05-21第三方常用工具收录
- 2022-06-18MongoDB事务开发之写操作事务writeConcern