Postgres是非常不错的一款开源的数据库.具有很好的性能.
说到数据库,就有的备份和导入的话题.
备份也分为很多种方式.
1、完全备份
这是大多数人常用的方式,它可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象。但它需要花费更多的时间和空间,所以,一般推荐一周做一次完全备份。
2、事务日志备份
事务日志是一个单独的文件,它记录数据库的改变,备份的时候只需要复制自上次备份以来对数据库所做的改变,所以只需要很少的时间。
3、差分备份
也叫增量备份。它是只备份数据库一部分的另一种方法,它不使用事务日志,相反,它使用整个数据库的一种新映象。它比最初的完全备份小,因为它只包含自上次完全备份以来所改变的数据库。它的优点是存储和恢复速度快。推荐每天做一次差异备份。
4、文件备份
针对第一种完全备份来说,我们又可以采取两种方式.自动备份和手动备份 .
手动备份就不说了.简单说一下自动备份.
在linux下,可以编写shell执行文件,然后把这个任务登陆到CRON里面就可以定期执行自动备份任务了.
由于postgres用户来执行备份命令的时候要求输入密码.为了实现自动备份,我们得准备一个认证文件.
认证文件.pgpass在 /home/postgres目录下面.
.pgpass内容:
hostname:port:database:username:password
例:localhost:5432:*:postgres:postgres
*是所有数据库的意思,如果我们只是备份一个数据库的时候,可以用数据库名替换.
需要注意的一点是要执行 chmod 600 .pgpass . 保证只有postgres才能利用这个文件.
然后,就是在自己的备份文件中执行备份命令.
全部备份的时候:$ pg_dumpall -h localhost -U postgres -c > pg_dumpall.dump
特定数据库备份的时候: pg_dump dbname -h localhost -U postgres -c > dbnamebak.dump
shell文件做好后,登陆到cron里面.
在/etc/crontab里面编辑追加.
45 4 * * * postgres /home/postgres/pg_dumpall.sh
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hantiannan/archive/2010/02/27/5332052.aspx