Halaman ini menjelaskan cara mengekspor dan mengimpor data ke instance Cloud SQL menggunakan file dump SQL.
Sebelum memulai
Ekspor menggunakan resource database, tetapi tidak mengganggu operasi database normal, kecuali jika penyediaan instance kurang lengkap.
Untuk praktik terbaik, lihat Praktik Terbaik untuk Mengimpor dan Mengekspor Data.
Setelah menyelesaikan operasi impor, memverifikasi hasilnya.
Mengekspor data dari Cloud SQL untuk MySQL
Peran dan izin yang diperlukan untuk mengekspor dari Cloud SQL untuk MySQL
Untuk mengekspor data dari Cloud SQL ke Cloud Storage, pengguna yang memulai ekspor harus memiliki salah satu peran berikut:
- Peran Cloud SQL Editor
- Peran khusus,
yang mencakup izin berikut:
cloudsql.instances.get
cloudsql.instances.export
Selain itu, akun layanan untuk instance Cloud SQL harus memiliki salah satu peran berikut:
- Peran Identity and Access Management (IAM)
storage.objectAdmin
- Peran khusus, termasuk izin berikut:
storage.objects.create
storage.objects.list
(hanya untuk mengekspor file secara paralel)storage.objects.delete
(hanya untuk mengekspor file secara paralel)
Untuk mendapatkan bantuan terkait peran IAM, lihat Identity and Access Management.
Mengekspor ke file dump SQL dari Cloud SQL untuk MySQL
Untuk membuat file dump SQL, Anda harus mengekspor data dari Cloud SQL ke Cloud Storage. Setelah file berada di Cloud Storage, Anda dapat mengimpornya ke database Cloud SQL lainnya. Anda juga dapat mendownload data dari Cloud Storage ke lingkungan lokal Anda jika ingin mengaksesnya secara lokal.Mengekspor dari Cloud SQL menggunakan aplikasi utilitas
mysqldump dengan opsi
--single-transaction
dan --hex-blob
. Dengan
opsi --single-transaction
, mysqldump
memulai transaksi
sebelum berjalan. Daripada mengunci seluruh database, tindakan ini memungkinkan
mysqldump
membaca database dalam kondisi saat ini, untuk memberikan
dump data yang konsisten.
Jika file dump SQL Anda berisi klausa DEFINER (tampilan, pemicu, stored_procedures, dan sebagainya), yang bergantung pada urutan eksekusi pernyataan tersebut, penggunaan file ini untuk impor dapat gagal. Mempelajari lebih lanjut penggunaan DEFINER dan kemungkinan solusi di Cloud SQL.
Untuk mengekspor data dari database pada instance Cloud SQL ke file dump SQL di bucket Cloud Storage:
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Export.
- Di bagian Format file, klik SQL untuk membuat file dump SQL.
- Di bagian Data yang akan diekspor, klik Satu atau beberapa database dalam instance ini untuk mengekspor database tertentu.
- Menggunakan menu drop-down untuk memilih database yang ingin Anda ekspor.
- Di bagian Tujuan, pilih Browse untuk menelusuri bucket Cloud Storage atau folder untuk ekspor Anda.
- Klik Ekspor untuk memulai ekspor.
gcloud
- Membuat bucket Cloud Storage.
- Temukan akun layanan untuk instance Cloud SQL tempat Anda melakukan
ekspor. Anda dapat melakukannya dengan menjalankan
perintah
gcloud sql instances describe
. Cari kolomserviceAccountEmailAddress
di output.gcloud sql instances describe INSTANCE_NAME
- Gunakan
gcloud storage buckets add-iam-policy-binding
untuk memberikan peran IAMstorage.objectAdmin
ke akun layanan. Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM. - Ekspor database ke bucket Cloud Storage:
gcloud sql export sql INSTANCE_NAME gs://BUCKET_NAME/sqldumpfile.gz \ --database=DATABASE_NAME \ --offload
Perintah
export sql
tidak berisi pemicu atau prosedur tersimpan, tetapi berisi tampilan. Untuk mengekspor pemicu dan/atau prosedur tersimpan, gunakan alat mysqldump.Untuk mengetahui informasi selengkapnya tentang penggunaan perintah
export sql
, lihatsql export sql
halaman referensi perintah. - Jika Anda tidak perlu mempertahankan peran IAM yang telah ditetapkan sebelumnya, cabut sekarang.
REST v1
- Buat bucket untuk ekspor:
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
Langkah ini tidak wajib, tetapi sangat direkomendasikan, agar Anda tidak membuka akses ke data lain.
- Berikan
legacyBucketWriter
pada instance Anda peran IAM untuk bucket Anda. Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM. - Ekspor database Anda:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID
- INSTANCE_ID: ID instance
- BUCKET_NAME: nama bucket Cloud Storage
- PATH_TO_DUMP_FILE: jalur ke file dump SQL
- DATABASE_NAME_1: nama database di dalam instance Cloud SQL
- DATABASE_NAME_2: nama database di dalam instance Cloud SQL
- Jika Anda tidak perlu mempertahankan peran IAM yang telah ditetapkan sebelumnya, hapus sekarang.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
Meminta isi JSON:
{ "exportContext": { "fileType": "SQL", "uri": "gs://BUCKET_NAME/PATH_TO_DUMP_FILE", "databases": ["DATABASE_NAME"], "offload": TRUE | FALSE } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
REST v1beta4
- Buat bucket untuk ekspor:
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
Langkah ini tidak wajib, tetapi sangat direkomendasikan, agar Anda tidak membuka akses ke data lain.
- Berikan
storage.objectAdmin
pada instance Anda peran IAM untuk bucket Anda. Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM. - Ekspor database Anda:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID
- INSTANCE_ID: ID instance
- BUCKET_NAME: nama bucket Cloud Storage
- PATH_TO_DUMP_FILE: jalur ke file dump SQL
- DATABASE_NAME_1: nama database di dalam instance Cloud SQL
- DATABASE_NAME_2: nama database di dalam instance Cloud SQL
- Jika Anda tidak perlu mempertahankan peran IAM yang telah ditetapkan sebelumnya, cabut sekarang.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/export
Meminta isi JSON:
{ "exportContext": { "fileType": "SQL", "uri": "gs://BUCKET_NAME/PATH_TO_DUMP_FILE", "databases": ["DATABASE_NAME"], "offload": TRUE | FALSE } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Mengekspor dari server MySQL lokal Anda menggunakan mysqldump
Jika Anda mengekspor data dari database MySQL lokal untuk diimpor ke
database Cloud SQL, Anda harus menggunakan aplikasi utilitas mysqldump
dengan flag berikut:
--databases
Anda harus menggunakan opsi--databases
untuk menentukan daftar eksplisit database yang akan diekspor, dan daftar tersebut tidak boleh berisi database sistemmysql
.--hex-blob
Jika database Anda berisi kolom biner, Anda harus menggunakan flag ini untuk memastikan kolom biner And diimpor dengan benar.--set-gtid-purged=OFF
Informasi GTID tidak boleh disertakan dalam file dump SQL, dan logging biner tidak boleh dinonaktifkan oleh file dump SQL. (Tidak diperlukan untuk MySQL 5.5 atau replikasi eksternal.)--single-transaction
Memulai transaksi sebelum berjalan. Daripada mengunci seluruh database, tindakan ini memungkinkan mysqldump membaca database dalam kondisi saat ini, untuk memberikan dump data yang konsisten.
Dari command line, jalankan mysqldump
:
mysqldump --databases DATABASE_NAME -h INSTANCE_IP -u USERNAME -p \ --hex-blob --single-transaction --set-gtid-purged=OFF \ --default-character-set=utf8mb4 > SQL_FILE.sql
Untuk mendapatkan bantuan terkait mysqldump
, lihat
referensi mysqldump.
Replikasi eksternal ke Cloud SQL untuk MySQL
Untuk membuat file dump yang akan digunakan dalam konfigurasi server eksternal, lihat Mereplikasi dari server eksternal.
Mengimpor data ke Cloud SQL untuk MySQL
Peran dan izin yang diperlukan untuk mengimpor ke Cloud SQL untuk MySQL
Untuk mengimpor data dari Cloud Storage ke Cloud SQL, pengguna yang memulai impor harus memiliki salah satu peran berikut:
- Peran Admin Cloud SQL
- Peran khusus,
yang mencakup izin berikut:
cloudsql.instances.get
cloudsql.instances.import
Selain itu, akun layanan untuk instance Cloud SQL harus memiliki salah satu peran berikut:
- Peran IAM
storage.objectAdmin
- Peran khusus, termasuk izin berikut:
storage.objects.get
storage.objects.list
(hanya untuk mengimpor file secara paralel)
Untuk mendapatkan bantuan terkait peran IAM, lihat Identity and Access Management.
Mengimpor file dump SQL ke Cloud SQL untuk MySQL
File SQL adalah file teks biasa dengan urutan perintah SQL.
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Import.
- Di bagian Pilih file yang ingin Anda impor data, masukkan jalur
ke bucket dan file dump SQL yang akan digunakan untuk impor, atau cari file yang sudah ada singkat
ini.
Anda dapat mengimpor file yang dikompresi (
.gz
) atau file yang tidak dikompresi (.sql
). - Untuk Format, pilih SQL.
Pilih database tempat Anda ingin mengimpor data.
Hal ini menyebabkan Cloud SQL menjalankan pernyataan
USE DATABASE
sebelum impor.Jika Anda ingin menentukan pengguna tertentu untuk melakukan impor, pilih pengguna.
Jika file impor Anda berisi pernyataan yang harus dilakukan oleh pengguna tertentu, gunakan kolom ini untuk menentukan pengguna tersebut.
- Klik Import untuk memulai impor.
gcloud
- Membuat bucket Cloud Storage.
Upload file ke bucket Anda.
Untuk bantuan dalam mengupload file ke bucket, lihat Mengupload objek.
- Menjelaskan instance tujuan impor:
gcloud sql instances describe INSTANCE_NAME
- Menyalin kolom
serviceAccountEmailAddress
. - Menggunakan
gcloud storage buckets add-iam-policy-binding
untuk memberikanstorage.objectAdmin
peran IAM ke akun layanan untuk bucket. Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:SERVICE-ACCOUNT \ --role=roles/storage.objectAdmin
- Impor database:
gcloud sql import sql INSTANCE_NAME gs://BUCKET_NAME/IMPORT_FILE_NAME \ --database=DATABASE_NAME
Untuk informasi tentang penggunaan perintah
import sql
, lihat halaman referensi perintahsql import sql
.Jika perintah menampilkan error seperti
ERROR_RDBMS
, tinjau izinnya; kesalahan ini sering kali disebabkan oleh masalah izin. - Jika Anda tidak perlu mempertahankan izin IAM yang
telah ditetapkan sebelumnya, hapus menggunakan
gcloud storage buckets remove-iam-policy-binding
.
REST v1
-
Membuat file dump SQL. Petunjuk yang ditautkan menetapkan flag tertentu yang membuat file dump tersebut kompatibel dengan Cloud SQL.
- Jika Anda mengimpor data dari server MySQL lokal:
- Membuat file dump SQL.
- Membuat bucket di Cloud Storage.
- Mengupload file dump SQL ke bucket Cloud Storage.
- Jika Anda mengimpor data dari instance Cloud SQL lain, lihat petunjuk di Mengekspor data dari Cloud SQL ke file dump SQL.
- Membuat bucket Cloud Storage.
Upload file ke bucket Anda.
Untuk mendapatkan bantuan dalam mengupload file ke bucket, lihat Mengupload objek.
- Beri instance Anda peran IAM
legacyBucketWriter
danobjectViewer
untuk bucket Anda. Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM. - Impor file dump Anda:
Sebelum menggunakan salah satu data permintaan, buat pengganti berikut:
- project-id: ID project
- instance-id: ID instance
- bucket_name: Nama bucket Cloud Storage
- path_to_sql_file: Jalur ke file SQL
- database_name: Nama database di dalam instance Cloud SQL
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import
Meminta isi JSON:
{ "importContext": { "fileType": "SQL", "uri": "gs://bucket_name/path_to_sql_file", "database": "database_name" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Untuk mengetahui daftar lengkap parameter permintaan, lihat halaman instance:import. - Jika Anda tidak perlu mempertahankan izin IAM yang telah ditetapkan sebelumnya, hapus sekarang.
REST v1beta4
-
Membuat file dump SQL. Petunjuk yang ditautkan menetapkan flag tertentu yang membuat file dump tersebut kompatibel dengan Cloud SQL.
- Jika Anda mengimpor data dari server MySQL lokal:
- Membuat file dump SQL.
- Membuat bucket di Cloud Storage.
- Mengupload file dump SQL ke bucket Cloud Storage.
- Jika Anda mengimpor data dari instance Cloud SQL lain, lihat petunjuk di Mengekspor data dari Cloud SQL ke file dump SQL.
- Membuat bucket Cloud Storage.
Upload file ke bucket Anda.
Untuk bantuan dalam mengupload file ke bucket, lihat Mengupload objek.
- Berikan instance Anda peran IAM
storage.objectAdmin
untuk bucket Anda. Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM. - Impor file dump Anda:
Sebelum menggunakan salah satu data permintaan, buat pengganti berikut:
- project-id: ID project
- instance-id: ID instance
- bucket_name: Nama bucket Cloud Storage
- path_to_sql_file: Jalur ke file SQL
- database_name: Nama database di dalam instance Cloud SQL
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import
Meminta isi JSON:
{ "importContext": { "fileType": "SQL", "uri": "gs://bucket_name/path_to_sql_file", "database": "database_name" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Untuk mengetahui daftar lengkap parameter permintaan, lihat halaman instance:import. - Jika Anda tidak perlu mempertahankan izin IAM yang telah ditetapkan sebelumnya, hapus sekarang.
Langkah berikutnya
- Pelajari cara memeriksa status operasi impor dan ekspor.
- Pelajari lebih lanjut praktik terbaik untuk mengimpor dan mengekspor data.
- Mempelajari Cloud Storage lebih lanjut.
- Masalah umum untuk impor dan ekspor.