RéplicationIBM Cloudant
La réplication IBM® Cloudant® for IBM Cloud® est le processus qui synchronise l'état de deux bases de données.
Toute modification effectuée dans la base de données source est reproduite dans la base de données cible. Vous pouvez créer des réplications entre un nombre illimité de bases de données, en continu ou en tant que tâche "ponctuelle".
Selon les exigences de votre application, vous utilisez la réplication pour partager et agréger l'état et le contenu.
La réplication est unidirectionnelle. Pour que deux bases de données restent synchronisées, vous devez procéder à une réplication dans les deux sens. Pour ce faire, répliquez les données depuis database1 dans database2,
puis séparément depuis database2 dans database1.
Premièrement, une fois la réplication terminée, tous les documents actifs se trouvant dans la base de données source existent également dans la base de données de destination ou cible. Deuxièmement, les documents supprimés de la base de données source sont également supprimés de la base de données de destination (s'ils existent dans cette base de données).
Opération de réplication
Il existe deux formes de réplication : la réplication push et la réplication pull.
- Dans le cas de la réplication push, la source est une base de données locale et la destination est une base de données distante.
- Dans le cas de la réplication pull, la source est une instance de base de données distante et la destination est la base de données locale.
La réplication pull est utile si votre base de données source possède une adresse IP permanente et si votre base de données de destination est locale et possède une adresse IP affectée dynamiquement, par exemple via DHCP. La réplication pull est particulièrement appropriée si vous procédez à la réplication sur un périphérique mobile ou tout autre périphérique depuis un serveur central.
Dans tous les cas, les bases de données demandées dans la spécification source et cible doivent exister. Sinon, une erreur est renvoyée dans l'objet JSON.
Voici un exemple de demande permettant d'effectuer la réplication entre une base de données sur le serveur source example.com et une base de données cible dans 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",
}
Voici un exemple de réponse d'erreur si l'une des bases de données demandée pour une réplication n'existe pas :
{
"error" : "db_not_found",
"reason" : "could not open https://example.com/db/"
}
Réplication continue
Par défaut, la synchronisation d'une base de données au cours de la réplication a lieu une fois lorsque la demande de réplication est émise. Pour vous assurer que la réplication depuis la base de données source dans la base de données cible
a lieu en continu, définissez la valeur continuous dans la zone true de l'objet JSON dans la demande.
Avec la réplication continue, les modifications apportées dans la base de données source sont répliquées dans la base de données cible sans arrêt jusqu'à ce que vous annuliez expressément la réplication.
Les modifications sont répliquées entre les deux bases de données si une connexion réseau est disponible entre les deux instances.
Lorsqu'il est opérationnel, le processus de réplication ne s'arrête pas une fois qu'il a terminé de traiter toutes les mises à jour en cours. A la place, il attend que de nouvelles mises à jour soient effectuées dans la base de données source et les applique à la base de données cible.
La réplication continue force la vérification constante de la base de données source. Cette vérification constante génère un nombre croissant d'accès à la base de données, même si le contenu de la base de données source ne change pas. Les accès à la base de données sont considérés comme une composante du travail effectué dans une configuration de base de données à service partagé.
La base de données _replicator
La base de données _replicator est une base de données spéciale sur votre compte, dans laquelle vous pouvez placer ou publier des documents de réplication à l'aide de demandes PUT et POST afin de spécifier
les réplications de votre choix.
Avant de commencer une réplication, vous devez créer la base de données _replicator. Pour ce faire, envoyez une demande PUT à :
https://$ACCOUNT.cloudant.com/_replicator
Pour plus d'informations, voir Bases de données.
Pour annuler une réplication, supprimez le document de réplication à l'aide d'une demande DELETE. Les champs à renseigner dans le document de réplication sont décrits dans la section « Créer ou modifier une opération de réplication », sous « Informations sur la demande ».
Tous les documents de conception et tous les documents _local ajoutés dans la base de données /_replicator sont ignorés.
Remarques importantes
- Les réplications peuvent avoir un impact considérable sur les performances d'une instance IBM Cloudant. Le test des performances permet de comprendre l'impact de votre environnement lorsque le nombre de réplications simultanées augmente.
- La réplication continue peut générer de nombreux appels internes. Si beaucoup d'appels sont nécessaires, les coûts pour les utilisateurs à service partagé des systèmes IBM Cloudant peuvent augmenter. Par défaut, la réplication continue n'est pas activée.
- La base de données cible doit exister. Elle n'est pas créée automatiquement si elle n'existe pas. Ajoutez
"create_target":truedans le document JSON décrivant la réplication si la base de données cible n'existe pas avant la réplication. Pour plus d'informations, voir Création d'une base de données cible au cours de la réplication. - La maintenance des bases de données de réplicateur doit être assurée et ces dernières doivent être surveillées, à l'instar de tout autre magasin de données important. Pour plus d'informations, voir Maintenance de la base de données de réplication.
Pour des raisons de sécurité, l'équipe IBM Cloudant recommande d'utiliser des clés d'API IAM ou des clés d'API d'authentification existantes IBM Cloudant plutôt que des données d'identification de niveau compte pour les travaux de réplication. Pour plus d'informations, voir le guide IAM ou les documents relatifs à l'API d'authentification et à l'API d'autorisation.