Il existe deux façons de sauvegarder et de restaurer le contenu du référentiel dans AEM :
L’approche décrite ici concerne la sauvegarde et la restauration d’un système.
Si vous avez besoin de sauvegarder et/ou de restaurer une petite quantité de contenu, qui est perdu, vous n’avez pas forcément besoin de restaurer le système :
Pour plus d’informations, consultez Sauvegarde de module ci-dessous.
N’effectuez pas la sauvegarde en parallèle du nettoyage de la mémoire d’entrepôt de données, car elle peut nuire aux résultats de ces deux processus.
Vous pouvez toujours effectuer une sauvegarde hors ligne. Cela nécessite un temps d’interruption d’AEM, mais peut s’avérer très efficace pour ce qui est du temps nécessaire par rapport à une sauvegarde en ligne.
Le plus souvent, vous utilisez un instantané de système de fichiers pour créer une copie en lecture seule du stockage à ce moment-là. Pour créer une sauvegarde hors ligne :
Comme la sauvegarde d’instantané ne prend généralement que quelques secondes, le temps d’interruption entier représente moins de quelques minutes.
Cette méthode de sauvegarde crée une sauvegarde du référentiel entier, y compris les applications déployées dans le référentiel, comme AEM. La sauvegarde comprend le contenu, l’historique des versions, la configuration, le logiciel, les correctifs, les applications personnalisées, les fichiers journaux, les index de recherche, etc. Si vous utilisez la mise en cluster et si le dossier partagé est un sous-répertoire de crx-quickstart
(physiquement ou à l’aide d’un softlink), le répertoire partagé est lui aussi sauvegardé.
Vous pouvez restaurer le référentiel entier (et les applications) ultérieurement.
Cette méthode fait office de sauvegarde « à chaud » ou « en ligne » et peut donc être exécutée alors que le référentiel est en cours d’exécution. Par conséquent, le référentiel peut être utilisé alors que la sauvegarde est en cours d’exécution. Cette méthode fonctionne pour les instances de référentiel par défaut, basées sur un stockage au format TAR.
Lors de la création d’une sauvegarde, vous disposez des possibilités suivantes :
Dans tous les cas, la sauvegarde crée une image (ou un instantané) du référentiel. Ensuite, l’agent de sauvegarde du système doit veiller à transférer réellement cette image vers un système de sauvegarde dédié (lecteur de bande magnétique).
Si la fonctionnalité Sauvegarde en ligne d’AEM est utilisée sur une instance AEM qui possède une configuration d’entrepôt de grands objets binaires personnalisée, il est recommandé de configurer le chemin d’accès au magasin de données de sorte qu’il soit à l’extérieur du répertoire crx-quickstart
et de sauvegarder le magasin de données séparément.
La sauvegarde en ligne ne sauvegarde que le système de fichiers. Si vous stockez le contenu et/ou les fichiers du référentiel dans une base de données, cette base de données doit être sauvegardée séparément. Si vous utilisez AEM avec MongoDB, voir la documentation sur l’utilisation des outils de sauvegarde natifs de MongoDB.
Une sauvegarde en ligne de votre référentiel permet de créer, de télécharger et de supprimer des fichiers de sauvegarde. Il s’agit d’une fonctionnalité de sauvegarde « à chaud » ou « en ligne », qui peut donc être exécutée alors que le référentiel est utilisé normalement en mode lecture-écriture.
N’exécutez pas la fonctionnalité Sauvegarde en ligne d’AEM en même temps que le Nettoyage de la mémoire de magasin de données ou le Nettoyage des révisions. Cela affecte les performances du système.
Lors du démarrage d’une sauvegarde, vous pouvez spécifier un chemin d’accès cible et un délai.
Chemin cible Les fichiers de sauvegarde sont généralement enregistrés dans le dossier parent du fichier qui contient le fichier JAR de quickstart (.jar). Par exemple, si le fichier JAR d’AEM se trouve sous /InstallationKits/AEM, la sauvegarde est générée sous /InstallationKits. Vous pouvez également spécifier une cible correspondant à un emplacement de votre choix.
Si le chemin d’accès cible est un répertoire, l’image du référentiel est créée dans ce répertoire. Si le même répertoire est utilisé plusieurs fois (ou toujours) pour stocker une sauvegarde :
Si Chemin d’accès cible est défini sur un nom de fichier avec une extension .zip, le référentiel est sauvegardé dans un répertoire temporaire, puis le contenu de ce répertoire temporaire est compressé et stocké dans le fichier ZIP.
Cette approche est déconseillée, car :
Si vous devez créer un fichier ZIP comme format de sauvegarde, vous devez effectuer la sauvegarde dans un répertoire, puis utiliser un programme de compression pour créer le fichier ZIP.
Délai Indique un délai (en millisecondes) afin que les performances du référentiel ne soient pas affectées. Par défaut, la sauvegarde du référentiel s’exécute à la vitesse maximale. Vous pouvez ralentir la création d’une sauvegarde en ligne afin de ne pas ralentir d’autres tâches.
Lorsque vous utilisez un délai très important, assurez-vous que la sauvegarde en ligne ne met pas plus de 24 heures. En pareil cas, annulez cette sauvegarde, car elle ne contient peut-être pas tous les fichiers binaires.
Un délai de 1 ms se traduit généralement par l’utilisation de 10 % du processeur. Un délai de 10 ms se traduit généralement par l’utilisation de moins de 3 % du processeur. Le délai total en secondes peut être évalué comme suit : taille du référentiel en Mo, multiplié par le délai en millisecondes, divisé par 2 (si l’option ZIP est utilisée) ou divisé par 4 (en cas de sauvegarde dans un répertoire). Cela signifie qu’une sauvegarde dans un répertoire de 200 Mo avec un délai de 1 ms augmente le temps de sauvegarde de 50 secondes environ.
Pour les détails internes du processus, consultez Fonctionnement de la sauvegarde en ligne d’AEM.
Pour créer une sauvegarde :
Connectez-vous à AEM en tant qu’administrateur.
Sélectionnez Outils > Opérations > Sauvegarde.
Cliquez sur Créer. La console de sauvegarde s’affiche.
Dans la console de sauvegarde, spécifiez le chemin d’accès cible et le délai.
La console de sauvegarde est également disponible en utilisant :
https://<*hostname*>:<*port-number*>/libs/granite/backup/content/admin.html
Cliquez sur Enregistrer. Une barre de progression indique la progression de la sauvegarde.
Vous pouvez annuler une sauvegarde en cours à tout moment.
Une fois la sauvegarde terminée, les fichiers ZIP sont répertoriés dans la fenêtre Sauvegarde.
Les fichiers de sauvegarde qui ne sont plus nécessaires peuvent être supprimés à l’aide de la console. Sélectionnez le fichier de sauvegarde dans le volet de gauche, puis cliquez sur Supprimer.
Si vous avez effectué la sauvegarde dans un répertoire : une fois le processus de sauvegarde terminé, AEM n’écrira pas dans le répertoire cible.
Si cela est possible, la sauvegarde en ligne doit être exécutée lorsque la charge sur le système est réduite, le matin, par exemple.
Les sauvegardes peuvent être automatisées à l’aide du client HTTP wget
ou curl
. Voici des exemples d’automatisation de la sauvegarde à l’aide du client curl.
Dans l’exemple ci-dessous, différents paramètres dans la commande curl
doivent être configurés pour votre instance. Par exemple, le nom d’hôte (localhost
), le port (4502
), le mot de passe administrateur (xyz
) et le nom de fichier (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
Le fichier/répertoire de sauvegarde est créé sur le serveur dans le dossier parent du dossier qui contient le dossier crx-quickstart
(le même que si vous étiez en train de créer la sauvegarde à l’aide du navigateur). Par exemple, si vous avez installé AEM dans le répertoire /InstallationKits/crx-quickstart/
, la sauvegarde est ensuite créée dans le répertoire /InstallationKits
.
La commande curl renvoie immédiatement une valeur. Vous devez donc surveiller ce répertoire pour savoir quand le fichier ZIP est prêt. Alors que la sauvegarde est en cours de création, un répertoire temporaire (dont le nom dépend du fichier ZIP final) s’affiche et à la fin, il est compressé. Par exemple :
backup.zip
backup.f4d5.temp
En général, le fichier/répertoire de sauvegarde est créé sur le serveur, dans le dossier parent du dossier qui contient le dossier crx-quickstart
.
Si vous souhaitez enregistrer votre sauvegarde (indépendamment du type) à un autre emplacement, vous pouvez définir un chemin d’accès absolu dans le paramètre target
dans la commande curl
.
Par exemple, pour générer le fichier backupJune.zip
dans le répertoire /Backups/2012
:
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"
Lorsque vous utilisez un autre serveur d’applications (comme JBoss), la sauvegarde en ligne risque de ne pas fonctionner comme prévu, car le répertoire cible n’est pas accessible en écriture. Dans ce cas, contactez le support.
Une sauvegarde peut également être déclenchée à l’aide de beans gérés (MBeans) fournis par AEM.
Le processus décrit ici est particulièrement adapté aux grands référentiels.
Si vous souhaitez utiliser cette approche de la sauvegarde, votre système doit prendre en charge les instantanés de système de fichiers. Par exemple, pour Linux, cela signifie que vos systèmes de fichiers doivent être placés sur un volume logique.
Créez un instantané du système de fichiers sur lequel AEM est déployé.
Montez l’instantané du système de fichiers.
Effectuez une sauvegarde et démontez l’instantané.
La sauvegarde en ligne d’AEM comprend une série d’actions internes pour s’assurer de l’intégrité des données sauvegardées et des fichiers de sauvegarde créés. Elles sont répertoriées ci-dessous à l’intention des personnes intéressées.
La sauvegarde en ligne utilise l’algorithme suivant :
Lors de la création d’un fichier ZIP, la première étape consiste à créer ou à chercher le répertoire cible.
Si vous effectuez une sauvegarde dans un fichier ZIP, un répertoire temporaire est créé. Le nom du répertoire commence par backup.
et se termine par .temp
; par exemple backup.f4d3.temp
.
Si vous effectuez une sauvegarde dans un répertoire, le nom spécifié dans le chemin d’accès cible est utilisé. Vous pouvez utiliser un répertoire existant. Autrement, un autre répertoire est créé.
Un fichier vide nommé « backupInProgress.txt
» est créé dans le répertoire cible au début de la sauvegarde. Ce fichier est supprimé une fois la sauvegarde terminée.
Les fichiers sont copiés du répertoire source vers le répertoire cible (ou vers un répertoire temporaire lors de la création d’un fichier ZIP). L’entrepôt de segments est copié avant le magasin de données afin d’éviter d’altérer le référentiel. Les données d’index et du cache sont omises lors de la création de la sauvegarde. Par conséquent, les données des répertoires crx-quickstart/repository/cache
et crx-quickstart/repository/index
ne sont pas incluses dans la sauvegarde. L’indicateur de la barre de progression du processus est compris entre 0 % et 70 % lors de la création d’un fichier ZIP ou entre 0 % et 100 % si aucun fichier ZIP n’est créé.
Si la sauvegarde est effectuée dans un répertoire préexistant, les « anciens » fichiers du répertoire cible sont supprimés. Les anciens fichiers sont les fichiers qui n’existent pas dans le répertoire source.
Les fichiers sont copiés vers le répertoire cible en quatre étapes :
Lors de la première étape de copie (indicateur de progression compris entre 0 % et 63 % lors de la création d’un fichier ZIP ou entre 0 % et 90 % si aucun fichier ZIP n’est créé), tous les fichiers sont copiés alors que le référentiel est exécuté normalement. Le processus comporte deux phases :
Lors de la deuxième étape de copie (indicateur de progression compris entre 63 % et 65,8 % lors de la création d’un fichier ZIP ou entre 90 % et 94 % si aucun fichier ZIP n’est créé), seuls les fichiers créés ou modifiés dans le répertoire source depuis le début de la première étape de copie sont copiés. En fonction de l’activité du référentiel, cela peut aussi bien correspondre à aucun fichier ou à un nombre de fichiers significatif (car la première étape de la copie des fichiers prend généralement beaucoup de temps). Le processus de copie est similaire à la première étape (phase A et phase B avec un délai).
Lors de la troisième étape de copie (indicateur de progression compris entre 65,8 % et 68,6 % lors de la création d’un fichier ZIP ou entre 94 % et 98 % si aucun fichier ZIP n’est créé), seuls les fichiers créés ou modifiés dans le répertoire source depuis le début de la deuxième étape de la copie sont copiés. En fonction de l’activité du référentiel, il peut n’y avoir aucun fichier à copier ou un très petit nombre de fichiers (car la deuxième étape de copie des fichiers est généralement rapide). Le processus de copie est similaire à la deuxième étape (phase A et phase B mais sans délai).
Les étapes de copie des fichiers, de la première à la troisième, sont toutes effectuées simultanément alors que le référentiel est en cours d’exécution. Seuls les fichiers créés ou modifiés dans le répertoire source depuis le début de la troisième étape de copie sont copiés. En fonction de l’activité du référentiel, il peut n’y avoir aucun fichier à copier ou un vraiment très petit nombre de fichiers (car la deuxième étape de copie des fichiers est généralement très rapide). L’indicateur de progression est compris entre 68,6 % et 70 % lors de la création d’un fichier ZIP ou entre 98 % et 100 % si aucun fichier ZIP n’est créé. Le processus de copie est similaire à la troisième étape.
En fonction de la cible :
backupInProgress.txt
est supprimé pour indiquer que la sauvegarde est terminée.Vous pouvez restaurer une sauvegarde, comme suit :
Pour sauvegarder et restaurer du contenu, vous pouvez utiliser l’un des gestionnaires de modules, qui utilise le format de module de contenu pour sauvegarder et restaurer du contenu. Le gestionnaire de modules offre davantage de flexibilité pour définir et gérer les modules.
Pour plus d’informations sur les fonctionnalités et les inconvénients de chacun de ces formats de module de contenu, voir Utilisation des modules.
Lorsque vous sauvegardez des nœuds à l’aide du gestionnaire de modules ou de Content Zipper, CRX enregistre les informations suivantes :
Lors de la sauvegarde, AEM perd les informations suivantes :