Uma cópia de segurança válida da base de dados do Home Assistant é mais útil quando começa por decidir exatamente o que pretende recuperar. Se toda a instalação do Home Assistant deve regressar ao ponto da cópia de segurança, utilize o fluxo de restauro suportado do Home Assistant. Se a configuração estiver intacta e apenas for necessário recuperar o histórico do Recorder, um restauro apenas da base de dados pode evitar substituir automações e integrações mais recentes.
Não substitua a base de dados em produção enquanto o Home Assistant estiver a escrever nela. Preserve primeiro a base de dados atual, pare o Home Assistant ou coloque o Recorder em estado inativo, restaure a cópia válida num caminho isolado ou controlado e, em seguida, inicie e verifique o sistema antes de eliminar qualquer uma das versões.
Escolha entre o restauro completo do Home Assistant e a recuperação apenas da base de dados
Um restauro completo de uma cópia de segurança do Home Assistant substitui o estado atual da aplicação pelo conteúdo da cópia. É adequado quando a configuração, as integrações, as aplicações e a base de dados devem regressar todas ao mesmo ponto conhecido.
A ação atual de restauro de uma cópia de segurança completa avisa explicitamente que as alterações atuais serão substituídas pelo estado da cópia de segurança. Se o único problema for o histórico do Recorder, esse âmbito poderá ser mais abrangente do que o necessário.
Para uma recuperação apenas da base de dados, identifique a cópia exata e válida da base de dados do Recorder e mantenha a árvore de configuração atual intacta. Registe a data e hora da cópia de segurança para saber quanto histórico será perdido ao regressar a esse ponto.
Confirme qual é a base de dados que o Home Assistant está realmente a utilizar
O Home Assistant utiliza SQLite por predefinição, armazenado em /config/home-assistant_v2.db, mas o Recorder pode utilizar, em alternativa, MariaDB, MySQL ou PostgreSQL através de db_url. Não copie um ficheiro SQLite para uma instalação que, na realidade, escreve numa base de dados externa.
SQLite é a base de dados predefinida do Recorder do Home Assistant e está normalmente armazenada em /config/home-assistant_v2.db; o Recorder também pode ser configurado para utilizar uma base de dados externa suportada através de db_url. Verifique a configuração efetiva do Recorder antes de mexer nos ficheiros, para garantir que o recurso de recuperação corresponde à base de dados que o Home Assistant está realmente a utilizar.
Se a base de dados for externa, restaure-a utilizando o método de cópia de segurança próprio do motor de base de dados e coordene a versão da aplicação com o esquema. Não trate um despejo SQL e um ficheiro SQLite como recursos de recuperação intercambiáveis.
Pare as escritas antes de substituir um ficheiro de base de dados SQLite
Se a sua cópia de segurança válida for uma cópia física limpa de home-assistant_v2.db, pare o Home Assistant antes de substituir o ficheiro em produção. Preserve a base de dados atual com um nome diferente, em vez de a eliminar.
As orientações do próprio SQLite sobre cópias de segurança explicam que uma cópia da base de dados deve representar um instantâneo consistente; a API de cópia de segurança online do SQLite existe especificamente para criar uma cópia consistente enquanto a base de dados está ativa. Uma cópia válida obtida com o sistema parado ou uma cópia de segurança online consciente da base de dados é mais segura do que uma cópia arbitrária do ficheiro feita durante as escritas.
Confirme também que nenhum estado WAL ou de diário associado à base de dados danificada está a ser misturado com a cópia restaurada. Comece com o recurso de recuperação válido completo, não com uma combinação de ficheiros provenientes de momentos diferentes.
Comece com a cópia de segurança intacta e deixe o Home Assistant validá-la
Coloque a base de dados restaurada no caminho esperado, com o proprietário e as permissões corretos, e inicie o Home Assistant, acompanhando os registos do Recorder. Não execute operações de limpeza, compactação ou manutenção SQL manual durante o primeiro arranque de validação.
Se o esquema da base de dados for mais antigo do que a versão atual do Home Assistant, o Recorder poderá ter de o migrar. Deixe esse processo terminar antes de avaliar o desempenho ou reiniciar novamente. Evite alternar entre versões antigas e novas do Home Assistant utilizando a mesma base de dados restaurada, uma vez que as migrações de esquema não constituem um mecanismo geral de desatualização.
Um guia prático de recuperação demonstra o mesmo princípio controlado: trabalhe com cópias e inicie o Home Assistant apenas depois de a base de dados de substituição estar pronta.
Valide o histórico antes de remover a base de dados danificada
- Confirme que o Recorder inicia sem erros de corrupção ou migração.
- Abra o Histórico e o Livro de registos para um intervalo de tempo que deva existir na cópia de segurança.
- Verifique as estatísticas de longo prazo ou os dados de Energia, se esses registos forem importantes para si.
- Acione uma nova alteração de estado e confirme que é escrito novo histórico após o ponto de restauro.
- Reinicie o Home Assistant uma vez e confirme que o Recorder abre novamente a mesma base de dados.
O guia da ZimaSpace sobre cópias de segurança consistentes de bases de dados e testes de restauro aplica-se diretamente: uma cópia de segurança só se torna fiável quando a base de dados a aceita e a aplicação consegue escrever um novo estado após o restauro.
Conserve a base de dados danificada até este teste de aceitação passar. Poderá ainda conter histórico mais recente que pode ser analisado ou recuperado seletivamente se a cópia de segurança válida for mais antiga do que o esperado.
Perguntas frequentes
Posso restaurar apenas o histórico do Home Assistant sem reverter as minhas automações?
Sim, quando dispõe de uma cópia válida da base de dados do Recorder e a configuração atual do Home Assistant está intacta. Pare as escritas, preserve a base de dados atual, restaure apenas a base de dados do Recorder e valide-a antes da limpeza.
Devo restaurar uma cópia de segurança da base de dados criada numa versão muito mais antiga do Home Assistant?
Apenas com cuidado. Uma versão mais recente do Home Assistant pode migrar um esquema antigo do Recorder, mas fazer uma desatualização e trocar repetidamente de versão utilizando uma única base de dados é arriscado. Mantenha cópias de segurança e utilize um caminho de recuperação compatível.
Suporte e Dicas
Mais para Ler

Sinais de que uma base de dados do Home Assistant precisa de manutenção ou substituição
Uma base de dados grande do Home Assistant geralmente requer retenção ou limpeza; a corrupção repetida ou erros de integridade são sinais mais fortes...

Quantos utilizadores simultâneos consegue o Home Assistant suportar antes de ficar mais lento?
O Home Assistant não tem um limite fixo de utilizadores que seja útil: faça testes de desempenho com clientes ativos, painéis reais e atualizações...

O Home Assistant pode utilizar uma base de dados externa sem comprometer as atualizações?
Uma base de dados externa do Recorder pode sobreviver às atualizações, mas acrescenta as suas próprias responsabilidades de disponibilidade, migração do esquema, cópia de...

