栏目头部广告

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云平台推荐


UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

加载中~
文章详情页广告

随便看看

底部广告
`