I. 教程
II. SQL 语言
III. 服务器管理
- 章14. 安装指导
- 章15. 在 Windows 上安装客户端
- 章16. 操作系统环境
- 章17. 服务器配置
- 章18. 数据库角色和权限
- 章19. 管理数据库
- 章21. 区域
- 章20. 用户认证
- 章22. 日常数据库维护工作
- 章23. 备份与恢复
- 章24. 高可用性与负载均衡
- 章25. 监控数据库的活动
- 章26. 监控磁盘使用情况
- 章27. 可靠性和预写式日志
- 章28. 回归测试
IV. 客户端接口
- Chapter 28. libpq - C 库
- 章29.
- Chapter 30. ecpg - 在 C 里嵌入 SQL
- Chapter 31. 信息模式
- 31.2. 数据类型
- 31.3. informationschemacatalog_name
- 31.4. applicable_roles
- 31.5. check_constraints
- 31.6. columndomainusage
- 31.7. column_privileges
- 31.8. columnudtusage
- 31.9. columns
- 31.10. constraintcolumnusage
- 31.11. constrainttableusage
- 31.12. datatypeprivileges
- 31.13. domain_constraints
- 31.14. domainudtusage
- 31.15. domains
- 31.16. element_types
- 31.17. enabled_roles
- 31.18. keycolumnusage
- 31.20. referential_constraints
- 31.21. rolecolumngrants
- 31.22. roleroutinegrants
- 31.23. roletablegrants
- 31.24. roleusagegrants
- 31.25. routine_privileges
- 31.26. routines
- 31.27. schemata
- 31.28. sql_features
- 31.29. sqlimplementationinfo
- 31.30. sql_languages
- 31.31. sql_packages
- 31.32. sql_sizing
- 31.33. sqlsizingprofiles
- 31.34. table_constraints
- 31.35. table_privileges
- 31.36. tables
- 31.37. triggers
- 31.38. usage_privileges
- 31.39. viewcolumnusage
- 31.40. viewtableusage
- 31.41. views
V. 服务器端编程
- 章33. 扩展 SQL
- 章34. 触发器
- 章35. 规则系统
- 章36. 过程语言
- 章37. PL/pgSQL - SQL 过程语言
- 章38. PL/Tcl - Tcl 过程语言
- 章39. PL/Perl - Perl 过程语言
- 章40. PL/Python - Python 过程语言
- 章41. 服务器编程接口
VI. 参考手册
- I. SQL 命令
- ABORT
- ALTER AGGREGATE
- ALTER CONVERSION
- ALTER DATABASE
- ALTER DOMAIN
- ALTER FUNCTION
- ALTER GROUP
- ALTER INDEX
- ALTER LANGUAGE
- ALTER OPERATOR
- ALTER OPERATOR CLASS
- ALTER ROLE
- ALTER SCHEMA
- ALTER SEQUENCE
- ALTER TABLE
- ALTER TABLESPACE
- ALTER TRIGGER
- ALTER TYPE
- ALTER USER
- ANALYZE
- BEGIN
- CHECKPOINT
- CLOSE
- CLUSTER
- COMMENT
- COMMIT PREPARED
- COMMIT
- COPY
- CREATE AGGREGATE
- CREATE CAST
- CREATE CONSTRAINT TRIGGER
- CREATE CONVERSION
- CREATE DATABASE
- CREATE DOMAIN
- CREATE FUNCTION
- CREATE GROUP
- CREATE INDEX
- CREATE LANGUAGE
- CREATE OPERATOR CLASS
- CREATE OPERATOR
- CREATE ROLE
- CREATE RULE
- CREATE SCHEMA
- CREATE SEQUENCE
- CREATE TABLE
- CREATE TABLE AS
- CREATE TABLESPACE
- CREATE TRIGGER
- CREATE TYPE
- CREATE USER
- CREATE VIEW
- DEALLOCATE
- DECLARE
- DELETE
- DROP OWNED
- DROP AGGREGATE
- DROP CAST
- DROP CONVERSION
- DROP DATABASE
- DROP DOMAIN
- DROP FUNCTION
- DROP GROUP
- DROP INDEX
- DROP LANGUAGE
- DROP OPERATOR CLASS
- DROP OPERATOR
- DROP ROLE
- DROP RULE
- DROP SCHEMA
- DROP SEQUENCE
- DROP TABLE
- DROP TABLESPACE
- DROP TRIGGER
- DROP TYPE
- DROP USER
- DROP VIEW
- END
- EXECUTE
- EXPLAIN
- FETCH
- GRANT
- INSERT
- LISTEN
- LOAD
- LOCK
- MOVE
- NOTIFY
- PREPARE TRANSACTION
- PREPARE
- REASSIGN OWNED
- REINDEX
- RELEASE SAVEPOINT
- RESET
- REVOKE
- ROLLBACK PREPARED
- ROLLBACK TO SAVEPOINT
- ROLLBACK
- SAVEPOINT
- SELECT
- SELECT INTO
- SET
- SET CONSTRAINTS
- SET ROLE
- SET SESSION AUTHORIZATION
- SET TRANSACTION
- SHOW
- START TRANSACTION
- TRUNCATE
- UNLISTEN
- UPDATE
- VACUUM
- II. PostgreSQL 客户端应用程序
- III. PostgreSQL 服务器应用程序
VII. 内部
- 章42. PostgreSQL 内部概貌
- 章43. 系统表
- 43.1. 概述
- 43.2. pg_aggregate
- 43.3. pg_am
- 43.4. pg_amop
- 43.5. pg_amproc
- 43.6. pg_attrdef
- 43.7. pg_attribute
- 43.8. pg_authid
- 43.9. pgauthmembers
- 43.10. pg_autovacuum
- 43.11. pg_cast
- 43.12. pg_class
- 43.13. pg_constraint
- 43.14. pg_conversion
- 43.15. pg_database
- 43.16. pg_depend
- 43.17. pg_description
- 43.18. pg_index
- 43.19. pg_inherits
- 43.20. pg_language
- 43.21. pg_largeobject
- 43.22. pg_listener
- 43.23. pg_namespace
- 43.24. pg_opclass
- 43.25. pg_operator
- 43.26. pg_pltemplate
- 43.27. pg_proc
- 43.28. pg_rewrite
- 43.29. pg_shdepend
- 43.30. pg_shdescription
- 43.31. pg_statistic
- 43.32. pg_tablespace
- 43.33. pg_trigger
- 43.34. pg_type
- 43.35. 系统视图
- 43.36. pg_cursors
- 43.37. pg_group
- 43.38. pg_indexes
- 43.39. pg_locks
- 43.40. pgpreparedstatements
- 43.41. pgpreparedxacts
- 43.42. pg_roles
- 43.43. pg_rules
- 43.44. pg_settings
- 43.45. pg_shadow
- 43.46. pg_stats
- 43.47. pg_tables
- 43.48. pgtimezoneabbrevs
- 43.49. pgtimezonenames
- 43.50. pg_user
- 43.51. pg_views
- 章44. 前/后端协议
- 章45. PostgreSQL 编码约定
- 章46. 本地语言支持
- 章47. 书写一个过程语言处理器
- 章48. 基因查询优化器
- 章49. 索引访问方法接口定义
- 章50. GiST 索引
- 章51. GIN 索引
- 章52. 数据库物理存储
- 章53. BKI 后端接口
- 章54. 规划器如何使用统计信息
VIII. 附录
pg_ctl
名称
pg_ctl--启动、停止、重启 PostgreSQL语法
pg_ctl
start [-w] [-s] [-D datadir
] [-l filename
] [-o options
] [-p path
]pg_ctl
stop [-W] [-s] [-D datadir
] [-m s[mart] | f[ast] | i[mmediate] ]pg_ctl
restart [-w] [-s] [-D datadir
] [-m s[mart] | f[ast] | i[mmediate] ] [-o options
]pg_ctl
reload [-s] [-D datadir
]pg_ctl
status [-D datadir
]pg_ctl
kill [signal_name
] [process_id
]pg_ctl
register [-N servicename
] [-U username
] [-P password
] [-D datadir
] [-w] [-o options
]pg_ctl
unregister [-N servicename
]
描述
pg_ctl 用于启动、停止、重启 PostgreSQL 后端服务器(postgres),或者显示一个运行着的服务器的状态。尽管可以手动启动服务器,但是 pg_ctl 封装了重新定向日志输出,与终端和进程组合理分离,以及另外提供了一个选项用于有控制的关闭。
在 start
模式里会启动一个新的服务器。服务器是在后台启动的,标准输入被附着到了 /dev/null
上。如果使用了 -l
,那么标准输出和标准错误将被定向到一个日志文件,要么就是重定向到 pg_ctl 的标准输出(而不是标准错误)。如果没有选定日志文件,pg_ctl 的标准输出应该重定向到一个文件或者用管道输出到类似 rotatelogs 这样的日志滚动程序,否则,postgres
将把它的输出写到控制终端(在后台)并且将不会脱离 shell 的进程组。
在 stop
模式下,那个正在特定数据目录运行的服务器将被关闭。你可以用 -m
选项选择三种不同的关闭模式:"Smart"模式等待所有客户端中断连接,这是缺省。"Fast"模式并不等待客户端中断连接,所有活跃事务都被回滚并且客户端都被强制断开。"Immediate"模式将在没有干净关闭的情况下强行退出。这么做将导致在重新启动的时候的恢复。
restart
实际上是先执行一个停止,然后紧跟一个启动。它允许变换 postgres
的命令行选项。
reload
模式简单地给 postgres
发送一个 SIGHUP 信号,导致它重新读取配置文件(postgresql.conf
, pg_hba.conf
等),这样就允许修改配置文件选项而不用重启系统即可生效。
status
模式监查一个服务器是否在指定的数据目录运行,如果是,那么显示其 PID 和调用它的命令行选项。
kill
模式允许你给一个指定的进程发送信号。这个功能对 Microsoft Windows 特别有用,因为它没有 kill 命令。使用 --help
查看支持的信号名字列表。
register
模式允许你在 Microsoft Windows 上注册一个系统服务。
unregister
模式允许你在 Microsoft Windows 上删除先前用 register
命令注册的系统服务。
选项
-D
datadir
声明该数据库的文件系统位置。如果忽略则使用
PGDATA
环境变量。-l
filename
把服务器日志输出附加在
filename
文件上。如果该文件不存在则创建它。umask 设置为 077 ,因此缺省时是不允许从其它用户向日志文件访问的。-m
mode
声明关闭模式。
mode
可以是smart
,fast
,immediate
之一,或者是这三个的首字母之一。-o
options
声明要直接传递给
postgres
的选项。参数通常都用单或者双引号包围以保证它们作为一个整体传递。
-p
path
声明
postgres
可执行文件的位置。缺省位于pg_ctl
自身所在目录,如果没找到则使用硬编码的安装目录。除非你想干点什么特别的事情,并且想得到类似没有找到postgres
这样的错误,否则必须使用这个选项。-s
只打印错误,而不打印提示性信息。
-w
等待启动或者关闭的完成(60 秒超时),这个参数是关闭时的缺省值。成功的关闭是以删除 PID 文件为标志的。对于启动而言,一次成功的
psql -l
就标志着成功。pg_ctl
将企图使用对 psql 合适的端口,如果存在PGPORT
环境变量,那么将用它。否则,它将查找在postgresql.conf
文件里是否设置了一个端口。如果都没有,它将使用 PostgreSQL 编译时的缺省端口(缺省 5432)。在等待的时候,pg_ctl
将根据启动或者关闭的成功状况返回一个准确的退出代码。-W
不等待启动或者停止的完成。这是启动和重启的缺省。
Windows 选项
-N
servicename
要注册的系统服务的名字。这个名字将用于服务名和显示名。
-P
password
用户启动服务的口令
-U
username
用于启动服务的用户的用户名。对于域用户,使用
DOMAIN\username
格式。
环境变量
PGDATA
缺省数据目录位置
PGPORT
psql 的缺省端口(由 -w 选项使用)。
其它的环境变量请参阅 postgres
文件
postmaster.pid
这个文件存在于数据目录中是为了帮助 pg_ctl 判断服务器当前是否在运行。
postmaster.opts.default
如果这个文件存在于数据目录,pg_ctl (在
start
模式下)将把文件地内容当作传递给postgres
命令的选项传递过去,除非被-o
选项覆盖。postmaster.opts
如果这个文件存在于数据目录,pg_ctl (在
start
模式下)将把文件地内容当作传递给postgres
命令的选项传递过去,除非被-o
选项覆盖。这个文件的内容也会在status
模式里显示出来。postgresql.conf
这个文件在数据目录中,会分析它以查找和 psql 一起用的合适的端口(在
start
模式里给出-w
的时候)。
注意
等待完全启动还不是一个定义得很完整的操作,如果访问控制设置为本地客户端在没有手工交互的情况下不能访问的话还可能会失效(比如口令认证)。
例子
启动服务器
启动服务器:
$ pg_ctl start
启动服务器的一个例子,等到服务器启动了才退出:
$ pg_ctl -w start
服务器使用 5433 端口,而且不带 fsync
运行,使用:
$ pg_ctl -o "-F -p 5433" start
停止服务器
$ pg_ctl stop
使用 -m
选项停止服务器允许用户控制如何关闭后端。
重启服务器
这个命令几乎等于先停止服务器然后再启动它,只不过 pg_ctl
保存并重新使用上一次运行服务器的命令行参数。重启服务器的最简单的方法是:
$ pg_ctl restart
重启服务器,等待其停止和重启:
$ pg_ctl -w restart
使用 5433 端口重启并且重启后关闭 fsync
:
$ pg_ctl -o "-F -p 5433" restart
显示服务器状态
下面是来自 pg_ctl 的状态输出的例子:
$ pg_ctl status pg_ctl: server is running (pid: 13718) Command line was: /usr/local/pgsql/bin/postgres '-D' '/usr/local/pgsql/data' '-p' '5433' '-B' '128'
这就是在 restart 模式中被调用的命令行。
又见
postgres
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论