Usando a API REST

Use a API REST do OCI GoldenGate para se comunicar com suas implantações de replicação de dados. Descubra como usar a API REST em várias configurações, chamando comandos usando curl e Cloud Shell.

Tópicos Relacionados

Estabelecer conexão com uma implantação pública

Para estabelecer conexão com uma implantação do OCI GoldenGate com um ponto final público no Cloud Shell, você só precisa do URL de implantação. Você pode encontrar o URL de implantação (URL da Console) na página de detalhes da implantação.

Estabelecer conexão com uma implantação privada

Se a implantação tiver um ponto final privado, você poderá conectar o Cloud Shell a uma rede com acesso à implantação usando a Rede do Cloud Shell ou criar um bastion, uma sessão bastion e um túnel SSH.

Por padrão, o Cloud Shell limita o acesso da rede aos recursos internos do OCI na região home da tenancy, a menos que você tenha ativado a Rede Pública gerenciada pelo Cloud Shell. Seu administrador deve configurar uma política de Identidade para ativar a Rede Pública do Cloud Shell. Para obter mais informações, consulte Rede do Cloud Shell.

Para estabelecer conexão com uma implantação privada do OCI GoldenGate no Admin Client:
  1. Na barra de navegação global da console do Oracle Cloud, clique em Ferramentas do desenvolvedor e, em seguida, em Cloud Shell.

    Observação:

    Se essa for a primeira vez que você se conecta ao Cloud Shell, pode levar alguns minutos para se conectar.
  2. (Opcional) Execute o comando a seguir para gerar chaves SSH. Você poderá ignorar esta etapa se quiser gerar as chaves quando criar o bastion.
    ssh-key gen -t rsa

    Mantenha o nome de arquivo padrão e não digite uma frase-senha quando solicitado. A chave privada está localizada em ~/ssh/id_rsa e a chave pública está localizada em ~/ssh/id_rsa.pub.

  3. Na página de detalhes da implantação, anote as informações de IP privado e sub-rede da implantação.
  4. Criar um bastion:
    1. No menu de navegação da console do Oracle Cloud, selecione Identidade e Segurança e, em seguida, Bastion.
    2. Na página Bastion, clique em Criar bastion.
    3. Na página Criar bastion, digite um nome e selecione a mesma sub-rede na qual a implantação reside.
    4. Em Lista de permissões do bloco CIDR, digite 0.0.0.0/0.
    5. Clique em Criar bastion.
  5. Depois que o bastion estiver Ativo, crie uma sessão:
    1. Na página de detalhes do bastion, clique em Criar sessão.
    2. Na página Criar sessão, para Tipo de sessão, selecione Sessão de encaminhamento de porta SSH.
    3. Informe um Nome da sessão.
    4. Para Estabelecer conexão com o host de destino usando, selecione Endereço IP e, em seguida, informe o endereço IP privado da implantação.
    5. Para Porta, digite 443.
    6. Para Adicionar chave SSH, selecione uma das seguintes opções:
      • Cole a chave SSH e cole o conteúdo da chave pública ((~/ssh/id_rsa.pub) criada no Cloud Shell na Etapa 2 acima.
      • Gere um par de chaves SSH
    7. Clique em Criar sessão.
  6. Depois que a sessão estiver Ativa, selecione Exibir comando SSH no menu Ação (ícone de reticência).
  7. Na caixa de diálogo Exibir comando SSH, informe o caminho para a chave privada (~/ssh/id_rsa) no lugar de <private-key> e substitua <local-port> pela porta no Cloud Shell que encaminhará a conexão ao bastion.

    Observação:

    O Cloud Shell não permite o encaminhamento de porta em uma porta privilegiada com acesso sudo; portanto, você deve usar uma porta não privilegiada como 7443. Depois que o comando for executado uma vez no primeiro plano para adicionar o Bastion host a known_hosts, você poderá anexar um e comercial (&) ao final do comando para que ele possa ser executado em fundo na próxima vez.
  8. Copie o comando e execute-o no Cloud Shell. Você pode ignorar as mensagens bind: Cannot assign requested address.

Exemplo de chamadas de API REST

Opcionalmente, você pode armazenar seu nome de usuário e senha da implantação em um arquivo .netrc. Os exemplos a seguir pressupõem que você esteja usando um arquivo .netrc.

Agora você pode enviar solicitações à sua implantação de replicação de dados usando curl. Por exemplo, o seguinte comando retorna a integridade da implantação:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/services/v2/config/health

Listar arquivos de Trilha

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

Listar Extrações ou Replicações

Extrações da Lista:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/extracts
Listar Replicats:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/replicats

Recuperar detalhes de Extração ou Replicação

Recuperar detalhes da Extração:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/extracts/<extract name>
Recuperar detalhes do Replicat:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/replicats/<replicat name>

Criar um Processo de Extract

Primeiro, crie um documento JSON contendo a configuração Extract. Por exemplo, esse arquivo pode ser usado para gerar um Extract chamado EATP usando a trilha E1 e capturando dados 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"}]
}
Em seguida, execute o seguinte comando para criar o 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

Criar um processo de Replicat

Primeiro, crie um documento JSON contendo a configuração Replicat. Por exemplo, esse arquivo pode ser usado para gerar um Replicat chamado RADW usando a trilha E1 e replicando dados de SRC_OCIGGLL.* para 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"
}
Em seguida, execute o seguinte comando para criar o 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

Iniciar um Extract ou 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>"}'

Obter o status e as estatísticas de um determinado Extract

Obter status de Extração:
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"}'
Obter estatísticas de 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"}'

Obter o status e as estatísticas de um determinado Replicat

Obter status do 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"}'
Obter estatísticas do 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"}'