덤프 파일에서 가져오기

데이터를 가져오기 전에 다음 작업을 완료해야 합니다.

  1. 데이터를 가져올 데이터베이스 클러스터를 만듭니다.

  2. 덤프 파일을 스토리지 버킷에 업로드합니다. 자세한 내용은 스토리지 버킷에 객체 업로드를 참고하세요.

  3. 데이터베이스 서비스 가져오기 서비스 계정에 덤프 파일에 대한 읽기 액세스 권한을 부여합니다. 스토리지 액세스 권한 부여 및 획득을 참고하세요. 예를 들어 가져오기 서비스 계정에 project-bucket-object-viewer 역할을 부여할 수 있습니다.

    데이터베이스 클러스터가 생성되면 데이터베이스 서비스 시스템에서 이 서비스 계정을 자동으로 생성합니다. 데이터베이스 클러스터 상태에는 가져오기 서비스 계정의 이름과 네임스페이스가 모두 포함됩니다.

    가져오기 서비스 계정의 이름과 네임스페이스를 가져오려면 다음 명령어를 실행합니다.

    kubectl --kubeconfig=MGMT_API_KUBECONFIG \
      get dbcluster.postgresql -n PROJECT_ID DATABASE_CLUSTER_NAME \
      -o jsonpath='{.status.serviceAccounts.import}'
    

    이 명령어는 이름과 네임스페이스 세부정보가 포함된 JSON 객체를 반환합니다. {"name":"postgresql-import-DATABASE_CLUSTER_NAME","namespace":"SERVICE_ACCOUNT_NAMESPACE"}

경고: 데이터베이스 덤프 파일은 pg_restore과 호환되는 보관 파일 형식으로 pg_dump를 사용하여 만들어야 합니다. 일반 SQL 형식 덤프 (형식 옵션을 지정하지 않은 경우 기본값)는 지원되지 않습니다.

GDC 콘솔 또는 Distributed Cloud CLI를 사용하여 덤프 파일을 데이터베이스 클러스터로 가져올 수 있습니다.

콘솔

  1. GDC 콘솔에서 데이터베이스 클러스터 개요 페이지를 열어 가져오려는 데이터베이스가 포함된 클러스터를 확인합니다.

  2. 가져오기를 클릭합니다. 계정으로 데이터 가져오기 패널이 열립니다.

  3. 계정으로 데이터 가져오기 패널의 소스 섹션에서 이전에 업로드한 SQL 데이터 덤프 파일의 위치를 지정합니다.

  4. 대상 필드에 가져오기에 사용할 기존 대상 데이터베이스를 지정합니다.

  5. 가져오기를 클릭합니다. GDC 콘솔의 배너에 가져오기 상태가 표시됩니다.

gdcloud CLI

  1. Distributed Cloud CLI를 사용하기 전에 설치하고 초기화합니다. 그런 다음 조직으로 인증합니다.

  2. 다음 명령어를 실행하여 덤프 파일을 데이터베이스로 가져옵니다.

    gdcloud database import sql DATABASE_CLUSTER BUCKET_NAME/sample.dmp \
        --project=PROJECT_NAME
    

    다음을 바꿉니다.

    • DATABASE_CLUSTER을 데이터를 가져올 데이터베이스 클러스터의 이름으로 바꿉니다.
    • BUCKET_NAME/SAMPLE.dmp을 덤프 파일의 위치로 바꿉니다.
    • PROJECT_NAME을 데이터베이스 클러스터가 있는 프로젝트의 이름으로 바꿉니다.
  3. 다음 명령어를 실행하여 가져오기 상태를 확인합니다.

    gdcloud database operations list --project=PROJECT_NAME --cluster=DATABASE_CLUSTER
    

API

apiVersion: postgresql.dbadmin.gdc.goog/v1
kind: Import
metadata:
  name: IMPORT_NAME
  namespace: USER_PROJECT
spec:
  dbclusterRef: DBCLUSTER_NAME
  dumpStorage:
    s3Options:
      bucket: BUCKET_NAME
      key: DUMP_FILE_PATH
    type: S3

다음 변수를 바꿉니다.

  • IMPORT_NAME: 가져오기 작업의 이름입니다.
  • USER_PROJECT: 가져올 데이터베이스 클러스터가 생성된 사용자 프로젝트의 이름입니다.
  • DBCLUSTER_NAME: 데이터베이스 클러스터의 이름입니다.
  • BUCKET_NAME: 가져오기 파일을 저장하는 객체 스토리지 버킷의 이름입니다.
  • DUMP_FILE_PATH: 저장된 파일의 객체 스토리지 경로 이름입니다.