IBM Cloudant Replication
A replicação do IBM® Cloudant® for IBM Cloud® é o processo que sincroniza o estado de dois bancos de dados.
Qualquer mudança que ocorreu no banco de dados de origem é reproduzida no banco de dados de destino. É possível criar replicações entre qualquer número de bancos de dados tanto continuamente quanto como uma tarefa "única".
Dependendo de seus requisitos de aplicativo, você usa replicação para compartilhar e agregar estado e conteúdo.
A replicação ocorre em apenas uma direção. Para manter dois bancos de dados sincronizados um com o outro, deve-se replicar em ambas as direções. Conclua este processo replicando de database1 para database2 e separadamente
de database2 para database1.
Primeiro, quando a replicação é finalizada, todos os documentos ativos no banco de dados de origem também existem no banco de dados de destino ou "alvo". Em segundo lugar, os documentos excluídos do banco de dados de origem também serão removidos do banco de dados de destino (se existirem).
Operação de replicação
A replicação tem dois formatos: replicação push ou pull:
- Replicação push - em que a origem é um banco de dados local e o destino é um banco de dados remoto.
- Replicação pull - em que a origem é uma instância de banco de dados remoto e o destino é o banco de dados local.
A replicação pull será útil se o seu banco de dados de origem tiver um endereço IP permanente e seu banco de dados de destino for local e tiver um endereço IP designado dinamicamente, por exemplo, obtido por meio do DHCP. A replicação pull é apropriada se você estiver replicando para um dispositivo móvel ou outro dispositivo a partir de um servidor central.
Em todos os casos, os bancos de dados solicitados na especificação de origem e de destino devem existir. Se eles não existirem, será retornado um erro dentro do objeto JSON.
Consulte o exemplo de solicitação a seguir para replicar entre um banco de dados no servidor de origem example.com e um banco de dados de destino em IBM Cloudant.
POST /_replicate
Content-Type: application/json
Accept: application/json
{
"source" : "https://$USERNAME1:$PASSWORD1@example.com/db",
"target" : "https://$USERNAME2:$PASSWORD2@$ACCOUNT2.cloudant.com/db",
}
Consulte o exemplo de resposta de erro a seguir se um dos bancos de dados solicitados para uma replicação não existir.
{
"error" : "db_not_found",
"reason" : "could not open https://example.com/db/"
}
Replicação contínua
Por padrão, a sincronização de um banco de dados durante a replicação acontece uma vez quando é feita a solicitação de replicação. Para assegurar que a replicação do banco de dados de origem para o banco de dados de destino ocorra continuamente,
configure o campo continuous do objeto JSON dentro da solicitação como true.
Com a replicação contínua, as mudanças no banco de dados de origem são sempre replicadas para o banco de dados de destino até você cancelar especificamente a replicação.
As mudanças são replicadas entre os dois bancos de dados enquanto há uma conexão de rede disponível entre as duas instâncias.
Quando em operação, o processo de replicação não para ao finalizar o processamento de todas as atualizações atuais. Em vez disso, o processo de replicação continua esperando por atualizações adicionais no banco de dados de origem e as aplica no destino.
A replicação contínua força verificações constantes no banco de dados de origem. Essas verificações resultam em um número crescente de acessos ao banco de dados, mesmo se o conteúdo do banco de dados de origem não mudou. Os acessos ao banco de dados são contados como parte do trabalho que é feito dentro de uma configuração de banco de dados de diversos locatários.
O banco de dados _replicator
O banco de dados _replicator é um banco de dados especial dentro da sua conta, no qual é possível executar PUT ou POST em documentos de replicação para especificar as replicações desejadas.
Antes de iniciar uma replicação, deve-se criar o banco de dados _replicator. Para criar um banco de dados, envie uma solicitação PUT para:
https://$ACCOUNT.cloudant.com/_replicator
Para obter mais informações, consulte Bancos de dados.
Para cancelar uma replicação, execute um DELETE no documento de replicação. Os campos preenchidos no documento de replicação são descritos na seção “Criar ou modificar uma operação de replicação ”, na seção “Informações sobre a solicitação”.
Todos os documentos de design e _local documentos que foram incluídos ao banco de dados /_replicator serão ignorados.
Avisos Importantes
- As replicações podem impactar severamente o desempenho de uma instância do IBM Cloudant. Testes de desempenho ajudam a entender o impacto em seu ambiente sob um número crescente de replicações simultâneas.
- A replicação contínua pode resultar em muitas chamadas internas. A necessidade de muitas chamadas pode afetar os custos de usuários de diversos locatários dos sistemas IBM Cloudant. Por padrão, a replicação contínua não é ativada.
- O banco de dados de destino deve existir. Ele não será criado automaticamente se não existir. Inclua
"create_target":trueno documento JSON que descreve a replicação se o banco de dados de destino não existir antes da replicação. Para obter mais informações, consulte Criando um banco de dados de destino durante a replicação. - Os bancos de dados replicadores devem ser mantidos e pesquisados, assim como qualquer outro armazenamento de dados importantes. Para obter mais informações, consulte Manutenção de banco de dados de replicação.
Para fins de segurança, a equipe do IBM Cloudant recomenda o uso de chaves de API do IAM ou de chaves de API de autenticação anterior do IBM Cloudant, em vez de credenciais em nível de conta, para as tarefas de replicação. Para obter mais informações, consulte o Guia do IAM ou o Documento da API de autenticação anterior e o Documento da API de autorização anterior.