Sou novo no Scylla e estou procurando configurar uma solução adequada de backup e restauração.
Acabei de testar a execução nodetool snapshot -t my_backup
e vejo que o que ele faz é criar uma pasta de instantâneo chamada my_backup
, dentro de cada pasta de espaço de chave e tabela.
Isso causa algumas limitações a meu ver:
Não consigo salvar facilmente os backups em outro servidor, caso esse servidor específico morra
Não consigo restaurar facilmente um backup em outro servidor (por exemplo, como um instantâneo diário para fins/testes de suporte à produção)
Como os DBAs normalmente armazenam backups em outro servidor e restauram um banco de dados inteiro em outro servidor?
--
Outro problema que notei é que nodetool listsnapshots
parece não mencionar a data de criação do instantâneo na saída.
Portanto, não consigo encontrar uma maneira de limpar instantâneos antigos.
Como faço para "excluir instantâneos com mais de 10 dias" ou "manter os últimos 3 backups", por exemplo?
Supondo que você esteja movendo seus instantâneos para outro servidor ou armazenamento em nuvem (ex: balde S3), remover instantâneos antigos após um determinado número de dias é uma simples questão de executar um Linux para
find
cada diretório de instantâneo por data e, em seguida, umrm -rf
em cada que você quer se livrar.Esta pergunta foi feita no Stack Overflow há algum tempo e as respostas ainda são relevantes: https://stackoverflow.com/questions/31144980/deleting-specific-cassandra-snapshots/31147289#31147289
Minha resposta acima continha um script que praticamente fazia o que descrevi acima.
Também vale a pena conferir o Medusa , que é um utilitário de backup do Cassandra. Tenho quase certeza de que ele tem maneiras de gerenciar instantâneos antigos.