DMP 파일 가져오기

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

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

가져오기를 수행하는 절차는 다음과 같은 태스크로 구성됩니다.

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

  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 데이터베이스가 있는 프로젝트 및 리전에 Standard Storage 또는 Regional Storage 버킷을 만듭니다.

  2. 생성한 스토리지 버킷에 DMP 파일을 업로드합니다.

클라이언트 호스트 준비

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

  1. 올바른 연결 설정과 pg_restore 도구가 설치된 Compute Engine VM을 만들려면 인스턴스에 psql 클라이언트 연결의 안내를 따르세요. 이 안내를 따를 때, 가져올 DMP 파일을 저장할 수 있도록 Compute Engine VM에 충분한 로컬 스토리지를 할당해야 합니다.

  2. Cloud Storage 버킷의 DMP 파일에 명령줄로 액세스할 수 있도록 gcloud CLI를 설치합니다.

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을 삭제할 수 있습니다.