技术开发 频道

使用port基本安装 PostgreSQL 笔记

  6. FreeBSD postgresql periodic script

  FreeBSD port 会安装了一个 periodic 在 /usr/local/etc/periodic/daily/502.pgsql

  这个 periodic script 提供两个服务:

  i) 每天定时做 vacuumdb 一次

  ii) 每天定时做 pg_dump 一次

  想启动这功能 要修改 /etc/periodic.conf

  或 /etc/periodic.conf.local 二者选一,内容一样

$su -
$vi
/etc/periodic.conf
$
exit

  档案中增加以下内容

# 502.pgsql
daily_pgsql_backup_enable
="YES" # do backup
daily_pgsql_vacuum_enable
="YES" # do vacuum

  如果你只想做 vacuum 不做 pg_dump,内容如下

  档案中增加以下内容

# 502.pgsql
daily_pgsql_backup_enable
="NO"  # do backup
daily_pgsql_vacuum_enable
="YES" # do vacuum

  由于 postgresql 已改变为加密登入,使用 periodic script 必需提供 password 给

  periodic,否则会执行 vacuumdb pg_dump,失败。方法是建立一个密码 .pgpass

  档案把 password 传给 periodic

  .pgpass 档案必需放置在 postgresql daemon 的 $HOME 才可以配合 periodic 顺利执行

  检察 postgresql 的 $HOME 在那里

$su -
$more
/etc/passwd | grep PostgreSQL
$
exit

  我的查询结果如下

  pgsql:*:70:70::0:0:PostgreSQL Daemon:/usr/local/pgsql:/bin/sh

  表示 postgresql 的 $HOME 在 /usr/local/pgsql 这里

  因此把 .pgpass 放置在 /usr/local/pgsql 成为

  /usr/local/pgsql/.pgpass

  步骤如下:

$ su -
$ cd
/usr/local/pgsql
$ touch .pgpass
$ chmod
600 .pgpass
$ chown pgsql:pgsql .pgpass
$
exit

  修改 .pgpass 内容

$ su -
$ vi
/usr/local/pgsql/.pgpass
$
exit

  .pgpass 格式有规范的,官方说明请看:http://www.postgresql.org/docs/8.4/interactive/libpq-pgpass.html

  localhost:5432:*:pgsql:你的pgsql密码

  最后一步,是修改 /usr/local/etc/periodic/daily/502.pgsql 使它懂得配对

  正确的用户名和密码

$ su -
$ vi
/usr/local/etc/periodic/daily/502.pgsql
$
exit

  把其中的两行参数修改

  < 原本是 >

daily_pgsql_vacuum_args="-z"
daily_pgsql_pgdump_args
="-b -F c"

  < 修改为 >

daily_pgsql_vacuum_args="-h localhost -U pgsql -z"
daily_pgsql_pgdump_args
="-h localhost -U pgsql -b -F c"

  基本安装完成。

0
相关文章