2014年9月24日 星期三

【Ubuntu】postgreSQL 本地備份

以下文章所出現家目錄,為安裝 PostgreSQL 的帳號之家目錄
例如是使用 user 帳號安裝 PostgreSQL
在家目錄新增檔案 .pgpass
檔案內容只有一行
localhost:port:database:username:password
localhost: 輸入 ip;若為本機端,輸入 127.0.0.1
port: port of PostgreSQL
database: 資料庫名稱
username: 資料庫帳號
password: 資料庫密碼

修改 .pgpass 的權限為 600
sudo chmod 600 .pgpass

新增備份目錄,測試匯出資料庫是否不用輸入密碼,若不用則上述設定成功
mkdir dbbackup
pg_dump -h 127.0.0.1 -p 5432 -U postgres postgres>postgres.dump

在家目錄新增檔案 backupdb.sh ,檔案內容如下
#!/bin/bash

#設定時間變數
day=$(date +%Y%m%d)
#設定備份路徑
bkdir="/home/user/dbbackup"
#備份資料庫
pg_dump -h 127.0.0.1 -p 5432 -U postgres postgres>"$bkdir"/postgres.dump
#移動到備份目錄
cd "$bkdir"
#壓縮資料庫並加上日期
tar -zcf postgres."$day".tar.gz postgres.dump
#刪除備份檔
rm postgres.dump

exit 0
加入 crontab 排程內,每天凌晨3:30做備份
30 3 * * * user sh /home/user/backupdb.sh
若要將 tar 打包好的備份檔案解壓縮,指令如下
tar -zxv -f postgres.20140924.tar.gz