PostgreSQL定时自动备份
PostgreSQL定时自动备份
简介
PostgreSQL数据库中未提供数据库的定时备份功能,所以需要结合备份和定时job功能来共同实现。
这里我选取了2种定时job方式,crontab是Linux中的定时job功能,故只能支持Linux系列操作系统;其中pgAgent是基于数据库的定时备份,可适用于各种操作系统。
实验环境
- PostgreSQL:
操作系统:CentOS Linux release 7.3.1611 (Core)
数据库系统: PostgreSQL 9.5.9
IP: 192.168.230.134
port: 5432
冷备份脚本
业务需求:
每日按日期执行自动备份,生产dmp的压缩文件。备份文件保存7天
[postgres@localhost ~]$vim backup.sh
#!/bin/bash
cur_time=$(date '+%Y-%m-%d')
sevendays_time=$(date -d -7days '+%Y-%m-%d')
export PGPASSWORD=oracle
echo "Starting Backup PostgreSQL ..."
rm -rf pgsql-backup.$sevendays_time.tar.gz
pg_dumpall -U postgres -p 5432>"pgsql-backup.$cur_time.dmp"
tar zcvf "/var/lib/pgsql/pgsql-backup.$cur_time.tar.gz" *.dmp
echo "Remove temp file ..."
rm -rf pgsql-backup.*.dmp
echo "Finish Backup ..."
[postgres@localhost ~]$chmod 755 ./backup.sh
此脚本备份并压缩整个数据库,删除7天前的备份
[postgres@localhost ~]$ls
9.5 backup.sh pgsql-backup.2017-09-04.tar.gz
[postgres@localhost ~]$./backup.sh
Starting Backup PostgreSQL ...
./backup.sh: line 7: 5432: Bad file descriptor
pgsql-backup.2017-09-11.dmp
Remove temp file ...
Finish Backup ...
[postgres@localhost ~]$ls
9.5 backup.sh pgsql-backup.2017-09-11.tar.gz
热备份脚本
业务需求:每天对整个数据库数据进行热备份,不能影响实际业务
#!/bin/bash
DATE=$(date '+%Y%m%d');
PG_ARCHIVE=/var/lib/pgsql/9.5/data/pg_arch
PG_DATA=/var/lib/pgsql/9.5/data
PG_HOME=/var/lib/pgsql
#START BACKUP
echo "START BACKUP..............."
psql postgres -c "select pg_start_backup('hot_back')"
cd $PG_HOME
tar zcvf ${PG_HOME}/pg_hotbackup_$DATE.tar.gz $PG_DATA
psql postgres -c "select pg_stop_backup()"
psql postgres -c "select pg_switch_xlog()"
psql postgres -c "select pg_current_xlog_location()"
echo "BACKUP END"
crontab设定定时备份
创建执行计划
业务需求为每天临晨2点自动执行备份脚本
[root@localhost ~]# crontab -e
0 2 * * * /var/lib/pgsql/backup.sh
no crontab for root - using an empty one
crontab: installing new crontab
详情可参见
http://blog.csdn.net/sunbocong/article/details/77883797
pgAgent设定定时备份
使用pgadmin III 工具连接目标库
新建作业daily_backup

创建计划daily_backup,设定开始时间

选定时间为每天凌晨2点00分

新建步骤daily_backup,选择批处理

设定其执行之前我们编写的backup.sh脚本

这样我们就设定好了每天凌晨2点00分执行backup.sh脚本的执行计划
详情可参见
http://blog.csdn.net/sunbocong/article/details/77870205
PostgreSQL定时自动备份的更多相关文章
- SQL Server数据库定时自动备份
SQL Server 数据库定时自动备份[转] 在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求 ...
- SQL Server 定时自动备份数据库
在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库,这篇文章介绍使用SQL Server 数据库代理中的作业定时自动备份数据库. 1.启动SQL Server代理服务,如下图: 绿色 ...
- 使用SQL Server维护计划实现数据库定时自动备份
在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员每天守到晚上1点去备份数据库.要实现数据库的定 ...
- 【转载】使用SQL Server维护计划实现数据库定时自动备份
在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员 每天守到晚上1点去备份数据库.要实现数据库的 ...
- SQL Server 数据库定时自动备份【转】
在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员每天守到晚上1点去备份数据库.要实现数据库的定 ...
- SQL Server 数据库定时自动备份
原文:SQL Server 数据库定时自动备份 SQL Server 数据库定时自动备份——每天定时备份,保留前8天的备份 利用SQL Server代理新建作业来定期备份 1)在数据库库的[SQL S ...
- 【转载】Sqlserver通过维护计划定时自动备份数据库
Sqlserver数据库的运维过程中,数据库的备份操作至关重要,平时我们都是手动进行数据库的备份操作.如果要做到让数据库定时自动备份,则可以使用Microsoft SQL Server Managem ...
- (后台)SQL Server 数据库定时自动备份(转)
转自博客园: SQL Server 数据库定时自动备份[转] 在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以 ...
- Sqlserver 数据库定时自动备份
sqlserver 可以通过微软工具 SQL Server Management Studio 进行数据库定时自动备份,具体步骤如下: 1,打开SQL Server Management Studi ...
随机推荐
- c# 常见文件操作
- ACL权限
基本命令 getfacl 文件名 查看文件ACL权限 setfacl [选项] 文件名 设定文件ACL权限 -m 设定ACL权限 -b 删除ACL权限 -x:用户 删除单个用户的ACL权限 s ...
- centos6/7添加系统服务
服务脚本必须存放在/etc/ini.d/目录下: chkconfig --add mongodb chkconfig --list mongodb 等级0表示:表示关机 ...
- 学了 C 语言到底能做什么, 能从事什么工作?
前言 经常有小伙伴问我,你是做C/C++的,那学C语言可以做什么呢?尤其是还在学校的同学,感觉自己学了很久,什么也做不了,一度怀疑自己是不是不适合程序员这个方向. 开始我都是直接说可以开发嵌入式啊,做 ...
- springboot学习笔记(一)
springboot案例(一) Application.java package com.xdr.spring; import org.springframework.boot.SpringAppli ...
- k8s删除pod时,docker服务出现挂载点泄漏问题的解决
k8s更新版本后,老的POD一直出现Terminating,多久都不能删除. 然后,进入具体的节点机器之后,查看日志输出如下类似: ERROR: driver "overlay" ...
- Django之路——6 Django的模型层(一)
ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的 ...
- LightOJ - 1323 - Billiard Balls(模拟)
链接: https://vjudge.net/problem/LightOJ-1323 题意: You are given a rectangular billiard board, L and W ...
- php自定义函数之内部函数
内部函数,是指在函数内部又声明了一个函数. 注意事项: 1.内部函数名,不能是已存在的函数名 2.假设在函数a里面定义了一个内部函数,不能定用两次函数a. 我们下面来看代码,你将很快的学习会: < ...
- Kubernetes 学习5 kubernetes资源清单定义入门
一.kubernetes是有一个restful风格的 API,把各种操作对象都一律当做资源来管理.并且可通过标准的HTTP请求的方法 GET,PUT,DELETE,POST,等方法来完成操作,不过是通 ...