这一部分,涉及到系统维护常用的管理命令。
修改配置文件 "postgresql.conf" 后,使其生效:
# 在操作系统下使用
[postgres@pgccc /]pg_ctl reload
# 在 psql 中使用
postgres=# select pg_reload_conf();
pg_reload_conf
----------------
t
(1 row)
需要注意的是,如果修改的参数,是需要重启数据库才能生效,以上两种方法无效。
切换 log 日志:
postgres=# select pg_rotate_logfile();
切换 WAL 日志:
postgres=# select pg_switch_wal();
pg_switch_wal
---------------
0/2001E58
(1 row)
手动产生一次检查点:
# 在 postgresql 中是,先日志 后数据
# 保证数据一致性
# 缩短实例恢复时间
postgres=# checkpoint;
CHECKPOINT
postgres=#
#取消正在长时间执行的SQL:
postgres=# select pid,usename,query_start,query from pg_stat_activity;
# 取消一个正在执行的SQL
postgres=# select pg_cancel_backend(456);
# 终止一个后台服务进程,同时释放此后台服务进程的资源
postgres=# select pg_terminate_backend(456);
需要注意的是,这两个函数的区别:
pg_cancel_backend() 实际上是给正在执行的SQL任务设置一个取消标志,当此SQL任务在执行过程中检测到此标志时,退出SQL任务。但是,如果SQL任务,长时间的非主动的无法检测到此取消标志,那么此SQL任务就无法正常退出,就需要 pg_terminate_backend() 直接终止SQL任务。