PostgreSQL备份和恢复(Docker安装)

这篇具有很好参考价值的文章主要介绍了PostgreSQL备份和恢复(Docker安装)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 一.准备备份脚本并拷贝进容器
  • 二,在宿主机写定时任务去执行容器内的备份脚本

一.准备备份脚本并拷贝进容器

vi backup.sh
#内容如下
#!/bin/bash

# PostgreSQL database credentials
DB_NAME="<要备份的数据库名>"
DB_USER="<具有该数据库导出权限的用户>"
DB_PASS="<用户密码>"
DB_HOST="localhost"
DB_PORT="5432"

# Backup directory
BACKUP_DIR="/var/lib/postgresql/backup"

# Export the PostgreSQL password
export PGPASSWORD=$DB_PASS

# Check if the backup file already exists and delete it if it does
if [[ -f "$BACKUP_DIR/$DB_NAME.tar" ]]; then
  rm "$BACKUP_DIR/$DB_NAME.tar"
fi

# Create a backup file
pg_dump -h $DB_HOST -p $DB_PORT -U $DB_USER -F t -b -f "$BACKUP_DIR/$DB_NAME.tar" $DB_NAME

# Unset the PostgreSQL password
unset PGPASSWORD

保存后docker cp到容器里的某一个文件夹内,这边选择的是/var/lib/postgresql文章来源地址https://www.toymoban.com/news/detail-710467.html

docker cp backup.sh <容器名>:/var/lib/postgresql

二,在宿主机写定时任务去执行容器内的备份脚本

#!/bin/bash

DB_NAME="<要备份的数据库名>"
remove_dir="/home/ngtl/backup/pgsql"
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
#进入容器内部执行dump命令
docker exec -u 0 <容器名>  bash -c "su - postgres -c 'cd /var/lib/postgresql; ./backup.sh'"

#拷贝备份文件
docker cp <容器名>:/var/lib/postgresql/backup/$DB_NAME.tar ./

# 使用时间戳重命名
mv "./$DB_NAME.tar" "./$DB_NAME_$DATE.tar"

# 只保留四天内的
find . -type f -name "$DB_NAME_*.tar" -mtime +4 -exec rm {} \;

#scp到其他服器,移动前清空目标路径下的所以backup文件,与宿主机一致
ssh root@<备份机IP> "rm -f $remove_dir/$DB_NAME_*.tar"
scp ./gitea_*.tar root@<备份机IP>:/home/ngtl/backup/pgsql/
crontab -e
#添加如下内容
0 1 * * *  <宿主机脚本地址>/backup.sh >> <宿主机脚本地址>/backup.log 2>&1

到了这里,关于PostgreSQL备份和恢复(Docker安装)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 三、python Django ORM postgresql[数据定时备份、数据恢复]

    解释:备份指定数据库,能有效在发生错误时,预防错误,进行恢复 免密 cron 日志查看: tail -f -n 200 /var/log/syslog systemd timer 解释:因为博主在自己电脑上怎么用cron都不行,故使用了这个,其效果同cron类型,但效率甚至比cron高出一点点 vim /etc/systemd/system/mytask.service vim /etc/

    2024年02月13日
    浏览(25)
  • PostgreSQL从小白到高手教程 - 第41讲:postgres表空间备份与恢复

    PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。 第41讲:表空间备份与恢复 PostgreSQL第41讲:1月13日

    2024年01月22日
    浏览(30)
  • 【PostgreSql】本地备份为dump文件与恢复数据库(单表和整个数据库)

    环境: windows 数据库: postgresql 1.准备脚本 backUpDb.bat 脚本为备份脚本,双击运行,右键可以选择编辑; restoreDb.bat 脚本为恢复脚本,双击运行,右键选择编辑; 1.1 脚本介绍 如上图所示编辑脚本文件,选择你的备份路径和相应的程序执行路径,以及要备份的数据库名称,登录

    2024年01月23日
    浏览(32)
  • GitLab备份与恢复测试(基于Docker)

    1.修改配置文件/opt/gitlab/config/gitlab.rb 2.重新加载配置 3.备份应用程序 4.备份配置 1.启动gitlab 2.修改配置文件/opt/gitlab_bak1/config/gitlab.rb 3.重新加载配置 4.复制备份文件到2指定的目录 5.停止连接到数据库的进程 6.恢复,名称中省略了_gitlab_backup.tar 7.恢复gitlab-secrets文件 8.重启git

    2024年01月23日
    浏览(41)
  • Mysql数据备份与恢复——Docker版

    ​ 工作上由于需要将旧服务器停用换用新服务器,而旧服务器上存放的mysql数据库,查看磁盘得知大概50G以上,如果采用工具将数据导出成json再到新服务上执行,其过程花费时间太长了,至少得半天… 所以想着能否直接将数据库上的data目录数据直接复制到新的服务器上,然

    2023年04月27日
    浏览(36)
  • apisix 官方example,单机docker的etcd备份和恢复

    etcd配置就是官方example,很多文档都是集群k8s的,不能照搬,记录下官方试例的过程, etcd配置如下: 备份与恢复: 1 在./etcd_data目录下创建data,chmod 777,启动恢复时用 2 备份ETCDCTL_API=3  docker exec api_etcd_1 etcdctl --endpoints=\\\":2379\\\" snapshot save \\\"/bitnami/etcd/backup.db\\\" 3 恢复:    1. 先停掉

    2024年02月02日
    浏览(28)
  • gitlab【安装部署、备份与恢复】

    【1】安装依赖 【2】安装软件包 【3】修改配置 【4】初始化gitlab、后续修改了配置也需要初始化 【5】查看安装是否报错 【6】验证邮箱是否正常  【7】浏览器测试访问   【8】汉化、需要软件包,版本一致  【9】数据备份 【10】数据恢复  

    2024年02月13日
    浏览(25)
  • windows server : windows server backup 服务(自动定时备份,一次备份,恢复),安装&搭建&恢复(图形化)

    实验环境: Windows server 2016 ———— 搭建安装环境 图形化使用backup(自动,一次) 恢复 1.搭建安装环境 虚拟机需要需要多加一个硬盘进行备份,硬盘大小的选择,我推荐和要备份的盘一样大小,或者比要备份的再大一点,或者根据backup里的推荐大小去选择硬盘 我要备份的

    2024年02月03日
    浏览(57)
  • Docker环境下MySQL备份恢复工具XtraBackup使用详解 | Spring Cloud 62

    Percona XtraBackup 是一个开源的 MySQL 和 MariaDB 数据库备份工具,它能够创建高性能、一致性的备份,并且对生产环境的影响很小。 Percona XtraBackup 通过在不停止 MySQL 服务器的情况下,复制 InnoDB 存储引擎的数据文件和事务日志,来实现备份和还原操作。 Percona XtraBackup 的主要特点

    2024年02月06日
    浏览(27)
  • Centos使用Docker搭建自己的Gitlab(社区版和设置汉化、修改密码、设置SSH秘钥、添加拉取命令端口号、备份至网盘和恢复)

    根据我的经验 部署Gitlab(社区版) 至少需要2核4g的服务器 带宽3~4M 前端自动化(其一)部署gitlab(本章!) 前端自动化(其二)部署jenkins、配置环境、连接gitlab 前端自动化(其三)持续集成和持续部署 1. 在自己电脑上安装终端:宝塔ssl终端 或者 FinalShell,根据喜好安装即

    2024年01月23日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包