Uso dell'API REST

Utilizzare l'API REST OCI GoldenGate per comunicare con le distribuzioni della replica dei dati. Scopri come utilizzare l'API REST in varie configurazioni, richiamando i comandi utilizzando curl e Cloud Shell.

Argomenti correlati

Connettersi a una distribuzione pubblica

Per connettersi a una distribuzione OCI GoldenGate con un endpoint pubblico in Cloud Shell, è necessario solo l'URL di distribuzione. È possibile trovare l'URL di distribuzione (URL console) nella pagina dei dettagli della distribuzione.

Connettersi a una distribuzione privata

Se la distribuzione dispone di un endpoint privato, è possibile connettere Cloud Shell a una rete con accesso alla distribuzione mediante il networking Cloud Shell oppure creare un bastion, una sessione bastion e un tunnel SSH.

Per impostazione predefinita, Cloud Shell limita l'accesso di rete alle risorse interne OCI nell'area di origine della tenancy a meno che non sia stata abilitata la rete pubblica gestita da Cloud Shell. L'amministratore deve configurare un criterio di identità per abilitare la rete pubblica Cloud Shell. Per ulteriori informazioni, vedere Rete di Cloud Shell.

Per connettersi a una distribuzione OCI GoldenGate privata nel client di amministrazione, effettuare le operazioni riportate di seguito.
  1. Nella barra di navigazione globale della console di Oracle Cloud, fare clic su Strumenti Developer, quindi su Cloud Shell.

    Nota

    La connessione a Cloud Shell potrebbe richiedere alcuni minuti.
  2. (Opzionale) Eseguire il comando riportato di seguito per generare le chiavi SSH. È possibile saltare questo passo se si desidera generare le chiavi quando si crea il bastion.
    ssh-key gen -t rsa

    Conservare il nome file predefinito e non immettere una passphrase quando richiesto. La chiave privata si trova in ~/ssh/id_rsa e la chiave pubblica si trova in ~/ssh/id_rsa.pub.

  3. Nella pagina dei dettagli della distribuzione, prendere nota delle informazioni sull'IP privato e sulla subnet della distribuzione.
  4. Creare un bastion:
    1. Dal menu di navigazione della console di Oracle Cloud, selezionare Identità e sicurezza, quindi Bastion.
    2. Nella pagina Bastion, fare clic su Crea bastion.
    3. Nella pagina Crea bastion, immettere un nome, quindi selezionare la stessa subnet in cui risiede la distribuzione.
    4. Per Lista di inclusione blocchi CIDR, immettere 0.0.0.0/0.
    5. Fare clic su Crea bastion.
  5. Dopo che il bastion è attivo, creare una sessione:
    1. Nella pagina dei dettagli del bastion, fare clic su Crea sessione.
    2. Nella pagina Crea sessione, per Tipo di sessione, selezionare Sessione di inoltro porta SSH.
    3. Immettere un nome di sessione.
    4. Per connettersi all'host di destinazione utilizzando, selezionare indirizzo IP, quindi immettere l'indirizzo IP privato della distribuzione.
    5. Per Porta immettere 443.
    6. Per Aggiungi chiave SSH, selezionare una delle seguenti opzioni:
      • Incollare la chiave SSH e incollare il contenuto della chiave pubblica ((~/ssh/id_rsa.pub) creata in Cloud Shell nel passo 2 precedente.
      • Generare una coppia di chiavi SSH
    7. Fare clic su Crea sessione.
  6. Dopo che la sessione è attiva, selezionare Visualizza comando SSH dal relativo menu Azione (icona con i puntini di sospensione).
  7. Nella finestra di dialogo Visualizza comando SSH, immettere il percorso della chiave privata (~/ssh/id_rsa) al posto di <private-key> e sostituire <local-port> con la porta in Cloud Shell che inoltra la connessione al bastion.

    Nota

    Cloud Shell non consente l'inoltro delle porte su una porta con privilegi con accesso sudo, pertanto è necessario utilizzare una porta senza privilegi come la 7443. Dopo che il comando viene eseguito una volta in primo piano per aggiungere l'host bastion a known_hosts, è possibile aggiungere una e commerciale (&) alla fine del comando in modo che possa essere eseguito in background la prossima volta.
  8. Copiare il comando ed eseguirlo in Cloud Shell. È possibile ignorare i messaggi bind: Cannot assign requested address.

Esempi di chiamate API REST

Facoltativamente, è possibile memorizzare il nome utente e la password di distribuzione in un file .netrc. Gli esempi seguenti danno per scontato che si stia utilizzando un file .netrc.

Ora è possibile inviare richieste alla distribuzione della replica dei dati utilizzando curl. Ad esempio, il comando seguente restituisce l'integrità della distribuzione:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/services/v2/config/health

Elenca file trail

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

Elenca estrazioni o repliche

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

Recupera dettagli estrazione o replicat

Recupera dettagli estrazione:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/extracts/<extract name>
Recupera dettagli Replicat:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/replicats/<replicat name>

Crea estrazione

In primo luogo, creare un documento JSON contenente la configurazione Extract. Ad esempio, questo file può essere utilizzato per generare un'estrazione denominata EATP utilizzando il trail E1 e acquisendo i dati da 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"}]
}
Quindi, eseguire il comando seguente per creare il processo Extract:
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

Crea un Replicat

In primo luogo, creare un documento JSON contenente la configurazione Replicat. Ad esempio, questo file può essere utilizzato per generare un Replicat denominato RADW utilizzando il trail E1 e replicando i dati da SRC_OCIGGLL.* in 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"
}
Quindi, eseguire il comando seguente per creare il processo 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

Avvia un Extract o Replicat

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>"}'

Recupera lo stato e le statistiche per una determinata estrazione

Recupera stato estrazione:
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"}'
Recupera statistiche estrazione:
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"}'

Recupera lo stato e le statistiche per un determinato Replicat

Recupera stato 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":"STATUS"}'
Recupera statistiche 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"}'

Ulteriori informazioni

Ulteriori informazioni sulle API REST di Oracle GoldenGate: