基本指南:备份并恢复您的Wagtail网站以获得数据安全和安心。
介绍
备份是维护任何网站的重要组成部分,包括使用Wagtail构建的网站。无论是由于服务器崩溃,黑客事件还是意外删除,丢失您的网站数据都可能是毁灭性的。在这篇博客文章中,我将引导您完成手动创建备份并恢复Wagtail网站的步骤。通过遵循以下步骤,您可以保护您的网站数据并在发生灾难时迅速恢复它。
创建备份
您需要为Wagtail站点创建两种主要备份类型:文件系统备份和数据库备份。文件系统备份将包含组成您网站的所有文件,而数据库备份将包含存储在数据库中的所有数据。
数据库备份
要创建数据库备份,请按照以下步骤:
- ssh作为具有sudo特权的用户进入服务器。
- (可选)导航到您的网站根目录。这是存储Wagtail Projects Manage.py文件的目录。例如,如果您遵循我的Deploying Wagtail指南,则根目录将在
/opt/wagtail/<projectname>
。这是我喜欢存储数据库备份的地方,以便将其包含在文件系统备份中。 - 我的服务器使用MariadB,所以这就是我在这里记录的内容。对于其他数据库,搜索创建数据库转储很容易。运行以下命令以切换到根用户,创建一个SQL转储,然后退回给普通用户。
$ sudo su
[sudo] password for user:
$ mysqldump -u root -p wagtail > db_backup.sql
Enter password:
$ exit
- 将文件移至安全位置。您可以使用
scp
或rsync
之类的命令将文件复制到本地计算机或远程备份服务器。
文件系统备份
- ssh作为具有sudo特权的用户进入服务器。
- 使用tar命令将根目录中的所有文件压缩为单个文件。例如,创建一个名为“ example.com.tar.gz”的备份文件并将其存储在您的用户中,请使用以下命令
$ tar -czvf ~/example.com.tar.gz .
- 将文件移至安全位置。您可以使用
scp
或rsync
之类的命令将文件复制到本地计算机或远程备份服务器。
此时,您现在应该同时拥有一个文件系统备份和在紧急情况下存储在安全位置中的数据库备份。在下一节中,我将带您浏览恢复备份的步骤。
恢复备份
如果您不知道如何恢复,备份有什么好处?无论您是在紧急情况后恢复还是将网站迁移到新主机,这些步骤都会使您通过备份网站并运行。
我不会浏览您的Web服务器,代理软件或防火墙。如果您不确定如何设置主机服务器会查看我的Deploying Wagtail on CentOS 8指南。而不是克隆git存储库,请遵循下一部分上的说明来还原文件系统。而不是设置数据库,而是按照数据库还原部分中的说明。
中的说明。文件系统还原
- ssh作为具有sudo特权的用户进入新服务器。
- 从备份位置复制备份文件。如果您使用的是可连接的卷或同等的S3,请继续将该设备安装到新服务器,如果还没有,则使用
cd
命令更改为该目录。 - 如果您遵循了我的部署指南,请更改为Wagtail用户。
$ sudo su - wagtail
- 创建项目文件将播放的文件夹。然后,使用sudo特权退回给您的用户(或使用该用户切换到TMUX终端)。
$ mkdir /opt/wagtail/<projectname>
$ exit
- 从备份tar.gz文件中提取文件。
$ sudo tar -xzvf example.com.tar.gz -C /opt/wagtail/<projectname>/
现在,这些文件已经到位,我们需要在继续之前进行数据库设置。
数据库还原
- 作为具有Sudo特权的用户,请切换到root用户。
$ sudo su
- 使用您的SQL备份文件更改为目录。如果您遵循本指南,则应在您的项目根文件夹中。
$ cd /opt/wagtail/<projectname>
- 要还原数据库,我们需要首先创建它。而且,我们可能会在我们使用时创建用户并授予所有特权。
$ mysql -u root -p
Enter password: <enter>
> CREATE DATABASE wagtail CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
> CREATE USER 'wagtaildb'@'localhost' IDENTIFIED BY '<db user password>';
> GRANT ALL PRIVILEGES ON wagtail.* to wagtaildb@localhost;
> FLUSH PRIVILEGES;
> exit;
- 现在,将SQL文件的内容还原到您新创建的Wagtail数据库。
$ mysql -u root -p wagtail < db_backup.sql
整理起来
既然您的文件系统和数据库已经恢复,我喜欢运行迁移并收集静态以确保您的网站已准备就绪。切换到Wagtail用户,并确保您激活了虚拟环境。
$ sudo su - wagtail
$ source .venv/bin/activate
$ cd <project name>
$ ./manage.py makemigrations
$ ./manage.py migrate
$ ./manage.py collectstatic --no-input
还原或配置您的Web服务器(Gunicorn,Uwsgi等...)和您的反向代理(nginx,apache),您应该全部设置。
备份和修复的最佳实践
确保Wagtail网站备份和修复的有效性和可靠性,请考虑以下最佳实践:
- 定期安排备份:设置常规备份时间表,以确保您的数据持续备份。根据您网站的更新和更改的频率,请考虑每天,每周或每月备份。
- 测试您的备份:通过将其恢复到测试环境中,定期测试您的备份。此步骤有助于验证您的备份是否完整且功能正常,使您可以在需要实际修复之前识别和解决任何问题。
- 存储备份外现场:将备份存储在与生产服务器分开的异地位置。这种做法可保护防止物理损坏或与服务器相关的问题。考虑使用云存储,外部硬盘驱动器或远程备份服务。
- 实现多个备份存储:避免依靠单个备份位置或存储设备。使用多个存储选项来确保冗余并最大程度地减少数据丢失的风险。
- 加密备份:通过加密备份数据来保护备份数据的机密性和完整性。此步骤可确保即使您的备份落入错误的手中,如果没有加密密钥,它们也将是不可读的。
- 记录备份和恢复过程:保持清晰的文档,概述了创建备份和恢复它们的分步程序。本文档在紧急情况下用作参考指南,并有助于确保过程中的一致性。
- 监视备份成功和错误:定期检查备份日志和监视工具,以验证备份成功并确定任何错误或故障。迅速解决任何问题以维持备份系统的可靠性。
- 将软件和组件保持最新:定期更新和修补Wagtail项目的软件组件,包括操作系统,数据库,Web服务器和备份工具。这种实践确保在备份和恢复过程中确保兼容性,安全性和最佳性能。
通过遵循这些最佳实践,您可以增强Wagtail网站备份和恢复程序的可靠性,安全性和有效性。
结论
总而言之,实施定期备份,对其进行测试并将其存储在异地对于确保Wagtail网站的安全性和完整性至关重要。通过遵循最佳实践,例如加密,文档和监视,您可以增强备份和恢复流程的可靠性和安全性。此外,将软件和组件保持最新对于保持兼容性和最佳性能至关重要。
记住,准备和实践是成功保护您的网站数据的关键。借助这些实践,您可以自信地浏览备份和修复过程并保护您的宝贵Wagtail网站。
其他资源
有关Wagtail,备份和网站部署的更多信息和资源,请访问以下内容:
- Official Wagtail Documentation
- Deploying Wagtail在Centos8上与Mariadb/nginx/Gunicorn
保持知情,探索并保持您的Wagtail网站启动并顺利运行!