# 皮克_控制

皮克_ctl — 初始化、启动、停止或控制 PostgreSQL 服务器

# 概要

pg_ctl 初始化[分贝] [-D 数据目录][-s] [-o *`initdb 选项-]

pg_ctl 开始 [-D 数据目录][-l filename] [-W][-t seconds] [-s][-o options] [-p 小路][-c]

pg_ctl 停止 [-D 数据目录]-m 聪明的] | 快速地] | 即时] ] [-W][-t seconds] [-s]

pg_ctl 重新开始 [-D 数据目录]-m 聪明的] | 快速地] | 即时] ] [-W][-t seconds] [-s][-o options] [-c]

pg_ctl 重新加载 [-D 数据目录][-s]

pg_ctl 状态 [-D 数据目录]

pg_ctl 推动 [-D 数据目录][-w] [-t ][-s]

pg_ctl 对数旋转 [-D 数据目录][-s]

pg_ctl 信号名称 process_id

在 Microsoft Windows 上,还:

pg_ctl 登记 [-D 数据目录][-n servicename] [-U 用户名][-p password] [-S 汽车] | 要求] ][-e source] [-W][-t seconds] [-s][-o options]

pg_ctl 注销 [-N 服务名称]

# 描述

皮克_ctl 是用于初始化 PostgreSQL 数据库集群、启动、停止或重新启动 PostgreSQL 数据库服务器的实用程序(postgres),或显示正在运行的服务器的状态。虽然可以手动启动服务器,pg_ctl 封装了诸如重定向日志输出和正确地从终端和进程组中分离等任务。它还为受控关闭提供了方便的选项。

在里面要么初始化数据库模式创建一个新的 PostgreSQL 数据库集群,即将由单个服务器实例管理的数据库集合。这种模式调用初始化数据库命令。看初始化数据库详情。

开始模式启动一个新服务器。服务器在后台启动,其标准输入附加到/dev/null(要么在 Windows 上)。在类 Unix 系统上,默认情况下,服务器的标准输出和标准错误被发送到 pg_ctl 的标准输出(不是标准错误)。pg的标准输出_然后 ctl 应该被重定向到一个文件或通过管道传输到另一个进程,例如像 rotatelogs 这样的日志轮换程序;否则postgres将其输出写入控制终端(从后台),并且不会离开 shell 的进程组。在 Windows 上,默认情况下服务器的标准输出和标准错误被发送到终端。这些默认行为可以通过使用来改变-l将服务器的输出附加到日志文件。使用任一-l或建议使用输出重定向。

停止mode 关闭在指定数据目录中运行的服务器。可以选择三种不同的关机方式-m选项。“智能”模式不允许新连接,然后等待所有现有客户端断开连接并完成任何在线备份。如果服务器处于热备状态,一旦所有客户端断开连接,恢复和流复制将终止。“快速”模式(默认)不等待客户端断开连接,并将终止正在进行的在线备份。回滚所有活动事务并强制断开客户端连接,然后关闭服务器。“立即”模式将立即中止所有服务器进程,无需彻底关闭。此选择将导致下一次服务器启动期间的崩溃恢复周期。

重新开始模式有效地执行一个停止,然后是一个开始。这允许改变postgres命令行选项,或更改配置文件选项,如果不重新启动服务器就无法更改。如果在服务器启动期间在命令行上使用了相对路径,重新开始可能会失败,除非 pg_ctl 在与服务器启动期间相同的当前目录中执行。

重新加载模式只是发送postgres服务器处理一个 SIGHUP 信号,导致它重新读取其配置文件(postgresql.conf,pg_hba.conf, ETC。)。这允许更改不需要完全重新启动服务器即可生效的配置文件选项。

地位mode 检查服务器是否在指定的数据目录中运行。如果是,则显示服务器的 PID 和用于调用它的命令行选项。如果服务器没有运行,pg_ctl 返回退出状态 3.如果没有指定可访问的数据目录,pg_ctl 返回退出状态 4.推动

mode 命令在指定数据目录中运行的备用服务器结束备用模式并开始读写操作。对数旋转

mode 轮换服务器日志文件。有关如何将此模式与外部日志轮换工具一起使用的详细信息,请参阅第 25.3 节.

mode 向指定进程发送信号。这在没有内置 kill 命令的 Microsoft Windows 上主要是有价值的。采用- 帮助查看支持的信号名称列表。

登记mode 将 PostgreSQL 服务器注册为 Microsoft Windows 上的系统服务。这-S选项允许选择服务启动类型,“自动”(系统启动时自动启动服务)或“需求”(按需启动服务)。

注销mode 取消注册 Microsoft Windows 上的系统服务。这取消了登记命令。

# 选项

-c
--核心文件

尝试允许服务器崩溃以在可能的平台上生成核心文件,方法是解除对核心文件的任何软资源限制。通过允许从失败的服务器进程获取堆栈跟踪,这在调试或诊断问题时很有用。

-D *数据目录*
--pgdata=*数据目录*

指定数据库配置文件的文件系统位置。如果省略此选项,则环境变量PGD​​ATA用来。

-l *文件名*
--log=*文件名*

将服务器日志输出附加到*文件名*.如果文件不存在,则创建它。umask 设置为 077,因此默认情况下不允许其他用户访问日志文件。

-m *模式*
--模式=*模式*

指定关闭模式。*模式*可聪明的,快速地, 或者即时,或这三个中的一个的第一个字母。如果省略此选项,快速地是默认值。

-o *选项*
--选项=*选项*

指定要直接传递给postgres命令。-o可以多次指定,并传递所有给定的选项。

这*选项*通常应该用单引号或双引号括起来,以确保它们作为一个组传递。

-o *initdb 选项*
--选项=*initdb 选项*

指定要直接传递给初始化数据库命令。-o可以多次指定,并传递所有给定的选项。

这*initdb 选项*通常应该用单引号或双引号括起来,以确保它们作为一个组传递。

-p *小路*

指定的位置postgres可执行。默认情况下postgres可执行文件取自与pg_ctl,或失败,硬连线安装目录。没有必要使用此选项,除非您正在做一些不寻常的事情并得到错误postgres找不到可执行文件。

在里面模式,此选项类似地指定的位置初始化数据库可执行。

-s
- 无声

仅打印错误,不打印信息性消息。

-t **
--超时=**

指定等待操作完成时等待的最大秒数(请参阅选项-w)。默认值为PGCTL超时环境变量,如果未设置,则为 60 秒。

-V
- 版本

打印 pg_ctl 版本并退出。

-w
- 等待

等待操作完成。模式支持此功能开始,停止,重新开始,推动, 和登记,并且是这些模式的默认值。

等的时候,pg_ctl反复检查服务器的 PID 文件,在检查之间休眠一小段时间。当 PID 文件指示服务器已准备好接受连接时,则认为启动已完成。当服务器删除 PID 文件时,关闭被视为完成。pg_ctl根据启动或关闭的成功返回退出代码。

如果操作未在超时时间内完成(请参阅选项-t), 然后pg_ctl以非零退出状态退出。但请注意,该操作可能会在后台继续并最终成功。

-W
--无需等待

不要等待操作完成。这与选项相反-w.

如果禁用等待,则触发请求的操作,但没有关于其成功的反馈。在这种情况下,必须使用服务器日志文件或外部监控系统来检查操作的进度和成功。

在 PostgreSQL 的早期版本中,这是默认值,除了停止模式。

-?
- 帮助

显示关于 pg 的帮助_ctl 命令行参数,然后退出。

如果指定了一个有效的选项,但与所选的操作模式无关,pg_ctl 忽略它。

# 适用于 Windows 的选项

-e *来源*

pg 的事件源名称_作为 Windows 服务运行时用于记录到事件日志的 ctl。默认是PostgreSQL.请注意,这只控制从 pg 发送的消息_ctl 本身;一旦启动,服务器将使用其指定的事件源事件_来源范围。如果服务器在启动时很早就失败,在设置该参数之前,它也可能使用默认事件源名称记录PostgreSQL.

-N *服务名称*

要注册的系统服务的名称。此名称将用作服务名称和显示名称。默认是PostgreSQL.

-P *密码*

用户运行服务的密码。

-S *开始类型*

系统服务的启动类型。*开始类型*可汽车, 要么要求,或这两个中的一个的第一个字母。如果省略此选项,汽车是默认值。

-U *用户名*

运行服务的用户的用户名。对于域用户,使用格式域\用户名.

# 环境

PGCTL超时

等待启动或关闭完成时等待的秒数的默认限制。如果未设置,则默认值为 60 秒。

PGD​​ATA

默认数据目录位置。

最多pg_ctl模式需要知道数据目录位置;因此,-D选项是必需的,除非PGD​​ATA已设置。

pg_ctl与大多数其他 PostgreSQL 实用程序一样,也使用 libpq 支持的环境变量(请参阅第 34.15 节)。

有关影响服务器的其他变量,请参阅postgres.

# 文件

邮递员.pid

皮克_ctl 检查数据目录中的这个文件以确定服务器当前是否正在运行。

postmaster.opts

如果这个文件存在于数据目录中,pg_ctl(在重新开始mode) 会将文件的内容作为选项传递给 postgres,除非被-o选项。该文件的内容也显示在地位模式。

# 例子

# 启动服务器

要启动服务器,等待服务器接受连接:

$ pg_ctl start

使用端口 5433 启动服务器,并且不运行同步, 采用:

$ pg_ctl -o "-F -p 5433" start

# 停止服务器

要停止服务器,请使用:

$ pg_ctl stop

-m选项允许控制如何服务器关闭:

$ pg_ctl stop -m smart

# 重新启动服务器

重新启动服务器几乎等同于停止服务器并重新启动它,除了默认情况下,pg_ctl保存并重用传递给先前运行实例的命令行选项。要使用与以前相同的选项重新启动服务器,请使用:

$ pg_ctl restart

但如果-o已指定,它将替换任何先前的选项。要使用端口 5433 重新启动,请禁用同步重新启动时:

$ pg_ctl -o "-F -p 5433" restart

# 显示服务器状态

这是 pg 的示例状态输出_控制:

$ pg_ctl status

pg_ctl: server is running (PID: 13718)
/usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data" "-p" "5433" "-B" "128"

第二行是将在重新启动模式下调用的命令。

# 也可以看看

初始化数据库,postgres