REST API 사용

OCI GoldenGate REST API를 사용하여 데이터 복제 배포와 통신할 수 있습니다. curl 및 Cloud Shell을 사용하여 명령을 호출하여 다양한 구성에서 REST API를 사용하는 방법을 알아봅니다.

공용 배치에 접속

Cloud Shell에서 퍼블릭 끝점을 사용하여 OCI GoldenGate 배치에 접속하려면 배치 URL만 필요합니다. 배치의 세부정보 페이지에서 배치 URL(콘솔 URL)을 찾을 수 있습니다.

프라이빗 배치에 접속

배치에 프라이빗 끝점이 있는 경우 Cloud Shell 네트워킹을 사용하여 배치에 액세스할 수 있는 네트워크에 Cloud Shell을 접속하거나 배스천, 배스천 세션 및 SSH 터널을 생성할 수 있습니다.

기본적으로 Cloud Shell은 Cloud Shell 관리 공용 네트워크를 사용으로 설정하지 않은 경우 테넌시 홈 영역의 OCI 내부 리소스에 대한 네트워크 액세스를 제한합니다. 관리자는 Cloud Shell 퍼블릭 네트워크를 사용으로 설정하도록 ID 정책을 구성해야 합니다. 자세한 내용은 Cloud Shell 네트워킹을 참조하십시오.

관리 클라이언트에서 프라이빗 OCI GoldenGate 배치에 접속하려면 다음과 같이 하십시오.
  1. Oracle Cloud 콘솔 전역 탐색 표시줄에서 개발자 툴, Cloud Shell을 차례로 누릅니다.

    주:

    Cloud Shell에 처음 접속하는 경우 몇 분 정도 걸릴 수 있습니다.
  2. (선택사항) 다음 명령을 실행하여 SSH 키를 생성합니다. 배스천을 생성할 때 키를 생성하려면 이 단계를 건너뛸 수 있습니다.
    ssh-key gen -t rsa

    기본 파일 이름을 유지하고 메시지가 표시되면 문장암호를 입력하지 마십시오. 개인 키는 ~/ssh/id_rsa에 있고 공개 키는 ~/ssh/id_rsa.pub에 있습니다.

  3. 배치 세부정보 페이지에서 배치의 프라이빗 IP 및 서브넷 정보를 기록해 둡니다.
  4. 배스천 생성:
    1. Oracle Cloud 콘솔 탐색 메뉴에서 ID 및 보안, 배스천을 차례로 선택합니다.
    2. 배스천 페이지에서 배스천 생성을 누릅니다.
    3. [배스천 생성] 페이지에서 이름을 입력한 후 배치가 상주하는 것과 동일한 서브넷을 선택합니다.
    4. CIDR 블록 허용 목록에 대해 0.0.0.0/0을 입력합니다.
    5. 배스천 생성을 누릅니다.
  5. 배스천이 활성 상태이면 세션을 생성합니다.
    1. 배스천 세부정보 페이지에서 세션 생성을 누릅니다.
    2. 세션 생성 페이지에서 세션 유형에 대해 SSH 포트 전달 세션을 선택합니다.
    3. 세션 이름을 입력합니다.
    4. 사용하여 대상 호스트에 접속의 경우 IP 주소를 선택한 다음 배치의 프라이빗 IP 주소를 입력합니다.
    5. [포트]에 443을 입력합니다.
    6. Add SSH key(SSH 키 추가)에 대해 다음 옵션 중 하나를 선택합니다.
      • SSH 키를 붙여넣고, 위의 2단계에서 Cloud Shell에 생성된 퍼블릭 키((~/ssh/id_rsa.pub)의 콘텐츠를 붙여넣습니다.
      • SSH 키 쌍 생성
    7. 세션 생성을 누릅니다.
  6. 세션이 활성 상태인 후 작업 메뉴(줄임표 아이콘)에서 SSH 명령 보기를 선택합니다.
  7. View SSH command 대화 상자에서 <private-key> 대신 개인 키에 대한 경로(~/ssh/id_rsa)를 입력하고 <local-port>를 배스천으로 연결을 전달할 Cloud Shell의 포트로 바꿉니다.

    주:

    Cloud Shell은 sudo 액세스 권한이 있는 포트에서 포트 전달을 허용하지 않으므로, 7443과 같이 권한이 없는 포트를 사용해야 합니다. 명령이 포그라운드에서 한 번 실행되어 Bastion 호스트를 known_hosts에 추가한 후 다음에 백그라운드에서 실행할 수 있도록 명령 끝에 앰퍼샌드(&)를 추가할 수 있습니다.
  8. 명령을 복사한 다음 Cloud Shell에서 실행합니다. bind: Cannot assign requested address 메시지는 무시해도 됩니다.

REST API 호출 예

선택적으로 배치 사용자 이름과 암호를 .netrc 파일에 저장할 수 있습니다. 다음 예에서는 사용자가 .netrc 파일을 사용하고 있다고 가정합니다.

이제 curl을 사용하여 데이터 복제 배치에 요청을 전송할 수 있습니다. 예를 들어, 다음 명령은 배치 건전성을 반환합니다.
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/services/v2/config/health

추적 파일 나열

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

추출 또는 복제 나열

추출 나열:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/extracts
복제본 나열:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/replicats

추출 또는 복제 세부정보 검색

추출 세부정보 검색:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/extracts/<extract name>
Replicat 세부정보 검색:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/replicats/<replicat name>

추출 생성

먼저 Extract 구성을 포함하는 JSON 문서를 생성합니다. 예를 들어, 이 파일은 E1 추적을 사용하여 EATP라는 Extract를 생성하고 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"}]
}
그런 다음 다음 다음 명령을 실행하여 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

복제본 생성

먼저 Replicat 구성을 포함하는 JSON 문서를 생성합니다. 예를 들어, 이 파일은 E1 추적을 사용하여 RADW라는 Replicat를 생성하고 SRC_OCIGGLL.*의 데이터를 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"
}
그런 다음 다음 다음 명령을 실행하여 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

추출 또는 복제 시작

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

지정된 추출에 대한 상태 및 통계를 가져옵니다.

추출 상태 가져오기:
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"}'
추출 통계 가져오기:
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"}'

지정된 Replicat에 대한 상태 및 통계를 가져옵니다.

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

자세히 알아보기

Oracle GoldenGate REST API에 대해 자세히 알아보기: