您的位置:首页 > 运维架构 > Linux

Linux下定时备份Postgresql数据库

2014-04-11 11:28 555 查看
假设条件:

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数据库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: