Utilisation de l'API REST

Utilisez l'API REST OCI GoldenGate pour communiquer avec vos déploiements de réplication de données. Découvrez comment utiliser l'API REST dans diverses configurations, en appelant des commandes à l'aide de curl et de Cloud Shell.

Se connecter à un déploiement public

Pour vous connecter à un déploiement OCI GoldenGate avec un point d'extrémité public dans Cloud Shell, vous avez seulement besoin de l'URL de déploiement. Vous pouvez trouver l'URL de déploiement (URL de la console) dans la page des détails du déploiement.

Se connecter à un déploiement privé

Si le déploiement comporte un point d'extrémité privé, vous pouvez connecter Cloud Shell à un réseau ayant accès au déploiement à l'aide du service de réseau Cloud Shell ou créer un hôte bastion, une session d'hôte bastion et un tunnel SSH.

Par défaut, Cloud Shell limite l'accès réseau aux ressources internes OCI dans la région principale de votre location, sauf si vous avez activé le réseau public géré par Cloud Shell. Votre administrateur doit configurer une politique d'identité pour activer le réseau public Cloud Shell. Pour plus d'informations, voir Réseau Cloud Shell.

Pour vous connecter à un déploiement de GoldenGate pour OCI privé dans le client d'administration :
  1. Dans la barre de navigation globale de la console Oracle Cloud, cliquez sur Outils de développement, puis sur Cloud Shell.

    Note :

    S'il s'agit de votre première connexion à Cloud Shell, la connexion peut prendre quelques minutes.
  2. (Facultatif) Exécutez la commande suivante pour générer des clés SSH. Vous pouvez ignorer cette étape si vous voulez générer les clés lorsque vous créez l'hôte bastion.
    ssh-key gen -t rsa

    Conservez le nom de fichier par défaut et n'entrez pas de phrase secrète à l'invite. La clé privée se trouve dans ~/ssh/id_rsa et la clé publique, dans ~/ssh/id_rsa.pub.

  3. Dans la page des détails du déploiement, notez les informations sur l'adresse IP privée et le sous-réseau du déploiement.
  4. Créer un hôte bastion :
    1. Dans le menu de navigation de la console Oracle Cloud, sélectionnez Identité et sécurité, puis Hôte bastion.
    2. Dans la page Hôte bastion, cliquez sur Créer un hôte bastion.
    3. Dans la page Créer un hôte bastion, entrez un nom, puis sélectionnez le sous-réseau où réside le déploiement.
    4. Pour Liste d'autorisation du bloc CIDR, entrez 0.0.0.0/0.
    5. Cliquez sur Créer un hôte bastion.
  5. Une fois l'hôte bastion actif, créez une session :
    1. Dans la page des détails de l'hôte bastion, cliquez sur Créer une session.
    2. Dans la page Créer une session, pour Type de session, sélectionnez Session de réacheminement de port SSH.
    3. Entrez un nom de session.
    4. Pour Se connecter à l'hôte cible à l'aide, sélectionnez Adresse IP, puis entrez l'adresse IP privée du déploiement.
    5. Pour Port, entrez 443.
    6. Pour Ajouter une clé SSH, sélectionnez l'une des options suivantes :
      • Collez la clé SSH et collez le contenu de la clé publique ((~/ssh/id_rsa.pub) créée dans Cloud Shell à l'étape 2 ci-dessus.
      • Générez une paire de clés SSH
    7. Cliquez sur Créer une session.
  6. Une fois la session active, sélectionnez Voir la commande SSH dans le menu d'actions (icône de suspension) associé.
  7. Dans la boîte de dialogue Voir la commande SSH, entrez le chemin d'accès à la clé privée (~/ssh/id_rsa) au lieu de <private-key> et remplacez <local-port> par le port de Cloud Shell qui transmettra la connexion à l'hôte bastion.

    Note :

    Cloud Shell ne permet pas le réacheminement de port sur un port privilégié avec un accès sudo. Vous devez donc utiliser un port sans privilège, par exemple 7443. Une fois la commande exécutée au premier plan pour ajouter l'hôte bastion à known_hosts, vous pouvez ajouter une perluète (&) à la fin de la commande afin qu'elle puisse s'exécuter en arrière-plan la prochaine fois.
  8. Copiez la commande, puis exécutez-la dans Cloud Shell. Vous pouvez ignorer les messages bind: Cannot assign requested address.

Exemples d'appels d'API REST

Facultativement, vous pouvez stocker votre nom d'utilisateur et votre mot de passe de déploiement dans un fichier .netrc. Les exemples suivants supposent que vous utilisez un fichier .netrc.

Vous pouvez maintenant envoyer des demandes à votre déploiement de réplication de données à l'aide de curl. Par exemple, la commande suivante retourne l'état du déploiement :
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/services/v2/config/health

Lister les fichiers de piste

curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/services/v2/exttrails

Lister les extractions ou les répliques

Lister les extractions :
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/extracts
Lister les réplicats :
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/replicats

Extraire les détails de l'extraction ou de la réplication

Extraire les détails de l'extraction :
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/extracts/<extract name>
Extraire les détails du processus de réplication :
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/replicats/<replicat name>

Créer un processus d'extraction

Tout d'abord, créez un document JSON contenant la configuration d'extraction. Par exemple, ce fichier peut être utilisé pour générer une extraction appelée EATP à l'aide de la piste E1 et pour saisir des données à partir de SRC_OCIGGLL* :
{
        "config":[
                "Extract EATP",
                "ExtTrail E1",
                "UseridAlias BLOGSRCATP", 
                "Table SRC_OCIGGLL.*;"
        ], 
        "source":{"tranlogs":"integrated"},
        "credentials":{"alias":"BLOGSRCATP"},
        "registration":{"optimized":false},
        "begin":"now",
        "targets":[{"name":"E1"}]
}
Exécutez ensuite la commande suivante pour créer le processus d'extraction :
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<deployment URL>/services/v2/extracts/<Extract name> -d @<JSON file>.json

Créer un processus de réplication

Tout d'abord, créez un document JSON contenant la configuration du processus de réplication. Par exemple, ce fichier peut être utilisé pour générer un processus de réplication appelé RADW à l'aide de la piste E1 et pour répliquer les données de SRC_OCIGGLL.* dans SRCMIRROR_OCIGGLL* :
{
        "config":[
                "REPLICAT RADW",
                "UseridAlias BLOGTRGADW",
                "MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;"
        ],  
        "source":{"name": "E1"},
        "credentials":{"alias":"BLOGTRGADW"},
        "checkpoint":{"table":"SRCMIRROR_OCIGGLL.CHECKTABLE"},
        "mode":{
                "type":"nonintegrated",
                "parallel": false
        },
        "registration":"none",
        "begin":"now",
        "status":"stopped"
}
Exécutez ensuite la commande suivante pour créer le processus Replicat :
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<deployment URL>/services/v2/replicats/<Replicat name> -d @<JSON file>.json

Démarrer une extraction ou une réplication

curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<deployment URL>/services/v2/commands/execute -d '{ "name":"start", "processName":"<Extract or Replicat name>"}'

Obtenir le statut et les statistiques pour une extraction donnée

Obtenir le statut d'extraction :
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<deployment URL>:<port>/services/v2/extracts/<extract name>/command -d '{"command":"STATUS"}'
Obtenir les statistiques d'extraction :
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<deployment URL>:<port>/services/v2/extracts/<extract name>/command -d '{"command":"STATUS"}'

Obtenir le statut et les statistiques pour un processus de réplication donné

Obtenir le statut du processus de réplication :
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<deployment URL>:<port>/services/v2/replicats/<replicat name>/command -d '{"command":"STATUS"}'
Obtenir les statistiques du processus Replicat :
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<deployment URL>:<port>/services/v2/replicats/<replicat name>/command -d '{"command":"STATS"}'

En savoir plus

En savoir plus sur les API REST d'Oracle GoldenGate :