Linux下定时备份Postgresql数据库

假设条件:

Linux用户名:whf

postgresql超级用户:postgres

postgresql版本:9.1

要备份的数据库名:icomplain_desktop


思路:

首先为 whf 添加数据库读写权限,然后将 pg_dump 命令写成shell脚本,最后使用crontab创建定时作业。


步骤:

切换到 postgres 用户:

sudo su postgres

连接数据库:

psql

新建 whf 用户:

CREATE USER whf WITH PASSWORD ‘whf‘;

将 whf 提升为 superuser:

ALTER USER whf WITH SUPERUSER;

注意,这里不要用

GRANT ALL PRIVILEGES ON DATABASE icomplain_desktop to whf;

因为 "ALL" 不包括 SELECT 权限,后果是 whf 用户依然没有权限读数据库,pg_dump后只是空记录。


编写备份脚本 backup-db.sh:

#!/bin/bash

cur_time=`date +%Y-%m-%d_%T`
pg_dump icomplain_desktop > "/home/whf/db-backup/icomplain_desktop-$cur_time.dmp"

echo "backup finished"

新建定时作业:

crontab -e

在最后添加:

# backup database at 22:00 every day
0 22 * * * /home/whf/bin/backup-db.sh

这样每天22:00时就会自动执行 pg_dump 以备份icomplain_desktop数据库。

Linux下定时备份Postgresql数据库,布布扣,bubuko.com

Linux下定时备份Postgresql数据库

上一篇:.net事务(1、SqlTransaction)


下一篇:[转载]番茄时间管理法(Pomodoro Technique):一个番茄是如何让你工作更有效率的