Heroku提供PG数据库的自动和预定备份。 https://devcenter.heroku.com/articles/heroku-postgres-data-safety-and-continuous-protection
GBackup将启动专用dyno来转储数据库 并将其上传到S3
简单问题:是否可以将计划的PG备份上传到一个OWN S3 Bucket?只需控制备份文件,不受存储空间的限制。如果可能的话,研究这个主题并没有给我答案。
答案 0 :(得分:0)
一种选择是创建备份(您甚至可以创建一个跟随者数据库,以便出于性能原因创建它),然后通过流将备份下载到您的服务器,然后将其上传到您自己的S3存储桶中。
如果您想要一个快速铁路应用程序来执行此操作,您可以设置https://github.com/kjohnston/pgbackups-archive。除了创建一个关注者数据库之外,它还可以做任何事情,但是如果你不太关注性能24/7,那么这应该没问题。我不知道Heroku为什么不为你自己的S3存储桶提供存储,因为它们自己将它们存储在S3上。
答案 1 :(得分:0)
这里是a buildpack,可以定期执行此操作。尚未对其进行一点更新,但是您可以根据需要轻松地对其进行更新/调整。
答案 2 :(得分:0)
您可以使用Heroku调度程序和bash脚本来实现。
# Set the script to fail fast if there
# is an error or a missing variable
set -eu
set -o pipefail
#!/bin/sh
# Download the latest backup from
# Heroku and gzip it
heroku pg:backups:download --output=/tmp/pg_backup.dump --app $APP_NAME
gzip /tmp/pg_backup.dump
# Encrypt the gzipped backup file
# using GPG passphrase
gpg --yes --batch --passphrase=$PG_BACKUP_PASSWORD -c /tmp/pg_backup.dump.gz
# Remove the plaintext backup file
rm /tmp/pg_backup.dump.gz
# Generate backup filename based
# on the current date
BACKUP_FILE_NAME="heroku-backup-$(date '+%Y-%m-%d_%H.%M').gpg"
# Upload the file to S3 using
# AWS CLI
aws s3 cp /tmp/pg_backup.dump.gz.gpg "s3://${S3_BUCKET_NAME}/${BACKUP_FILE_NAME}"
# Remove the encrypted backup file
rm /tmp/pg_backup.dump.gz.gpg
您可以查看this tutorial以获得详细的逐步说明。