12、postgres关闭命令smart、fast、immediate

本文介绍了如何使用`pg_ctl`命令在Linux环境下管理PostgreSQL数据库,包括SMART、FAST和IMMEDIATE三种关闭模式的详细解释及操作方法。在SMART模式下,数据库等待所有会话完成后再关闭;FAST模式则会立即终止所有会话;而IMMEDIATE模式则强制关闭,可能需要后续恢复。此外,还提到了通过kill命令直接停止数据库进程的方式。

 想考PCA认证的,请认真学习以下笔记(学霸笔记,必过过过)

                                        

使用 postgresql 自带的命令进行管理:

pg_ctl start

pg_ctl stop

pg_ctl status

pg_ctl -D $PGDATA stop -m smart

pg_ctl -D $PGDATA stop -m fast

pg_ctl -D $PGDATA stop -m immediate

如果启停有问题可以查看日志:

vim /var/lib/pgsql/13/data/log/postgresql-Mon.log

可以参考执行pg_ctl --help

关闭PostgreSQL数据库有多种模式。主要有如下几种:

SIGTERM

Smart Shutdown模式。数据库接到SIGTERM后,服务端不允许新的连接,但已连接的会话继续工作直到会话完成。当所有会话完成后才关闭数据库。如果数据库在热备状态,会等备份完成。如果在恢复状态则等所有进程终止。

SIGINT

Fast Shutdown模式。服务端不允许新的连接,并且给所有已存在的服务进程发送SIGTERM,使它们终止当前的事务并立即退出。所有服务进程退出后数据库关闭。

SIGQUIT

Immediate Shutdown模式。服务端发送SIGQUIT给所有的子进程,并等待它们终止,如果5秒钟后没有终止,这些进行被SIGKILL。等所有子进程停止后,主服务进程退出。它不做正常的关闭进程,下次启动时会启动恢复。建议仅在紧急情况下使用。

pg_ctl提供关闭数据库的方式:

[postgres@localhost ~]$ pg_ctl  -Uteachersun -D $PGDATA stop -m fast
waiting for server to shut down....2022-04-23 08:23:50.954 PDT [45439] LOG:  received fast shutdown request
2022-04-23 08:23:50.954 PDT [45439] LOG:  aborting any active transactions
2022-04-23 08:23:50.955 PDT [45439] LOG:  background worker "logical replication launcher" (PID 45446) exited with exit code 1
2022-04-23 08:23:50.955 PDT [45441] LOG:  shutting down
2022-04-23 08:23:50.960 PDT [45439] LOG:  database system is shut down
 done
server stopped
[postgres@localhost ~]$ pg_ctl -U teachersun restart
pg_ctl: PID file "/PG/postgresql/data/postmaster.pid" does not exist
Is server running?
trying to start server anyway
waiting for server to start....2022-04-23 08:24:17.832 PDT [45602] LOG:  starting PostgreSQL 13.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4), 64-bit
2022-04-23 08:24:17.832 PDT [45602] LOG:  listening on IPv6 address "::1", port 15432
2022-04-23 08:24:17.832 PDT [45602] LOG:  listening on IPv4 address "127.0.0.1", port 15432
2022-04-23 08:24:17.835 PDT [45602] LOG:  listening on Unix socket "/opt/.s.PGSQL.15432"
2022-04-23 08:24:17.836 PDT [45603] LOG:  database system was shut down at 2022-04-23 08:23:50 PDT
2022-04-23 08:24:17.838 PDT [45602] LOG:  database system is ready to accept connections
 done
server started

 

pg_ctl stop #默认fast模式关闭

pg_ctl stop -m smart/fast/immediate 

还可以直接kill进程号的方式,进程号在数据目录的postmaster.pid文件中

kill -INT ‘head -1 /usr/local/pgsql/data/postmaster.pid‘

PostgreSQL简单管理(一)_DBA Fighting!的技术博客_51CTO博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunTeacher

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值