Lorsque le volume de la base de données de Home Assistant est plein, commencez par arrêter les nouvelles écritures. Créez de l’espace de travail sans supprimer la base de données active, conservez une copie, puis déterminez si Recorder peut ouvrir et maintenir la base de données avant de choisir entre purge, réparation ou restauration.
Un volume plein peut bloquer précisément l’opération de nettoyage destinée à résoudre le problème, notamment lorsque le compactage ou la reconstruction de la base de données nécessite de l’espace temporaire. Respectez un ordre prudent : arrêtez Home Assistant, vérifiez quel système de fichiers est plein, déplacez les fichiers sans rapport ou augmentez le volume, copiez la base de données, consultez les journaux et vérifiez l’intégrité, puis appliquez la récupération la moins destructive correspondant au résultat.
Arrêter les écritures et confirmer le système de fichiers réellement plein
Arrêtez Home Assistant ou Recorder dès que les échecs d’écriture de la base de données se répètent. Vérifiez le système de fichiers, le point de montage ou le volume fin qui contient la base de données active, puis comparez l’espace total, l’espace libre, les inodes, la taille de la base de données, les journaux, les sauvegardes et les couches inscriptibles des conteneurs. Un disque système plein et un volume externe dédié à la base de données nécessitent des correctifs différents.
Ne partez pas du principe que la base de données est la seule consommatrice d’espace. Les anciennes sauvegardes, les journaux de débogage, les exportations, les instantanés et les couches de conteneurs sans rapport peuvent fournir un espace d’urgence plus sûr. Ne déplacez ou ne supprimez que les fichiers dont vous connaissez l’utilité et l’état des sauvegardes ; ne supprimez pas individuellement la base de données active, le WAL, le journal ou les fichiers du moteur de base de données.
Le guide ZimaSpace consacré à la recherche de l’utilisation du disque Docker en dehors des données mappées constitue la vérification complémentaire appropriée lorsque le chemin de base de données configuré semble peu volumineux, mais que le disque système de l’hôte reste saturé.
Créer de l’espace de travail et préserver la base de données
Privilégiez l’agrandissement du volume ou le déplacement des archives sans rapport vers un autre disque vérifié. Si cela est impossible, copiez la base de données arrêtée et ses fichiers associés vers un espace de stockage disposant d’une capacité suffisante avant toute opération de maintenance. Notez le propriétaire, les permissions, le moteur, la version de Home Assistant et l’URL de la base de données.
Le compactage n’est pas une première mesure d’urgence sur un système de fichiers plein, car il peut nécessiter beaucoup d’espace temporaire. Des notes de dépannage de la communauté indiquent qu’un compactage SQLite peut nécessiter un espace libre comparable à la taille de la base de données ; en pratique, il faut créer de l’espace de travail avant le compactage plutôt que de faire confiance à un volume presque plein.
Après avoir libéré de l’espace, vérifiez que le système de fichiers est inscriptible et stable. S’il a été remonté en lecture seule, signale des erreurs matérielles ou perd immédiatement de l’espace à nouveau, arrêtez-vous et réparez la couche de stockage avant d’ouvrir la base de données.
Choisir entre purge, réparation de l’intégrité et restauration d’une sauvegarde fiable
Démarrez Home Assistant uniquement le temps d’examiner les journaux de Recorder et l’état de la base de données. Si la base de données s’ouvre correctement, réduisez la durée de conservation ou excluez les entités trop bruyantes, puis lancez une purge sans compactage dans un premier temps. Cela réduit le volume logique de données tout en évitant l’étape nécessitant le plus d’espace temporaire.
Si des erreurs d’intégrité apparaissent, arrêtez de nouveau les écritures et travaillez sur une copie. Utilisez les outils d’intégrité et de récupération pris en charge par le moteur de base de données, ou restaurez une sauvegarde fiable. Ne redémarrez pas plusieurs fois Home Assistant avec une base de données endommagée, car de nouvelles écritures peuvent compliquer la récupération et masquer la cause initiale de la panne.
Si aucune copie utilisable de la base de données ni aucune sauvegarde n’existe, la création d’une nouvelle base de données Recorder rétablit le fonctionnement, mais entraîne la perte de l’historique. Considérez cette solution comme la dernière branche de récupération, conservez la base de données défaillante pour une analyse ultérieure et séparez la configuration et les registres de la décision concernant l’historique.
Réduire la source de croissance avant la remise en service
Identifiez ce qui a rempli le volume : mises à jour excessives des entités, durée de conservation trop longue, journaux volumineux, accumulation de sauvegardes, purge échouée, gonflement de la base de données ou volume plus petit que prévu. Corrigez la source mesurée plutôt que d’appliquer toutes les options de nettoyage en même temps.
Définissez une durée de conservation justifiable, excluez les entités dont l’historique à haute fréquence a peu de valeur, repassez d’une journalisation de débogage à une journalisation normale, déplacez les copies de sauvegarde hors de l’hôte et configurez des alertes sur l’espace libre et le taux de croissance. Conservez une marge suffisante pour les mises à niveau, les sauvegardes, les modifications de schéma et la maintenance.
Comparez la base de données récupérée aux critères de ZimaSpace concernant la maintenance ou le remplacement de la base de données lorsque des corruptions ou des échecs d’intégrité répétés rendent la poursuite des réparations moins fiable qu’une restauration connue comme saine.
Valider la récupération sous la charge de Recorder
Démarrez Home Assistant et vérifiez les états actuels, les nouvelles écritures d’historique, les requêtes du journal, les actions d’automatisation et la taille de la base de données. Reproduisez la même charge de travail générant de nombreuses mises à jour que celle qui précédait la panne, tout en surveillant l’espace libre, les erreurs d’écriture, la latence de la base de données et le taux de croissance.
Redémarrez Home Assistant deux fois et exécutez la prochaine purge ou sauvegarde planifiée. La récupération est réussie uniquement si la base de données se rouvre, que l’historique continue de progresser, que l’espace libre reste au-dessus du seuil d’arrêt et qu’aucune erreur d’intégrité ou de lecture seule ne réapparaît.
Revenez à la copie conservée ou à la sauvegarde fiable si la maintenance provoque une nouvelle corruption, si l’historique disparaît de manière inattendue ou si le volume commence à se remplir au même rythme. Signalez les pannes de stockage, les erreurs du moteur de base de données et les échecs reproductibles de Recorder en fournissant les journaux et la chronologie conservée.
Assistance et conseils
Plus à lire

Comment optimiser les connexions à la base de données de Home Assistant pour des conteneurs simultanés
Optimisez une base de données Recorder externe à partir des connexions actives et de la latence mesurées, plutôt que d’augmenter le nombre maximal de...

Comment éviter les tâches ou importations en double dans Home Assistant
Utilisez des traces et des clés d’opération uniques pour rendre les automatisations et les importations réessayables en toute sécurité, sans générer d’actions ni d’enregistrements...

Pourquoi Home Assistant recrée-t-il les fichiers manquants avec le mauvais propriétaire ?
Faites correspondre les UID et GID d’exécution avec ceux du chemin hôte, réparez uniquement les fichiers concernés lorsque le service est arrêté, puis vérifiez...

