Migrando para Databases for Redis
Se você requerer migração de dados
Se for absolutamente necessário manter seus dados persistentes ao atualizar para a próxima versão principal do Databases for Redis, tome as medidas necessárias para migrar todos os seus dados com êxito. Copie todos os pares chave-valor na nova implementação. Faça isso da sua antiga instância para a sua nova implementação usando um método apropriado ao seu caso de uso.
Databases for Redis fornece um script de exemplo sem suporte para ajudar a simplificar esse processo.
O script de migração
Aviso! Este script é não suportado e existe como um exemplo do que é possível construir para mover dados do Databases for Redis de uma instância para outra como parte de um upgrade de versão. Todos os códigos-fonte e binários anexados a este documento são chamados aqui de "o Programa". A IBM não está fornecendo serviços de programa de qualquer tipo para o Programa. A IBM está fornecendo o Programa em uma base "NO ESTADO EM QUE SE ENCONTRA", sem garantia de nenhum tipo. A IBM NÃO SERÁ RESPONSABILIZADA POR QUAISQUER DANOS REAIS, DIRETOS, ESPECIAIS, INCIDENTAIS OU INDIRETOS OU POR QUAISQUER DANOS CONSEQUENCIAIS SOFRIDOS (INCLUINDO LUCROS OU ECONOMIAS PERDIDOS), MESMO SE A IBM OU SEU REVENDEDOR TENHA SIDO AVISADO DA POSSIBILIDADE DE TAIS DANOS.
A cópia de dados da implantação antiga Databases for Redis para uma nova versão envolve a execução de um script Python simples disponível no GitHub. O script copia todas as chaves do banco de dados de origem para a nova implementação do Databases for Redis. Faça download do script e certifique-se de que você tenha o Python 3.x instalado. Se
você estiver no macOS, use ' homebrew para instalá-lo executando o comando ' brew install python3, que fornece a versão mais recente.
Em seguida, crie uma janela de migração para informar aos usuários que você está fazendo uma manutenção. Dessa forma, você terá tempo para migrar todos os seus dados para a nova implantação Databases for Redis. Se você estiver usando Redis como um armazenamento de valor-chave com tempos de expiração nas chaves, esses tempos de expiração serão copiados para o novo banco de dados. O nosso exemplo faz isso com 10 milhões de chaves em nosso banco de dados, o que não leva muito tempo para migrar, dependendo da sua largura da banda.
Obtendo as credenciais do banco de dados de destino e de origem
Obtendo as credenciais do banco de dados de origem e de destino na UI
Agora, tenha as credenciais do banco de dados de origem antigo e de sua nova implantação Databases for Redis. Obtenha as credenciais para as implementações do Databases for Redis selecionando os bancos de dados na página Recursos. Em seguida, clique no link Credenciais de serviço A partir daí, crie uma nova credencial para o banco de dados de destino clicando em New credential (Nova credencial). Use quaisquer credenciais que você criar para a origem.
Obtendo as credenciais do banco de dados de destino e de origem na CLI
Obtenha suas credenciais do banco de dados de destino e de origem usando o plug-in da CLI do Cloud Databases.
Execute um comando como:
ibmcloud cdb deployment-connections <INSTANCE_NAME_OR_CRN>
Isto fornece a você o seu URI de conexão do Databases for Redis que inclui o nome do host e a porta. Para obter o certificado de autoridade de certificação decodificado para o banco de dados, execute:
ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>
Depois que o certificado CA for decodificado, salve-o em um arquivo para se conectar ao banco de dados posteriormente. Se você não souber a senha da sua implantação, obtenha-a nas credenciais de serviço geradas ou crie uma nova senha executando:
ibmcloud cdb deployment-user-password <INSTANCE_NAME_OR_CRN> admin <NEW PASSWORD>
Com essas informações, você tem o que precisa para os bancos de dados de destino e de origem.
Execute o script e migre seus dados
Como você tem todas as credenciais para os dois bancos de dados (origem e novo destino Databases for Redis ), você está pronto para executar o script ' pymigration.py. Execute o código de seu terminal usando as credenciais das
etapas anteriores:
python pymigration.py <SOURCE HOST> <SOURCE PASSWORD> <SOURCE PORT>
<DESTINATION HOST> <DESTINATION_USERNAME:DESTINATION_PASSWORD> <DESTINATION PORT>
<DESTINATION CA CERTIFICATE PATH> --sslsrc --ssldst
Para versões mais recentes do Redis como fonte, use ' <SOURCE USER:SOURCE PASSWORD>.
Como você está copiando dados de uma fonte fora do banco de dados Databases for Redis, adicione o sinalizador ' --sslsrc se o seu banco de dados Databases for Redis estiver habilitado para SSL/TLS. Se não for, então, não inclua
a sinalização.
Isso assegura que o Redis esteja se conectando a um banco de dados ativado por SSL/TLS. Inclua também --ssldst, pois o banco de dados de destino é sua nova implementação do Databases for Redis, que também é ativada para SSL/TLS.
As sinalizações complementares que você pode incluir são --db e --flush. --db indica o banco de dados do qual suas chaves são copiadas, que é o banco de dados no qual elas foram copiadas em sua nova implementação.
O sinalizador ' --flush libera o banco de dados de destino antes de importar as chaves do banco de dados de origem. Se quiser manter as coisas atualizadas em sua nova implantação, o ' --flush exclui todas as chaves
e, em seguida, importa as novas chaves do banco de dados de origem.
Ao executar o script que usa " OldDB como a origem para a migração de dados e " NewDB como o destino para os dados migrados, você verá resultados como:
python pymigration.py OldDB.databases.appdomain.cloud OldDBpassword1 88888 NewDB.databases.appdomain.cloud NewDBpassword1 99999 ~/NewDBCA --sslsrc --ssldst 10000000 keys: 100% |###################################################| Time: 0:00:00 Keys disappeared on source during scan: 0 Keys already existing on destination: 0
Esse script copiou 10 milhões de chaves do OldDB para o NewDB Nenhuma chave foi excluída no banco de dados OldDB. Se você adicionar uma nova chave à implementação ' OldDB e tentar migrar
os dados novamente, perceberá que a contagem de chaves no destino muda para 10000000, pois as 10 milhões de chaves originais já existem nesse banco de dados.
10000000 keys: 100% |###################################################| Time: 0:00:00
Keys disappeared on source during scan: 0
Keys already existing on destination: 10000000
Próximas etapas
Após a migração dos dados, troque as cadeias de conexão do banco de dados do aplicativo pelas novas cadeias de conexão e credenciais.