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 et comment appeler 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 une adresse publique dans Cloud Shell, vous avez uniquement besoin de l'URL de déploiement. Vous trouverez l'URL de déploiement (URL de la console) sur la page de détails du déploiement.

Se connecter à un déploiement privé

Si le déploiement dispose d'une adresse privée, vous pouvez connecter Cloud Shell à un réseau ayant accès au déploiement à l'aide de Cloud Shell Networking, ou créer un bastion, une session de bastion et un tunnel SSH.

Par défaut, Cloud Shell limite l'accès réseau aux ressources internes OCI dans la région d'origine de la location, sauf si vous avez activé le réseau public géré par Cloud Shell. L'administrateur doit configurer une stratégie d'identité pour activer le réseau public Cloud Shell. Pour plus d'informations, reportez-vous à la section Réseau Cloud Shell.

Pour vous connecter à un déploiement OCI GoldenGate privé dans le client d'administration, procédez comme suit :

  1. Dans la barre de navigation globale de la console Oracle Cloud, sélectionnez Outils de développement, puis Cloud Shell.

    Remarque : si vous êtes connecté pour la première fois à 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 lors de la création du bastion.

    ssh-key gen -t rsa

    Conservez le nom du fichier par défaut et n'entrez pas de phrase de passe lorsque vous y êtes invité. La clé privée se trouve à l'emplacement ~/ssh/id_rsa et la clé publique à l'emplacement ~/ssh/id_rsa.pub.

  3. Sur la page Détails du déploiement, notez les informations relatives à l'adresse IP et au sous-réseau privés du déploiement.

  4. Créer un bastion:

    1. Dans le menu de navigation de la console Oracle Cloud, sélectionnez Identité et sécurité, puis Bastion.

    2. Sur la page Bastion, sélectionnez Créer un bastion.

    3. Dans le bastion Créer, entrez un nom, puis sélectionnez le sous-réseau où réside le déploiement.

    4. Dans Liste d'autorisation de bloc CIDR, entrez 0.0.0.0/0.

    5. Sélectionnez Créer un bastion.

  5. Une fois le bastion actif, créez une session :

    1. Sur la page de détails du bastion, sélectionnez Créer une session.

    2. Sur la page Créer une session, pour Type de session, sélectionnez Session de transfert de port SSH.

    3. Entrez un nom de session.

    4. Dans Connexion à l'hôte cible à l'aide de, sélectionnez Adresse IP, puis entrez l'adresse IP privée du déploiement.

    5. Dans 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érer une paire de clés SSH

    7. Sélectionnez Créer une session.

  6. Une fois que la session est active, sélectionnez Visualiser la commande SSH dans le menu Action correspondant (icône représentant des points de suspension).

  7. Dans la boîte d'affichage de la commande SSH, entrez le chemin de La clé privée (~/ssh/id_rsa) à la place de <private-key> et remplacez <local-port> par le port dans Cloud Shell qui transmettra la connexion au bastion.

    Remarque : Cloud Shell n'autorise pas la transmission de port sur un port privilégié avec accès sudo. Vous devez donc utiliser un port non privilégié comme 7443. Une fois la commande exécutée une fois au premier plan pour ajouter l'hôte Bastion à known_hosts, vous pouvez lui ajouter une esperluettes (&) à la fin de la commande afin qu'elle puisse ensuite s'exécuter en arrière-plan.

  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

Vous pouvez éventuellement stocker votre nom utilisateur et votre mot de passe de déploiement dans un fichier [.netrc](netrc.html). Les exemples suivants supposent que vous utilisez un fichier .netrc.

Vous pouvez désormais envoyer des demandes à votre déploiement de réplication de données à l'aide de curl. Par exemple, la commande suivante renvoie 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

Répertorier les fichiers trace

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

Répertorier les extractions ou les réplications

Extractions de liste :

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

Répertorier les répliques :

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

Extraire les détails d'extraction ou de 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 de réplication :

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

Création d'une extraction

Commencez par créer 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 trace E1 et pour capturer 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éation d'une réplication

Commencez par créer un document JSON contenant la configuration Replicat. Par exemple, ce fichier peut être utilisé pour générer un processus Replicat appelé RADW à l'aide de la trace E1 et de la réplication de données à partir de SRC_OCIGGLL.* into 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 de réplication :

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 d'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 Extract :

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 d'une réplication donnée

Obtenir le statut de la 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 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 Oracle GoldenGate :