Uso de la API de REST

Utilice la API de REST de OCI GoldenGate para comunicarse con los despliegues de replicación de datos. Descubra cómo utilizar la API de REST en varias configuraciones, invocando comandos mediante curl y Cloud Shell.

Conectarse a un despliegue público

Para conectarse a un despliegue de OCI GoldenGate con un punto final público en Cloud Shell, solo necesita la URL de despliegue. Puede encontrar la URL de despliegue (URL de consola) en la página de detalles del despliegue.

Conectarse a un despliegue privado

Si el despliegue tiene un punto final privado, puede conectar Cloud Shell a una red con acceso al despliegue mediante las redes de Cloud Shell o crear un bastión, una sesión de bastión y un túnel SSH.

Por defecto, Cloud Shell limita el acceso de red a los recursos internos de OCI en la región principal de su arrendamiento a menos que haya activado la red pública gestionada de Cloud Shell. El administrador debe configurar una política de identidad para activar la red pública de Cloud Shell. Para obtener más información, consulte Redes de Cloud Shell.

Para conectarse a un despliegue de OCI GoldenGate privado en el cliente de administración:
  1. En la barra de navegación global de la consola de Oracle Cloud, haga clic en Herramientas para desarrolladores y, a continuación, en Cloud Shell.

    Note:

    Si esta es la primera vez que se conecta a Cloud Shell, la conexión puede tardar unos minutos.
  2. (Opcional) Ejecute el siguiente comando para generar claves SSH. Puede omitir este paso si desea generar las claves al crear el bastión.
    ssh-key gen -t rsa

    Mantenga el nombre de archivo por defecto y no introduzca una frase de contraseña cuando se le solicite. La clave privada está en ~/ssh/id_rsa y la clave pública está en ~/ssh/id_rsa.pub.

  3. En la página de detalles del despliegue, tome nota de la información de IP privada y subred del despliegue.
  4. Crear un bastión:
    1. En el menú de navegación de la consola de Oracle Cloud, seleccione Identidad y seguridad y, a continuación, Bastion.
    2. En la página Bastion, haga clic en Crear bastión.
    3. En la página Create bastion, introduzca un nombre y, a continuación, seleccione la misma subred en la que reside el despliegue.
    4. En Lista de permitidos del bloque de CIDR, introduzca 0.0.0.0/0.
    5. Haga clic en Create bastion.
  5. Una vez que el bastión esté activo, cree una sesión:
    1. En la página de detalles del bastión, haga clic en Crear sesión.
    2. En la página Crear sesión, en Tipo de sesión, seleccione Sesión de reenvío de puerto SSH.
    3. Introduzca un nombre de sesión.
    4. En Conectarse al host de destino mediante, seleccione Dirección IP y, a continuación, introduzca la dirección IP privada del despliegue.
    5. En Puerto, introduzca 443.
    6. Para Agregar clave SSH, seleccione una de las siguientes opciones:
      • Pegue la clave SSH y pegue el contenido de la clave pública ((~/ssh/id_rsa.pub) creada en Cloud Shell en el paso 2 anterior.
      • Genere un par de claves SSH
    7. Click Create session.
  6. Una vez que la sesión esté activa, seleccione Ver comando SSH en el menú Acción (icono de puntos suspensivos).
  7. En el cuadro de diálogo Ver comando SSH, introduzca la ruta de acceso a la clave privada (~/ssh/id_rsa) en lugar de <private-key> y sustituya <local-port> por el puerto de Cloud Shell que reenviará la conexión al bastión.

    Note:

    Cloud Shell no permite el reenvío del puerto en un puerto con privilegios con acceso sudo, por lo que debe utilizar un puerto sin privilegios como 7443. Después de que el comando se haya ejecutado una vez en primer plano para agregar el host bastión a known_hosts, puede agregar un ampersand (&) al final del comando para que se pueda ejecutar en segundo plano la siguiente vez.
  8. Copie el comando y, a continuación, ejecútelo en Cloud Shell. Puede ignorar los mensajes bind: Cannot assign requested address.

Ejemplo de llamadas de la API de REST

Opcionalmente, puede almacenar su nombre de usuario y contraseña de despliegue en un archivo .netrc. Los siguientes ejemplos suponen que está utilizando un archivo .netrc.

Ahora puede enviar solicitudes al despliegue de replicación de datos mediante curl. Por ejemplo, el siguiente comando devuelve el estado del despliegue:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/services/v2/config/health

Mostrar archivos de pista

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

Enumerar extracciones o réplicas

Extractos de lista:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/extracts
Enumerar réplicas:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/replicats

Recuperar detalles de Extract o Replicat

Recuperar detalles de extracción:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/extracts/<extract name>
Recuperar detalles de Replicat:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/replicats/<replicat name>

Creación de un Extract

En primer lugar, cree un documento JSON que contenga la configuración de Extract. Por ejemplo, este archivo se puede utilizar para generar un Extract denominado EATP mediante la pista E1 y la captura de datos 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"}]
}
A continuación, ejecute el siguiente comando para crear el proceso de extracción:
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

Creación de un Replicat

En primer lugar, cree un documento JSON que contenga la configuración de Replicat. Por ejemplo, este archivo se puede utilizar para generar un Replicat denominado RADW mediante la pista E1 y replicando datos de SRC_OCIGGLL.* en 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"
}
A continuación, ejecute el siguiente comando para crear el proceso 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

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

Obtener el estado y las estadísticas de un Extract determinado

Obtener estado de extracción:
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"}'
Obtener estadísticas de extracción:
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"}'

Obtener el estado y las estadísticas de un Replicat determinado

Obtener estado de 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"}'
Obtener estadísticas de 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"}'

Más información

Obtenga más información sobre las API de REST de Oracle GoldenGate: