Halaman ini menjelaskan cara mengekspor data dari cluster AlloyDB untuk PostgreSQL ke file dump SQL.
Untuk informasi tentang cara memigrasikan seluruh database dari server database yang didukung ke instance AlloyDB baru, lihat Memigrasikan database ke AlloyDB menggunakan Database Migration Service. Jika Anda mengekspor karena ingin membuat instance baru dari file yang diekspor, pertimbangkan untuk memulihkan cluster dari cadangan yang disimpan.
Anda dapat membatalkan ekspor data dari cluster AlloyDB untuk PostgreSQL. Untuk informasi selengkapnya, lihat Membatalkan ekspor data.
Sebelum memulai
- Sebelum Anda memulai operasi ekspor, perlu diingat bahwa operasi ekspor menggunakan resource database, tetapi tidak mengganggu operasi database standar, kecuali jika instance tersebut kurang tersedia.
- Biaya transfer data antar-region berlaku jika bucket target berada di region yang berbeda dengan cluster sumber. Untuk informasi selengkapnya, lihat Harga AlloyDB untuk PostgreSQL.
- Kompresi diaktifkan jika nama objek diakhiri dengan ekstensi
.gz
. Objek tersebut kemudian diekspor dalam format.gz
ke Cloud Storage. - Beberapa operasi ekspor dapat berjalan secara paralel.
Peran dan izin yang diperlukan untuk mengekspor dari AlloyDB
Untuk mengekspor data dari AlloyDB ke Cloud Storage, pengguna yang memulai ekspor harus memiliki salah satu peran Identity and Access Management (IAM) berikut:
- Peran
Cloud AlloyDB Admin
(
roles/alloydb.admin
) - Peran khusus, termasuk
izin berikut:
alloydb.clusters.get
alloydb.clusters.export
Selain itu, akun layanan untuk cluster AlloyDB harus memiliki salah satu peran berikut:
- Peran IAM
storage.objectAdmin
- Peran khusus, termasuk izin
storage.objects.create
Untuk mendapatkan bantuan terkait peran IAM, lihat Identity and Access Management.
Mengekspor data AlloyDB ke file dump SQL
Saat Anda menggunakan AlloyDB untuk melakukan ekspor, baik dari
gcloud CLI atau API, Anda menggunakan
pg_dump
utilitas, dengan opsi yang diperlukan untuk memastikan bahwa file ekspor yang dihasilkan
valid untuk diimpor kembali ke AlloyDB.
Untuk mengekspor data dari database di cluster AlloyDB ke file dump SQL di bucket Cloud Storage, ikuti langkah-langkah berikut:
gcloud
- Buat bucket Cloud Storage.
Gunakan format yang disediakan untuk mengidentifikasi akun layanan untuk project tempat Anda mengekspor. Format untuk akun layanan adalah sebagai berikut:
service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com
Berikan izin akun layanan ke bucket Cloud Storage untuk operasi ekspor.
Gunakan
gcloud storage buckets add-iam-policy-binding
untuk memberikanstorage.objectAdmin
peran IAM ke akun layanan. Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.Ekspor database ke bucket Cloud Storage Anda. Berikut ini daftar opsi untuk mengekspor data dalam format dump SQL:
--async
(Opsional): segera kembali, tanpa menunggu operasi yang sedang berlangsung selesai.--tables
(Opsional): tabel yang akan diekspor.--schema-only
(Opsional): jika ditetapkan, hanya ekspor skema.--clean-target-objects
(Opsional): jika ditetapkan, perintah output keDROP
semua objek database yang di-dump sebelum menampilkan perintah untuk membuatnya.--if-exist-target-objects
(Opsional): jika ditetapkan, gunakan perintahDROP ... IF EXISTS
untuk memeriksa keberadaan objek sebelum meletakkannya dalam mode--clean-target-objects
.
Untuk menggunakan fitur ini, sertakan opsi ini dalam perintah
gcloud
. Jika Anda hanya ingin mengekspor definisi objek (skema) dan tidak ada data, gunakan flag–-schema-only
. Untuk menentukan tabel yang akan diekspor, gunakan flag--tables=TABLE_NAMES
. Anda dapat menentukan nilai nama tabel atau pola karakter pengganti yang dipisahkan koma untuk menentukan beberapa tabel.Jika tidak, hapus parameter ini dari perintah berikut:
gcloud alloydb clusters export CLUSTER_NAME --region=REGION --database=DATABASE_NAME --gcs-uri="gs://BUCKET_NAME/OBJECT_NAME" --tables=TABLE_NAMES --schema-only --clean-target-objects --if-exist-target-objects --sql
Perintah
alloydb clusters export
tidak berisi pemicu atau prosedur tersimpan, tetapi berisi tampilan. Untuk mengekspor pemicu atau prosedur tersimpan, gunakan utilitaspg_dump
.Untuk informasi selengkapnya tentang penggunaan perintah
alloydb clusters export
, lihat halaman referensi perintahalloydb clusters export
.Jika Anda tidak perlu mempertahankan peran IAM yang telah ditetapkan sebelumnya, cabut peran tersebut sekarang.
REST v1
Buat bucket untuk ekspor:
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
Gunakan format akun layanan untuk mengidentifikasi akun layanan untuk project tempat Anda mengekspor.
Format untuk akun layanan adalah sebagai berikut:
service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com
Berikan izin akun layanan ke bucket Cloud Storage untuk operasi ekspor.
Gunakan
gcloud storage buckets add-iam-policy-binding
untuk memberikanstorage.objectAdmin
peran IAM ke akun layanan. Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.Ekspor database Anda.
Gunakan metode HTTP dan URL berikut:
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID:export
Sebelum menggunakan data permintaan apa pun, buat penggantian berikut:
- PROJECT_ID: project ID.
- REGION: region tempat cluster AlloyDB di-deploy.
- CLUSTER_ID: ID cluster.
- BUCKET_NAME: nama bucket Cloud Storage.
- PATH_TO_SQL_FILE: jalur ke file dump SQL.
- DATABASE_NAME: nama database di dalam instance AlloyDB.
- TABLES: tabel yang akan diekspor.
- SCHEMA_ONLY: jika
true
, hanya ekspor skema. - CLEAN_TARGET_OBJECTS: jika
true
, perintah output untukDROP
semua objek database yang di-dump sebelum menampilkan perintah untuk membuatnya. - IF_EXIST_TARGET_OBJECTS: Jika
true
, gunakan perintahDROP ... IF EXISTS
untuk memeriksa keberadaan objek sebelum meletakkannya dalam modeclean_target_objects
.
Untuk menggunakan fitur ini, tetapkan nilai parameter ini ke
true
. Jika tidak, tetapkan nilainya kefalse
. Jika Anda hanya ingin mengekspor definisi objek (skema) dan tidak ada data, gunakan flagschema_only
. Untuk menentukan tabel yang akan diekspor, gunakan kolomtables
. Anda dapat memilih beberapa tabel dengan memberikan daftar nama tabel yang dipisahkan koma atau dengan menulis karakter pengganti dalam pola.Meminta isi JSON:
{ "gcs_destination": { "uri": "gs://BUCKET_NAME/PATH_TO_SQL_FILE" }, "database": "DATABASE_NAME", "sql_export_options": { "schema_only": true, "tables": [ "TABLE1", "TABLE2" ], "clean_target_objects": false, "if_exist_target_objects": true } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Simpan isi permintaan dalam file bernama
request.json
dan jalankan perintah berikut:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID:export"
PowerShell (Windows)
Simpan isi permintaan dalam file bernama
request.json
dan jalankan perintah berikut:$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID:export"| Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip dengan berikut ini:
Respons
{ "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.alloydb.v1.OperationMetadata", "createTime": "2024-09-17T06:05:31.244428646Z", "target": "projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID", "verb": "export", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Jika Anda tidak perlu mempertahankan peran IAM yang telah ditetapkan sebelumnya, hapus sekarang.
Untuk mengetahui daftar lengkap parameter permintaan, lihat
clusters:export
.
Langkah selanjutnya
- Pelajari cara mengekspor file CSV.
- Membatalkan ekspor data.