Doc produitsMenu

Sauvegarde de l'index avec un script PowerShell

CES 7.0.6830+ (juillet 2014)

Il est conseillé de sauvegarder régulièrement votre index Coveo afin de le restaurer efficacement en état valide et à jour suite à des événements perturbateurs. La création de sauvegardes d'index est particulièrement importante pour les index avec de grosses sources qui peuvent prendre davantage de temps et de ressources informatiques pour régénérer à partir de zéro.

Il est recommandé d'utiliser la fonctionnalité de sauvegarde de l'index de Coveo Enterprise Search (CES) pour sauvegarder régulièrement votre index Coveo (voir À propos de la fonctionnalité de sauvegarde de l'index). Les sauvegardes excluent les fichiers de journal d'index et temporaires. Vous pouvez choisir de compresser les fichiers d'index sauvegardés pour réduire les exigences d'espace disque. L'opération de sauvegarde peut être lancée à l'aide d'un script PowerShell qui vous permet d'automatiser facilement la création de sauvegardes d'index à des intervalles réguliers. Si vous devez retourner à un index sauvegardé, l'opération de restauration est effectuée en exécutant le serveur CES avec le paramètre -restore dans une ligne de commande (voir Restauration d'une sauvegarde d'index).

Lorsque vous avez un ou plusieurs serveurs miroirs, vous ne devez sauvegarder l'index que dans le serveur maître. Si vous avez besoin de restaurer votre index maître, les index de serveurs miroirs seront synchronisés avec l'index maître restauré.

Pour sauvegarder l'index avec un script PowerShell

  1. Connectez-vous au serveur maître de Coveo avec un compte d'administrateur.

  2. Veillez à ce que le disque cible de sauvegarde de l'index ait suffisamment d'espace libre pour enregistrer les fichiers de sauvegarde.

    La taille du dossier sauvegardé sera inférieure à celle du dossier d'index original, car il n'y a pas de fichiers de journal et temporaires dans la sauvegarde Lorsque vous choisissez de créer une sauvegarde compressée, le dossier cible (fichiers ZIP et un fichier BackupInfo) sera encore plus petit.

    Exemple : Le dossier cible avec une sauvegarde compressée ressemble à ceci :

    Note : CES 7.0.6942– (août 2014) La sauvegarde compressée se trouvait dans un seul fichier ZIP.

    Note : CES 7.0.6942– (août 2014) Votre index ne contient qu’une tranche. Ainsi, la fonctionnalité de sauvegarde de l'index ne prend pas en charge la sauvegarde d'un index avec plusieurs tranches.

  3. À l'aide d'un éditeur de texte, créez un script de sauvegarde d'index PowerShell :

    1. Copiez et collez le script PowerShell suivant dans le fichier texte.

      $admin = New-Object -comobject CESAdmin.Admin.7.0
      $admin.Connect('localhost', 'Default')
      $admin.BackupIndex('D:\Backup', $TRUE)

      Note : CES 7.0.6942– (août 2014) Remplacez la troisième ligne avec ce qui suit :

      $admin.BackupIndex('D:\Backup.zip', $TRUE)
    2. Lorsque vous souhaitez créer une sauvegarde compressée pour minimiser les exigences d'espace disque :

      1. Dans la ligne $admin.BackupIndex:

        • CES 7.0.7022+ (septembre 2014) Remplacez 'D:\Backup' par le chemin d'accès complet vers le dossier cible.

          Exemple :

          $admin.BackupIndex('E:\CESIndexBackup\Backup20140930', $TRUE)
        • CES 7.0.6942– (août 2014) Remplacez 'D:\Backup.zip' par le chemin d'accès complet vers le fichier ZIP cible.

          Exemple :

          $admin.BackupIndex('E:\CESIndexBackup\Backup20140930.zip', $TRUE)

        Notes :

        • Le paramètre $TRUE indique que l'option de compression est activée.

        • Le dossier cible peut se trouver dans un autre ordinateur ou dans un serveur de fichier, tant et aussi longtemps que le compte qui exécute le script détient les permissions pour accéder au chemin.

          $admin.BackupIndex('\\corp.mycompany.com\dfs\IT\Backups\CES\Backup', $TRUE)

          CES 7.0.6942– (août 2014) Le fichier ZIP cible peut également être dans un autre ordinateur, tant et aussi longtemps que la même condition est respectée.

          $admin.BackupIndex('\\corp.mycompany.com\dfs\IT\Backups\CES\Backup.zip', $TRUE)
      2. CES 7.0.6942– (août 2014) Veillez à ce que le chemin d’accès vers le fichier ZIP cible existe.

        L'opération de sauvegarde arrête lorsque le dossier cible n'existe pas et le message d'erreur suivant apparaît dans la Console CES :

        Connection closed (class CGLFile::AvailableDiskSpaceQueryException: An error occurred while querying the disk free space for [path to folder].).

      3. Veillez à ce que le dossier cible soit vide.

        L’opération de sauvegarde est interrompue lorsque le dossier cible contient des fichiers et le message d’erreur suivant apparaît dans la Console CES :

        The backup target folder is not empty. The backup process was cancelled to prevent overwriting an existing backup. Ensure the target folder is empty or specify a new folder to create.

        Note : CES 7.0.6942– (août 2014) Assurez-vous que le fichier ZIP cible n'existe pas.

        L'opération de sauvegarde arrête lorsque le fichier ZIP cible existe afin d'empêcher l'écrasement d'une sauvegarde précédente.

        Astuce : Vous pouvez automatiquement inclure une date/un horodateur dans le nom de fichier afin de veiller à ce que vous créiez un nouveau fichier pour chaque sauvegarde. Utilisez le code suivant pour remplacer celui présenté à l’étape 3a.

        $TimeStampFile = "D:\CESIndexBackup\Backup$(get-date -uformat "%Y-%m-%d_%H-%M-%S")"
        $admin = New-Object -comobject CESAdmin.Admin.7.0
        $admin.Connect('localhost', 'Default')
        $admin.BackupIndex($TimeStampFile, $TRUE)

        CES 7.0.6942– (août 2014) Remplacez la première ligne avec ce qui suit :

        $TimeStampFile = "D:\CESIndexBackup\Backup$(get-date -uformat "%Y-%m-%d_%H-%M-%S").zip"
    3. Lorsque vous ne souhaitez pas compresser les fichiers sauvegardés, dans la ligne $admin.BackupIndex :

      • CES 7.0.7022+ (septembre 2014)

        1. Veillez à ce que le dossier cible existe.

        2. Remplacez $TRUE par $FALSE.

        Exemple :

        $admin.BackupIndex('E:\CESIndexBackup\Backup20140930', $FALSE)

        Astuce : Vous pouvez automatiquement inclure une date/un horodateur dans le nom de fichier afin de veiller à ce que vous créiez toujours un nouveau dossier pour chaque sauvegarde. Utilisez le code suivant pour remplacer celui présenté à l’étape 3a.

        $TimeStampFolder = "D:\CESIndexBackup\Backup$(get-date -uformat "%Y-%m-%d_%H-%M-%S")"
        $admin = New-Object -comobject CESAdmin.Admin.7.0
        $admin.Connect('localhost', 'Default')
        $admin.BackupIndex($TimeStampFolder , $FALSE)
      • CES 7.0.6942– (août 2014)

        1. Remplacez 'D:\Backup.zip' par le chemin d'accès du dossier cible de l'index.

        2. Veillez à ce que le dossier cible existe.

          L'opération de sauvegarde arrête lorsque le dossier cible n'existe pas et le message d'erreur suivant apparaît dans la Console CES :

          Connection closed (class CGLFile::AvailableDiskSpaceQueryException: An error occurred while querying the disk free space for [folder path].).

          Exemple :

          $admin.BackupIndex('E:\CESIndexBackup\Backup20140730', $FALSE)
        3. Remplacez $TRUE par $FALSE.

    4. Enregistrez le fichier de script PowerShell avec l'extension .ps1 dans le serveur maître Coveo dans un dossier de votre choix.

  4. Dans une fenêtre Windows PowerShell :

    1. Veillez à ce que vous ayez la permission d'exécuter un script en exécutant la commande suivante, puis en répondant Y.

      Set-ExecutionPolicy RemoteSigned
    2. Exécutez votre script PowerShell en saisissant le chemin d'accès complet de votre fichier de script.

  5. Confirmez que l'opération de sauvegarde s'effectue normalement :

    1. Dans la Console CES, confirmez que le message suivant apparaît et qu'il n'est pas suivi par un message d'erreur.

      Backup on path [your_backup_path] requested.

    2. Dans le dossier cible, confirmez que les fichiers d'index sont en train d'être copiés.

      Note : CES 7.0.6942– (août 2014) Dans la fenêtre Windows PowerShell, attendez que la commande retourne True, ce qui indique que la sauvegarde a été complétée avec succès.

Prochaines étapes?

Une meilleure pratique consiste à sauvegarder régulièrement et fréquemment votre index. Vous pouvez utiliser un logiciel de planification pour automatiser la création de sauvegardes en exécutant régulièrement un script PowerShell.