服务器应用程序
这些命令只能用 于在数据库服务器所在的主机上运行。
1、initdb
initdb 创建一个新的数据库集群。一个数据库集群是由单个服务器实例管理的多个数据库的集合。
示例
initdb -E UTF-8 -D /var/lib/pgsql/data --locale=en_US.UTF-8 -U postgres -W
2、pg_controldata
pg_controldata 打印那些在 initdb 过程中初始化的信息,比如目录版本。它 还显示有关预写日志和检查点处理相关的信息。这些信息是集群范围内有效 的,并不和某个数据库相关。
示例
[highgo@hgdb ~]$ pg_controldata $PGDATA
pg_control version number: 922
Catalog version number: 201204301
Database system identifier: 6403177730176577149
Database cluster state: in production
pg_control last modified: Thu 30 Mar 2017 07:29:56 PM CST
Latest checkpoint location: 0/1995290
Prior checkpoint location: 0/197C4D8
Latest checkpoint's REDO location: 0/1995290
Latest checkpoint's TimeLineID: 1
Latest checkpoint's full_page_writes: on
Latest checkpoint's NextXID: 0/1888
Latest checkpoint's NextOID: 24621
Latest checkpoint's NextMultiXactId: 1
Latest checkpoint's NextMultiOffset: 0
Latest checkpoint's oldestXID: 1802
Latest checkpoint's oldestXID's DB: 1
Latest checkpoint's oldestActiveXID: 0
Time of latest checkpoint: Thu 30 Mar 2017 07:29:53 PM CST
Minimum recovery ending location: 0/0
Backup start location: 0/0
Backup end location: 0/0
End-of-backup record required: no
Current wal_level setting: minimal
Current max_connections setting: 100
Current max_prepared_xacts setting: 0
Current max_locks_per_xact setting: 64
Maximum data alignment: 8
Database block size: 8192
Blocks per segment of large relation: 131072
WAL block size: 8192
Bytes per WAL segment: 16777216
Maximum length of identifiers: 64
Maximum columns in an index: 32
Maximum size of a TOAST chunk: 1996
Date/time type storage: 64-bit integers
Float4 argument passing: by value
Float8 argument passing: by value
3、pg_ctl
pg_ctl 用于初始化数据库集群,启动、停止、重启后端数据库服务器(highgo), 或者显示一个运行着的服务器的状态。
语法
pg_ctl init[db] [-s] [-D datadir] [-o options]
pg_ctl start [-w] [-t seconds] [-s] [-D datadir] [-l filename] [-o options] [-p path] [-c]
pg_ctl stop [-W] [-t seconds] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] pg_ctlrestart [-w] [-tseconds] [-s] [-Ddatadir] [-c] [-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] [- t seconds] [-o options]
pg_ctl unregister [-N servicename]
4、pg_resetxlog
pg_resetxlog 清理预写日志(WAL)并且可以有选择地重置其它一些存储在 pg_control 文件中的控制信息。有时候,如果这些文件崩溃了,就需要这个 功能。一定只把它用作最后的方法,就是说只有因为这样的崩溃导致服务器 无法启动的时候才使用。
一定要记住数据库可 能因为部分提交的事务而含有不完整的数据。你应该马上转储数据,运行 initdb,然后重新加载。在重新加载之后,检查不完整的部分然后根据需要进 行修复。
如果 pg_resetxlog 抱怨说它无法判断用于 pg_control 的有效数据,那么你可 以强制它继续处理,方法是声明-f(强制)开关。在这种情况下,那些丢失了的 数据将用模糊的近似数值代替。
#在服务器运行的时候一定不要运行这个命令。如果发现在数据文件目录里有 锁文件,那么 pg_resetxlog 将拒绝启动。如果服务器崩溃,那么可能会剩下 一个锁文件;如果这样,你可以删除该锁文件以便允许 pg_resetxlog 运行。 但是在你这么做之前,一定要确保没有任何后端服务器进程仍在运行。
5、postgres
postgres 是 HighGoDB 数据库服务。客户端应用程序为了访问数据库, 将通过 TCP Socket 或 Unix domain socket 连接到一个运行中的 postgres 进程。然后该 postgres 实例将启动(fork)一个新的、独立的服务进程来 处理这个连接。
启动一个单用户模式的服务:
postgres --single -D /usr/local/pgsql/data other-options my_database
示例
用缺省值在后台启动 postgres :
$ nohup postgres >logfile 2>&1 </dev/null &
在指定的端口启动 postgres :
$ postgres -p 1234
这条命令将在端口 1234 启动 postgres 。你应该这样使用 psql 与之连接: $ psql -p 1234
或者设置环境变量 PGPORT :
$ export PGPORT=1234
$ psql
命名的运行时参数可以用下列的风格之一设置:
$ postgres -c work_mem=1234
$ postgres --work-mem=1234
两种形式都覆盖那些现有的在 postgresql.conf 里面的 work_mem 设置。 请注意在参数名里的下划线在命令行上可以写成下划线,也可以写成连字符。 除了用于短期的实验以外,更好的习惯是编辑 postgresql.conf 里面的设 置,而不是倚赖命令行开关设置参数。
这些命令只能用 于在数据库服务器所在的主机上运行。
1、initdb
initdb 创建一个新的数据库集群。一个数据库集群是由单个服务器实例管理的多个数据库的集合。
示例
initdb -E UTF-8 -D /var/lib/pgsql/data --locale=en_US.UTF-8 -U postgres -W
2、pg_controldata
pg_controldata 打印那些在 initdb 过程中初始化的信息,比如目录版本。它 还显示有关预写日志和检查点处理相关的信息。这些信息是集群范围内有效 的,并不和某个数据库相关。
示例
[highgo@hgdb ~]$ pg_controldata $PGDATA
pg_control version number: 922
Catalog version number: 201204301
Database system identifier: 6403177730176577149
Database cluster state: in production
pg_control last modified: Thu 30 Mar 2017 07:29:56 PM CST
Latest checkpoint location: 0/1995290
Prior checkpoint location: 0/197C4D8
Latest checkpoint's REDO location: 0/1995290
Latest checkpoint's TimeLineID: 1
Latest checkpoint's full_page_writes: on
Latest checkpoint's NextXID: 0/1888
Latest checkpoint's NextOID: 24621
Latest checkpoint's NextMultiXactId: 1
Latest checkpoint's NextMultiOffset: 0
Latest checkpoint's oldestXID: 1802
Latest checkpoint's oldestXID's DB: 1
Latest checkpoint's oldestActiveXID: 0
Time of latest checkpoint: Thu 30 Mar 2017 07:29:53 PM CST
Minimum recovery ending location: 0/0
Backup start location: 0/0
Backup end location: 0/0
End-of-backup record required: no
Current wal_level setting: minimal
Current max_connections setting: 100
Current max_prepared_xacts setting: 0
Current max_locks_per_xact setting: 64
Maximum data alignment: 8
Database block size: 8192
Blocks per segment of large relation: 131072
WAL block size: 8192
Bytes per WAL segment: 16777216
Maximum length of identifiers: 64
Maximum columns in an index: 32
Maximum size of a TOAST chunk: 1996
Date/time type storage: 64-bit integers
Float4 argument passing: by value
Float8 argument passing: by value
3、pg_ctl
pg_ctl 用于初始化数据库集群,启动、停止、重启后端数据库服务器(highgo), 或者显示一个运行着的服务器的状态。
语法
pg_ctl init[db] [-s] [-D datadir] [-o options]
pg_ctl start [-w] [-t seconds] [-s] [-D datadir] [-l filename] [-o options] [-p path] [-c]
pg_ctl stop [-W] [-t seconds] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] pg_ctlrestart [-w] [-tseconds] [-s] [-Ddatadir] [-c] [-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] [- t seconds] [-o options]
pg_ctl unregister [-N servicename]
4、pg_resetxlog
pg_resetxlog 清理预写日志(WAL)并且可以有选择地重置其它一些存储在 pg_control 文件中的控制信息。有时候,如果这些文件崩溃了,就需要这个 功能。一定只把它用作最后的方法,就是说只有因为这样的崩溃导致服务器 无法启动的时候才使用。
一定要记住数据库可 能因为部分提交的事务而含有不完整的数据。你应该马上转储数据,运行 initdb,然后重新加载。在重新加载之后,检查不完整的部分然后根据需要进 行修复。
如果 pg_resetxlog 抱怨说它无法判断用于 pg_control 的有效数据,那么你可 以强制它继续处理,方法是声明-f(强制)开关。在这种情况下,那些丢失了的 数据将用模糊的近似数值代替。
#在服务器运行的时候一定不要运行这个命令。如果发现在数据文件目录里有 锁文件,那么 pg_resetxlog 将拒绝启动。如果服务器崩溃,那么可能会剩下 一个锁文件;如果这样,你可以删除该锁文件以便允许 pg_resetxlog 运行。 但是在你这么做之前,一定要确保没有任何后端服务器进程仍在运行。
5、postgres
postgres 是 HighGoDB 数据库服务。客户端应用程序为了访问数据库, 将通过 TCP Socket 或 Unix domain socket 连接到一个运行中的 postgres 进程。然后该 postgres 实例将启动(fork)一个新的、独立的服务进程来 处理这个连接。
启动一个单用户模式的服务:
postgres --single -D /usr/local/pgsql/data other-options my_database
示例
用缺省值在后台启动 postgres :
$ nohup postgres >logfile 2>&1 </dev/null &
在指定的端口启动 postgres :
$ postgres -p 1234
这条命令将在端口 1234 启动 postgres 。你应该这样使用 psql 与之连接: $ psql -p 1234
或者设置环境变量 PGPORT :
$ export PGPORT=1234
$ psql
命名的运行时参数可以用下列的风格之一设置:
$ postgres -c work_mem=1234
$ postgres --work-mem=1234
两种形式都覆盖那些现有的在 postgresql.conf 里面的 work_mem 设置。 请注意在参数名里的下划线在命令行上可以写成下划线,也可以写成连字符。 除了用于短期的实验以外,更好的习惯是编辑 postgresql.conf 里面的设 置,而不是倚赖命令行开关设置参数。