-
AUSTRALIAN_TIMEZONES
(
bool
)
-
如果设置为真,那么
CST
,
EST
,和
SAT
都解释成
Australian 时区,而不是北美中/东部时区和周六.缺省是假.
-
AUTHENTICATION_TIMEOUT
(
integer
)
-
完成客户端认证的最长时间,以秒记.如果一个准客户未能在这个时间长度内
完成认证协议,那么服务器将自行中断联接.这样就避免了挂起的客户端
无限制地占据联接.这个选项只能在服务器启动的时候在
postgresql.conf
文件里设置.
-
DEADLOCK_TIMEOUT
(
整数
)
-
这个是以毫秒计的时间,用于设置在检查是否存在死锁条件之前的等待
时间.
检查是否存在死锁条件是一个缓慢的过程,因此我们不希望我们每次
等待锁的时候都运行这个过程.我们(乐观地?)假设在生产应用中的死锁
是不常出现的,因此我们在开始询问是否可以解锁之前只等待一个锁
相对短的一段时间.
增加这个值就减少了浪费在无用的死锁检查上的时间,但是减慢了报告
真正死锁错误的速度.
缺省是 1000(也就是 1 秒),可能是你能够耐心等待的最短时间.
在一个重载的服务器上,你可能需要增大它.这个值的典型设置应该
超过你的事务的时间,这样就可以减少在锁释放之前就开始死锁检查的
问题.
这个选项只能在服务器启动的时候设置.
-
DEFAUL_TRANSACTION_ISOLATION
(
字串
)
-
每个 SQL 事务都有一个隔离级别,可以是
"读已提交"
或者是
"可串性化"
.这个参数控制每个新的事务设置的
隔离级别.缺省是读已提交.
参考
PostgreSQL 用户手册
和命令
SET TRANSACTION
获取更多信息.
-
DYNAMIC_LIBRARY_PATH
(
string
)
-
如果需要打开一个可以动态装载的模块并且声明的名字没有目录
部分(也就是说名字里不包含斜扛),那么系统将搜索这个目录以
查找声明的文件.(所使用的名字就是在
CREATE FUNCTION
或者
LOAD
命令中声明的名字.)
用于 dynamic_library_path 的数值必须是一个冒号分隔的
绝对路径名字列表.如果一个路径名字以特殊变量
$libdir
,
PostgreSQL
编译好的库目录,开头,
那么就替换为
PostgreSQL
发布提供的模块安装路径.
下面是一个例子数值∶
用于这个参数的缺省数值是
$libdir
.
如果该数值设置为空字串,那么就会关闭自动路径查找.
这个参数可以在运行时由超级用户修改,但是请注意这样设置的
参数只持续到该客户联接的终止,因此这个方法应该保留给开发用途.
我们推荐在
postgresql.conf
配置文件里设置这个
参数.
-
FSYNC
(
布尔
)
-
如果这个选项打开,
PostgreSQL
后端就会在若干个
位置调用
fsync()
系统调用以保证更新物理地写入磁盘
而不是悬在写缓冲区里.
这样做极大地增加了一个数据库安装在经历了大规模的操作系统或硬件
崩溃后仍然可用的机会.(数据库服务器的崩溃
不会
出现这个问题).
不过,这个操作大大地降低了
PostgreSQL
的速度,因为在所有的这些位置,它都必须
停下来等待操作系统输出它的缓冲区.
没有
fsync
的时候,操作系统就可以尽可能地处理好
缓冲,排序,和后写,因此可以有
非常
显著的性能提升.
不过,如果系统崩溃,一次已经提交的事务的部分数据--对应是磁盘上
的信息--将仍然停留在内存中.就可能导致不连贯的数据
这个选项一直在
PostgreSQL
用户和开发者社团里有
争论,有些人总是把它关闭,有些人只是在大量数据装载的时候才
关闭它,这样如果出错了的话就有一个显而易见的重新开始的起点.
有些人把它打开只是为了保证安全.因为这样做更安全,所以
缺省是打开的.如果你信任你的操作系统,你的
硬件和你的工具公司(或者是你的 UPS),你可能愿意关闭它.
我们需要指出的是做
fsync
的性能下降在
PostgreSQL
版本 7.1 里面比以前版本显著减少了.如果以前你因为性能原因
禁止了
fsync
,那么现在你可能会重新考虑一下.
这个选项只能在服务器启动的时候设置,或者设置在
postgresql.conf
文件里.
-
KRB_SERVER_KEYFILE
(
字串
)
-
设置 Kerberos 服务器密钥文件的位置.参阅
Section 4.2.3
获取细节.
-
MAX_CONNECTIONS
(
整数
)
-
决定允许多少个并发联接.缺省是 32
(除非在制作服务器的时候修改).
这个选项只能在服务器启动的时候设置.
-
MAX_EXPR_DEPTH
(
整数
)
-
设置分析器接受的最大表达式嵌套深度.缺省值对任何常见查询来说
都够高了,但是如果你需要的话你可以提高这个数值.
(不过如果你把它升得太高,你就得冒因为栈溢出导致的后端崩溃
的风险.)
-
MAX_FILES_PER_PROCESS
(
integer
)
-
设置每个服务器子进程中同时打开的文件数目的最大值.
缺省是 1000.代码实际使用的限制要比这个设置以及
sysconf(_SC_OPEN_MAX)
的结果小.
因此,在那些返回合理限制的系统上,你用不着担心这个设置.
但是在一些平台上(特别是大多数 BSD 系统),
sysconf
返回的值要远比大量进程同时试图打开该数量的文件时
系统所能支持的大.如果你发现自己看到
"打开太多文件(Too many open files)"
错误,
那么试着降低这个设置看看.这个选项只能在服务器启动时设置,
或者在
postgresql.conf
配置文件中设置;
如果在配置文件中修改了它,那么它只影响随后启动的服务器子进程.
-
MAX_FSM_RELATIONS
(
integer
)
-
设置那些自由空间是通过放在共享的自由空间映射表中进行跟踪的关系(表)的
最大数目.
缺省是 100.这个选项只能在服务器启动的时候设置.
-
MAX_FSM_PAGES
(
integer
)
-
设置那些自由空间是通过放在共享的自由空间映射表中进行跟踪的
最大磁盘页面数目.缺省是 10000.这个选项只能在服务器启动的时候设置.
-
MAX_LOCKS_PER_TRANSACTION
(
integer
)
-
共享表的大小是以假设任意时刻最多只有
max_locks_per_transaction
*
max_connections
个独立的对象需要被锁住为基础进行计算的.缺省值 64,已经经历史证明
是足够的了,不过如果你的客户可能在一个事务里面修改很多不同的表,
那么你就可能需要提高这个数值.这个选项只能在服务器启动的时候设置.
-
PORT
(
整数
)
-
服务器侦听的 TCP 端口;缺省 5432.这个选项只能在服务器启动的时候设置.
-
SHARED_BUFFERS
(
整数
)
-
设置数据库服务器将使用的共享内存缓冲区数量.缺省是 64.
每个缓冲区大小的典型值是 8192 字节.
这个选项只能在服务器启动的时候设置.
-
SILENT_MODE
(
bool
)
-
安静地运行 postmaster.如果设置这个选项, postmaster 将自动
在后台运行并且抛弃掉控制 tty,因此不会有任意信息输出到
stdout
或
stderr
(和 postmaster 的 -S 选项效果相同).除非打开了
比如
syslog
这样的日志系统,
我们不建议使用这个选项,因为这样令查找错误信息非常困难.
-
SORT_MEM
(
整数
)
-
声明在求助于临时磁盘文件之前用于内部排序和散列(hash)的内存
的数量.此值是以千字节为计量单位的,缺省为 512KB.
请注意,对于复杂查询,多个排序和/或散列(hash)可能会并行
运行,而且在开始向临时文件输出数据之前,
每个操作都会被允许使用这里声明的数量的内存.
因为每个后端都会做一个或更多的排序,因此需要的空间可能是
SORT_MEM
的许多倍.
-
SQL_INHERITANCE
(
布尔
)
-
这个选项控制继承语义,尤其是在缺省时是否在各种命令里考虑
把子表包括进来.
版本 7.1 以前的特性不是这样的.如果你需要老特性,你可以把这个变量
设为假,但是从长远看来,我们建议你修改你的应用以使用
ONLY
关键字来排除子表.参考 SQL 语言索引
和
用户手册
获取关于继承的更多信息.
-
SSL
(
布尔数
)
-
打开
SSL
联接.使用之前请参阅
Section 3.7
.缺省是关.
-
TCPIP_SOCKET
(
布尔
)
-
如果此值为真,那么服务器接受 TCP/IP 联接.
否则只接受本地的 Unix 域套接字联接.
缺省是关闭.
这个选项只能在服务器启动的时候设置.
-
TRANSFORM_NULL_EQUALS
(
boolean
)
-
如果打开它,那么下面这样的表达式
expr
= NULL
(或者
NULL =
expr
) 被当做
expr
IS NULL
,处理,也就是说,
如果
expr
得出 NULL 值则返回真,否则返回假.
expr
= NULL
的正确的行为总是返回
NULL(未知).因此这个选项缺省时是关闭的.
不果,在
Microsoft Access
里的过滤表单
生成的查询好像使用的是
expr
= NULL
测试 NULL,
因此,如果你使用这个界面访问数据库,你可能想把这个选项打开.
因为形如
expr
= NULL
的
表达式总是返回 NULL (使用正确的代换),因此它们并不常用,
而且在一般的应用中也不常见,因此这个选项实际上没有什么害处.
但是新用户常常在涉及 NULL 的表达式语义上感到胡涂,
因此我们缺省时并不打开这个选项.
请注意这个选项只影响文本的
=
操作符,
不包括其它比较操作符或者其它与一些涉及等号操作符的
表达式计算(比如
IN
).因此,这个选项不是
垃圾程序的狗皮膏药.
请参考
用户手册
获取相关信息.
-
UNIX_SOCKET_DIRECTORY
(
string
)
-
声明
postmaster
用于侦听来自客户端应用联接的
Unix 域套接字目录名.
缺省通常是
/tmp
,不过可以在制作时改变.
-
UNIX_SOCKET_GROUP
(
string
)
-
设置 Unix 域套接字的组所有人.(套接字的所有权用户总是启动
postmaster 的用户.)与
UNIX_SOCKET_PERMISSIONS
选项一起使用可以给这种套接字类型增加额外的访问控制机制.
缺省时是一个空字串,也就是使用当前用户的缺省的组.
这个选项只能在服务器启动时设置.
-
UNIX_SOCKET_PERMISSIONS
(
整型
)
-
给 Unix 域套接字设置访问权限.Unix 域套接字使用通常的 Unix
文件系统权限集.可选的值可以是一个
chmod
和
umask
系统调用可以接受的数字模式.
(要使用客户化的八进制格式,该数字必须以
0
(零)开头.)
缺省权限是
0777
,意即任何人都可以联接.
合理的选则可能是
0770
(只有用户和组,
参阅
UNIX_SOCKET_GROUP
)和
0700
(只有用户).
(请注意对于 Unix 套接字而言,实际上只有写权限有意义,而且
也没有办法设置或者取消读或执行权限.)
这种访问控制机制是和
Chapter 4
.
里面描述的那些完全独立的.
这个选项只能在服务器启动时设置.
-
VIRTUAL_HOST
(
string
)
-
声明
postmaster
用于侦听来自客户端应用联接的
TCP/IP 主机名或者地址.
缺省是
PGHOST
环境变量的值,
如果没有设置
PGHOST
,缺省是侦听
所有配置了的地址(包括
localhost
).