Initialisation de la cible de réplication sur la source de réplication

L'initialisation de la cible de réplication sur la source de réplication permet de rendre la cible visible par la source pour la réplication.

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:

  • Votre ID d'instance Db2®
  • 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 cible de réplication.
  • Numéro de port externe de la base de données cible de réplication.2
  • Nom d'utilisateur et mot de passe de la base de données cible de réplication.
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 cible 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.*//')

A propos de cette tâche

Alors que l'initialisation de la cible de réplication modifie la configuration de la source de réplication, un certain nombre de modifications se produisent également au niveau de la cible:

  • Les paramètres Db2 sont modifiés pour fournir les informations de réplication nécessaires à la base de données cible.
  • Le gestionnaire de files d'attente Apply message est configuré sur le système cible.
  • L'utilitaire Capture queue manage sur la source est configuré pour communiquer avec le système cible.
  • Les tables Apply metadata sont créées sur la base de données cible.
  • Le gestionnaire de files d'attente, le processus d'application et le serveur REST de réplication sont démarrés.

Procédure

  1. Activez la réplication sur la cible de réplication en utilisant le jeton d'autorisation de base de la source de réplication:
    curl --insecure -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic <your_authorization_token>' -d '{ "dbUsername": "<target_db_username>", "dbPassword": "<target_db_password>" }' 
    'https://<source_hostname>:<source_rest_port>/dr/v2/target/<target_hostname>/<target_db_port>/BLUDB?asnmon=n'

    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'activation de la réplication sur la cible:
    curl --insecure -X GET --header 'Accept: application/json' --header 'Authorization: Basic <your_authorization_token>' 
    'https://<source_hostname>:<source_rest_port>/dr/v1/target/progress/<job_number>'

Résultats

L'activation de la réplication sur la cible 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 les appels API d'activation de la cible de 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
202 Initialisation de la cible démarrée La demande de l'utilisateur renvoie un travail (id) et URL au début de l'appel API (valeur échantillon) :

  "id": 1,
  "url": "https://dr-source1.ibm.com:31023/dr/v1/replicationset/progress/1"
}
200 La vérification du statut de l'initialisation de la cible a abouti Recherchez les valeurs de retour executionState=COMPLETED et overallJobResult=PASS dans le corps de la réponse.
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 d'activer la réplication au niveau de la base de données cible. Voir l'étape 1 :
curl --insecure -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic ZHNhZG06aFRjT3dTTjR1RFo0N1Ew' -d '{ "dbUsername": "myuser1", "dbPassword": "mypass1" }' 
'https://dr.source1.ibm.com:31023/dr/v2/target/dr.target2.ibm.com/32621/BLUDB?asnmon=n'
L'exemple suivant illustre la syntaxe de commande permettant de vérifier le statut de l'activation de la réplication sur la cible à l'aide du numéro de travail généré, 1. Voir l'étape 2:
curl --insecure -X GET --header 'Accept: application/json' --header 'Authorization: Basic ZHNhZG06aFRjT3dTTjR1RFo0N1Ew' 
'https://api.dr-source1.ibm.com:30674/dr/v1/target/progress/1'

Etape suivante

Créer un ensemble de réplication.