ダンプファイルからインポートする

データをインポートする前に、次の操作を行う必要があります。

  1. データをインポートする データベース クラスタを作成します。

  2. ダンプファイルをストレージ バケットにアップロードします。手順については、ストレージ バケットにオブジェクトをアップロードするをご覧ください。

  3. Database Service インポート サービス アカウントにダンプ ファイルの読み取りアクセス権を付与します。ストレージへのアクセス権の付与と取得をご覧ください。たとえば、インポート サービス アカウントに project-bucket-object-viewer ロールを付与できます。

    このサービス アカウントは、データベース クラスタの作成時に Database Service システムによって自動的に作成されます。データベース クラスタのステータスには、インポート サービス アカウントの名前と Namespace の両方が含まれます。

    インポート サービス アカウントの名前と Namespace を取得するには、次のコマンドを実行します。

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

    このコマンドは、名前と Namespace の詳細を含む 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: 保存されたファイルへのオブジェクト ストレージ パスの名前。