Comment restaurer une base de données Home Assistant à partir d’une sauvegarde fiable

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.

Une sauvegarde connue comme saine de la base de données de Home Assistant est particulièrement utile lorsque vous déterminez d’abord ce que vous souhaitez réellement récupérer. Si toute l’installation de Home Assistant doit revenir à l’état de la sauvegarde, utilisez le processus de restauration Home Assistant pris en charge. Si la configuration est saine et que seul l’historique de Recorder doit être récupéré, une restauration de la base de données uniquement peut éviter d’écraser les automatisations et intégrations plus récentes.

Ne remplacez pas la base de données active pendant que Home Assistant y écrit. Préservez d’abord la base de données actuelle, arrêtez Home Assistant ou mettez autrement Recorder au repos, restaurez la copie connue comme saine dans un emplacement isolé ou contrôlé, puis redémarrez et vérifiez avant de supprimer l’une ou l’autre version.

Choisir une restauration complète de Home Assistant ou une récupération de la base de données uniquement

La restauration complète d’une sauvegarde Home Assistant remplace l’état actuel de l’application par le contenu de la sauvegarde. Elle convient lorsque la configuration, les intégrations, les applications et la base de données doivent toutes revenir au même point connu.

L’action de restauration d’une sauvegarde complète avertit explicitement que les modifications actuelles sont écrasées par l’état de la sauvegarde. Si le seul problème concerne l’historique de Recorder, cette portée peut être plus large que nécessaire.

Pour une récupération de la base de données uniquement, identifiez la copie exacte, connue comme saine, de la base de données Recorder et laissez l’arborescence de configuration actuelle intacte. Notez l’horodatage de la sauvegarde afin de savoir quelle quantité d’historique sera perdue en revenant à celle-ci.

Confirmer quelle base de données Home Assistant utilise réellement

Home Assistant utilise SQLite par défaut, avec une base stockée dans /config/home-assistant_v2.db, mais Recorder peut aussi pointer vers MariaDB, MySQL ou PostgreSQL via db_url. Ne copiez pas un fichier SQLite dans un déploiement qui écrit en réalité dans une base de données externe.

SQLite est la base de données Recorder par défaut de Home Assistant et elle est normalement stockée dans /config/home-assistant_v2.db ; Recorder peut également être configuré pour utiliser une base de données externe prise en charge via db_url. Vérifiez la configuration effective de Recorder avant de manipuler les fichiers, afin que l’élément de récupération corresponde à la base de données réellement utilisée par Home Assistant.

Si la base de données est externe, restaurez-la avec la méthode de sauvegarde propre à son moteur et coordonnez la version de l’application avec le schéma. Ne considérez pas une exportation SQL et un fichier SQLite comme des éléments de récupération interchangeables.

Arrêter les écritures avant de remplacer un fichier de base de données SQLite

Si votre sauvegarde connue comme saine est une copie physique propre de home-assistant_v2.db, arrêtez Home Assistant avant de remplacer le fichier actif. Préservez la base de données actuelle sous un autre nom au lieu de la supprimer.

Les recommandations de sauvegarde de SQLite expliquent qu’une copie de base de données doit représenter un instantané cohérent ; l’API de sauvegarde en ligne de SQLite existe précisément pour créer une copie cohérente lorsqu’une base de données est active. Une copie connue comme saine réalisée à l’arrêt, ou une sauvegarde en ligne tenant compte de la base de données, est plus sûre qu’une copie de fichier arbitraire effectuée pendant des écritures.

Vérifiez également qu’aucun état WAL ou fichier journal auxiliaire de la base de données défaillante n’est mélangé à la copie restaurée. Partez de l’élément de récupération complet connu comme sain, et non d’un assemblage de fichiers provenant d’horodatages différents.

Commencer avec la copie de sauvegarde intacte et laisser Home Assistant la valider

Placez la base de données restaurée à l’emplacement attendu, avec le propriétaire et les autorisations appropriés, puis démarrez Home Assistant et surveillez les journaux de Recorder. N’exécutez pas de purge, de compactage ni de maintenance SQL manuelle lors du premier démarrage de validation.

Si le schéma de la base de données est plus ancien que la version actuelle de Home Assistant, Recorder devra peut-être le migrer. Laissez ce processus se terminer avant d’évaluer les performances ou de redémarrer à nouveau. Évitez d’alterner entre d’anciennes et de nouvelles versions de Home Assistant avec la même base de données restaurée, car les migrations de schéma ne constituent pas un mécanisme général de rétrogradation.

Un guide pratique de récupération applique le même principe contrôlé : travaillez sur des copies et ne démarrez Home Assistant qu’une fois la base de données de remplacement prête.

Valider l’historique avant de supprimer la base de données défaillante

  • Confirmez que Recorder démarre sans erreur de corruption ni de migration.
  • Ouvrez Historique et Journal pour une période qui devrait exister dans la sauvegarde.
  • Vérifiez les statistiques à long terme ou les données Énergie si ces enregistrements sont importants pour vous.
  • Déclenchez un nouveau changement d’état et confirmez qu’un nouvel historique est écrit après le point de restauration.
  • Redémarrez Home Assistant une fois et confirmez que Recorder ouvre de nouveau la même base de données.

Le guide ZimaSpace consacré aux sauvegardes cohérentes pour les bases de données et aux tests de restauration s’applique directement : une sauvegarde ne devient fiable que lorsque la base de données l’accepte et que l’application peut écrire un nouvel état après la restauration.

Conservez la base de données défaillante jusqu’à la réussite de ce test d’acceptation. Elle peut encore contenir un historique plus récent qui pourra être examiné ou récupéré sélectivement si la sauvegarde connue comme saine est plus ancienne que prévu.

FAQ

Puis-je restaurer uniquement l’historique de Home Assistant sans revenir en arrière sur mes automatisations ?

Oui, si vous disposez d’une copie connue comme saine de la base de données Recorder et que la configuration actuelle de Home Assistant est saine. Arrêtez les écritures, préservez la base de données actuelle, restaurez uniquement la base de données Recorder, puis validez-la avant le nettoyage.

Devrais-je restaurer une sauvegarde de base de données provenant d’une version beaucoup plus ancienne de Home Assistant ?

Avec prudence uniquement. Une version plus récente de Home Assistant peut faire évoluer le schéma Recorder d’une ancienne version, mais une rétrogradation et des changements répétés de version avec une même base de données sont risqués. Conservez des sauvegardes et utilisez un parcours de récupération compatible.

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.