Migrazione a Databases for Redis
Se si richiede la migrazione dei dati
Se devi assolutamente conservare i tuoi dati persistenti quando esegui l'aggiornamento alla versione principale successiva di Databases for Redis, attieniti alla procedura per migrare correttamente tutti i tuoi dati. Copiare tutte le coppie chiave - valore nella nuova distribuzione. Esegui questa operazione dalla tua vecchia istanza alla tua nuova distribuzione utilizzando un metodo appropriato al tuo caso di utilizzo.
Databases for Redis fornisce uno script di esempio non supportato per semplificare questo processo.
Lo script di migrazione
Avvertenza! Questo script non è supportato ed esiste come esempio di cosa puoi creare per spostare i dati Databases for Redis da un'istanza a un'altra come parte di un aggiornamento della versione. Tutto il codice sorgente e i file binari allegati a questo documento sono qui indicati come "il programma". IBM non fornisce servizi di programma di alcun tipo per il programma. IBM fornisce il programma "NELLO STATO IN CUI SI TROVA" senza alcun tipo di garanzia. IBM NON SARÀ RESPONSABILE PER DANNI REALI, DIRETTI, SPECIALI, INCIDENTALI O INDIRETTI O PER QUALSIASI DANNO ECONOMICO CONSEQUENZIALE (INCLUSI MANCATI PROFITTI O RISPARMI), ANCHE SE IBM, O IL SUO RIVENDITORE, È STATO AVVISATO DELLA POSSIBILITÀ DI TALI DANNI.
La copia dei dati dalla tua vecchia distribuzione Databases for Redis a una nuova versione implica l'esecuzione di un semplice Python disponibile su GitHub. Lo script copia tutte le chiavi dal database di origine alla tua nuova distribuzione Databases for Redis. Scarica lo script e assicurati di avere installato Python 3.x. Se siete
su macOS, usate 'homebrew per installarlo eseguendo il comando 'brew install python3, che vi darà l'ultima versione.
Successivamente, creare una finestra di migrazione per consentire agli utenti di sapere che si stanno eseguendo alcune operazioni di manutenzione. In questo modo hai tempo di migrare tutti i tuoi dati nella tua nuova distribuzione Databases for Redis. Se si utilizza Redis come archivio di valori chiave con tempi di scadenza sulle chiavi, questi tempi di scadenza vengono copiati nel nuovo database. Il nostro esempio fa questo con 10 milioni di chiavi nel nostro database, che non richiede molto tempo per migrare a seconda della tua larghezza di banda.
Acquisizione delle credenziali del database di destinazione e di origine
Acquisizione delle credenziali del database di destinazione e di origine nell'interfaccia utente
Ora, disponi delle credenziali del vecchio database di origine e della nuova distribuzione Databases for Redis. Ottieni le credenziali per entrambe le distribuzioni Databases for Redis selezionando i database dalla pagina Risorse. Fai quindi clic sul collegamento Credenziali del servizio . Da qui, creare una nuova credenziale per il database di destinazione facendo clic su Nuova credenziale. Utilizzare le credenziali create per l'origine.
Ottenimento delle credenziali del database di destinazione e di origine nella CLI
Ottieni le tue credenziali del database di destinazione e di origine utilizzando il plug-in CLICloud Databases.
Eseguire un comando come:
ibmcloud cdb deployment-connections <INSTANCE_NAME_OR_CRN>
Questo ti fornisce il tuo URI di connessione Databases for Redis che include il nome host e la porta. Per ottenere il certificato CA decodificato per il database, eseguire:
ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>
Una volta decodificato il certificato CA, salvarlo in un file per collegarsi al database in un secondo momento. Se non conosci la password per la tua distribuzione, ottieni la password dalle tue credenziali del servizio generate o crea una nuova password eseguendo:
ibmcloud cdb deployment-user-password <INSTANCE_NAME_OR_CRN> admin <NEW PASSWORD>
Con queste informazioni, hai ciò che ti serve per la destinazione e i database di origine.
Eseguire lo script e migrare i dati
Poiché hai tutte le credenziali per entrambi i database (origine e nuova destinazione Databases for Redis ), sei pronto per l'esecuzione dello script pymigration.py. Esegui il codice dal tuo terminale utilizzando le credenziali
dai passi precedenti:
python pymigration.py <SOURCE HOST> <SOURCE PASSWORD> <SOURCE PORT>
<DESTINATION HOST> <DESTINATION_USERNAME:DESTINATION_PASSWORD> <DESTINATION PORT>
<DESTINATION CA CERTIFICATE PATH> --sslsrc --ssldst
Per le versioni più recenti di Redis come sorgente, utilizzare '<SOURCE USER:SOURCE PASSWORD>.
Poiché si stanno copiando i dati da una fonte esterna al database Databases for Redis, aggiungere il flag '--sslsrc se il database Databases for Redis è abilitato a SSL/TLS. Se non lo è, non aggiungere la bandiera.
Ciò garantisce che Redis si stia collegando a un database abilitato SSL/TLS. Aggiungi anche --ssldst poiché il database di destinazione è la tua nuova distribuzione Databases for Redis, che è anche abilitata SSL/TLS.
Gli indicatori supplementari che è possibile aggiungere sono --db e --flush. --db indica il database da cui vengono copiate le chiavi, ovvero il database in cui sono state copiate nella nuova distribuzione.
L'indicatore --flush scarica il database di destinazione prima di importare le chiavi dal database di origine. Se si desidera mantenere le cose nuove nella nuova distribuzione, --flush elimina tutte le chiavi e quindi
importa le nuove chiavi dal database di origine.
Eseguendo lo script che utilizza OldDB come origine per la migrazione dei dati e NewDB come destinazione per i dati migrati, viene visualizzato l'output come:
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
Questo script ha copiato 10 milioni di chiavi da OldDB a NewDB. Nessuna chiave è stata eliminata sul database OldDB. Se si aggiunge una nuova chiave alla distribuzione OldDB e si tenta di
migrare di nuovo i dati, si nota che il conteggio delle chiavi sulla destinazione cambia in 10000000, poiché i 10 milioni di chiavi originali già esistono in quel database.
10000000 keys: 100% |###################################################| Time: 0:00:00
Keys disappeared on source during scan: 0
Keys already existing on destination: 10000000
Passi successivi
Dopo la migrazione dei tuoi dati, scambia le stringhe di connessione al database della tua applicazione con le tue nuove credenziali e stringa di connessione.