Comment empêcher les sauvegardes de Home Assistant de capturer un état incohérent de la base de données

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les homelabs et les logiciels open source, elle se spécialise dans la traduction de concepts techniques complexes en guides accessibles et pratiques. Eva croit que l’auto-hébergement doit être amusant, pas intimidant. À travers ses tutoriels, elle donne à la communauté les moyens de démystifier les configurations matérielles, depuis la construction de leur premier NAS jusqu’à la maîtrise des conteneurs Docker.

Évitez les sauvegardes incohérentes de Home Assistant en laissant l’application coordonner l’état actuel de la base de données, ou en arrêtant les écritures avant une copie brute du système de fichiers.

Le cas risqué n’est pas simplement de « sauvegarder pendant que Home Assistant fonctionne » ; il s’agit d’utiliser une méthode de copie qui capture les fichiers associés de la base de données et de l’application à des moments différents, sans connaître leur état transactionnel. Les sauvegardes intégrées peuvent coordonner les composants de Home Assistant, contrairement à un outil générique comme rsync ou un outil de création d’instantanés. Définissez le mécanisme responsable de la cohérence, évitez les tâches simultanées qui sollicitent fortement la base de données, conservez la précédente bonne sauvegarde et validez chaque règle au moyen d’une restauration isolée.

Ne traitez pas une base de données SQLite active comme un simple fichier statique

Recorder de Home Assistant peut écrire dans la base de données pendant qu’un processus de sauvegarde générique copie le répertoire de configuration. Avec SQLite, l’état validé peut impliquer la base de données principale ainsi que les fichiers journal ou WAL. Capturer des états correspondant à des moments différents peut donc créer une copie incomplète ou irrécupérable, même si tous les noms de fichiers figurent dans l’archive.

Un test de sauvegarde d’une base SQLite active a montré que la copie du seul fichier principal de la base pouvait omettre silencieusement des lignes validées qui se trouvaient encore dans le WAL, alors même que la base copiée réussissait un contrôle d’intégrité. Cet échec de copie reposant sur le WAL explique pourquoi une copie brute des fichiers doit utiliser un instantané tenant compte de la base de données, ou n’être effectuée qu’une fois celle-ci proprement mise au repos.

Cela ne signifie pas qu’il faut toujours arrêter Home Assistant pour effectuer une sauvegarde. Cela signifie que le mécanisme de sauvegarde doit savoir créer un point de récupération cohérent. Utilisez la sauvegarde intégrée de Home Assistant pour une installation en fonctionnement ; réservez les copies du système de fichiers à l’arrêt pour les migrations, l’archivage hors ligne ou les outils externes dépourvus d’intégration tenant compte de l’application.

Évitez les tâches concurrentes de sauvegarde ou de maintenance pendant la même fenêtre

Même une sauvegarde tenant compte de l’application peut échouer à préparer sa base de données lorsqu’un autre processus détient des verrous ou lorsque le chemin de stockage fait l’objet d’opérations de maintenance inhabituelles. Ne planifiez pas le démarrage à la même minute d’une deuxième sauvegarde via un module complémentaire, d’une maintenance de la base de données, d’un instantané NAS et d’une sauvegarde Home Assistant simplement parce que la maison est calme.

De véritables échecs de sauvegarde Home Assistant signalent des erreurs de préparation liées au verrouillage de la base de données, et un utilisateur a attribué un conflit à un autre module complémentaire de sauvegarde. Il s’agit d’un signal de prévention : les outils concurrents doivent être séparés et le journal de l’application doit confirmer que l’étape préalable à la sauvegarde s’est terminée.

Échelonnez les fenêtres de maintenance et notez leur durée prévue. Si une sauvegarde attend régulièrement Recorder, identifiez d’abord le détenteur du verrou ou le problème d’intégrité de la base de données. N’augmentez pas les délais d’expiration à l’aveugle et ne lancez pas davantage de copies en parallèle ; un plus grand nombre de tâches de sauvegarde peut accentuer exactement la contention que vous cherchez à éviter.

Pour les copies brutes du système de fichiers, mettez Home Assistant au repos et préservez l’ensemble de l’état

Si votre règle exige une copie directe du répertoire de configuration, arrêtez proprement Home Assistant avant de le copier, vérifiez que le processus n’écrit plus et copiez l’intégralité de l’état requis au lieu de sélectionner uniquement le fichier principal de la base de données. Conservez les sauvegardes des bases de données externes selon leur propre méthode de cohérence.

La comparaison ZimaSpace existante entre la sauvegarde de Home Assistant en fonctionnement et à l’arrêt établit la même distinction : une sauvegarde active tenant compte de l’application et une copie brute du système de fichiers sont deux procédures différentes qui ne doivent pas être regroupées dans une seule règle.

Après la copie, redémarrez le service et vérifiez le fonctionnement normal de Recorder. Si la cible de sauvegarde est un stockage réseau, vérifiez également que l’ensemble des fichiers a été transféré avant le retrait du montage réseau. Une copie interrompue à l’arrêt n’est cohérente que dans le sens restreint où sa source était inactive ; elle ne constitue toujours pas un point de récupération complet.

-15% OFF

N’accordez votre confiance à la sauvegarde qu’après une restauration isolée réussie

Créez une instance Home Assistant temporaire ou une cible de récupération et restaurez-y la sauvegarde candidate sans emprunter de fichiers modifiables à la production. Vérifiez les utilisateurs existants, les données historiques, les tableaux de bord, les intégrations, les définitions d’automatisation et au moins un redémarrage. Notez la durée de la restauration ainsi que les éventuelles corrections manuelles nécessaires pour rendre l’instance utilisable.

Une régression de Home Assistant Core limitée à la version 2026.7.2 a enregistré l’échec du point de contrôle WAL de Recorder pendant l’étape préalable à la sauvegarde, après quoi le gestionnaire de sauvegarde a dépassé le délai d’attente du verrouillage de la base de données. Ce signal d’échec préalable à la sauvegarde doit être considéré uniquement comme un élément probant pour ce chemin affecté et comme un point de récupération ayant échoué, et non comme la preuve que chaque délai d’attente lié à un verrou a la même cause.

La règle est validée lorsqu’un seul mécanisme de sauvegarde est responsable de la cohérence à la fois, que la phase de préparation de la base de données se termine, que la précédente copie connue comme bonne est conservée et qu’une restauration reproduit les utilisateurs, l’historique, les paramètres et le comportement normal au redémarrage. Si le test de restauration échoue, conservez les éléments probants et créez une nouvelle sauvegarde prise en charge ou une copie contrôlée à l’arrêt avant de supprimer les anciens points de récupération.

Assistance et conseils

Plus à lire

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.