データをインポートする前に、次のことを行う必要があります。
データをインポートするデータベース クラスタを作成します。
ダンプファイルをストレージ バケットにアップロードします。手順については、ストレージ バケットにオブジェクトをアップロードするをご覧ください。
Database Service のインポート サービス アカウントに、ダンプファイルへの読み取りアクセス権を付与します。ストレージ アクセス権を付与して取得するをご覧ください。たとえば、インポート サービス アカウントに
project-bucket-object-viewerロールを付与できます。データベース サービス システムは、データベース クラスタの作成時にこのサービス アカウントを自動的に作成します。データベース クラスタのステータスには、インポート サービス アカウントの名前と 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 を使用します。
コンソール
GDC コンソールで [データベース クラスタの概要] ページを開き、インポートするデータベースを含むクラスタを確認します。
[インポート] をクリックすると、[アカウントにデータをインポート] パネルが開きます。
[アカウントにデータをインポートする] パネルの [ソース] セクションで、以前にアップロードした SQL データダンプ ファイルの場所を指定します。
[宛先] フィールドで、インポート先の既存のデータベースを指定します。
[インポート] をクリックすると、GDC コンソールのバナーにインポートのステータスが表示されます。
gdcloud
Distributed Cloud CLI を使用する前に、インストールして初期化します。次に、組織で認証します。
次のコマンドを実行して、ダンプファイルをデータベースにインポートします。
gdcloud database import sql DATABASE_CLUSTER BUCKET_NAME/sample.dmp \ --project=PROJECT_NAME次のように置き換えます。
- DATABASE_CLUSTER は、データをインポートするデータベース クラスタの名前に置き換えます。
- BUCKET_NAME/SAMPLE.dmp は、ダンプファイルの場所に置き換えます。
- PROJECT_NAME は、データベース クラスタが存在するプロジェクトの名前に置き換えます。
次のコマンドを実行して、インポートのステータスを確認します。
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: 保存されたファイルへのオブジェクト ストレージ パスの名前。