Démarrage de la réplication sur un ensemble de réplication

Vous pouvez sélectionner un ensemble de réplication sur lequel démarrer la réplication des tables à partir de la base de données source à l'aide de l'API Db2 Q Replication.

Avant de commencer

Cette tâche est effectuée sur l'hôte du cluster pour la source de réplication. Veillez à collecter les informations suivantes avant d'exécuter l'appel API:

  • Jeton d'autorisation de base de la source sur l'hôte du cluster.1
  • Nom d'hôte de la base de données source de réplication.
  • Numéro de port externe de la base de données source de réplication.2
  • Le nom de l'ensemble de réplication (rsName)3
  • Nom du groupe de cohérence (cgName)
Vous avez besoin de ces informations pour exécuter les appels d'API REST de réplication nécessaires.
1 Vous devez créer un jeton d'autorisation de base pour exécuter une demande cURL . Pour créer votre jeton, exécutez la commande suivante:
echo <source_db_username>:<source_db_password> | base64
2 Vous pouvez extraire le numéro de port externe de la base de données source de réplication en exécutant la commande suivante:
oc get svc | grep <db2_instance_id> | grep db2u-engn-svc | grep 50001 | sed 's/.*50001://' | sed 's/\/TCP.*//')
3 Vous pouvez trouver le nom de l'ensemble de réplication (rsName) et le nom du groupe de cohérence (cgName) en exécutant la commande suivante:
curl --insecure -X GET --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic <your_authorization_token>' 
'https://<source_hostname>:<source_rest_port>/dr/v1/replicationset'

A propos de cette tâche

Cet appel d'API déclenche une tâche pour démarrer un ensemble de réplication. Un ensemble de réplication est identifié par les valeurs rsName et cgName . Une fois qu'un ensemble de réplication est démarré, les tables source commencent à être répliquées.

Procédure

  1. Démarrer la réplication sur un ensemble de réplication:
    curl --insecure -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic <your_authorization_token>'  
    'https://<source_hostname>:<source_rest_port>/dr/v1/replicationset/<replication_set_name>/<consistency_group_name>/start'
    Cet appel API renvoie un numéro de travail (id).
    {
      "id": <job_number>,
      "url": "https://<source_hostname>:<source_rest_external_port>/dr/v1/target/progress/<job_number>"
    }
    
  2. Incluez le numéro de travail dans l'appel d'API suivant pour vérifier la progression de l'opération de démarrage de réplication:
    curl --insecure -X GET --header 'Accept: application/json' --header 'Authorization: Basic <your_authorization_token>' 
    'https://<source_hostname>:<source_rest_port>/dr/v1/replicationset/progress/<job_id>'

Résultats

La demande de démarrage de la réplication est terminée lorsqu'un message de réponse contenant executionState=COMPLETED et overallJobResult=PASS est renvoyé. Jusqu'à ce que ces valeurs soient renvoyées, examinez le code d'erreur, le message et la résolution dans la réponse.
Le tableau suivant répertorie les codes de statut et les messages de réponse possibles de HTTP pour la demande de démarrage de la réplication. Il inclut également un exemple de code pour afficher la syntaxe de la réponse.
Code d'état HTTP Motif Modèle de réponse
200 Détails de la réplication La demande de l'utilisateur renvoie un travail (id) et URL au début de l'appel API (valeur échantillon) :

{
  "id": 11,
  "url": "https://dr-source1.ibm.com:31023/dr/v1/replicationset/progress/11"
}
La demande de l'utilisateur renvoie une réponse indiquant que l'appel de l'API a abouti (exemple de valeur):


{
  "id": 11,
  "url": "https://api.dr-source1.ibm.com:31023/dr/v1/replicationset/progress/11",
  "executionState": "COMPLETED",
  "overallJobResult": "PASS",
  "jobStatusList": [
    {
      "jobKey": "startRepCg",
      "jobDescription": "Start replication for consistency group.",
      "execState": "COMPLETED",
      "jobResult": "PASS",
      "values": [],
      "errors": []
    }
  ]
}
4xx Erreur de demande du client La demande de l'utilisateur n'a pas été satisfaite en raison d'une syntaxe de demande syntaxiquement incorrecte ou d'autres problèmes client:
{
  "errorCode": "string",
  "errorMessage": "string",
  "errorResolution": "string"
}
5xx Erreur de serveur La demande de l'utilisateur est apparue valide, mais n'a pas été satisfaite en raison d'un problème avec le serveur:
{
  "errorCode": "string",
  "errorMessage": "string",
  "errorResolution": "string"
}

Exemple

L'exemple suivant illustre la syntaxe de commande permettant de démarrer la réplication sur l'ensemble de réplication RS_MPP_2. Voir l'étape 1:
curl --insecure -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic ZHNhZG06MDNRVWlMczFhcmoxb3ky' 
'https://dr-source1.ibm.com:31023/dr/v1/replicationset/RS_MPP_2/RSMPP20001/start'
L'exemple suivant illustre la syntaxe de commande permettant de vérifier le statut de l'opération de démarrage de la réplication avec le numéro de travail 11. Voir l'étape 2:
curl --insecure -X GET --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic ZHNhZG06MDNRVWlMczFhcmoxb3ky'
'https://dr-source1.ibm.com:31023/dr/v1/replicationset/progress/11'