Recentemente, encontrei um vídeo que descreve como alguém digitou acidentalmente o comando 'rm *' do Linux durante a produção do filme Toy Story 2 e todos os gráficos, o trabalho artístico e os scripts "desapareceram". Felizmente, eles tinham um backup dos dados e os arquivos foram restaurados. Se você assistir ao vídeo abaixo, verá algumas lições dessa história (que é real). Mas a mais importante sobre a qual quero falar é "FAÇA BACKUPS de seus dados".
Clique na imagem acima para assistir ao vídeo!
Como muitos de vocês, perdi dados algumas vezes como resultado de um comando acidentalmente perdido ou em circunstâncias piores. Neste blog, quero mostrar como você pode usar o backup e a restauração on-line (cbbackup e cbrestore) no Couchbase Server para não perder informações no caso de uma falha grave de hardware ou de instalação ou devido a um cenário acidental de "oops".
cbbackup
O comando cbbackup permite fazer backup de todo o cluster do Couchbase, de um único nó ou de um único bucket, em um arquivo que pode ser restaurado em um cluster do Couchbase quando necessário. As operações de backup e restauração podem ser executadas em um cluster do Couchbase ativo.

Para fazer backup de um cluster inteiro, que consiste em todos os buckets e todos os dados do nó:
shell> cbbackup http://HOST:8091 ~/backups
-u Administrador -p senha
'~/backups' é o caminho do backup, 'Administrator' e 'Password' são as credenciais do servidor.
Supondo que você tenha 3 buckets em seu cluster do Couchbase - Default, gamesim-sample e beer-sample, a saída do cbbackup seria parecida com a seguinte :

A estrutura de pastas dentro da pasta raiz de backups seria parecida com a seguinte :

Há uma pasta correspondente a cada bucket do Couchbase Server (bucket-beer-sample, bucket-default, bucket-gamesim-sample). design.json captura os documentos de design em cada bucket do couchbase. Os arquivos .cbb consistem em dados brutos exportados.
Para fazer backup de todos os dados de um único bucket, contendo todas as informações de todo o cluster:
shell> cbbackup http://HOST:8091 /backups/backup-20120501
-u Administrador -p senha
-b padrão
'/backups/backup-20120501' é o caminho do backup, 'Administrator' e 'Password' são as credenciais do servidor, 'default' é o nome do bucket.
Para fazer backup de todos os dados armazenados em um único nó em todos os diferentes buckets:
shell> cbbackup http://HOST:8091 /backups/
-u Administrador -p senha
-nó único
'/backups' é o caminho do backup, 'Administrator' e 'Password' são as credenciais do servidor, -single-node é o sinalizador.

Uso de várias instâncias do cbbackup para gravar diferentes arquivos de backup em paralelo
Se você tiver grandes conjuntos de dados, poderá paralelizar e acelerar o backup usando um processo cbbackup por servidor couchbase.
Para fazer backup dos dados de um único bucket em um único nó:
shell> cbbackup http://HOST:8091 /backups
-u Administrador -p senha
-nó único
-b padrão
'/backups' é o caminho do backup, 'Administrator' e 'Password' são as credenciais do servidor, 'default' é o nome do bucket.
Agora que você fez o backup de seus dados, como restaurá-los?
cbrestore
O cbrestore pega as informações das quais foi feito backup usando o cbbackup e transmite os dados armazenados para o cluster para restaurar os dados.
Para restaurar um único bucket de dados em um cluster:
shell> cbrestore
~/backups
http://Administrator:password@HOST:8091
-bucket-source=XXX
Para restaurar os dados do bucket em um bucket diferente no cluster:
shell> cbrestore
~/backups
http://Administrator:password@HOST:8091
-bucket-source=XXX
-bucket-destination=YYY
'/backups' é o caminho do backup, 'Administrator' e 'Password' são as credenciais do servidor. bucket-source e bucket-destination são os nomes dos buckets de origem e destino.

Uso de várias instâncias do cbrestore para restaurar vários arquivos no Couchbase Server
Coisas para se ter em mente
- Faça backup de seus dados com frequência.
- Use uma máquina separada para fazer o backup dos dados a fim de reduzir a pressão sobre o cluster do couchbase ativo. Embora os comandos de backup/restauração possam ser executados enquanto o sistema estiver on-line, considere a possibilidade de executar esses comandos em horários fora do pico de carga em uma máquina separada.
Por que isso é importante para o desempenho?
O backup é baseado no protocolo TAP. Com base na quantidade de memória disponível e na proporção de documentos residentes, pode ser necessário ler todo o conjunto de dados do disco e sobrecarregar ainda mais o sistema
- Por fim, não se esqueça de testar sua estratégia de backup para garantir que os backups funcionem quando você precisar deles para a recuperação de dados.
- Somente os documentos de design são armazenados em backup e restaurados, os índices não. Os índices são reconstruídos de forma incremental depois que os dados são restaurados.
- Durante a restauração, você pode especificar a opção -a no cbrestore para evitar a substituição de itens existentes. Isso inserirá itens somente se eles ainda não existirem.
- Você pode filtrar as chaves das quais é feito backup usando a opção de backup -k. Por exemplo, para fazer backup das informações de um bucket em que as chaves tenham o prefixo "object":
shell> cbbackup http://HOST:8091 /backups/backup-20120501
-u Administrador -p senha
-b padrão
-k '^objeto.*'
Aproveite!
