REST API 사용

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

퍼블릭 배치에 접속

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

프라이빗 배치에 접속

배치에 프라이빗 끝점이 있는 경우 Cloud Shell Networking을 사용하여 배치에 액세스할 수 있는 네트워크에 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. 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)를 사용해야 합니다. 명령이 포그라운드에서 한 번 실행되어 배스천 호스트를 known_hosts에 추가한 후 다음에 백그라운드에서 실행할 수 있도록 명령 끝에 앰퍼샌드(&)를 추가할 수 있습니다.

  8. 명령을 복사한 다음 Cloud Shell에서 실행합니다. bind: Cannot assign requested address 메시지는 무시할 수 있습니다.

REST API 통화 예

선택적으로 배치 사용자 이름과 비밀번호를 [.netrc](netrc.html) 파일에 저장할 수 있습니다. 다음 예에서는 .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 생성

먼저 Replicat 구성을 포함하는 JSON 문서를 생성합니다. 예를 들어, 이 파일은 E1 트레일을 사용하여 RADW라는 Replicat를 생성하고 SRC_OCIGGLL.* into 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>"}'

지정된 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"}'

추출 통계 가져오기:

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에 대해 자세히 알아보기: