在AEM中,有两种方法可备份和恢复存储库内容:
此处介绍的方法适用于系统备份和恢复。
如果您需要备份和/或恢复丢失的少量内容,则不一定需要恢复系统:
有关详细信息,请参阅下面的包备份。
请勿与数据存储垃圾收集并行运行备份,因为这可能会损害两个进程的结果。
您始终可以执行离线备份。 这需要AEM停机,但与在线备份相比,在所需时间方面会非常高效。
在大多数情况下,您将使用文件系统快照来创建当时存储的只读副本。 要创建脱机备份,请执行以下步骤:
由于快照备份通常只需要几秒钟,因此整个停机时间不到几分钟。
此备份方法可创建整个存储库的备份,包括其下部署的任何应用程序,如AEM。 备份包括内容、版本历史记录、配置、软件、修补程序、自定义应用程序、日志文件、搜索索引等。 如果您使用群集,并且共享文件夹是crx-quickstart
的子目录(物理上或使用软链接),则也会备份共享目录。
您可以稍后恢复整个存储库(以及任何应用程序)。
此方法作为“热”或“联机”备份运行,因此可在存储库运行时执行此方法。 因此,在备份运行时,该存储库可用。 此方法适用于默认的基于Tar存储的存储库实例。
创建备份时,您可以使用以下选项:
无论如何,备份都会创建存储库的映像(或快照)。 然后,系统备份代理应当注意将此映像实际传输到专用备份系统(磁带机)。
如果在具有自定义Blobstore配置的AEM实例上使用了AEM联机备份功能,则建议将数据存储的路径配置为位于“ crx-quickstart
”目录之外,并单独备份数据存储。
联机备份仅备份文件系统。 如果将存储库内容和/或存储库文件存储在数据库中,则需要单独备份该数据库。 如果您正在将AEM与MongoDB结合使用,请参阅关于如何使用MongoDB本机备份工具的文档。
通过在线备份存储库,您可以创建、下载和删除备份文件。 它是“热”或“联机”备份功能,因此在读写模式下正常使用存储库时,可以执行该功能。
启动备份时,可以指定目标路径和/或延迟。
目 标路径备份文件通常保存在存放快速入门Jar文件(.jar)的文件夹的父文件夹中。例如,如果您在/InstallationKits/AEM下有AEM jar文件,则备份将在/InstallationKits下生成。 您还可以将目标指定到您选择的位置。
如果TargetPath是目录,则将在此目录中创建存储库的映像。 如果同一目录被多次(或始终)用于存储备份,
如果将TargetPath设置为扩展名为**.zip**的文件名,则存储库将备份到临时目录,然后压缩此临时目录的内容并将其存储在ZIP文件中。
这种方法是不鼓励的,因为
如果需要创建ZIP作为备份格式,则应该备份到目录,然后使用压缩程序创建ZIP文件。
DelayDelay指示时间延迟(以毫秒为单位),以便不影响存储库性能。默认情况下,存储库备份以全速运行。 您可以减慢创建在线备份的速度,以便不会减慢其他任务的速度。
使用非常大的延迟时,请确保在线备份不会超过24小时。 如果是,请放弃此备份,因为它可能不包含所有二进制文件。
1毫秒的延迟通常导致CPU使用率达到10%,而10毫秒的延迟通常导致CPU使用率低于3%。 总延迟(以秒为单位)的估计如下:存储库大小(MB)、延迟(以毫秒为单位)、 2(如果使用zip选项)或4(备份到目录时)。 这意味着,备份到200 MB存储库的目录(延迟为1毫秒)会将备份时间增加大约50秒。
有关该过程的内部详细信息,请参阅AEM联机备份的工作方式。
要创建备份,请执行以下操作:
以管理员身份登录AEM。
转到工具 — 操作 — 备份。
单击创建。将打开备份控制台。
备份控制台也可使用:
https://<*hostname*>:<*port-number*>/libs/granite/backup/content/admin.html
单击Save,进度栏将指示备份进度。
您可以随时取消正在运行的备份。
备份完成后,备份窗口中会列出zip文件。
可以使用控制台删除不再需要的备份文件。 在左窗格中选择备份文件,然后单击删除。
如果已备份到目录:备份过程完成后,AEM将不会写入目标目录。
如果可能,应当在系统负载很小时(例如在上午)运行联机备份。
可以使用wget
或curl
HTTP客户端自动执行备份。 下面显示了如何使用curl自动备份的示例。
在以下示例中,可能需要为实例配置curl
命令中的各种参数;例如,主机名(localhost
)、端口(4502
)、管理员密码(xyz
)和文件名(backup.zip
)。
curl -u admin:admin -X POST http://localhost:4502/system/console/jmx/com.adobe.granite:type=Repository/op/startBackup/java.lang.String?target=backup.zip
备份文件/目录在服务器上的父文件夹中创建,该文件夹包含crx-quickstart
文件夹(与使用浏览器创建备份时相同)。 例如,如果在/InstallationKits/crx-quickstart/
目录中安装了AEM,则会在/InstallationKits
目录中创建备份。
curl命令会立即返回,因此您必须监视此目录以查看zip文件准备就绪的时间。 在创建备份时,可以看到临时目录(其名称基于最终zip文件的名称),最后将压缩该目录。 例如:
backup.zip
backup.f4d5.temp
备份文件/目录通常在服务器上的包含crx-quickstart
文件夹的文件夹的父文件夹中创建。
如果要将备份(按任一顺序)保存到其他位置,可以在curl
命令中将绝对路径“设置为target
参数。
例如,要在/Backups/2012
目录中生成backupJune.zip
,请执行以下操作:
curl -u admin:admin -X POST http://localhost:4502/system/console/jmx/com.adobe.granite:type=Repository/op/startBackup/java.lang.String?target=/Backups/2012/backupJune.zip"
使用其他应用程序服务器(如JBoss)时,联机备份可能无法按预期工作,因为目标目录不可写。 在这种情况下,请联系支持。
也可以使用AEM🔗提供的MBean触发备份。
此处描述的流程特别适用于大型存储库。
如果要使用此备份方法,则系统必须支持文件系统快照。 例如,对于Linux,这意味着您的文件系统应放置在逻辑卷上。
为部署的文件系统AEM创建快照。
装载文件系统快照。
执行备份并卸载快照。
AEM Online Backup由一系列内部操作组成,这些操作可确保正在备份的数据和正在创建的备份文件的完整性。 下面列出了感兴趣的用户。
联机备份使用以下算法:
创建zip文件时,第一步是创建或查找目标目录。
如果备份到zip文件,则会创建一个临时目录。 目录名称以backup.
开头,以.temp
结尾;例如backup.f4d3.temp
。
如果备份到目录,则使用目标路径中指定的名称。 可以使用现有目录,否则将创建新目录。
启动备份时,将在目标目录中创建名为backupInProgress.txt
的空文件。 备份完成后,将删除此文件。
文件将从源目录复制到目标目录(或创建zip文件时的临时目录)。 在数据存储之前复制segmentstore以避免存储库损坏。 创建备份时,将忽略索引和缓存数据。 因此,备份中不包含来自crx-quickstart/repository/cache
和crx-quickstart/repository/index
的数据。 创建zip文件时,该过程的进度条指示器介于0% - 70%之间;如果未创建zip文件,则进度条指示器为0% - 100%。
如果备份到预先存在的目录,则目标目录中的“旧”文件会被删除。 旧文件是源目录中不存在的文件。
这些文件将分四个阶段复制到目标目录:
在第一个复制阶段(创建zip文件时的进度指示器0% - 63%或未创建zip文件时的进度指示器0% - 90%),在存储库正常运行时复制所有文件。 该过程分为两个阶段:
在第二个复制阶段(创建zip文件时进度指示器为63% - 65.8%,如果没有创建zip文件,则为90% - 94%),只复制自第一个复制阶段启动以来在源目录中创建或修改的文件。 根据存储库的活动,这可能范围从根本没有文件到大量文件(因为第一个文件复制阶段通常需要很长时间)。 复制过程类似于第一阶段(具有延迟的阶段A和阶段B)。
在第三个复制阶段(创建zip文件时进度指示器为65.8% - 68.6%,如果未创建zip文件则为94% - 98%),只复制自第二个复制阶段启动以来在源目录中创建或修改的文件。 根据存储库的活动,可能没有要复制的文件,或者只有非常少的文件(因为第二个文件复制阶段通常是快速的)。 复制过程类似于第二阶段 — 阶段A和阶段B ,但没有延迟。
文件复制阶段1到3在存储库运行时都同时完成。 只复制自启动第三个复制阶段以来在源目录中创建或修改的文件。 根据存储库的活动,可能没有要复制的文件,或者文件的数量非常非常少(因为第二个文件复制阶段通常非常快)。 创建zip文件时,进度指示器为68.6% - 70%;如果未创建zip文件,进度指示器为98% - 100%。 复制过程与第三阶段类似。
根据目标:
backupInProgress.txt
的空文件,以指示备份已完成。可以按如下方式恢复备份:
要备份和恢复内容,您可以使用包管理器中的一个,该管理器使用内容包格式来备份和恢复内容。 包管理器在定义和管理包方面提供了更大的灵活性。
有关这些单独的内容包格式的功能和权衡的详细信息,请参阅如何使用包。
当您使用包管理器或内容拉链备份节点时,CRX会保存以下信息:
备份时,AEM会丢失以下信息: