Mengekspor dan mengimpor menggunakan file dump SQL

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, verifikasi hasilnya.

Mengekspor data dari Cloud SQL untuk PostgreSQL

Peran dan izin yang diperlukan untuk mengekspor dari Cloud SQL untuk PostgreSQL

Untuk mengekspor data dari Cloud SQL ke Cloud Storage, pengguna yang memulai ekspor harus memiliki salah satu peran berikut:

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 PostgreSQL

Saat Anda menggunakan Cloud SQL untuk melakukan ekspor, baik dari konsol Google Cloud, gcloud CLI, atau API, Anda menggunakan utilitas pg_dump, dengan opsi yang diperlukan untuk memastikan bahwa file ekspor yang dihasilkan valid untuk diimpor kembali ke Cloud SQL.

Jika berencana untuk mengimpor data ke Cloud SQL, Anda harus mengikuti petunjuk yang diberikan di bagian Mengekspor data dari server database eksternal sehingga file dump SQL Anda diformat dengan benar untuk Cloud SQL singkat ini.

Untuk mengekspor data dari database pada instance Cloud SQL ke file dump SQL di bucket Cloud Storage:

Konsol

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Klik Export.
  4. Di bagian File format, klik SQL untuk membuat file dump SQL.
  5. Di bagian Data untuk diekspor, gunakan menu drop-down untuk memilih database yang ingin Anda ekspor.
  6. Di bagian Destination, pilih Browse untuk menelusuri bucket atau folder Cloud Storage untuk ekspor Anda.
  7. Klik Ekspor untuk memulai ekspor.

gcloud

  1. Membuat bucket Cloud Storage.
  2. Temukan akun layanan untuk instance Cloud SQL tempat Anda melakukan ekspor. Anda dapat melakukannya dengan menjalankan perintah gcloud sql instances describe. Cari kolom serviceAccountEmailAddress di output.
    gcloud sql instances describe INSTANCE_NAME
      
  3. Gunakan gcloud storage buckets add-iam-policy-binding untuk memberikan peran IAM storage.objectAdmin ke akun layanan. Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.
  4. Ekspor database ke bucket Cloud Storage Anda:
    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 yang tersimpan, gunakan alat pg_dump.

    Untuk mengetahui informasi selengkapnya tentang penggunaan perintah export sql, lihat halaman referensi perintah sql export sql.

  5. Jika Anda tidak perlu mempertahankan peran IAM yang telah ditetapkan sebelumnya, cabut sekarang.

REST v1

  1. 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.

  2. Berikan legacyBucketWriter pada instance Anda peran IAM untuk bucket Anda. Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.
  3. 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

    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,
           "sqlExportOptions": {
            "clean": [TRUE|FALSE],
            "ifExists": [TRUE|FALSE]
           }
        }
     }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  4. Jika Anda tidak perlu mempertahankan peran IAM yang telah ditetapkan sebelumnya, hapus sekarang.
Untuk mengetahui daftar lengkap parameter permintaan, lihat halaman instances:export.

REST v1beta4

  1. 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.

  2. Berikan storage.objectAdmin pada instance Anda peran IAM untuk bucket Anda. Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.
  3. 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

    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,
            "sqlExportOptions": {
             "clean": [TRUE|FALSE],
             "ifExists": [TRUE|FALSE]
            }
         }
      }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  4. Jika Anda tidak perlu mempertahankan peran IAM yang telah ditetapkan sebelumnya, cabut sekarang.
Untuk mengetahui daftar lengkap parameter permintaan, lihat halaman instances:export.

Mengimpor data ke Cloud SQL untuk PostgreSQL

Peran dan izin yang diperlukan untuk mengimpor ke Cloud SQL untuk PostgreSQL

Untuk mengimpor data dari Cloud Storage ke Cloud SQL, pengguna yang memulai impor harus memiliki salah satu peran berikut:

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 PostgreSQL

File SQL adalah file teks biasa dengan urutan perintah SQL.

Konsol

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Klik Import.
  4. 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).

  5. Untuk Format, pilih SQL.
  6. Pilih database tempat Anda ingin mengimpor data.

    Hal ini menyebabkan Cloud SQL menjalankan pernyataan USE DATABASE sebelum impor.

  7. 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.

  8. Klik Import untuk memulai impor.

gcloud

  1. Membuat bucket Cloud Storage.
  2. Upload file ke bucket Anda.

    Untuk bantuan dalam mengupload file ke bucket, lihat Mengupload objek.

  3. Menjelaskan instance tujuan impor:
    gcloud sql instances describe INSTANCE_NAME
  4. Menyalin kolom serviceAccountEmailAddress.
  5. Menggunakan gcloud storage buckets add-iam-policy-binding untuk memberikan storage.objectAdmin peran IAM ke akun layanan untuk bucket.
    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
      --member=serviceAccount:SERVICE-ACCOUNT \
      --role=roles/storage.objectAdmin
      
    Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.
  6. 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 perintah sql import sql.

    Jika perintah menampilkan error seperti ERROR_RDBMS, tinjau izinnya; kesalahan ini sering kali disebabkan oleh masalah izin.

  7. Jika Anda tidak perlu mempertahankan izin IAM yang telah ditetapkan sebelumnya, hapus menggunakan gcloud storage buckets remove-iam-policy-binding.

REST v1

  1. Membuat file dump SQL. Petunjuk yang ditautkan menetapkan tanda tertentu yang membuat file dump tersebut kompatibel dengan Cloud SQL.

  2. Membuat bucket Cloud Storage.
  3. Upload file ke bucket Anda.

    Untuk mendapatkan bantuan dalam mengupload file ke bucket, lihat Mengupload objek.

  4. Beri instance Anda peran IAM legacyBucketWriter dan objectViewer untuk bucket Anda. Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.
  5. 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 menggunakan akun pengguna lain untuk impor, tentukan properti importContext.importUser.

    Untuk mengetahui daftar lengkap parameter permintaan, lihat halaman instances:import.
  6. Jika Anda tidak perlu mempertahankan izin IAM yang telah ditetapkan sebelumnya, hapus sekarang.

REST v1beta4

  1. Membuat file dump SQL. Petunjuk yang ditautkan menetapkan tanda tertentu yang membuat file dump tersebut kompatibel dengan Cloud SQL.

  2. Membuat bucket Cloud Storage.
  3. Upload file ke bucket Anda.

    Untuk bantuan dalam mengupload file ke bucket, lihat Mengupload objek.

  4. Berikan instance Anda peran IAM storage.objectAdmin untuk bucket Anda. Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.
  5. 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 menggunakan akun pengguna lain untuk impor, tentukan properti importContext.importUser.

    Untuk mengetahui daftar lengkap parameter permintaan, lihat halaman instances:import.
  6. Jika Anda tidak perlu mempertahankan izin IAM yang telah ditetapkan sebelumnya, hapus sekarang.

Langkah berikutnya