轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
prodrigestivill/postgres-backup-local
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

postgres-backup-local Docker 镜像下载 - 轩辕镜像

postgres-backup-local 镜像详细信息和使用指南

postgres-backup-local 镜像标签列表和版本信息

postgres-backup-local 镜像拉取命令和加速下载

postgres-backup-local 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

postgres-backup-local
prodrigestivill/postgres-backup-local
自动构建

postgres-backup-local 镜像详细信息

postgres-backup-local 镜像标签列表

postgres-backup-local 镜像使用说明

postgres-backup-local 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

将PostgreSQL数据库备份到本地文件系统,支持定期备份和自动轮换旧备份。
63 收藏0 次下载activeprodrigestivill镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

postgres-backup-local 镜像详细说明

postgres-backup-local 使用指南

postgres-backup-local 配置说明

postgres-backup-local 官方文档

![GitHub code]([] !GitHub stars !GitHub issues ![GitHub actions]([]

prodrigestivill/postgres-backup-local

基于schickling/postgres-backup-s3,将PostgreSQL数据库备份到本地文件系统,并支持定期轮换备份。通过在POSTGRES_DB中用逗号或空格分隔数据库名称,可备份同一主机上的多个数据库。

支持以下Docker架构:linux/amd64、linux/arm64、linux/arm/v7、linux/s390x、linux/ppc64le。

请务必详细阅读备份文件夹工作原理。

本应用要求/backups docker卷为POSIX兼容文件系统(主要支持硬链接和软链接),因此VFAT、EXFAT、SMB/CIFS等文件系统无法与此docker镜像一起使用。

使用方法

Docker:

docker run -u postgres:postgres -e POSTGRES_HOST=postgres -e POSTGRES_DB=dbname -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password  prodrigestivill/postgres-backup-local

Docker Compose:

services:
    postgres:
        image: postgres
        restart: always
        environment:
            - POSTGRES_DB=database
            - POSTGRES_USER=username
            - POSTGRES_PASSWORD=password
         #  - POSTGRES_PASSWORD_FILE=/run/secrets/db_password <-- POSTGRES_PASSWORD的替代方案(用于docker secrets)
    pgbackups:
        image: prodrigestivill/postgres-backup-local
        restart: always
        user: postgres:postgres # 可选:详见下文
        volumes:
            - /var/opt/pgbackups:/backups
        links:
            - postgres
        depends_on:
            - postgres
        environment:
            - POSTGRES_HOST=postgres
            - POSTGRES_DB=database
            - POSTGRES_USER=username
            - POSTGRES_PASSWORD=password
         #  - POSTGRES_PASSWORD_FILE=/run/secrets/db_password <-- POSTGRES_PASSWORD的替代方案(用于docker secrets)
            - POSTGRES_EXTRA_OPTS=-Z1 --schema=public --blobs
            - SCHEDULE=@daily
            - BACKUP_ON_START=TRUE
            - BACKUP_KEEP_DAYS=7
            - BACKUP_KEEP_WEEKS=4
            - BACKUP_KEEP_MONTHS=6
            - HEALTHCHECK_PORT=8080

出于安全考虑,建议以postgres:postgres用户运行。

若以postgres用户运行,系统管理员需按以下方式初始化目标文件夹权限:

# 对于默认镜像(debian)
mkdir -p /var/opt/pgbackups && chown -R 999:999 /var/opt/pgbackups
# 对于alpine镜像
mkdir -p /var/opt/pgbackups && chown -R 70:70 /var/opt/pgbackups

环境变量

大多数变量与官方postgres镜像相同。

环境变量描述
BACKUP_DIR保存备份的目录。默认为/backups。
BACKUP_SUFFIX备份文件的后缀名。默认为.sql.gz。
BACKUP_ON_START若设为TRUE,则在容器每次启动或重启时执行备份。默认为FALSE。
BACKUP_KEEP_DAYS保留每日备份的数量,超过则删除旧备份。默认为7。
BACKUP_KEEP_WEEKS保留每周备份的数量,超过则删除旧备份。默认为4。
BACKUP_KEEP_MONTHS保留每月备份的数量,超过则删除旧备份。默认为6。
BACKUP_KEEP_MINSlast文件夹中备份的保留分钟数,超过则删除。默认为1440。
BACKUP_LATEST_TYPElatest指针的类型(symlink:符号链接,hardlink:硬链接,none:无)。默认为symlink。
VALIDATE_ON_START若设为FALSE,则启动时不验证配置。不建议禁用。默认为TRUE。
HEALTHCHECK_PORT用于cron调度健康检查的监听端口。默认为8080。
POSTGRES_DB逗号或空格分隔的postgres数据库列表,用于指定要备份的数据库。若设置了POSTGRES_CLUSTER,此处指用于转储全局对象和发现其他应转储数据库的连接数据库(通常为postgres或template1)。必填。
POSTGRES_DB_FILEPOSTGRES_DB的替代方案,每行一个数据库,用于docker secrets。
POSTGRES_EXTRA_OPTSpg_dump的额外选项(若设置POSTGRES_CLUSTER,则为pg_dumpall的选项)。默认为-Z1。
POSTGRES_CLUSTER设为TRUE时使用pg_dumpall。此时需将POSTGRES_EXTRA_OPTS设为任意值或空,因为默认值与pg_dumpall不兼容。
POSTGRES_HOSTpostgres连接参数;要连接的postgres主机。必填。
POSTGRES_PASSWORDpostgres连接参数;用于连接的postgres密码。必填。
POSTGRES_PASSWORD_FILEPOSTGRES_PASSWORD的替代方案,用于docker secrets。
POSTGRES_PASSFILE_STOREpassfile格式的POSTGRES_PASSWORD替代方案,用于postgres集群。
POSTGRES_PORTpostgres连接参数;要连接的postgres端口。默认为5432。
POSTGRES_USERpostgres连接参数;用于连接的postgres用户。必填。
POSTGRES_USER_FILEPOSTGRES_USER的替代方案,用于docker secrets。
SCHEDULE指定postgres备份间隔的cron调度表达式。默认为@daily。
TZ指定用于计算SCHEDULE cron的POSIX TZ变量(例如"Europe/Paris")。
WEBHOOK_URL备份错误或成功后调用的URL(POST请求,JSON payload,详见hooks/00-webhook文件)。默认禁用。
WEBHOOK_ERROR_URL备份失败时调用的URL。默认禁用。
WEBHOOK_PRE_BACKUP_URL备份开始时调用的URL。默认禁用。
WEBHOOK_POST_BACKUP_URL备份成功完成时调用的URL。默认禁用。
WEBHOOK_EXTRA_ARGSwebhook中curl执行的额外参数(详见hooks/00-webhook文件)。

特殊环境变量

这些变量不用于正常部署操作:

环境变量描述
POSTGRES_PORT_5432_TCP_ADDR当POSTGRES_HOST未设置时,用于设置POSTGRES_HOST。
POSTGRES_PORT_5432_TCP_PORT当POSTGRES_HOST未设置时,用于设置POSTGRES_PORT。

备份文件夹工作原理

首先,新备份会创建在last文件夹中,文件名包含完整时间。

备份成功完成后,会通过硬链接(而非复制,以避免占用更多空间)将其链接到其他文件夹(daily、weekly和monthly)。此步骤会替换该类别的旧备份,始终只保留每个类别的最新备份(因此每月备份存储的是该月的最新备份,而非第一个)。

备份文件夹结构如下:

  • BACKUP_DIR/last/DB-YYYYMMDD-HHmmss.sql.gz:所有备份单独存储在此文件夹中。
  • BACKUP_DIR/daily/DB-YYYYMMDD.sql.gz:始终存储(硬链接)当天的最新备份。
  • BACKUP_DIR/weekly/DB-YYYYww.sql.gz:始终存储(硬链接)当周的最新备份(由于使用ISO周编号,周末为周日)。
  • BACKUP_DIR/monthly/DB-YYYYMM.sql.gz:始终存储(硬链接)当月的最新备份(通常为每月最后一天)。

每次成功备份后,还会更新以下符号链接以便使用:

BACKUP_DIR/last/DB-latest.sql.gz -> BACKUP_DIR/last/DB-YYYYMMDD-HHmmss.sql.gz
BACKUP_DIR/daily/DB-latest.sql.gz -> BACKUP_DIR/daily/DB-YYYYMMDD.sql.gz
BACKUP_DIR/weekly/DB-latest.sql.gz -> BACKUP_DIR/weekly/DB-YYYYww.sql.gz
BACKUP_DIR/monthly/DB-latest.sql.gz -> BACKUP_DIR/monthly/DB-YYYYMM.sql.gz

清理时,脚本仅在新备份成功后删除各分类的旧文件:

  • BACKUP_KEEP_MINS:新备份成功后,删除last文件夹中超过指定分钟数的文件(不影响其他备份,因为它们是硬链接)。
  • BACKUP_KEEP_DAYS:新备份成功后,删除daily文件夹中超过指定天数的文件。
  • BACKUP_KEEP_WEEKS:新备份成功后,删除weekly文件夹中超过指定周数的文件(从每周结束开始计数,而非开始)。
  • BACKUP_KEEP_MONTHS:新备份成功后,删除monthly文件夹中超过指定月数(按31天计)的文件(从每月结束开始计数,而非开始)。

Hooks

容器内的hooks文件夹可包含在不同情况下运行的钩子脚本,第一个参数为具体状态(error:错误,pre-backup:备份前,post-backup:备份后)。

只需在该文件夹中创建具有执行权限的脚本,run-parts会在每个状态变化时执行它。

作为示例,可查看已存在的实现WEBHOOK_URL功能的脚本。

手动备份

默认情况下,容器每日执行备份,但可通过运行/backup.sh手动启动备份。

以下示例脚本以运行用户身份创建一个备份,并保存到工作目录:

docker run --rm -v "$PWD:/backups" -u "$(id -u):$(id -g)" -e POSTGRES_HOST=postgres -e POSTGRES_DB=dbname -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password  prodrigestivill/postgres-backup-local /backup.sh

自动定期备份

可通过-e SCHEDULE="@daily"修改SCHEDULE环境变量来更改默认备份频率,默认为daily(每日)。

调度相关更多信息可查看此处。

daily、weekly和monthly文件夹通过硬链接创建和填充,以节省磁盘空间。

恢复示例

以下是恢复/应用备份的示例。

使用同一容器恢复

要使用同一备份容器恢复,替换以下命令中的$BACKUPFILE(备份文件路径)、$CONTAINER(容器名)、$USERNAME(用户名)和$DBNAME(数据库名):

docker exec --tty --interactive $CONTAINER /bin/sh -c "zcat $BACKUPFILE | psql --username=$USERNAME --dbname=$DBNAME -W"

使用新容器恢复

替换以下命令中的$BACKUPFILE(备份文件路径)、$VERSION(postgres版本)、$HOSTNAME(主机名)、$PORT(端口)、$USERNAME(用户名)和$DBNAME(数据库名):

docker run --rm --tty --interactive -v $BACKUPFILE:/tmp/backupfile.sql.gz postgres:$VERSION /bin/sh -c "zcat /tmp/backupfile.sql.gz | psql --host=$HOSTNAME --port=$PORT --username=$USERNAME --dbname=$DBNAME -W"
查看更多 postgres-backup-local 相关镜像 →

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.