欢迎投稿

今日深度:

PostgreSQL实现定期备份的方法,

PostgreSQL实现定期备份的方法,


目录
  • 前言
  • 环境说明
    • 1、创建脚本
    • 2、用pgAgent设置定时任务
  • 结语

    前言

    本文主要研究下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定时备份的资料请关注PHP之友其它相关文章!

    您可能感兴趣的文章:
    • Shell脚本实现MySQL、Oracle、PostgreSQL数据库备份
    • Docker容器中的Postgresql备份脚本异常解决
    • PostgreSQL备份和还原命令整理大全
    • Linux 上 定时备份postgresql 数据库的方法
    • PostgreSQL备份工具 pgBackRest使用详解

    www.htsjk.Com true http://www.htsjk.com/shujukunews/47699.html NewsArticle PostgreSQL实现定期备份的方法, 目录 前言 环境说明 1、创建脚本 2、用pgAgent设置定时任务 结语 前言 本文主要研究下PostgreSQL如何实现定期备份。 环境说明 我们需要第一在主机上创建一...
    评论暂时关闭