您的位置:58脚本 > PostgreSQL 关闭服务器

PostgreSQL 关闭服务器

2023-04-29 17:32

 PostgreSQL 关闭服务器

有几种关闭数据库服务器的方法。在后台,它们都简化为向主管 postgres 进程发送信号。

如果您使用的是 PostgreSQL 的预打包版本,并且您使用其规定来启动服务器,那么您还应该使用其规定来停止服务器。 有关详细信息,请参阅包级文档。

直接管理服务器时,可以通过向 postgres 进程发送不同的信号来控制关闭的类型:

SIGTERM

这是智能关闭模式。在接收SIGTERM后, 服务器将不允许新连接,但是会让现有的会话正常结束它们的工作。仅当所有的会话终止后它才关闭。 如果服务器处在线备份模式,它将等待直到在线备份模式不再被激活。当在线备份模式被激活时, 仍然允许新的连接,但是只能是超级用户的连接(这一例外允许超级用户连接来终止在线备份模式)。 如果服务器在恢复时请求智能关闭,恢复和流复制只有在所有正常会话都终止后才停止。

SIGINT

这是快速关闭模式。服务器不再允许新的连接,并向所有现有服务器进程发送SIGTERM,让它们中断当前事务并立刻退出。然后服务器等待所有服务器进程退出并最终关闭。 如果服务处于在线备份模式,备份模式将被终止并致使备份无用。

SIGQUIT

这是立即关闭模式。服务器将给所有子进程发送 SIGQUIT并且等待它们终止。如果有任何进程没有在 5 秒内终止,它们将被发送 SIGKILL。主服务器进程将在所有子进程退出之后立刻退出,而无需做普通的数据库关闭处理。这将导致在下一次启动时(通过重放 WAL 日志)恢复。只在紧急 时才推荐这种方式。

pg_ctl程序提供了一个发送这些信号关闭服务器的方便的接口。 另外,你在非 Windows 系统上可以用kill直接发送这些信号。可以用ps程序或者从数据目录的 postmaster.pid文件中找到postgres进程的PID。例如,要做一次快速关闭:

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

重要

最好不要使用SIGKILL关闭服务器。这样做将会阻止服务器释放共享内存和信号量。 此外,使用SIGKILL杀掉postgres进程时,postgres不会有机会将信号传播到它的子进程,所以可能也必须手工杀掉单个的子进程。

要终止单个会话同时允许其他会话继续,使用pg_terminate_backend()(参阅表 9.84) 或发送SIGTERM信号到该会话相关的子进程。


阅读全文
以上是58脚本为你收集整理的 PostgreSQL 关闭服务器全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  •  PostgreSQL 从源代码安装

    PostgreSQL 从源代码安装

    目录16.1. 简单版16.2. 要求16.3. 获取源码16.4. 安装过程16.4.1. configure 选项16.4.2. configure 环境变量16.5. 安装后设置16...

  •  PostgreSQL 信息模式

    PostgreSQL 信息模式

    目录36.1. 模式36.2. 数据类型36.3. information_schema_catalog_name36.4. administrable_role_​authorizations36.5. applicab...

  •  PostgreSQL 函数易变性分类

    PostgreSQL 函数易变性分类

    每一个函数都有一个易变性分类,可能是 VOLATILE、STABLE或者IMMUTABLE。 如果CREATE FUNCTION命令没有指定一个分类,则默认是VO...

  •  PostgreSQL 一个完整的触发器实例

    PostgreSQL 一个完整的触发器实例

    这里有一个用 C 编写的触发器函数的非常简单的例子(用过程语言编写的触发器的例子可以在过程语言的文档中找到)。如果该命令试...

  •  PostgreSQL 视和规则系统

    PostgreSQL 视和规则系统

    40.2.1. SELECT规则如何工作40.2.2. 非SELECT语句中的视图规则40.2.3. PostgreSQL中视图的能力40.2.4. 更新一个视图 Postgre...

  •  PostgreSQL PL/Tcl 中的触发器函数

    PostgreSQL PL/Tcl 中的触发器函数

    触发器函数也可以用 PL/Tcl 编写。PostgreSQL要求能作为触发器被调用的函数必须被声明为没有参数并且返回类型为trigger。来自于...

  •  PostgreSQL PL/Python 函数

    PostgreSQL PL/Python 函数

    PL/Python 中的函数通过标准的CREATE FUNCTION语法声明:CREATE FUNCTION funcname (argument-list)RETURNS return-typeAS $$# P...

  •  PostgreSQL 服务器编程接口

    PostgreSQL 服务器编程接口

    目录46.1. 接口函数SPI_connect — 连接一个C函数到 SPI 管理器SPI_finish — 将一个C函数从 SPI 管理器断开SPI_execute — 执行...

  •  Frameset onload 事件

    Frameset onload 事件

    Frameset onload Event Frameset 对象定义和用法onload 事件在页面载入完成后被触发。语法onload="JavaScriptCode"参数描述JavaS...

  • htmldisplay属性 HTML DOM Audio played 属性

    htmldisplay属性 HTML DOM Audio played 属性

    Audio played 属性 Audio 对象实例获得音频中以秒计的首段已播放的范围(部分):var x = document.getElementById("myAudio");d...

© 2024 58脚本 58jiaoben.com 版权所有 联系我们
桂ICP备12005667号-28 Powered by CMS