本文档提供了关于备份和恢复Immich实例的全面指南。一个恰当的备份策略至关重要,因为Immich将文件路径存储在数据库中,并且不会扫描库文件夹来更新数据库。如果没有定期备份,即使您仍然拥有原始文件,您也有可能丢失元数据关联。
Immich建议遵循3-2-1备份策略:3份数据副本,存储在2种不同的介质上,其中1份副本存储在异地。有关可作为cron作业运行以实现自动化备份的模板脚本,请参阅模板备份脚本页面。
Immich中的PostgreSQL数据库包含有关资产、用户、相册、面部识别数据和系统设置的所有元数据。此数据库对Immich的功能至关重要。
来源: docs/docs/administration/backup-and-restore.md12-27 docs/docs/administration/backup-and-restore.md45-99
默认情况下,Immich会自动创建数据库备份,设置如下:
UPLOAD_LOCATION/backups您可以在管理面板的“系统设置”>“备份”下调整这些设置。
要触发手动数据库备份
将运行一个作业并在配置的位置创建备份。
来源: docs/docs/administration/backup-and-restore.md26-39
手动备份提供了对数据库备份时间和地点的更多控制。
对于 Linux 系统
对于 Windows 系统(PowerShell)
来源: docs/docs/administration/backup-and-restore.md50-53 docs/docs/administration/backup-and-restore.md72-75
对于 Linux 系统
对于 Windows 系统,步骤类似,但使用特定于 PowerShell 的命令。
来源: docs/docs/administration/backup-and-restore.md54-68 docs/docs/administration/backup-and-restore.md76-90
注意:为了使数据库恢复正常工作,需要一个全新的安装,并且在创建Docker容器后Immich服务器从未运行过。如果应用程序已运行,您可能需要删除
DB_DATA_LOCATION文件夹来完全重置数据库。
警告:请勿直接备份
DB_DATA_LOCATION文件夹。在数据库运行时这样做可能会导致备份损坏,无法恢复。
来源: docs/docs/administration/backup-and-restore.md22-24 docs/docs/administration/backup-and-restore.md95-99
Immich在文件系统中存储两种内容:
来源: docs/docs/administration/backup-and-restore.md102-142 docs/docs/administration/backup-and-restore.md178-194
文件系统结构取决于您是否启用了存储模板功能
UPLOAD_LOCATION/upload/<userID>/UPLOAD_LOCATION/profile/<userID>/UPLOAD_LOCATION/thumbs/<userID>/UPLOAD_LOCATION/encoded-video/<userID>/注意:对于新安装的1.92.0或更高版本,
UPLOAD_LOCATION/library文件夹默认不使用。它仅在激活存储模板引擎时使用。
UPLOAD_LOCATION/library/<userID 或 StorageLabel>/UPLOAD_LOCATION/upload/<userID>/ 中来源: docs/docs/administration/backup-and-restore.md119-167 docs/docs/administration/backup-and-restore.md175-204
为了进行全面备份,建议备份整个 UPLOAD_LOCATION 目录。但是,如果空间有限,包含原始内容的最关键文件夹是
UPLOAD_LOCATION/library (当存储模板开启时)UPLOAD_LOCATION/upload (当存储模板关闭时)UPLOAD_LOCATION/profile如果您选择仅备份这些关键文件夹,恢复后您需要通过管理界面运行相应的作业来重新生成缩略图和转码视频。
警告:请勿直接修改这些文件夹中的文件。所有对资产的交互都应通过Immich的Web或移动端界面进行。
来源: docs/docs/administration/backup-and-restore.md103-113 docs/docs/administration/backup-and-restore.md210-213
要实现全面的备份解决方案,您需要:
来源: docs/docs/guides/template-backup-script.md1-91 docs/docs/administration/backup-and-restore.md101-213
Immich提供了一个模板bash脚本,可以作为cron作业运行以实现自动化备份。该脚本使用Borg,一个具有版本控制功能的重复数据删除归档器。该脚本
UPLOAD_LOCATION/database-backup有关此脚本的详细信息,请参阅模板备份脚本页面。
来源: docs/docs/guides/template-backup-script.md1-91 docs/docs/administration/backup-and-restore.md6
要恢复完整备份
注意:确保恢复的数据库中的文件路径与磁盘上的实际文件位置匹配。如果您更改了路径或目录结构,可能需要相应地更新数据库。Immich将文件路径保存在数据库中,并且不扫描库文件夹来更新数据库。
来源: docs/docs/administration/backup-and-restore.md15 docs/docs/guides/template-backup-script.md72-90