Solution de backup pérenne pour HA?

Non jamais fait aucun arrêt mais je suppose que le supervisor gère ça correctement quand on déclenche un backup avec la db :wink: Sachant que la db c’est que l’historique si je ne m’abuse donc pas bien grave si on perd quelques historiques ! et jusqu’à maintenant jamais eu de soucis lors d’une restauration avec la db :smiley:

Effectivement en regardant un peu plus la doc en détail en fait Duplicati tourne en serveur sur la machine où tu as des fichiers à backuper (Installation - Duplicati 2 User's Manual) il intègre en fait son propre moteur cron pour la planification des taches.
Par contre c’est un logiciel open-source mais payant si besoin de fonctions avancées.
Il faut également Mono pour faire tourner Duplicati et l’installer ce qui est pas forcément toujours facile, et va bouffer de la ressource sur des systèmes pas forcément super puissant si HA tourne sur SBC entre autre, contrairement à rclone qui est juste un exécutable portable.

Oui pas grave sauf si ta base de données se retrouve corrompue :joy:

De toute façon c’est du SQLite
Après si vous avez livre sur MySQL il suffit d’utiliser l’outil mysqldump

Duplicati est un vrai logiciel de backup là où rclone n’est qu’un outil de synchronisation de fichiers
En 100% ligne de commande léger et facile j’aime beaucoup restic mais c’est plus axé backup aussi
Pour HA rclone est bien suffisant

2 « J'aime »

Et du coup c’est quoi le meilleur moyen pour backuper une base de données SQLite ?

Autant pour MySQL/MariaDB en passant par une réplication, on peut faire le truc safe sans interruption de service, autant pour SQLite, j’en sais rien.

ben comme expliqué par @ddfdom par un dump de la db mais effectivement la question reste entière de savoir comment le supervisor fait le backup de la db (tout ce que je peux dire est que depuis toujours quand j’ai fait un backup avec db et que j’ai du le restaurer je n’ai jamais eu de soucis avec la db qui est bien repartie sans soucis).

J’ai l’impression que le backup est à privilégier au dump mais je pense que HA ne s’emmerde pas et fait juste une copie du fichier.

J’avais oublié que les écritures étaient asynchrones dans HA. Donc très certainement lors du backup, les écritures via le recorder sont stoppées puis redémarrées après le backup. Donc pas nécessaire de passer par un .dump ou .backup.

Par contre, il faut éviter de faire sa propre sauvegarde à la mano sans passer par le backup de HA … sauf à mettre en stand-by le recorder avant sa sauvegarde.

Si tu utilises le add-on MySQL au lieu du système de base de données natif de HA, tu peux faire un arrêt de l’add-on avant le backup comme ça tu es sûr que les fichiers sont clos dans un état propre et que la db est clean et une fois le backup achevé tu relances l’add-on :slight_smile:

Oui tu peux faire cela parce que les écritures sont asynchrones.

Je creuserai dans le code, côté recorder je ne vois pas d’option pour le « désactiver » temporairement sans perdre des données.

Oui effectivement il y aura une brève coupure dans les journaux mais sauf sur peut être les pi mais les autres la coupure devrait etre courte je pense :wink: (et là je viens de tester sur un ha green et cela a pris 2 minutes un backup intégral, le système de backup a été super optimisé dernièrement parce que par le passé c’était souvent bien long les backups aussi bien pour le faire que le restaurer !

En fait, la base de données est lockée (uniquement pour SQLite), via le recorder … au moment du backup. La méthode async_pre_backup est appelée …

Il doit avoir un truc similaire lors du backup de MariaDB dans le container de l’add-on.

A priori, il peut y avoir un retard dans les journées en fonction de la taille de la base de données, mais une fois le lock supprimé, le retard doit disparaitre.

1 « J'aime »

J’ai installé Duplicati, ça fonctionnait plutôt bien, mais sauf si j’ai loupé une option, les sauvegardes n’étaient pas en format HA portable, mais propriétaire, donc non restaurable sans Duplicati ou sur une autre plate-forme. Je n’ai pas creusé plus, ayant trouvé la solution avec auto-backup + rclone.

Par contre, ça s’installe comme un module complémentaire dans HA, donc ça reste simple et intégré.

Je veux dire qu’avec auto-backup + rclone j’envoie mes sauvegardes où je veux, local ou cloud, je gère une période de rétention, et je peux les restaurer en recopiant simplement le fichier de sauvegarde qui a un format HA dans /backup parce qu’il n’a pas un format Duplicati.

Mais c’est bien auto-backup qui fait les sauvegardes, pas rclone comme je l’indique dans mon sujet [Solution: Backup avec réplications] pour PI/NUC en local et multi-clouds - #8 par FillR2

Merci bien pour l’info car je l’ai cherché mais trouvé nulle part dans les docs dev de HA ni dans le code du superviseur :ok_hand:

non c’est pour ça qu’il faut l’arrêter avant backup et relancer ensuite au prix d’une très brève perte de données.

C’est dans le code de homeassistant-core.

Pas nécessaire d’arrêter la base de données, il suffit de la locker avant le backup voire passer par une réplication mais cette deuxième solution est plus lourde.

Oui mais même ça à priori aucun moyen de le faire de l’extérieur de l’add-on facilement :frowning: aucune action ou quoi que ce soit possible de ce que j’ai pu voir :confused:

Je suis en full docker donc pas ce genre de problème pour moi, c’est pour cela que je n’aime pas les addons.

Au pire je fais un « docker exec -it mon_container bash » :joy:

1 « J'aime »

Bon je réponds à moi-même mais dans l’addon, visiblement il y a un mécanisme pour locker la base de données lors du backup.

backup_post: unlock-tables-for-backup
backup_pre: lock-tables-for-backup

Avec les scripts dans : mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-post

euh oui mais impossible de les appeler depuis HA ces scripts si je ne m’abuse non ? en tout cas je vois aucun service/action pour les appeler dans HA :frowning: