で提供されているバックアップ スクリプトを使用したいと思います (私のスクリプトは指定されたリンクと同じで、構成のみが変更されています)。
http://wiki.postgresql.org/wiki/Automated_Backup_on_Linux
pg_backup.config に以下を追加しました:
BACKUP_USER = myusername (that has postgresql superuser access)
HOST = localhost
USERNAME = myusername (that has postgresql superuser access)
完全な pg_backup.config を更新します。
##############################
## POSTGRESQL BACKUP CONFIG ##
##############################
# Optional system user to run backups as. If the user the script is running as doesn't match this
# the script terminates. Leave blank to skip check.
BACKUP_USER=myusername
# Optional hostname to adhere to pg_hba policies. Will default to "localhost" if none specified.
HOSTNAME=localhost
# Optional username to connect to database as. Will default to "postgres" if none specified.
USERNAME=myusername
# This dir will be created if it doesn't exist. This must be writable by the user the script is
# running as.
BACKUP_DIR=/home/myusername/openerp/7.0/backup
# List of strings to match against in database name, separated by space or comma, for which we only
# wish to keep a backup of the schema, not the data. Any database names which contain any of these
# values will be considered candidates. (e.g. "system_log" will match "dev_system_log_2010-01")
SCHEMA_ONLY_LIST=""
# Will produce a custom-format backup if set to "yes"
ENABLE_CUSTOM_BACKUPS=no
# Will produce a gzipped plain-format backup if set to "yes"
ENABLE_PLAIN_BACKUPS=yes
#### SETTINGS FOR ROTATED BACKUPS ####
# Which day to take the weekly backup from (1-7 = Monday-Sunday)
DAY_OF_WEEK_TO_KEEP=5
# Number of days to keep daily backups
DAYS_TO_KEEP=7
# How many weeks to keep weekly backups
WEEKS_TO_KEEP=5
しかし、コマンドで pg_backup.sh を実行しようとすると:
bash pg_backup.sh
次のエラー メッセージが表示されます。
Performing full backups
--------------------------------------------
psql: FATAL: no pg_hba.conf entry for host "shows my external IP", user "postgres", database "postgres", SSL on
FATAL: no pg_hba.conf entry for host "shows my external ip", user "postgres", database "postgres", SSL off
All database backups complete!
また、すべてのデータベースが完了したことを出力しますが、バックアップは行いません。
このコマンドを手動で試すと、次のようになります。
pg_dump -Fp -h "localhost" -U "myusername" "mydatabase" | gzip > /home/myusername/openerp/7.0/backup/"mydatabase".sql.gz;
それからそれは完全にバックアップします!
問題は、なぜこのような奇妙なエラーが発生するのかということです。まず、localhost を使用する必要がある場合に外部 IP を使用し、次に myusername に接続する必要がある場合に postgres ユーザーに接続します (または少なくともそのように表示されます)。データベースは正常にバックアップされましたが、実際には何もバックアップされていませんでした。
また、スクリプトを調べると、pg_backup.config で提供されているようにすべてを適切に使用する必要があるように見えますが、そうではありません..