DMP 파일 가져오기

이 페이지에서는 custom 또는 directory 형식을 사용하여 pg_dump 도구로 만든 DMP 파일을 AlloyDB 데이터베이스로 가져오는 방법을 설명합니다.

plain 형식을 사용하여 pg_dump 도구로 만든 파일을 가져오려면 SQL 파일 가져오기를 참고하세요.

가져오기를 실행하는 절차에는 다음 작업이 포함됩니다.

  1. Cloud Storage 버킷에 DMP 파일을 업로드합니다.

  2. 가져오기 작업을 실행할 클라이언트 호스트를 준비합니다.

  3. 데이터베이스로 DMP 파일을 가져옵니다.

  4. 절차를 실행하기 위해 만든 리소스를 삭제합니다.

시작하기 전에

  • 사용 중인 Google Cloud 프로젝트에 소유자 (roles/owner) 또는 편집자(roles/editor) 기본 IAM 역할이 있어야 하며, 또는 다음 사전 정의된 IAM 역할이 있어야 합니다.
    • AlloyDB 관리자 (roles/alloydb.admin) 또는 AlloyDB 뷰어(roles/alloydb.viewer)
    • 스토리지 관리자(roles/storage.admin)
    • Compute 인스턴스 관리자 (v1) (roles/compute.instanceAdmin.v1)

DMP 파일 업로드

DMP 파일을 업로드하려면 Cloud Storage 버킷을 만든 다음 해당 버킷에 DMP 파일을 업로드하면 됩니다.

  1. AlloyDB 데이터베이스가 있는 프로젝트 및 리전에 표준 스토리지, 리전 스토리지 버킷을 만듭니다.

  2. 만든 스토리지 버킷에 DMP 파일을 업로드합니다.

클라이언트 호스트 준비

가져오기 작업을 실행할 클라이언트 호스트를 준비하려면 데이터베이스가 있는 AlloyDB 기본 인스턴스에 연결할 수 있는 Compute Engine VM을 만들고 해당 VM에 pg_restore 도구와 Google Cloud CLI를 설치합니다.

  1. psql 클라이언트를 인스턴스에 연결 안내에 따라 적절한 연결과 pg_restore 도구가 설치된 Compute Engine VM을 만듭니다. 이 안내를 따를 때는 가져오는 DMP 파일을 수용할 수 있을 만큼 충분한 로컬 스토리지를 Compute Engine VM에 할당해야 합니다.

  2. gcloud CLI를 설치하여 Cloud Storage 버킷의 DMP 파일에 대한 명령줄 액세스를 제공합니다.

DMP 파일 가져오기

DMP 파일을 가져오려면 데이터베이스가 있는 AlloyDB 기본 인스턴스의 IP 주소를 가져온 다음 pg_restore 도구를 사용하여 파일을 데이터베이스로 가져옵니다.

  1. 세부정보를 확인하여 데이터베이스가 있는 AlloyDB 기본 인스턴스의 IP 주소를 가져옵니다.
  2. Compute Engine VM에 SSH를 통해 연결합니다.

    콘솔

    1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

      VM 인스턴스로 이동

    2. 가상 머신 인스턴스 목록에서 만든 인스턴스 행에서 SSH를 클릭합니다.

      인스턴스 이름 옆에 있는 SSH 버튼

    gcloud

    gcloud compute ssh 명령어를 사용하여 만든 인스턴스에 연결합니다.

    gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    다음을 바꿉니다.

    • PROJECT_ID: 인스턴스가 포함된 프로젝트의 ID입니다.
    • ZONE: 인스턴스가 있는 영역의 이름입니다.
    • VM_NAME: 인스턴스 이름입니다.
  3. DMP 파일을 클라이언트 호스트의 로컬 파일 시스템에 복사합니다.
    gcloud storage cp gs://BUCKET_NAME/DMP_FILE_NAME .
  4. 다음 명령어를 실행하여 모든 EXTENSION 문을 주석 처리하는 TOC 파일을 만듭니다.
    pg_restore \
    -l DMP_FILE_NAME | sed -E 's/(.* EXTENSION )/; \1/g' > TOC_FILE_NAME
    • DMP_FILE_NAME: 로컬 파일 시스템의 DMP 파일입니다.
    • TOC_FILE_NAME: 로컬 파일 시스템에 만들 TOC 파일의 파일 이름을 제공합니다.
  5. DMP 파일을 가져옵니다.
    pg_restore -h IP_ADDRESS -U postgres \
      -d DB_NAME \
      -L TOC_FILE_NAME \
      DMP_FILE_NAME
    
    • IP_ADDRESS: 기본 인스턴스의 IP 주소
    • DB_NAME: 가져올 데이터베이스의 이름입니다.
    • TOC_FILE_NAME: 이전 단계에서 만든 TOC 파일입니다.
    • DMP_FILE_NAME: DMP 파일입니다.

    pg_restore 명령어는 데이터 가져오기 작업을 제어하는 몇 가지 추가 옵션을 제공합니다.

리소스 삭제

DMP 파일을 가져온 후 Cloud Storage 버킷을 삭제하고 가져오기 절차 중에 사용한 Compute Engine VM을 삭제할 수 있습니다.