PostgreSQL实现定期备份的方法

 更新时间:2024年03月13日 09:02:36   作者:总比一事无成的好  
PostgreSQL定期备份功能可以自动备份数据库,避免了手动备份过程中可能发生的错误,也极大地减轻了管理员的工作压力,所以本文将给大家介绍一下PostgreSQL实现定期备份的方法,需要的朋友可以参考下

前言

本文主要研究下PostgreSQL如何实现定期备份。

环境说明

我们需要第一在主机上创建一个文件夹用来存放保存好的文件(容器和本机都需要) 且本机的文件需要赋予权限

chmod o+W /你的文件地址

需要在容器中安装openssh-client、和sshpass

apt install openssh-client
apt-get install sshpass

1、创建脚本

先查询下pg_dumpall工具位置:

find / -name pg_dumpall

在容器的一个文件中创建sh脚本

cd /home
mkdir script
touch save.sh

脚本内容为(根据实际情况修改):

#!/bin/bash

# Description:备份 PostgreSQL 数据库并压缩成 gz 文件,最后删除 3 天前的备份文件。

echo "开始执行 PostgreSQL 数据库的备份..."
echo "backup ing..."
today=$(date +%Y-%m-%d)                       # 今天的日期
nowtime=$(date +%F+%T)                        # 当前时间点
yestoday=$(date -d '-3 day' +%Y-%m-%d)        # 3天前的日期
host_ip=127.0.0.1                             # 本机 IP 地址
backup_ip=你的远端地址                           # 远端备份服务器 IP
port_id=5432                                  # 端口号,PostgreSQL默认的端口号是5432    
username=postgres                             # 数据库用户             
export PGPASSWORD='你的密码'               # 数据库密码
dmpDir='你的目录'                          # 本地备份目录
destination='你的目录'                 # 远端备份目录

echo "时间:" $nowtime
set timeout 600

# /usr/bin/ 为 pg_dump 备份工具安装路径,根据实际情况更新此路径。

/usr/bin/pg_dumpall --file "$dmpDir/pg_backup_$today.sql" --host "$host_ip" --port "$port_id" --username "$username"
#--verbose --role "postgres" --format=c --blobs --encoding "UTF8" 备份转换扩展配置

echo "PostgreSQL 数据库备份完成!"

echo "当天备份文件压缩中..."
gzip "$dmpDir/pg_backup_$today.sql"
echo "3 天前的 PostgreSQL 数据库备份文件已删除!"

echo "开始远端备份..."
export SSHPASS=your_password
sshpass -e scp -r "$dmpDir/pg_backup_$today.sql.gz" (你的登录名)@$backup_ip:$destination

echo "远端备份完毕,感谢您使用此脚本!"
exit;

给脚本增加可执行权限

chmod +x save.sh

2、用pgAgent设置定时任务

点击创建 

输入名称

点击步骤创建

点击编辑——添加运行代码

创建计划任务:

最后在重复中:添加每日执行时间

最后记得保存!

结语

我们借用pgAgent完成了数据库的日常2个定时任务,清理数据、保存数据库。

以上就是PostgreSQL实现定期备份的方法的详细内容,更多关于PostgreSQL定时备份的资料请关注脚本之家其它相关文章!

相关文章

  • postgresql 删除重复数据的几种方法小结

    postgresql 删除重复数据的几种方法小结

    这篇文章主要介绍了postgresql 删除重复数据的几种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Postgresql自定义函数详解

    Postgresql自定义函数详解

    这篇文章主要介绍了Postgresql自定义函数详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • PostgreSQL主从复制实战指南:告别单点故障,附主从切换与延迟监控命令

    PostgreSQL主从复制实战指南:告别单点故障,附主从切换与延迟监控命令

    文章详细介绍了如何在CentOS/Ubuntu环境下搭建PostgreSQL主从复制,包括环境准备、主库配置、从库配置、验证复制状态等步骤,通过主从复制,可以实现数据库高可用,减少宕机时间,提高系统容灾能力,感兴趣的朋友一起看看吧
    2026-04-04
  • PostgreSQL开启慢查询日志的方法详解

    PostgreSQL开启慢查询日志的方法详解

    PostgreSQL 可以通过配置参数来记录执行时间超过指定阈值的查询,即慢查询日志,下面小编就为大家详细讲讲开启慢查询日志的详细步骤吧
    2025-11-11
  • Postgresql 跨库同步表及postgres_fdw的用法说明

    Postgresql 跨库同步表及postgres_fdw的用法说明

    这篇文章主要介绍了Postgresql 跨库同步表及postgres_fdw的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • postgres 数据库迁移的几种方法

    postgres 数据库迁移的几种方法

    本文详细介绍了postgres 数据库迁移的几种方法,包括数据文件备份、数据文件迁移方案以及常见问题及其解决方案,感兴趣的可以了解一下
    2025-07-07
  • PostgreSQL 实现快速删除一个用户

    PostgreSQL 实现快速删除一个用户

    这篇文章主要介绍了PostgreSQL 实现快速删除一个用户,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL 实现登录及修改密码操作

    PostgreSQL 实现登录及修改密码操作

    这篇文章主要介绍了PostgreSQL 实现登录及修改密码操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSql 重建索引的操作

    PostgreSql 重建索引的操作

    这篇文章主要介绍了PostgreSql 重建索引的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • PostgreSQL配置远程连接简单图文教程

    PostgreSQL配置远程连接简单图文教程

    这篇文章主要给大家介绍了关于PostgreSQL配置远程连接的相关资料,PostgreSQL是一个功能非常强大的关系型数据库管理系统(RDBMS),文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12

最新评论