Os instantâneos do sistema de arquivos são o caminho certo para fazer algo assim.
Temos um script automatizado para fazer backup de arquivos de dados de 200 GB em um disco local. o script encerra o banco de dados, tar e comprime o diretório inteiro localmente no disco, depois inicia o banco de dados
tar -czvf data.tgz / alguma pasta
esse processo leva duas horas, o que é um tempo de inatividade muito longo. queremos reduzir esse tempo de inatividade.
considere o seguinte: - o alvo principal é ter uma cópia idêntica dos arquivos no menor tempo disponível enquanto o banco de dados estiver inativo. mais tarde, podemos compactar, transferir ou fazer qualquer operação nos arquivos.
Eu estava pensando em usar o rsync para sincronizar os arquivos toda semana com o backup de destino, o rsync atualizará apenas as alterações que levarão menos tempo.
isso funcionará, ou há melhor abordagem?
Os instantâneos do sistema de arquivos são o caminho certo para fazer algo assim.
Com relação à resposta do 84014, certifique-se de liberar as tabelas e (ler) bloqueá-las antes de fazer um instantâneo. Isso garante um instantâneo mais consistente com transações não quebradas. Além disso, faça backup regularmente dos registros de transações em um local externo para que você possa ter uma recuperação pontual quando precisar disso. Melhor fazer isso em um escravo replicado, quando possível.
O Rsync é imho para bancos de dados e não o caminho a percorrer.
Dirvish é o que você está procurando. Todos os arquivos que são idênticos ficam com hardlinked para que você tenha uma árvore de diretórios completa para copiar, além de usar o rsync para que você economize largura de banda em arquivos parcialmente alterados.
Você pode verificar o utilitário com o nome rsync para backup.
rsync -av host :: src / dest
Para verificar a documentação completa, clique no link abaixo: link
Se o DBMS oferecer suporte à replicação, considere a configuração de uma instância de replicação em um armazenamento separado e, possivelmente, em um site remoto. Você pode conseguir transformar a outra na primária rapidamente.
Mas isso não é backup, os backups estão offline. Determine como fazer backups sem desativar o banco de dados. Ou o SGBD grava o backup, ou você diz para suspender as gravações ou, de outra forma, chegar a um ponto seguro e pegar uma cópia dos arquivos você mesmo.
A maneira mais rápida de obter uma cópia é um instantâneo do volume de dados. Matrizes de armazenamento sofisticadas podem capturar um LUN instantaneamente e apresentá-lo a um host de backup diferente. Ou, faça um instantâneo de nível LVM para fazer isso no nível do host. De qualquer forma, o backup não é concluído até que seja copiado para diferentes mídias externas.
A estratégia de backup ideal depende muito do banco de dados específico que você está executando. De qualquer forma, aqui estão alguns conselhos genéricos para reduzir o tempo de inatividade:
se o seu sistema de arquivos ou gerenciador de volume suportar instantâneos , você poderá usá-los para reduzir bastante o tempo de inatividade esperado. O fluxo de trabalho será algo semelhante a isso:
Se você puder perder a transação mais recente em seu backup, poderá modificar a sequência acima para evitar parar / iniciar o banco de dados, fornecendo efetivamente um processo de backup sem tempo de inatividade ;
Caso você não possa confiar em instantâneos, diminua o tempo de cópia o máximo possível. Eu sugiro strongmente que você tente tar --lzop -cvf
, que usará o compressor lzo muito rápido. O banco de dados deve ser interrompido durante toda a duração do backup ;
Se isso não for suficiente, você deve tentar copiar apenas o bloco changed dos seus arquivos de dados. Experimente bdsync
ou blocksync
para ver se os backups subsequentes são mais rápidos que o primeiro. Observe que ambos os utilitários funcionam em arquivos únicos, portanto, você deve criar scripts em torno deles para copiar vários arquivos. O banco de dados deve ser interrompido durante toda a duração do backup ;
rsync
geralmente não é recomendado para copiar arquivos muito grandes; no entanto, você pode tentar com algo como rsync -a --inplace
ou, no outro extremo, rsync -a -W
. Você claramente teve que executar algum benchmark para descobrir que rsync
invocação é mais adequada para suas necessidades específicas. Novamente, isso deve ser feito com o banco de dados interrompido durante toda a duração do backup ;
se essas abordagens não funcionarem, ou forem inaplicáveis ao seu caso, você terá que configurar um processo de backup específico do banco de dados (por exemplo: confiar na replicação ou no envio de log para um host secundário).