serveurs:installation:bkp-srv:install-borg

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
serveurs:installation:bkp-srv:install-borg [2026/03/17 16:54] – [Borg commandes utiles] jpmilcentserveurs:installation:bkp-srv:install-borg [2026/08/11 10:31] (Version actuelle) – [Restaurer une sauvegarde] jpmilcent
Ligne 85: Ligne 85:
     * Ajouter la clé publique de l'instance à sauvegarder au fichier ///home/backups/.ssh/authorized_keys// de l'utilisateur //backups// : ''<nowiki> cat /home/geonat/.ssh/id_rsa.<instance>-srv.pub >> /home/backups/.ssh/authorized_keys </nowiki>''     * Ajouter la clé publique de l'instance à sauvegarder au fichier ///home/backups/.ssh/authorized_keys// de l'utilisateur //backups// : ''<nowiki> cat /home/geonat/.ssh/id_rsa.<instance>-srv.pub >> /home/backups/.ssh/authorized_keys </nowiki>''
     * Tester la connexion SSH depuis un shell de l'utilisateur //admin// de l'instance à sauvegarder, aucun mot de passe ne doit être demandé : '' ssh -p <port-ssh-bkp-srv> backups@bkp-<region>-sinp ''     * Tester la connexion SSH depuis un shell de l'utilisateur //admin// de l'instance à sauvegarder, aucun mot de passe ne doit être demandé : '' ssh -p <port-ssh-bkp-srv> backups@bkp-<region>-sinp ''
-    * Si la tentative de connexion s'est déroulé sans demande de mot de passe et avec succès, supprimer le fichier de la clé public de l'instance : ''rm -f /home/geonat/.ssh/id_rsa.<instance>-srv.pub ''+    * Si la tentative de connexion s'est déroulé sans demande de mot de passe et avec succès, supprimer le fichier de la clé public de l'instance : ''%%rm -f /home/geonat/.ssh/id_rsa.<instance>-srv.pub%%''
   * Sur l'instance à sauvegarder et pour l'utilisateur admin, créer un fichier config qui contiendra un paramètre maintenant la connexion SSH : '' touch ~/.ssh/config; chmod 644 ~/.ssh/config ; vi ~/.ssh/config ''   * Sur l'instance à sauvegarder et pour l'utilisateur admin, créer un fichier config qui contiendra un paramètre maintenant la connexion SSH : '' touch ~/.ssh/config; chmod 644 ~/.ssh/config ; vi ~/.ssh/config ''
     * Y ajouter le contenu suivant : <code properties>     * Y ajouter le contenu suivant : <code properties>
Ligne 231: Ligne 231:
  
 === Préparer la restauration === === Préparer la restauration ===
-  * Se connecter à l'instance concernée : '' ssh admin@<instance>-<region>-sinp '' +  * Se connecter à l'instance concernée : ''%%ssh admin@<instance>-<region>-sinp%%'' 
-  * Se placer dans le dossier //~/docker/borgomatic// avec : '' cd ~/docker/borgomatic '' +  * Se placer dans le dossier //~/docker/borgomatic// avec : ''%%cd ~/docker/borgomatic%%'' 
-  * Arrêter le container de sauvegarde : ''docker compose down '' +  * Arrêter le container de sauvegarde : ''%%docker compose down%%'' 
-  * Sur l'hôte, créer un dossier temporaire qui contiendra les fichiers ou dossier à restaurer : '' sudo rm -fR /tmp/restore ; mkdir /tmp/restore '' +  * Sur l'hôte, créer un dossier temporaire qui contiendra les fichiers ou dossier à restaurer : ''%%sudo rm -fR /tmp/restore ; mkdir /tmp/restore%%'' 
-  * Lancer un shell interactif avec le dossier précédemment créé lié à l'hôte : '' docker compose -f docker-compose.yml -f docker-compose.restore.yml run -v /tmp/restore:/tmp/restore borgmatic ''+  * Lancer un shell interactif avec le dossier précédemment créé lié à l'hôte : ''%%docker compose -f docker-compose.yml -f docker-compose.restore.yml run -v /tmp/restore:/tmp/restore borgmatic%%''
   * Vous pouvez alors utiliser les commandes [[https://torsion.org/borgmatic/docs/reference/command-line/| borgmatic]] ou [[https://borgbackup.readthedocs.io/en/stable/usage/general.html| Borg]]   * Vous pouvez alors utiliser les commandes [[https://torsion.org/borgmatic/docs/reference/command-line/| borgmatic]] ou [[https://borgbackup.readthedocs.io/en/stable/usage/general.html| Borg]]
  
Ligne 244: Ligne 244:
     * //web-srv// : ''borg list /home/backups/web-srv''      * //web-srv// : ''borg list /home/backups/web-srv'' 
   * Créer un dossier :   * Créer un dossier :
-    * pour le point de montage du dépôt Borg : '' mkdir /tmp/repo '' +    * pour le point de montage du dépôt Borg : ''%%mkdir /tmp/repo%%'' 
-    * pour le dossier qui contiendra les fichiers à restaurer : '' mkdir /tmp/restore '' +    * pour le dossier qui contiendra les fichiers à restaurer : ''%%mkdir /tmp/restore%%'' 
-  * Utiliser Fuse pour monter la sauvegarde sur le dossier du point de montage ///tmp/repo//: '' borg mount <repo> /tmp/repo '' +  * Utiliser Fuse pour monter la sauvegarde sur le dossier du point de montage ///tmp/repo//: ''%%borg mount <repo> /tmp/repo%%'' 
-    * Ex. avec le dépôt local : '' borg mount /home/backups/db-srv /tmp/repo '' +    * Ex. avec le dépôt local : ''%%borg mount /home/backups/db-srv /tmp/repo%%'' 
-    * Le dossier ///tmp/repo// contient les dossiers des différentes sauvegardes. Ex. de dossier sauvegardé le 17 mai 2021 à 13h57 : '' web-srv-2021-05-17T13:57:02 ''+    * Le dossier ///tmp/repo// contient les dossiers des différentes sauvegardes. Ex. de dossier sauvegardé le 17 mai 2021 à 13h57 : ''%%web-srv-2021-05-17T13:57:02%%''
   * Copier les fichiers à restaurer sur l'hôte en les copiant depuis le point de montage vers le dossier lié l'hôte :   * Copier les fichiers à restaurer sur l'hôte en les copiant depuis le point de montage vers le dossier lié l'hôte :
-    * Ex. pour //web-srv// : '' cp -r "/tmp/repo/web-srv-2021-05-17T13:57:02/mnt/source/etc/cron.d/" /tmp/restore/$(date +'%Y-%m-%d')_gnatlas.custom '' +    * Ex. pour //web-srv// : ''%%cp -r "/tmp/repo/web-srv-2021-05-17T13:57:02/mnt/source/etc/cron.d/" /tmp/restore/$(date +'%Y-%m-%d')_gnatlas.custom%%'' 
-    * Ex. pour //db-srv// : '' cp -r /tmp/repo/db-srv-2022-04-08T01\:07\:55/root/.borgmatic/postgresql_databases/172.18.5.1/geonature2db /tmp/restore/$(date +'%Y-%m-%d')_geonature2db.custom '' +    * Ex. pour //db-srv// : ''%%cp -r /tmp/repo/db-srv-2022-04-08T01\:07\:55/root/.borgmatic/postgresql_databases/172.18.5.1/geonature2db /tmp/restore/$(date +'%Y-%m-%d')_geonature2db.custom%%'' 
-    * Vérifier las présence des fichiers à restaurer : ''ls -al /tmp/restore/ '' +    * Vérifier las présence des fichiers à restaurer : ''%%ls -al /tmp/restore/%%'' 
-  * Donner les droits d'accès à l'utilisateur admin : ''chmod 644 /tmp/restore/*.custom'' +  * Donner les droits d'accès à l'utilisateur admin : ''%%chmod 644 /tmp/restore/*.custom%%'' 
-  * Démonter le point de montage et quitter le shell interactif : ''borg umount /tmp/repo'' +  * Démonter le point de montage et quitter le shell interactif : ''%%borg umount /tmp/repo%%'' 
-  * Récupérer sur votre machine locale l'archive de base de données : ''scp admin@bkp-<region>-sinp:/tmp/restore/*.custom ./''+  * Récupérer sur votre machine locale l'archive de base de données : ''%%scp admin@bkp-<region>-sinp:/tmp/restore/*.custom ./%%''
     * Voir [[serveurs:installation:db-srv:postgresql-config#restaurer_localement_un_dump_de_la_base_du_serveur| la restauration en local d'une base serveur]]     * Voir [[serveurs:installation:db-srv:postgresql-config#restaurer_localement_un_dump_de_la_base_du_serveur| la restauration en local d'une base serveur]]
  
Ligne 272: Ligne 272:
  
 === Écraser les fichiers à restaurer par ceux provenant de la sauvegarde sur l'hôte === === Écraser les fichiers à restaurer par ceux provenant de la sauvegarde sur l'hôte ===
-  * Sur l'hôte, écraser les fichiers à restaurer par ceux provenant de la sauvegarde : '' sudo cp -r /tmp/restore/cron.d/ /etc/ ''+  * Sur l'hôte, écraser les fichiers à restaurer par ceux provenant de la sauvegarde : ''%%sudo cp -r /tmp/restore/cron.d/ /etc/%%''
     * Assurez vous que les dossiers et fichiers sont restaurés avec les bons droits d'accès et propriétaire     * Assurez vous que les dossiers et fichiers sont restaurés avec les bons droits d'accès et propriétaire
-  * Une fois les fichiers/dossiers restaurés vous pouvez supprimer le dossier de restauration et son contenu : '' rm -fR /tmp/restore '' +  * Une fois les fichiers/dossiers restaurés vous pouvez supprimer le dossier de restauration et son contenu : ''%%rm -fR /tmp/restore%%'' 
-  * **NOTE** : si nécessaire, il est possible de modifier le fichier //docker-compose.restore.yml// pour monter directement le volume source en écriture ''${VOLUME_SOURCE}:/mnt/source'' afin de remplacer les fichiers de l'hôte directement depuis le shell interactif.+  * **NOTE** : si nécessaire, il est possible de modifier le fichier //docker-compose.restore.yml// pour monter directement le volume source en écriture ''%%${VOLUME_SOURCE}:/mnt/source%%'' afin de remplacer les fichiers de l'hôte directement depuis le shell interactif.
  
 === Restaurer une base de données avec Borgmatic === === Restaurer une base de données avec Borgmatic ===
-  * Lister les archives disponibles : '' borgmatic list ''+  * Lister les archives disponibles : ''%%borgmatic list%%''
   * Restaurer une base de données directement. ATTENTION : Pour que cela fonctionne, il est nécessaire d'avoir utiliser une super utilisateur dans la config Borgmatic du dump des bases : <code bash> borgmatic restore --repository <repo> --archive <archive> --database <db-name> </code>   * Restaurer une base de données directement. ATTENTION : Pour que cela fonctionne, il est nécessaire d'avoir utiliser une super utilisateur dans la config Borgmatic du dump des bases : <code bash> borgmatic restore --repository <repo> --archive <archive> --database <db-name> </code>
     * Ex. : <code bash> borgmatic restore --repository /mnt/borg-repository/ --archive "db-srv-2021-05-17T01:00:02" --database geonature2db </code>     * Ex. : <code bash> borgmatic restore --repository /mnt/borg-repository/ --archive "db-srv-2021-05-17T01:00:02" --database geonature2db </code>
-    * Si la commande échoue, récupérer dans la console la ligne de commande qui s'affiche, supprimer l'option ''<nowiki> --no-password </nowiki>'' et lancer la commande manuellement. Des erreurs plus détaillées s'afficheront. +    * Si la commande échoue, récupérer dans la console la ligne de commande qui s'affiche, supprimer l'option ''%%--no-password%%'' et lancer la commande manuellement. Des erreurs plus détaillées s'afficheront. 
-  * Quitter le container : ''exit''+  * Quitter le container : ''%%exit%%''
  
 === Extraire l'archive de la base et la récupérer localement === === Extraire l'archive de la base et la récupérer localement ===
-  * Sur l'hôte, copier le fichier : ''sudo cp /tmp/restore/root/.borgmatic/postgresql_databases/172.18.0.1/geonature2db "/tmp/$(date +'%Y-%m-%d')_geonature2db.custom"'' +  * Sur l'hôte, copier le fichier : ''%%sudo cp /tmp/restore/root/.borgmatic/postgresql_databases/172.18.0.1/geonature2db "/tmp/$(date +'%Y-%m-%d')_geonature2db.custom"%%'' 
-  * Changer les droits : ''sudo chown admin: "/tmp/$(date +'%Y-%m-%d')_geonature2db.custom" '' +  * Changer les droits : ''%%sudo chown admin: "/tmp/$(date +'%Y-%m-%d')_geonature2db.custom"%%'' 
-  * Depuis votre machine locale récupérer l'archive : '' scp admin@db-<region>-sinp:/tmp/$(date +'%Y-%m-%d')_geonature2db.custom ./ ''+  * Depuis votre machine locale récupérer l'archive : ''%%scp admin@db-<region>-sinp:/tmp/$(date +'%Y-%m-%d')_geonature2db.custom ./%%''
  
 === Finaliser la restauration === === Finaliser la restauration ===
-  * Penser à relancer le service //Borgmatic// : '' docker compose up -d '' +  * Penser à relancer le service //Borgmatic// : ''%%docker compose up -d%%'' 
-  * Au cas ou //Borg// échoue à créer/acquérir un verrou : '' borg break-lock <repo> ''+  * Au cas ou //Borg// échoue à créer/acquérir un verrou : ''%%borg break-lock <repo>%%''
  
 ==== Cas particulier de la base GeoNature ==== ==== Cas particulier de la base GeoNature ====
Ligne 327: Ligne 327:
   * Lister le USER MAPPING : <code sql>SELECT um.*,rolname FROM pg_user_mapping um JOIN pg_roles r ON r.oid = umuser JOIN pg_foreign_server fs ON fs.oid = umserver; </code>   * Lister le USER MAPPING : <code sql>SELECT um.*,rolname FROM pg_user_mapping um JOIN pg_roles r ON r.oid = umuser JOIN pg_foreign_server fs ON fs.oid = umserver; </code>
   * Sortir : ''exit''   * Sortir : ''exit''
-===== Borg commandes utiles =====+===== Borg/Borgmatic commandes utiles =====
   * Supprimer le cache : <code bash> borg delete --cache-only <repo> </code>   * Supprimer le cache : <code bash> borg delete --cache-only <repo> </code>
   * Au cas ou Borg échoue à créer/acquérir un verrou : <code bash> borg break-lock <repo> </code>   * Au cas ou Borg échoue à créer/acquérir un verrou : <code bash> borg break-lock <repo> </code>
 +    * Notes : entrer dans le container Docker Borgmatic et lancer la commande sur les chemindes dépôts. Ex. : ''%%borg break-lock /mnt/borg-repository/%%'' ou ''%%borg break-lock ssh://<user>@<ip>:<port>/home/backups/db-srv/ %%'' (voir la valeur exacte dans le fichier de config ''vi /etc/borgmatic.d/config.yaml '')
     * Alternative avec Borgmatic qui enlève les verrous sur tous les dépôts configurés : <code bash>borgmatic break-lock</code>       * Alternative avec Borgmatic qui enlève les verrous sur tous les dépôts configurés : <code bash>borgmatic break-lock</code>  
 +  * Relancer une sauvegarde manuellement avec Borgmatic : <code bash>borgmatic --verbosity 2 --stats --files</code>
  • serveurs/installation/bkp-srv/install-borg.1773766466.txt.gz
  • Dernière modification : 2026/03/17 16:54
  • de jpmilcent