littlegiant/silverstripe-spindb

定期备份数据库,并使用轮换方式备份到AWS S3存储

安装量3,222

依赖项: 0

建议者: 0

安全: 0

星星: 1

关注者: 2

分支: 1

开放性问题: 2

类型:silverstripe-vendormodule

1.0.0 2019-04-05 03:04 UTC

This package is auto-updated.

Last update: 2024-09-19 15:29:38 UTC


README

确保定期数据库备份并通过AWS S3进行异地存储。适用于需要保留客户数据的场景。

一个定时任务将定期创建网站的数据库备份,归档文件,并将它们上传到S3。模块还会轮换备份,以确保保留更多最近创建的备份,而较少的旧备份,以避免不必要地消耗空间。

默认计划是

  • 每晚2点备份
  • 保留7天的每日备份
  • 保留4个月的月度备份
  • 每年保留年度备份

可以通过配置调整默认计划

在以下情况下使用此模块

  • 您正在运行SilverStripe 4.0及以上版本
  • 您拥有小型到中型网站
  • 在非PaaS提供商上自行托管
  • 有权访问AWS存储桶
  • 不想手动管理备份

如果以下情况不适用,则不要使用此模块

  • 您的Web服务器磁盘空间有限
  • 您的网站拥有庞大的数据库
  • 您需要专业的存档/SLA存储和备份要求
  • 深夜性能下降可能导致重大问题

安装

将您的模块安装到silverstripe项目中

composer require littlegiant/silverstripe-spindb

AWS配置

配置对您的AWS存储桶的访问。以下环境变量应在服务器上的env中直接配置,或在项目根目录中的.env中配置。

SPINDB_AWS_S3_BUCKET="<thebucketname>"
SPINDB_AWS_REGION="ap-southeast-2" # Or your aws region
SPINDB_AWS_ACCESS_KEY_ID="<my-access-key>"
SPINDB_AWS_SECRET_ACCESS_KEY="<my-secret>"

如果您想通过本地AWS凭据(存储在~/.aws/credentials)进行认证,则可以提供配置文件名称。

SPINDB_AWS_S3_BUCKET="<thebucketname>"
SPINDB_AWS_REGION="ap-southeast-2" # Or your aws region
SPINDB_AWS_PROFILE="profilename" # The profile name containing your authentication credentials. Can be `default`

如果您在AWS上运行此站点,则可以通过IAM提供访问权限,并且您只需指定以下内容。这是模块运行所需的最小配置。

SPINDB_AWS_S3_BUCKET="<thebucketname>"
SPINDB_AWS_REGION="ap-southeast-2" # Or your aws region

默认情况下,数据库备份写入到存储桶中的{baseurl}/db_{date}{ext}路径,但这可以配置。

SPINDB_PATH="{baseurl}/db_{date}{ext}"

支持的变量

  • {baseurl} BASE_URL变量的值
  • {date} 归档创建的日期(ISO_8601)
  • {time} 归档创建的时间(ISO_8601)
  • {ext} 创建的文件扩展名,例如.sql.zip,具体取决于归档方法

计划/轮换配置

您可以配置任务发生的时间,甚至它运行的频率。

SPINDB_SCHEDULE="0 2 * * *" # Every night at 2am

如果您想更少地备份,可以调整日期

SPINDB_SCHEDULE="0 2 */2 * *" # Every second night at 2am

您可以配置每日、每周、每月和每年的备份数量

以下每一项,0表示不保留备份,-1表示保留无限备份(请谨慎使用)

SPINDB_KEEP_DAILY="7" # Default to 1 week of backups
SPINDB_KEEP_WEEKLY="0" # Default to no weekly backups
SPINDB_KEEP_WEEKLY_DAY="0" # If keeping weekly backups set the day of the week to keep (0/7 = sunday, 1 = monday, etc).
SPINDB_KEEP_MONTHLY="4" # Default to 4 months of monthly backups
SPINDB_KEEP_MONTHLY_DAY="1" # Day of the month to keep. Archaic 1-based index sorry.
SPINDB_KEEP_YEARLY="-1" # Default to keep unlimited yearly backups.
SPINDB_KEEP_YEARLY_DAY="0" # Day of the year to keep. 0-365. (0 is Jan 1)
SPINDB_ARCHIVE="gzip" # Set archive mode. Supports `gzip` / `none`

您还可以配置一个警报电子邮件,在创建备份时通知您。

SPINDB_ALERT_EMAIL="webmaster@littlegiant.co.nz"