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数据库,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。