For the complete documentation index, see llms.txt. This page is also available as Markdown.

备份服务器数据

自托管 Bitwarden 时,您需要自行负责实施备份流程以确保数据安全。虽然具体步骤取决于您的部署方式,但无论如何,我们都建议您:

  • 手动定期备份重要数据,包括配置数据、证书数据等。

  • 确保执行自动重复的数据库备份。

lightbulb

手动备份

Bitwarden 会在夜间自动备份 mssql 数据库容器(见下文),但是对于最完整的灾难恢复 (DR) 计划,您应该手动备份并确保整个 ./bwdata 目录的安全。

需要定期备份的 ./bwdata 中特别重要的部分包括:

  • ./bwdata/env - 实例的环境变量,包括数据库和证书密码

  • ./bwdata/core/attachments - 实例的密码库项目的附件

  • ./bwdata/mssql/data - 实例的数据库数据

  • ./bwdata/core/aspnet-dataprotection - 框架级数据保护,包括身份验证令牌和部分数据库列。

您还可以使用以下命令随时手动触发 mssql 数据库容器的备份:

docker exec -i bitwarden-mssql /backup-db.sh

自动数据库备份

只要容器正在运行,Bitwarden 会自动对 mssql 容器数据库进行夜间备份。备份保存在 ./bwdata/mssql/backups 目录中并将保留 30 天。

Bitwarden Lite 不会进行每日备份。使用 Lite 版本,您需要自行管理备份流程。

默认情况下,创建备份文件时名称中包含备份文件的 UTC 时间。如果您希望使用本地时间,请将以下行添加到 ./bwdata/env/mssql.override.env,然后重启服务器。

# 在以下示例中,请将 America/New_York 替换为您的 IANA 时区名称:
BACKUP_TIMEZONE=America/New_York

恢复数据库备份

如果发生数据丢失,您可以使用 ./bwdata/mssql/backups 来恢复夜间备份。请完成以下步骤来恢复夜间备份:

1、从 global.override.env 中查找 globalSettings__sqlServer__connectionString=...Password= 的值以获取您的数据库密码。

2、使用 docker ps 命令标识 mssql 容器的容器 ID。

3、运行以下命令为您的 mssql docker 容器打开一个 bash 会话:

现在,您的命令提示符应与 bitwarden-mssql 容器的已标识容器 ID 相匹配。

4、在容器中,找到要还原的备份文件。

容器中的备份目录是从主机目录进行卷映射的。主机上的 ./bwdata/mssql/backups 映射到容器中的 etc/bitwarden/mssql/backups。

例如,文件 /etc/bitwarden/mssql/backups/vault_FULL_20201208_003243.BAK 是 2020 年 12 月 8 日上午 00:32 生成的备份。

5、使用以下命令启动 sqlcmd 实用程序:

其中的 <sa> 和 <sa-password> 分别匹配 global.override.env 中的 User= 和 Password= 的值。

6、在 sqlcmd 实用程序中,有两种备份选项:

  • 离线备份(首选)

运行下面的 SQL 命令:

重启您的 Bitwarden 实例以完成恢复过程。

  • 在线备份

运行下面的 SQL 命令:

重启您的 Bitwarden 实例以完成恢复过程。

手动备份

Bitwarden 提供了可用于定期备份数据库的示例作业(见下文),但是对于最完整的灾难恢复 (DR) 计划,您应该手动备份并确保更广泛的服务器数据的安全。

需要定期备份的特别重要的数据包括:

  • 您的图表的 my-values.yaml 文件。

  • 您的 Kubernetes Secrets 对象(通常为 .yaml 文件)。

  • 为以下目的设置的任何持久卷 (PVC):

    • dataprotection

    • attachments

    • licenses

定期数据库备份

有多种方法可以为 Bitwarden 部署安排定期数据库备份。Bitwarden Helm Charts 存储库包含一个用于备份预打包的 SQL 容器的示例,其中包括:

  • 创建一个 Kubernetes 作业对象 (backup-job.yaml),该对象通过 Kubernetes Secrets 建立与数据库的连接,执行备份,并将生成的 Vault.bak 文件存储到持久卷 (PVC),同时保留以前的备份。

  • 创建一个 Bash 脚本 (db-backup.sh),供集群外部的任务调度程序使用,它将运行 Kubernetes 作业并实时监控它。

恢复备份

要恢复备份,请使用备份的 my-values 文件和 Kubernetes Secret 对象 .yaml 文件部署新的 Bitwarden Helm 安装。重新安装图表后,重新附加手动备份的持久卷 (PVC) 和 Vault.bak 数据库备份。

最后更新于