pgAgent设定定时备份

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天

[[email protected] ~]$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 ..."

[[email protected] ~]$chmod 755 ./backup.sh

此脚本备份并压缩整个数据库,删除7天前的备份

[[email protected] ~]$ls
9.5  backup.sh  pgsql-backup.2017-09-04.tar.gz
[[email protected] ~]$./backup.sh
Starting Backup PostgreSQL ...
./backup.sh: line 7: 5432: Bad file descriptor
pgsql-backup.2017-09-11.dmp
Remove temp file ...
Finish Backup ...
[[email protected] ~]$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脚本的执行计划

原文地址:https://www.cnblogs.com/Amos-Turing/p/9149548.html

时间: 2024-11-02 10:24:15

pgAgent设定定时备份的相关文章

Sql Server 2008 R2 定时备份任务设定

一.Sql Server 定时备份需要开启Sql Server Agent的服务,如图: 右键SQL Server 代理选择启动 弹出确认启动对话框,点是 等待启动成功 如下图,sql Agent启动成功 二.配置定时任务 确保agent服务器启动后,右键维护计划,选择维护计划向导 出现欢迎界面,选择下一步 下图界面中点击更改,设置非分的频率 我这里设置的是每天一备份,执行时间是00:00:00 设置完成后,会出现备份赔率的简要 选择备份数据的方式,我选择的是完全备份(根据自己的生产环境来定型)

Windows下为MySQL做定时备份

第一种:新建批处理文件 backup.dat,里面输入以下代码:  代码如下 复制代码 net stop mysqlxcopy "C:/Program Files/MySQL/MySQL Server 5.0/data/piaoyi/*.*" D:/db_backup/%date:~0,10%/ /ynet start mysql 注意:批处理命令中路径里有空格的话,必须在路径上加上双引号!然后使用Windows的"计划任务"定时执行该批处理脚本即可.(例如:每天凌

oracle用expdp定时备份所有步骤详解[转]

用oracle命令备份数据库,生成dmp文件,保存了整一套的用户及表数据信息.还原简单.加上widnows的批处理bat命令,实现每天0点备份,现把经验送上给大家! 工具/原料 oracle11g 11.2.0 64位 百度经验:jingyan.baidu.com 方法/步骤 1 在“运行”里打开cmd 步骤阅读 2 输入命令:sqlplus system/[email protected] 其中system是登录数据库的用户名 123456是用户名的密码 orcl是数据库实例名称 步骤阅读 3

java 定时备份数据库

/** 操作数据库 */ public class BackupDb {     public String backup() throws IOException{      String user = "root"; //数据库的用户名      String password = "admin";//数据库的密码       String database = "hrtweb";//要备份的数据库名       Date date = ne

Linux系统环境SVN服务器定时备份详解

Linux系统环境SVN服务器定时备份详解: 本篇文章主要介绍的内容是在Linux系统下如何定时备份SVN服务器,目的是为了防止一旦SVN服务器挂掉及数据丢失造成的损失,需要对SVN服务器数据定时备份处理,以便找回丢失的数据,具体如下所示: 一. 新建备份目录 #mkdir /opt/project_backup 二.编写备份脚本 #cd /home/svn #vim project_backup.sh cd /home/svn now=`/bin/date +%Y%m%d` /bin/tar

关于工作,学习中定时备份的几个方法(cron,git,mail)

首先介绍一下cron这个定时备份的工具: crontab -e : 运行文字编辑器来设定时程表,内定的文字编辑器是 VI.假设你想用别的文字编辑器.则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比方说 setenv VISUAL joe) crontab -r : 删除眼下的时程表 crontab -l : 列出眼下的时程表 crontab file [-u user]-用指定的文件替代眼下的crontab. 时程表的格式例如以下 : f1 f2 f3 f4 f5 program

linux 定时备份

每部主机的任务都不相同,重要的数据也不相同,重要性也不一样,因此,每个人癿备份思考角度都不一样! 有些备份策略是非常有趣的: (1)挂载储存设备进行备份: 挂载设备: 备份的 script #!/bin/bash      #      ####################################################################      # 用户参数输入位置:      # basedir=你用来储存此脚本所预计备份数据目录(请独立文件系统)    

windows下mysql定时备份数据库几种方法

第一种:新建批处理文件 backup.dat 代码如下: net stop mysqlxcopy "C:/Program Files/MySQL/MySQL Server 5.0/data/piaoyi/*.*" D:/db_backup/%date:~0,10%/ /ynet start mysql 注意:批处理命令中路径里有空格的话,必须在路径上加上双引号!然后使用Windows的"计划任务"定时执行该批处理脚本即可.(例如:每天凌晨3点执行backup.bat

使用教程 - BestSync同步软件 - SQL2008R2 数据库定时备份解决方案

需求: 1.      某公司的管理软件,数据库为SQL2008R2.2.      将整个数据库作为一个文件,定时同步到FTP 服务器3.      需要有多个备份,每同步一次,都备份上次的文件到备份文件夹. 要点:1.      执行同步任务前需要关闭SQL Server服务.用户添加数据条目到数据库后,数据库文件的修改时间不会同步改变.2.      勾选“影子复制”功能.BestSync将能同步正在编辑的数据库文件.3.      只能设置定时同步. 数据库文件修改时间需要通过预先执行批