PostgreSQL新手十大注意事项

Leave a Comment2009年08月10日 作者: 大头刚 

上回介绍了怎么安装PostgreSQL,对于新手来说,还是有很多需要注意的地方,比如一些参数的配置和一些习惯命令的不同,下文给出自己的一些心得,希望能对刚接触的人有些帮助,少走一些弯路。本文不会对每个参数的含义详细解释,有兴趣的朋友可以自己搜索。
 
1.log日志配置
PostgreSQL的系统日志和报错日志等,默认是直接输出了,没有写入到文件,如果你希望能查看这些日志,需要修改postgresql.conf,如下:
log_destination = ’stderr’
logging_collector = on
log_directory = ‘pg_log’
log_min_duration_statement = 5000
上面这些参数的意思就是,把pgsql的日志到输出到pgsql数据目录的pg_log目录下,同时超过5000毫秒的操作将记录。
 
2.用户认证和监听
PostgreSQL的用户认证是通过pg_hba.conf来设置,默认都是trust,即本地帐户能直接登录。显然不安全,你可修改如下:
# “local” is for Unix domain socket connections only
local   all         all                                 md5
# IPv4 local connections:
host    all         all         127.0.0.1/32            md5
host    all         all         192.168.1.0/24          md5
上面这些参数的意思是,本地连接pgsql需要密码md5认证,192.168.1.xx 网段允许连接,密码也需要通过md5认证。
如果需要从其他客户端连接,还需要修改postgresql.conf的liston_addresses参数,这个参数和oracle的监听的作用类似。
listen_addresses = ‘*’
 

3.密码文件
通过2设置成md5验证后,虽然在安全方面有了提高,但是同时会造成一些麻烦,比如你的shell脚本需要使用psql能直接连接,这种情况你可以使用密码文件。通过在用户的根目录下,创建一个.pgpass文件。并将权限设置为0600。
文件的格式如下:
hostname:port:database:username:password
 

4.psql常用容易混淆的命令
通过psql登录到PostgreSQL,有些命令可能和其他数据库有些区别,这里和mysql对比下,介绍几个你很可能搞混的命令:
pgsql             mysql
\c                use
\q                quit
\d                desc
 

5.系统参数配置
PostgreSQL在安装的时候,并没有要求修改系统默认配置,那是因为其默认的内存等参数很小,不会超过系统的默认配置。例如你加大shared_buffers等参数的值时,基本都会超过默认系统参数。这时你需要修改这些配置
编辑 /etc/sysctl.conf,加入以下内容:
kernel.shmall = 3145728
kernel.shmmax = 12884901888
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default [...]