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

Connexion à un déploiement privé

Si le déploiement dispose d'une adresse privée, vous pouvez connecter Cloud Shell à un réseau avec accès au déploiement à l'aide de la mise en réseau Cloud Shell, 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 votre 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 à Mise en réseau de 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, cliquez sur Outils de développement, puis sur Cloud Shell.

    Remarques :

    S'il s'agit de la 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 lors de la création du bastion.
    ssh-key gen -t rsa

    A l'invite, conservez le nom de fichier par défaut et n'entrez pas de phrase de passe. La clé privée se trouve à l'emplacement ~/ssh/id_rsa et la clé publique à l'emplacement ~/ssh/id_rsa.pub.

  3. Notez les informations sur l'adresse IP privée et le sous-réseau 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, cliquez sur Créer un bastion.
    3. Sur la page Créer un bastion, entrez un nom, puis sélectionnez le sous-réseau dans lequel réside le déploiement.
    4. Dans Liste d'autorisation de bloc CIDR, entrez 0.0.0.0/0.
    5. Cliquez sur Créer un bastion.
  5. Une fois le bastion actif, créez une session :
    1. Sur la page de détails du bastion, cliquez sur 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, saisissez 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. After the session is Active, select View SSH command from its Action menu (ellipsis icon).
  7. Dans la boîte de dialogue Afficher 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.

    Remarques :

    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. Après l'exécution de la commande une fois au premier plan pour ajouter l'hôte Bastion à known_hosts, vous pouvez ajouter une esperluette (&) à 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 le nom utilisateur et le mot de passe de déploiement dans un fichier .netrc. 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

Lister les fichiers de trace

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

Liste des extractions ou des répliques

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

Créez d'abord 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 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

Créez d'abord un document JSON contenant la configuration de réplication. Par exemple, ce fichier peut être utilisé pour générer une réplication appelée RADW à l'aide de la trace E1 et répliquer des données de SRC_OCIGGLL.* vers 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 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 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 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 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":"STATS"}'

En savoir plus

En savoir plus sur les API REST Oracle GoldenGate :