Home Assistant debería usar una base de datos o un host de almacenamiento independiente solo cuando esa separación resuelva un problema medido de capacidad, retención, copias de seguridad o dominio de fallos. Trasladar el estado fuera del controlador no es automáticamente una mejora.
Para muchos hogares, una base de datos local de SQLite para Recorder en un almacenamiento SSD fiable es la opción más sencilla, porque elimina las dependencias de red, autenticación, DNS y arranque del servidor de bases de datos. Antes de crear otro host, identifica primero si el problema real son las escrituras excesivas de Recorder, una retención demasiado larga, las consultas lentas del historial, la capacidad local limitada o la necesidad de recuperar un servicio de forma independiente.
Ajusta Recorder antes de añadir un servidor de bases de datos
El crecimiento de Recorder depende de las entidades y eventos que se almacenan, de la frecuencia con la que cambian y del tiempo durante el que se conserva el historial. Si los sensores ruidosos o los dominios innecesarios concentran la mayoría de las escrituras, trasladar la misma carga a un servidor de bases de datos más grande solo desplaza el problema en lugar de eliminarlo.
Un flujo de trabajo actual para ajustar Recorder muestra cómo la retención, las reglas de inclusión y exclusión y el comportamiento de confirmación afectan a la carga de escritura antes de plantearse una migración de la base de datos. Mide el tamaño de la base de datos, el tiempo de las consultas del historial, la latencia del almacenamiento y la actividad de escritura después del ajuste.
Mantén la base de datos local cuando la carga ajustada siga respondiendo bien, las copias de seguridad terminen dentro de la ventana de mantenimiento y la capacidad SSD disponible se mantenga en un margen cómodo. La separación debe responder a un requisito incumplido, no a la creencia general de que las bases de datos cliente-servidor siempre son más rápidas.
Usa una base de datos externa cuando sus ventajas operativas sean reales
Un host independiente con MariaDB, MySQL o PostgreSQL puede tener sentido cuando Home Assistant comparte una plataforma de bases de datos que ya se administra correctamente, cuando una retención prolongada genera una presión sostenida sobre las consultas, cuando el host del controlador debe seguir siendo ligero o reemplazable, o cuando las copias de seguridad y la supervisión de la base de datos necesitan un ciclo de vida independiente.
Un ejemplo de migración de SQLite a MariaDB muestra los nuevos elementos que introduce esta decisión: el servicio de base de datos, las credenciales, la dirección de red, la inicialización del esquema, el procedimiento de migración, la validación y la reversión. Un caso real más amplio de migración de la base de datos de Home Assistant muestra por qué un historial prolongado y grandes volúmenes de datos pueden justificar la administración adicional.
El artículo de ZimaSpace sobre la fiabilidad de las actualizaciones con una base de datos externa establece el límite de mantenimiento correspondiente: la base de datos debe recibir copias de seguridad, actualizarse y restaurarse como un servicio independiente, en lugar de tratarse como una infraestructura invisible.
No coloques por defecto una base de datos SQLite activa en un recurso compartido de red
Un servidor de bases de datos remoto y un archivo de base de datos almacenado en SMB o NFS son arquitecturas diferentes. Una base de datos cliente-servidor realiza el bloqueo y las transacciones dentro del servicio de base de datos y envía las solicitudes a través de la red. SQLite realiza el bloqueo del archivo de base de datos mediante el sistema de archivos, por lo que la semántica del sistema de archivos de red, la disponibilidad del montaje, la latencia y el comportamiento de los bloqueos pasan a formar parte de cada transacción.
El análisis más amplio de los bloqueos de SQLite explica por qué los sistemas de archivos de red pueden producir un comportamiento de bloqueo diferente al de un disco local. Un caso práctico de fallo en un recurso compartido de red muestra el riesgo cuando la base de datos activa de Recorder depende de un montaje remoto.
Usa un NAS sin problema para copias de seguridad, exportaciones, archivos multimedia y otros datos diseñados para el almacenamiento en red. Si el estado activo de Recorder debe residir en otra máquina, prefiere una base de datos cliente-servidor compatible en lugar de mover el archivo SQLite a un recurso compartido.
Separa el almacenamiento masivo del estado activo de Home Assistant
No todos los directorios que crecen en Home Assistant pertenecen al mismo nivel de almacenamiento. La configuración, el estado de las integraciones, la base de datos activa de Recorder, los archivos multimedia, los clips de cámara, las exportaciones y las copias de seguridad tienen distintas necesidades de latencia y recuperación. Mantén el estado pequeño y actualizado con frecuencia en un almacenamiento local de baja latencia, salvo que un servicio independiente lo gestione de forma deliberada.
Mueve los archivos multimedia masivos o las generaciones de copias de seguridad a la capacidad del NAS mediante puntos de montaje estables. Documenta si Home Assistant puede arrancar sin ese montaje. La ausencia de un archivo fotográfico no debería impedir que se inicien las automatizaciones de iluminación, mientras que la ausencia de la base de datos activa debería generar un estado degradado explícito, no una alternativa silenciosa que nadie detecte.
| Función de los datos | Ubicación predeterminada | Motivo para separar |
|---|---|---|
| Configuración y estado activo | SSD local | Baja latencia y recuperación sencilla |
| SQLite de Recorder | SSD local | Evitar dependencias de bloqueo de sistemas de archivos de red |
| Base de datos SQL externa | Host local o independiente para la base de datos | Escalabilidad, retención, copias de seguridad y administración independientes |
| Archivos multimedia y exportaciones | Local o NAS | La capacidad suele importar más que la latencia |
| Copias de seguridad | Al menos una copia fuera del host | Sobrevivir a la pérdida del host activo |
Comprueba el arranque, los fallos y la restauración antes de hacer permanente la separación
Prueba el nuevo rol de base de datos o almacenamiento sin eliminar la ruta de recuperación anterior. Reinicia el host de la base de datos antes que Home Assistant, reinicia Home Assistant antes de que la base de datos esté lista, interrumpe la red, cambia las credenciales, llena el sistema de archivos de destino hasta acercarlo a su umbral de reserva y restaura la base de datos en una instancia limpia.
Mide el tiempo de las consultas del historial en p95, la latencia de las automatizaciones durante una actividad intensa de Recorder, el tiempo de reinicio, la duración de las copias de seguridad y el tiempo de recuperación tras una interrupción del host de la base de datos. Si la separación mejora una métrica, pero convierte un reinicio del controlador de treinta segundos en un procedimiento de recuperación con varios servicios, incluye ese coste operativo en la decisión.
Mantén el almacenamiento local cuando ya cumpla el objetivo. Usa un host de base de datos independiente cuando las operaciones de una base de datos cliente-servidor y la recuperación independiente ofrezcan ventajas reales. Usa un host de almacenamiento independiente para los datos masivos y las copias de seguridad, pero no hagas que el control local crítico dependa de un sistema de archivos remoto sin una razón comprobada.
Configuración de NAS y Servidor
Más para leer

Una configuración RAG local para artículos de investigación, notas y documentos privados
Mantén los documentos originales como fuente de autoridad, haz que la indexación sea repetible, exige citas y separa los modelos reemplazables de los datos...

¿Por qué los desarrolladores utilizan un nodo de puerta de enlace para DNS privado, VPN y aplicaciones de prueba?
Un nodo de puerta de enlace proporciona a las aplicaciones privadas un único nombre y una ruta de acceso controlados, mientras que los nodos...

Cómo crear una pila de aplicaciones reproducible con archivos de Compose, secretos y datos persistentes separados
Mantén portables las definiciones de Compose, protege los secretos y realiza copias de seguridad independientes de los datos de las aplicaciones para poder reconstruir...

