Home Assistant solo debería usar una base de datos o un host de almacenamiento independiente cuando esa separación resuelva un problema medido de capacidad, retención, copias de seguridad o dominio de fallos. Trasladar los datos fuera del controlador no supone automáticamente una mejora.
Para muchos hogares, una base de datos local de Recorder en SQLite, alojada en una unidad SSD fiable, es la opción más sencilla, ya que elimina las dependencias de red, autenticación, DNS e inicio del servidor de base de datos. Antes de crear otro host, determina primero si el problema real son las escrituras excesivas de Recorder, una retención prolongada, 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 base de datos
El crecimiento de Recorder depende de las entidades y los eventos que se almacenan, de la frecuencia con que cambian y del tiempo que se conserva el historial. Si los sensores ruidosos o los dominios innecesarios generan la mayor parte de las escrituras, trasladar la misma carga de trabajo a un servidor de base de datos más grande solo desplaza el problema, en lugar de resolverlo.
Un flujo de trabajo actual para ajustar Recorder muestra cómo afectan la retención, las reglas de inclusión y exclusión, y el comportamiento de las confirmaciones a la carga de escritura antes de plantearse una migración de base de datos. Después del ajuste, mide el tamaño de la base de datos, el tiempo de consulta del historial, la latencia del almacenamiento y la actividad de escritura.
Mantén la base de datos en el equipo local cuando la carga de trabajo optimizada siga respondiendo bien, las copias de seguridad terminen dentro de la ventana de mantenimiento y la capacidad disponible del SSD sea suficiente. La separación debe responder a un requisito que no se cumple, no a la creencia genérica 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 base de datos que ya se administra correctamente, cuando una retención prolongada genera una carga sostenida en las consultas, cuando el host del controlador debe mantenerse ligero o poder sustituirse, 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 ilustra los nuevos componentes que introduce esa decisión: servicio de base de datos, credenciales, dirección de red, inicialización del esquema, procedimiento de migración, validación y reversión. Un caso real de migración de una base de datos de Home Assistant a mayor escala muestra por qué un historial extenso y grandes conjuntos de datos pueden justificar la administración adicional.
El artículo de ZimaSpace sobre la fiabilidad de las actualizaciones de bases de datos externas establece el límite de mantenimiento correspondiente: la base de datos debe respaldarse, actualizarse y restaurarse como un servicio propio, en lugar de tratarse como una infraestructura invisible.
No coloques una base de datos SQLite activa en una unidad compartida de red de forma predeterminada
Un servidor de base de datos remoto y un archivo de base de datos almacenado en SMB o NFS son arquitecturas distintas. Una base de datos cliente-servidor gestiona los bloqueos y las transacciones dentro del servicio de base de datos y envía solicitudes a través de la red. SQLite gestiona los bloqueos del archivo de base de datos a través del 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 forman 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 provocar un comportamiento de bloqueo distinto al de un disco local. Un caso de fallo de una unidad compartida de red en Home Assistant muestra el riesgo práctico de que la base de datos activa de Recorder dependa de un montaje remoto.
Usa un NAS sin problemas para copias de seguridad, exportaciones, archivos multimedia y otros datos pensados para el almacenamiento en red. Si el estado activo de Recorder debe residir en otra máquina, es preferible usar una base de datos cliente-servidor compatible en lugar de mover el archivo SQLite a una unidad compartida.
Separa el almacenamiento masivo del estado activo de Home Assistant
No todos los directorios de Home Assistant que crecen pertenecen al mismo nivel de almacenamiento. La configuración, el estado de las integraciones, la base de datos activa de Recorder, el contenido multimedia, los clips de las cámaras, las exportaciones y las copias de seguridad tienen distintas necesidades de latencia y recuperación. Mantén los datos pequeños que se actualizan con frecuencia en almacenamiento local de baja latencia, salvo que un servicio independiente los gestione deliberadamente.
Traslada el contenido multimedia masivo 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 de fotos no debería impedir que se inicien las automatizaciones de iluminación, mientras que la falta de una base de datos activa debería generar un estado degradado explícito, en lugar de una alternativa silenciosa que nadie advierta.
| 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 | Evita dependencias del bloqueo del sistema de archivos de red |
| Base de datos SQL externa | Servidor de base de datos local o independiente | Escalado, retención, copias de seguridad y administración independientes |
| Contenido multimedia y exportaciones | Local o NAS | La capacidad suele importar más que la latencia |
| Copias de seguridad | Al menos una copia fuera del servidor | Sobrevivir a la pérdida del servidor activo |
Comprueba el arranque, los fallos y la restauración antes de hacer permanente la separación
Prepara la nueva función de base de datos o almacenamiento sin eliminar la antigua vía de recuperación. Reinicia el servidor de 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 cerca de 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 servidor de base de datos. Si la separación mejora una métrica, pero convierte el reinicio de treinta segundos del controlador 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 los objetivos. Usa un servidor de base de datos independiente cuando las operaciones cliente-servidor y la recuperación independiente ofrezcan ventajas reales. Usa un servidor 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 servidores
Más para leer

¿Puede un servidor en una residencia estudiantil funcionar lo bastante silenciosamente como para dormir, estudiar y hacer videollamadas?
Sí, un servidor para una residencia universitaria puede pasar desapercibido si el hardware consume poca energía, se controlan las vibraciones del almacenamiento, se programan...

Un laboratorio doméstico estudiantil que puede pasar de la habitación de la residencia universitaria al primer apartamento
Mantén portátil el laboratorio doméstico de un estudiante separando los servicios de la red específica de cada habitación, minimizando el hardware, haciendo copias de...

Cómo compartir un servidor doméstico con tus compañeros de piso sin compartir cuentas ni archivos privados
Asigna a cada compañero de piso una identidad con nombre, almacenamiento privado y solo los roles compartidos que necesite; mantén la administración, las copias...



