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 [...]

前段时间有高人写了一篇《面对一个全新的环境,作为一个Oracle DBA,首先应该了解什么》,本文借花献佛,总结了一些思路,如何面对一个全新的Mysql环境。
1、先要了解当前的Mysql数据库的版本和平台以及字符集等相关信息

mysql> status
 
————–
mysql  Ver 14.14 Distrib 5.1.34, for unknown-linux-gnu (x86_64) using  EditLine wrapper
Connection id:                25874330
Current database:       
Current user:               
SSL:                        Not in use
Current pager:                stdout
Using outfile:                ”
Using delimiter:        ;
Server version:                5.1.34-log Source distribution
Protocol version:        10
Connection:                Localhost via UNIX socket
Server characterset:        utf8
Db     characterset:        utf8
Client characterset:        utf8
Conn.  characterset:        utf8
UNIX socket:                /tmp/mysql.sock
Uptime:                        13 days 14 hours 18 min 36 sec
Threads: 7  [...]