Migration vers Databases for Redis
Si vous avez besoin d'effectuer une migration de données
Si vous devez absolument conserver vos données persistantes lors de la mise à niveau vers la prochaine version majeure de Databases for Redis, prenez des mesures pour migrer avec succès toutes vos données. Copiez toutes les paires clé-valeur dans le nouveau déploiement. Effectuez cette opération depuis votre ancienne instance vers votre nouveau déploiement à l'aide d'une méthode adaptée à votre cas d'utilisation.
Databases for Redis fournit un exemple de script non pris en charge pour simplifier ce processus.
Script de migration
Avertissement ! Ce script n'est pas pris en charge et est fourni à titre d'exemple de ce que vous pouvez créer pour déplacer des données Databases for Redis d'une instance vers une autre dans le cadre d'une mise à niveau de version. L'ensemble du code source et des binaires joints au présent document est désigné ici par l'expression "le programme". IBM ne fournit pas de services de programme de quelque nature que ce soit pour le Programme. IBM fournit le Programme "en l'état", sans garantie d'aucune sorte. IBM NE SERA EN AUCUN CAS RESPONSABLE DES DOMMAGES REELS, DIRECTS, PARTICULIERS, ACCESSOIRES ET INDIRECTS OU DES DOMMAGES ECONOMIQUES CONSECUTIFS (PAR EXEMPLE PERTE DE BENEFICES OU D'ECONOMIES), MEME SI IBM, OU SON REVENDEUR, A EU CONNAISSANCE DE LA POSSIBILITE DE SURVENANCE DE TELS DOMMAGES.
Copier les données de votre ancien déploiement Databases for Redis vers une nouvelle version implique l'exécution d'un simple script Python disponible sur GitHub. Le script copie toutes les clés de votre base de données source vers votre nouveau déploiement Databases for Redis. Téléchargez le script et assurez-vous que Python 3.x est installé.
Si vous êtes sur macOS, utilisez 'homebrew pour l'installer en exécutant la commande 'brew install python3, qui vous donne la dernière version.
Ensuite, créez une fenêtre de migration pour informer vos utilisateurs que vous effectuez des travaux de maintenance. Vous aurez ainsi le temps de migrer toutes vos données vers votre nouveau déploiement Databases for Redis Si vous utilisez Redis comme un magasin de valeurs clés avec des délais d'expiration sur les clés, ces délais d'expiration sont copiés dans votre nouvelle base de données. Notre exemple traite 10 millions de clés dans notre base de données, avec une durée de migration qui peut être relativement courte en fonction de votre bande passante.
Obtention des données d'identification de la base de données de destination et source
Obtention des données d'identification de la base de données source et de destination dans l'interface utilisateur
Maintenant, vous avez les informations d'identification de l'ancienne base de données source et de votre nouveau déploiement Databases for Redis Obtenez les données d'identification pour les deux déploiements Databases for Redis en sélectionnant les bases de données dans la page Ressources. Cliquez ensuite sur le lien Données d'identification du service . A partir de là, créez un nouvel identifiant pour la base de données de destination en cliquant sur Nouvel identifiant. Utilisez les données d'identification que vous créez pour la source.
Obtention des données d'identification de la base de données source et de destination dans l'interface de ligne de commande
Obtenez vos données d'identification de base de données source et de destination à l'aide du plug-in d'interface de ligne de commandeCloud Databases.
Exécutez une commande telle que:
ibmcloud cdb deployment-connections <INSTANCE_NAME_OR_CRN>
Vous pouvez ainsi obtenir votre URI de connexion Databases for Redis qui inclut le nom d'hôte et le port. Pour obtenir le certificat de l'autorité de certification décodée pour la base de données, exécutez la commande suivante :
ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>
Une fois le certificat CA décodé, enregistrez-le dans un fichier afin de pouvoir vous connecter ultérieurement à la base de données. Si vous ne connaissez pas le mot de passe de votre déploiement, obtenez-le à partir des informations d'identification du service généré ou créez un nouveau mot de passe en exécutant :
ibmcloud cdb deployment-user-password <INSTANCE_NAME_OR_CRN> admin <NEW PASSWORD>
Ces informations vous fournissent les éléments nécessaires pour la destination et les bases de données source.
Exécutez le script et migrez vos données
Puisque vous disposez de toutes les informations d'identification pour les deux bases de données (source et nouvelle destination Databases for Redis, vous êtes prêt à exécuter le script 'pymigration.py Exécutez le code à partir
de votre terminal en utilisant les données d'identification des étapes précédentes:
python pymigration.py <SOURCE HOST> <SOURCE PASSWORD> <SOURCE PORT>
<DESTINATION HOST> <DESTINATION_USERNAME:DESTINATION_PASSWORD> <DESTINATION PORT>
<DESTINATION CA CERTIFICATE PATH> --sslsrc --ssldst
Pour les versions plus récentes de Redis en tant que source, utilisez '<SOURCE USER:SOURCE PASSWORD>.
Puisque vous copiez des données à partir d'une source extérieure à la base de données Databases for Redis, ajoutez le drapeau '--sslsrc si votre base de données Databases for Redis est activée pour le protocole SSL/TLS. Si ce
n'est pas le cas, n'ajoutez pas l'indicateur.
Cet indicateur garantit que Redis se connecte à une base de données SSL/TLS. Ajoutez également --ssldst car la base de données de destination est votre nouveau déploiement Databases for Redis, qui est également activé pour SSL/TLS.
Les indicateurs supplémentaires que vous pouvez ajouter sont --db et --flush. --db indique la base de données à partir de laquelle vos clés sont copiées, c'est-à-dire la base de données dans laquelle
elles ont été copiées dans votre nouveau déploiement.
L'indicateur '--flush permet de vider la base de données de destination avant d'importer les clés de la base de données source. Si vous voulez garder les choses fraîches dans votre nouveau déploiement, " --flush supprime toutes les clés, puis importe les nouvelles clés à partir de votre base de données source.
En exécutant le script qui utilise " OldDB comme source pour la migration des données et " NewDB comme destination pour les données migrées, vous obtenez un résultat comme celui-ci :
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
Ce script a copié 10 millions de clés de OldDB dans NewDB. Aucune clé n'a été supprimée dans la base de données OldDB. Si vous ajoutez une nouvelle clé au déploiement " OldDB et tentez
à nouveau de migrer les données, vous remarquez que le nombre de clés sur la destination passe à 10000000, car les 10 millions de clés d'origine existent déjà dans cette base de données.
10000000 keys: 100% |###################################################| Time: 0:00:00
Keys disappeared on source during scan: 0
Keys already existing on destination: 10000000
Etapes suivantes
Après la migration des données, remplacez les chaînes de connexion à la base de données de votre application par vos nouvelles chaînes de connexion et informations d'identification.