Ekspor dan impor menggunakan file BAK dan file log transaksi

Halaman ini menjelaskan cara mengekspor dan mengimpor data ke instance Cloud SQL menggunakan file BAK dan mengimpor data ke instance Cloud SQL menggunakan file log transaksi.

Sebelum memulai

Ekspor menggunakan resource database, tetapi ekspor tidak mengganggu operasi database normal kecuali jika instance tersebut kurang tersedia.

Untuk praktik terbaik, lihat Praktik Terbaik untuk Mengimpor dan Mengekspor Data.

Setelah menyelesaikan operasi impor, verifikasi hasilnya.

Ekspor data dari Cloud SQL untuk SQL Server

Cloud SQL mendukung ekspor file BAK bawaan.

Jika Anda ingin membuat instance baru dari file yang diekspor, maka pertimbangkan memulihkan dari cadangan ke instance yang berbeda ataumeng-clone instance.

Cloud SQL menjalankan pencadangan penuh pada database yang terpilih selama operasi ekspor.

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

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 ekspor stripe)
    • storage.objects.delete (hanya untuk ekspor stripe)

Untuk mendapatkan bantuan terkait peran IAM, lihat Identity and Access Management.

Ekspor data ke file BAK dari Cloud SQL untuk SQL Server

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 Format file, klik BAK.
  5. Di bagian Data untuk diekspor, gunakan menu drop-down untuk memilih database yang ingin Anda ekspor.
  6. Di bagian Tujuan, pilih Jelajahi 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 gsutil iam untuk memberikan storage.objectAdmin peran IAM ke akun layanan. Untuk mengetahui informasi lebih lanjut mengenai cara menetapkan izin IAM, lihat Menggunakan izin IAM.
  4. Ekspor database:
    gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/FILENAME \
    --database=DATABASE_NAME
      

    Untuk informasi tentang penggunaan perintah gcloud sql export bak, lihat halaman referensi perintah.

  5. Jika Anda tidak perlu mempertahankan peran IAM yang telah Anda tetapkan sebelumnya, maka revoke peran tersebut sekarang.

REST v1

  1. Buat bucket Cloud Storage untuk ekspor.
    gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
    

    Langkah ini tidak wajib, tetapi sangat direkomendasikan, agar Anda tidak membuka akses ke data lain.

  2. Beri instance Anda peran IAM legacyBucketWriter untuk bucket Anda. Untuk mengetahui informasi lebih lanjut mengenai penetapan izin IAM, lihat Menggunakan izin IAM.
  3. Ekspor database Anda:

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • project-id: ID project
    • 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
    • offload: Mengaktifkan ekspor serverless. Tetapkan ke true untuk menggunakan ekspor serverless.

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export

    Meminta isi JSON:

    {
     "exportContext":
       {
          "fileType": "BAK",
          "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 melihat respons JSON seperti berikut:

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

REST v1beta4

  1. Buat bucket Cloud Storage untuk ekspor.
    gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
    

    Langkah ini tidak wajib, tetapi sangat direkomendasikan, agar Anda tidak membuka akses ke data lain.

  2. Beri instance Anda peran IAM storage.objectAdmin untuk bucket Anda. Untuk mengetahui informasi lebih lanjut mengenai penetapan izin IAM, lihat Menggunakan izin IAM.
  3. Ekspor database Anda:

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • project-id: ID project
    • 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
    • offload: Mengaktifkan ekspor serverless. Tetapkan ke true untuk menggunakan ekspor serverless.

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export

    Meminta isi JSON:

    {
     "exportContext":
       {
          "fileType": "BAK",
          "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 melihat respons JSON seperti berikut:

  4. Jika Anda tidak perlu mempertahankan peran IAM yang telah Anda tetapkan sebelumnya, maka revoke peran tersebut sekarang.
Untuk mengetahui daftar lengkap parameter untuk permintaan tersebut, lihat halaman instances:export.

Ekspor cadangan database diferensial

Sebelum mengekspor cadangan database diferensial, Anda harus mengekspor basis diferensial.

Jika layanan atau fitur lainnya, seperti pemulihan point-in-time dan replika baca, memicu pencadangan penuh antara ekspor cadangan penuh dan ekspor cadangan diferensial, maka Anda harus memicu ekspor cadangan penuh lagi.

Untuk memahami hal ini dengan lebih baik, perhatikan contoh berikut:

  1. Anda mengajukan permintaan pencadangan penuh pada pukul 07.00.
  2. Anda mengaktifkan pemulihan point-in-time pada pukul 09.00. Tindakan ini memicu pencadangan penuh pada instance Anda.
  3. Anda mencoba mengambil cadangan diferensial pada pukul 17.00. Permintaan ekspor ini gagal dengan pesan error karena pencadangan penuh terakhir dipicu oleh pemulihan point-in-time.

Cloud SQL tidak mendukung permintaan ekspor database dengan --differential-base atau --bak-type=DIFF pada instance replika.

gcloud

  1. Membuat bucket Cloud Storage.
  2. Temukan akun layanan untuk instance Cloud SQL tempat Anda mengekspor. Anda dapat melakukannya dengan menjalankan perintah gcloud sql instances describe. Cari kolom serviceAccountEmailAddress di output.
    gcloud sql instances describe INSTANCE_NAME
      
  3. Gunakan gsutil iam untuk memberikan storage.objectAdmin peran IAM ke akun layanan. Untuk mengetahui informasi lebih lanjut mengenai cara menetapkan izin IAM, lihat Menggunakan izin IAM.
  4. Ekspor database sebagai basis diferensial.

    gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BASE_FILENAME \
    --database=DATABASE_NAME --differential-base
    

    Untuk informasi tentang penggunaan perintah gcloud sql export bak, lihat halaman referensi perintah.

  5. Ekspor pencadangan diferensial.

    gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BACKUP_FILENAME \
    --database=DATABASE_NAME --bak-type=DIFF
      

    Untuk informasi tentang penggunaan perintah gcloud sql export bak, lihat halaman referensi perintah.

  6. Jika Anda tidak perlu mempertahankan peran IAM yang telah Anda tetapkan sebelumnya, maka revoke peran tersebut sekarang.

REST v1

  1. Buat bucket Cloud Storage untuk ekspor.
    gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
    

    Langkah ini tidak wajib, tetapi sangat direkomendasikan, agar Anda tidak membuka akses ke data lain.

  2. Beri instance Anda peran IAM legacyBucketWriter untuk bucket Anda. Untuk mengetahui informasi lebih lanjut mengenai penetapan izin IAM, lihat Menggunakan izin IAM.
  3. Ekspor cadangan database lengkap Anda sebagai basis diferensial.

    Sebelum menggunakan salah satu data permintaan, buat 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
    • offload: untuk mengaktifkan dan menggunakan ekspor serverless, tetapkan nilainya ke true.

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export

    Isi JSON permintaan:

    {
     "exportContext":
       {
          "fileType": "BAK",
          "uri": "gs://bucket_name/path_to_dump_file",
          "databases": ["database_name"]
          "offload": true | false
          "bakExportOptions": {
            "differentialBase":true
          }
    
        }
    }
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export"

    PowerShell

    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://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

  4. Ekspor pencadangan diferensial.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • project-id: ID project
    • 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
    • offload: Mengaktifkan ekspor serverless. Tetapkan ke true untuk menggunakan ekspor serverless.

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export

    Isi JSON permintaan:

    {
     "exportContext":
       {
          "fileType": "BAK",
          "uri": "gs://bucket_name/path_to_dump_file",
          "databases": ["database_name"]
          "offload": true | false
          "bakExportOptions": {
            bakType:"DIFF"
          }
    
        }
    }
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export"

    PowerShell

    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://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

  5. Jika Anda tidak perlu mempertahankan peran IAM yang Anda tetapkan sebelumnya, maka hapus sekarang.
Untuk mengetahui daftar lengkap parameter untuk permintaan tersebut, lihat halaman instances:export.

REST v1beta4

  1. Buat bucket Cloud Storage untuk ekspor.
    gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
    

    Langkah ini tidak wajib, tetapi sangat direkomendasikan, agar Anda tidak membuka akses ke data lain.

  2. Beri instance Anda peran IAM storage.objectAdmin untuk bucket Anda. Untuk mengetahui informasi lebih lanjut mengenai penetapan izin IAM, lihat Menggunakan izin IAM.
  3. Ekspor cadangan database lengkap Anda sebagai basis diferensial.

    Sebelum menggunakan salah satu data permintaan, buat 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
    • offload: untuk mengaktifkan dan menggunakan ekspor serverless, tetapkan nilainya ke true.

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export

    Isi JSON permintaan:

    {
      "exportContext":
        {
           "fileType": "BAK",
           "uri": "gs://bucket_name/path_to_dump_file",
           "databases": ["database_name"]
           "offload": true | false
           "bakExportOptions": {
             "differentialBase":true
           }
    
         }
    }
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export"

    PowerShell

    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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

  4. Ekspor pencadangan diferensial:

    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
    • offload: untuk mengaktifkan dan menggunakan ekspor serverless, tetapkan nilai ini ke true.

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export

    Isi JSON permintaan:

    {
      "exportContext":
        {
           "fileType": "BAK",
           "uri": "gs://bucket_name/path_to_dump_file",
           "databases": ["database_name"]
           "offload": true | false
           "bakExportOptions": {
            bakType:"DIFF"
           }
    
         }
    }
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export"

    PowerShell

    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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

  5. Jika Anda tidak perlu mempertahankan peran IAM yang telah Anda tetapkan sebelumnya, maka revoke peran tersebut sekarang.
Untuk mengetahui daftar lengkap parameter untuk permintaan tersebut, lihat halaman instances:export.

Gunakan ekspor stripe

Keuntungan ekspor stripe adalah sebagai berikut:

  • Pengurangan waktu yang dibutuhkan agar operasi diselesaikan
  • Database yang lebih besar dari 5 TB dapat diekspor

Kemungkinan kerugian dari penggunaan ekspor stripe adalah cadangannya, bukannya terdiri dari satu file, melainkan dibagi ke dalam satu set file. Set ini disebut "set stripe"; lihat Perangkat pencadangan dalam set media stripe (set stripe). Di Cloud SQL, Anda mengekspor ke folder kosong di Cloud Storage, daripada membuat satu file. Untuk mengetahui informasi selengkapnya, lihat Cara menggunakan ekspor stripe.

Merencanakan operasi Anda

Ekspor stripe dapat meningkatkan performa ekspor. Namun, jika kasus penggunaan Anda memerlukan satu file output, atau jika ukuran database Anda kurang dari 5 TB, dan jika performa yang lebih cepat tidak penting, Anda mungkin ingin menggunakan ekspor non-stripe.

Jika Anda memutuskan untuk menggunakan ekspor stripe, maka pertimbangkan jumlah stripe-nya. Anda dapat menentukan nilai ini dalam perintah gcloud CLI atau panggilan REST API Anda. Namun, jika Anda menginginkan jumlah stripe yang optimal untuk performa, atau jika Anda tidak tahu angkanya, hapus angkanya. Jumlah stripe optimal akan diatur secara otomatis.

Jumlah stripe maksimum yang saat ini didukung oleh Cloud SQL untuk SQL Server adalah 64.

Cara menggunakan ekspor stripe

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 gsutil iam untuk memberikan storage.objectAdmin peran IAM ke akun layanan. Untuk mengetahui informasi lebih lanjut mengenai cara menetapkan izin IAM, lihat Menggunakan izin IAM.
  4. Untuk mengekspor database, tentukan parameter --striped dan/atau tentukan nilai untuk --stripe_count. Menetapkan nilai untuk --stripe_count menyiratkan bahwa parameter --striped memang dimaksudkan. Error akan terjadi jika Anda menentukan --no-striped tetapi menentukan nilai untuk --stripe_count:
    gcloud beta sql export bak INSTANCE_NAME \
    gs://BUCKET_NAME/STRIPED_EXPORT_FOLDER \
    --database=DATABASE_NAME --striped --stripe_count=NUMBER
      

    Untuk informasi tentang penggunaan perintah gcloud beta sql export bak, lihat halaman referensi perintah.

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

REST v1

  1. Buat bucket Cloud Storage untuk ekspor.
    gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
    

    Langkah ini tidak wajib, tetapi sangat direkomendasikan, agar Anda tidak membuka akses ke data lain.

  2. Beri instance Anda peran IAM legacyBucketWriter untuk bucket Anda. Untuk mengetahui informasi lebih lanjut mengenai penetapan izin IAM, lihat Menggunakan izin IAM.
  3. Ekspor database Anda:

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • bucket_name: Nama bucket Cloud Storage
    • path_to_folder: Jalur ke folder (di bucket Cloud Storage) tujuan untuk mengekspor set stripe
    • database_name: Nama database dalam instance Cloud SQL Anda
    • true | false: Tetapkan ke true untuk menggunakan ekspor stripe. Jika Anda menentukan true tanpa menentukan jumlah stripe, jumlah stripe yang optimal akan ditetapkan secara otomatis
    • number_of_stripes: Jumlah stripe yang digunakan. Jika ditentukan, striped tersirat sebagai true

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export

    Meminta isi JSON:

    {
     "exportContext":
       {
          "fileType": "BAK",
          "uri": "gs://bucket_name/path_to_folder",
          "databases": ["database_name"],
          "bakExportOptions": {
            "striped": true | false,
            "stripe_count": ["number_of_stripes"]
          }
        }
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan melihat respons JSON seperti berikut:

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

REST v1beta4

  1. Buat bucket Cloud Storage untuk ekspor.
    gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
    

    Langkah ini tidak wajib, tetapi sangat direkomendasikan, agar Anda tidak membuka akses ke data lain.

  2. Beri instance Anda peran IAM legacyBucketWriter untuk bucket Anda. Untuk mengetahui informasi lebih lanjut mengenai penetapan izin IAM, lihat Menggunakan izin IAM.
  3. Ekspor database Anda:

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • bucket_name: Nama bucket Cloud Storage
    • path_to_folder: Jalur ke folder (di bucket Cloud Storage) tujuan untuk mengekspor set stripe
    • database_name: Nama database dalam instance Cloud SQL Anda
    • true | false: Tetapkan ke true untuk menggunakan ekspor stripe. Jika Anda menentukan true tanpa menentukan jumlah stripe, jumlah stripe yang optimal akan ditetapkan secara otomatis
    • number_of_stripes: Jumlah stripe yang digunakan. Jika ditentukan, striped tersirat sebagai true

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export

    Meminta isi JSON:

    {
     "exportContext":
       {
          "fileType": "BAK",
          "uri": "gs://bucket_name/path_to_folder",
          "databases": ["database_name"],
          "bakExportOptions": {
            "striped": true | false,
            "stripe_count": ["number_of_stripes"]
          }
        }
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan melihat respons JSON seperti berikut:

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

Impor ke Cloud SQL untuk SQL Server

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

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 impor bergaris)

Untuk mendapatkan bantuan terkait peran IAM, lihat Identity and Access Management.

Impor data dari file BAK ke Cloud SQL untuk SQL Server

Untuk menggunakan impor stripe, lihat Gunakan impor stripe.

Berbagai framework impor tersedia. Misalnya, Cloud SQL untuk SQL Server mendukung pengambilan data perubahan (CDC) untuk versi database berikut:

  • SQL Server 2017 Standard
  • SQL Server 2017 Enterprise
  • SQL Server 2019 Standard
  • SQL Server 2019 Enterprise

Saat mengimpor database yang diaktifkan CDC, flag KEEP_CDC dipertahankan.

Jika versi instance Anda adalah Microsoft SQL Server Enterprise Edition, maka Anda dapat mengimpor file BAK terenkripsi.

Instance Microsoft SQL Server Standard Edition juga mengimpor file BAK terenkripsi, tetapi hanya melalui gcloud CLI.

Satu-satunya ekstensi BAK yang didukung adalah .bak dan .bak.gz. Pencadangan yang dienkripsi GPG saat ini tidak didukung.

Untuk petunjuk di bawah, bersiaplah untuk menentukan database baru; jangan membuat database sebelum memulai impor file BAK Anda.

Untuk mengimpor data ke instance Cloud SQL menggunakan file BAK:

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 kolom Pilih file yang ingin Anda impor datanya, masukkan jalur ke bucket dan file BAK yang akan digunakan untuk impor.

    Anda dapat mengimpor file yang dikompresi (.gz) atau file yang tidak dikompresi.

  5. Di bagian Format, pilih BAK.
  6. Tentukan Database di instance Cloud SQL Anda tempat Anda ingin mengimpor file BAK.
  7. Klik Impor untuk memulai impor.

gcloud

  1. Buat bucket Cloud Storage untuk impor.

    gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
    

    Langkah ini tidak wajib, tetapi sangat direkomendasikan, agar Anda tidak membuka akses ke data lain.

  2. Pastikan Anda telah mengonfigurasi peran dan izin yang diperlukan.
  3. Upload data dari file BAK ke bucket.
  4. Jelaskan instance tujuan impor:
    gcloud sql instances describe INSTANCE_NAME
    
  5. Menyalin kolom serviceAccountEmailAddress.
  6. Gunakan gsutil iam untuk memberikan storage.objectViewer peran IAM ke akun layanan untuk bucket. Untuk informasi lebih lanjut tentang menetapkan izin IAM, lihat Menggunakan izin IAM.
  7. Impor data dari file:
    gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \
    --database=DATABASE_NAME
    
    Untuk impor terenkripsi, gunakan perintah berikut:
    
    gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME
    --database=DATABASE_NAME --cert-path=gs://BUCKET_NAME/CERTIFICATE_NAME
     --pvk-path=gs://BUCKET_NAME/KEY_NAME --prompt-for-pvk-password
    
  8. Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut menggunakan gsutil iam.

REST v1

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

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

  3. Berikan instance Anda peran IAM storage.objectAdmin untuk bucket Anda. Untuk informasi lebih lanjut tentang menetapkan izin IAM, lihat Menggunakan izin IAM.
  4. Impor data dari file:

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • bucket_name: Nama bucket Cloud Storage
    • path_to_bak_file: Jalur ke file BAK
    • 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": "BAK",
          "uri": "gs://bucket_name/path_to_bak_file",
          "database": "database_name"
        }
    }
    
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan melihat respons JSON seperti berikut:

    Untuk menggunakan pengguna yang berbeda untuk impor, tentukan properti importContext.importUser.

    Untuk mengetahui daftar lengkap parameter untuk permintaan tersebut, lihat halaman instances:import.
  5. Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut.

REST v1beta4

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

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

  3. Berikan instance Anda peran IAM storage.objectAdmin untuk bucket Anda. Untuk informasi lebih lanjut tentang menetapkan izin IAM, lihat Menggunakan izin IAM.
  4. Impor data dari file:

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • bucket_name: Nama bucket Cloud Storage
    • path_to_bak_file: Jalur ke file BAK
    • 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": "BAK",
          "uri": "gs://bucket_name/path_to_bak_file",
          "database": "database_name"
        }
    }
    
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan melihat respons JSON seperti berikut:

    Untuk menggunakan pengguna yang berbeda untuk impor, tentukan properti importContext.importUser.

    Untuk mengetahui daftar lengkap parameter untuk permintaan tersebut, lihat halaman instances:import.
  5. Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut.

Jika Anda mendapatkan error seperti ERROR_RDBMS, pastikan file BAK ada di bucket dan Anda memiliki izin yang benar di bucket. Untuk mendapatkan bantuan dalam mengonfigurasi kontrol akses di Cloud Storage, lihat Membuat dan Mengelola Daftar Kontrol Akses.

Impor cadangan database diferensial

Sebelum Anda mengimpor cadangan database diferensial, Anda memerlukan impor pencadangan penuh dan database Anda harus dalam status RESTORING setelah impor pencadangan penuh.

Cloud SQL tidak mendukung pengimporan cadangan database diferensial pada instance yang diaktifkan dengan pemulihan point-in-time. Hal ini karena mengimpor cadangan database dengan --no-recovery merupakan prasyarat untuk mengimpor cadangan database diferensial. Selain itu, Anda tidak dapat mengaktifkan pemulihan point-in-time pada instance jika database dalam status RESTORING. Jika terjadi kegagalan impor, lakukan salah satu hal berikut untuk mengaktifkan pemulihan point-in-time:

  • Pindahkan database yang ada di status RESTORING secara online menggunakan flag --recovery-only .

  • Hapus database.

Untuk mengimpor data ke instance Cloud SQL menggunakan cadangan database diferensial, lakukan langkah-langkah berikut:

gcloud

  1. Buat bucket Cloud Storage untuk impor.

    gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
    

    Langkah ini tidak wajib, tetapi kami sangat merekomendasikan Anda melakukan hal ini agar Anda tidak membuka akses ke data lain.

  2. Pastikan Anda telah mengonfigurasi peran dan izin yang diperlukan.
  3. Upload data dari file BAK ke bucket.
  4. Jelaskan instance tujuan impor:
    gcloud sql instances describe INSTANCE_NAME
    
  5. Menyalin kolom serviceAccountEmailAddress.
  6. Gunakan gsutil iam untuk memberikan storage.objectViewer peran IAM ke akun layanan untuk bucket. Untuk informasi lebih lanjut tentang menetapkan izin IAM, lihat Menggunakan izin IAM.
  7. Impor pencadangan penuh dengan --no-recovery.

    gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BASE_FILENAME \
    --database=DATABASE_NAME --bak-type=FULL --no-recovery
    
  8. Impor cadangan database diferensial.

    gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BACKUP_FILENAME \
    --database=DATABASE_NAME --bak-type=DIFF --no-recovery
    
  9. Gunakan flag --recovery-only untuk menghadirkan database yang diimpor secara online. Langkah ini bersifat opsional, dan Anda hanya perlu melakukannya jika database Anda berada dalam status RESTORING.

    gcloud sql import bak INSTANCE_NAME \
    --database=DATABASE_NAME --recovery-only
    
  10. Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut menggunakan gsutil iam.

REST v1

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

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

  3. Berikan instance Anda peran IAM storage.objectAdmin untuk bucket Anda. Untuk informasi lebih lanjut tentang menetapkan izin IAM, lihat Menggunakan izin IAM.
  4. Impor pencadangan penuh dengan noRecovery.

    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_BAK_FILE: jalur ke file BAK.
    • 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

    Isi JSON permintaan:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "noRecovery": true,
            "bakType": "FULL",
          }
    
        }
    }
    
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

  5. Impor cadangan database diferensial.

    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_bak_file: jalur ke file BAK
    • 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

    Isi JSON permintaan:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://bucket_name/path_to_bak_file",
          "database": "database_name"
          "bakImportOptions": {
            "bakType": "DIFF",
            "noRecovery": true,
          }
    
        }
    }
    
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import"

    PowerShell

    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://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

  6. Gunakan recoveryOnly untuk menghadirkan database yang diimpor secara online. Langkah ini bersifat opsional, dan Anda hanya perlu melakukannya jika database Anda berada dalam status RESTORING.

    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_BAK_FILE: jalur ke file BAK
    • 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

    Isi JSON permintaan:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "recoveryOnly": true,
          }
    
        }
    }
    
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

  7. Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut.

REST v1beta4

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

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

  3. Berikan instance Anda peran IAM storage.objectAdmin untuk bucket Anda. Untuk informasi lebih lanjut tentang menetapkan izin IAM, lihat Menggunakan izin IAM.
  4. Impor pencadangan penuh dengan noRecovery.

    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_BAK_FILE: jalur ke file BAK.
    • 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

    Isi JSON permintaan:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "noRecovery": true,
            "bakType": "FULL",
          }
        }
    }
    
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import"

    PowerShell

    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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

  5. Impor cadangan database diferensial.

    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_bak_file: jalur ke file BAK
    • 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

    Isi JSON permintaan:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://bucket_name/path_to_bak_file",
          "database": "database_name"
          "bakImportOptions": {
            "bakType": "DIFF",
            "noRecovery": true,
          }
        }
    }
    
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import"

    PowerShell

    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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

  6. Gunakan recoveryOnly untuk menghadirkan database yang diimpor secara online. Langkah ini bersifat opsional, dan Anda hanya perlu melakukannya jika database Anda berada dalam status RESTORING.

    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_BAK_FILE: jalur ke file BAK
    • 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

    Isi JSON permintaan:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "recoveryOnly": true,
          }
        }
    }
    
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

  7. Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, hapus izin tersebut.

Jika Anda mendapatkan error seperti ERROR_RDBMS, maka pastikan file BAK ada di bucket dan Anda memiliki izin yang benar di bucket. Untuk mendapatkan bantuan dalam mengonfigurasi kontrol akses di Cloud Storage, lihat Membuat dan Mengelola Daftar Kontrol Akses.

Mengimpor cadangan log transaksi

Log transaksi adalah catatan transaksi database Anda dan perubahan yang dilakukan oleh setiap transaksi. Anda dapat menggunakannya untuk membangun kembali konsistensi {i>database<i} jika terjadi kegagalan sistem.

Untuk mengimpor data ke instance Cloud SQL menggunakan cadangan log transaksi, lakukan langkah-langkah berikut:

gcloud

  1. Opsional: Buat bucket Cloud Storage untuk impor.

    gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
    
  2. Upload file cadangan ke bucket.
  3. Jelaskan instance tujuan impor:
    gcloud sql instances describe INSTANCE_NAME
    
  4. Menyalin kolom serviceAccountEmailAddress.
  5. Gunakan gsutil iam untuk memberikan storage.objectViewer peran IAM ke akun layanan untuk bucket. Untuk informasi lebih lanjut tentang menetapkan izin IAM, lihat Menggunakan izin IAM.
  6. Impor cadangan penuh menggunakan parameter --no-recovery. Pastikan database Anda berada dalam status RESTORING setelah impor cadangan penuh.

    gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/BACKUP_FILENAME \
    --database=DATABASE_NAME --bak-type=FULL --no-recovery
    
  7. Opsional: Impor cadangan diferensial.
  8. Mengimpor cadangan log transaksi.

    gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/BACKUP_FILENAME \
    --database=DATABASE_NAME --bak-type=TLOG
    --stop-at=STOP_AT_TIMESTAMP --stop-at-mark=STOP_AT_MARK_NAME
    --no-recovery
    
    Ganti kode berikut:
    • INSTANCE_NAME: nama instance.
    • BUCKET_NAME: nama bucket Cloud Storage.
    • BACKUP_FILENAME: nama file cadangan Anda.
    • DATABASE_NAME: nama database di dalam instance Cloud SQL.
    • STOP_AT_TIMESTAMP: stempel waktu saat impor log transaksi harus berhenti. Ini adalah kolom opsional dan nilainya harus menggunakan format RFC 3339.
    • STOP_AT_MARK_NAME: transaksi yang ditandai saat impor log transaksi harus dihentikan. Ini adalah kolom opsional dan dapat mengambil string apa pun sebagai nilainya. Jika nilainya dalam format lsn:log-sequence-number, impor log transaksi akan berhenti pada nomor urut log yang diberikan.
    Ulangi langkah ini hingga semua cadangan log transaksi diimpor.
  9. Opsional: Gunakan tanda --recovery-only untuk memindahkan database yang diimpor di internet. Lakukan langkah ini hanya jika database Anda dalam status RESTORING.

    gcloud sql import bak INSTANCE_NAME \
    --database=DATABASE_NAME --recovery-only
    
  10. Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut menggunakan gsutil iam.

REST v1

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

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

  3. Berikan instance Anda peran IAM storage.objectAdmin untuk bucket Anda. Untuk informasi lebih lanjut tentang menetapkan izin IAM, lihat Menggunakan izin IAM.
  4. Untuk mengetahui daftar lengkap parameter untuk permintaan tersebut, lihat halaman instances:import.
  5. Impor pencadangan penuh dengan noRecovery. Pastikan database Anda berada dalam status RESTORING setelah impor cadangan penuh.

    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_BAK_FILE: jalur ke file BAK.
    • 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

    Isi JSON permintaan:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "noRecovery": true,
            "bakType": "FULL",
          }
    
        }
    }
    
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

  6. Opsional: Impor cadangan diferensial.
  7. Mengimpor cadangan log transaksi.

    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_TLOG_FILE: jalur ke file log transaksi.
    • DATABASE_NAME: nama database di dalam instance Cloud SQL.
    • STOP_AT_TIMESTAMP: stempel waktu saat impor log transaksi harus berhenti. Ini adalah kolom opsional dan nilainya harus menggunakan format RFC 3339.
    • STOP_AT_MARK_NAME: transaksi yang ditandai saat impor log transaksi harus dihentikan. Ini adalah kolom opsional dan dapat mengambil string apa pun sebagai nilainya. Jika nilainya dalam format lsn:log-sequence-number, impor log transaksi akan berhenti pada nomor urut log yang diberikan.

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import

    Isi JSON permintaan:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_TLOG_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "bakType": "TLOG",
            "stopAt": STOP_AT_TIMESTAMP,
            "stopAtMark": STOP_AT_MARK_NAME,
            "noRecovery": true,
          }
    
        }
    }
    
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

    Ulangi langkah ini hingga semua cadangan log transaksi diimpor.
  8. Opsional: Gunakan recoveryOnly untuk menghubungkan database yang diimpor secara online. Lakukan langkah ini hanya jika database Anda dalam status RESTORING.

    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_BAK_FILE: jalur ke file BAK
    • 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

    Isi JSON permintaan:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "recoveryOnly": true,
          }
    
        }
    }
    
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

  9. Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut.

REST v1beta4

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

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

  3. Berikan instance Anda peran IAM storage.objectAdmin untuk bucket Anda. Untuk informasi lebih lanjut tentang menetapkan izin IAM, lihat Menggunakan izin IAM.
  4. Impor pencadangan penuh dengan noRecovery. Pastikan database Anda berada dalam status RESTORING setelah impor cadangan penuh.

    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_BAK_FILE: jalur ke file BAK.
    • 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

    Isi JSON permintaan:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "noRecovery": true,
            "bakType": "FULL",
          }
        }
    }
    
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import"

    PowerShell

    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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

  5. Opsional: Impor cadangan diferensial.
  6. Mengimpor cadangan log transaksi. Di sini, stopAt dan stopAtMark adalah kolom opsional.

    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_BAK_FILE: jalur ke file BAK.
    • DATABASE_NAME: nama database di dalam instance Cloud SQL.
    • STOP_AT_TIMESTAMP: stempel waktu saat impor log transaksi harus berhenti. Ini adalah kolom opsional dan nilainya harus menggunakan format RFC 3339.
    • STOP_AT_MARK_NAME: transaksi yang ditandai saat impor log transaksi harus dihentikan. Ini adalah kolom opsional dan dapat mengambil string apa pun sebagai nilainya. Jika nilainya dalam format lsn:log-sequence-number, impor log transaksi akan berhenti pada nomor urut log yang diberikan.

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import

    Isi JSON permintaan:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "bakType": "TLOG",
            "stopAt": STOP_AT_TIMESTAMP,
            "stopAtMark":STOP_AT_MARK_NAME,
            "noRecovery": true,
          }
    
        }
    }
    
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

    Ulangi langkah ini hingga semua cadangan log transaksi diimpor.
  7. Opsional: Gunakan recoveryOnly untuk menghubungkan database yang diimpor secara online. Lakukan langkah ini hanya jika database Anda dalam status RESTORING.

    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_BAK_FILE: jalur ke file BAK
    • 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

    Isi JSON permintaan:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "recoveryOnly": true,
          }
        }
    }
    
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

  8. Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut.

Gunakan impor stripe

Keuntungan impor stripe adalah sebagai berikut:

  • Pengurangan waktu yang dibutuhkan agar operasi diselesaikan
  • Database yang lebih besar dari 5 TB dapat diimpor

Potensi kerugian dari penggunaan impor stripe adalah bahwa semua file dalam set stripe (bukan satu file) harus diupload ke folder yang sama di bucket Cloud Storage Anda, sebelum Anda melakukan impor.

Merencanakan operasi Anda

Pada sebagian besar kasus penggunaan, impor stripe memungkinkan performa yang lebih baik tanpa kerugian. Namun, jika Anda tidak dapat mencadangkan ke set stripe dari instance tertentu, atau jika database Anda kurang dari 5 TB, dan jika performa yang lebih cepat tidaklah penting, Anda mungkin ingin menggunakan impor stripe.

Cara menggunakan impor stripe

gcloud

  1. Buat bucket Cloud Storage untuk impor.

    gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
    

    Langkah ini tidak wajib, tetapi sangat direkomendasikan, agar Anda tidak membuka akses ke data lain.

  2. Pastikan Anda telah mengonfigurasi peran dan izin IAM yang diperlukan.
  3. Buat folder baru di bucket Anda.
  4. Untuk mengimpor database, upload file set stripe (dari database) ke folder yang baru. Pastikan bahwa semua file diupload ke folder tersebut, dan folder tersebut tidak berisi file tambahan.
  5. Jelaskan instance tempat Anda mengekspor:
    gcloud sql instances describe INSTANCE_NAME
    
  6. Salin kolom serviceAccountEmailAddress.
  7. Gunakan gsutil iam untuk memberikan storage.objectViewer peran IAM ke akun layanan untuk bucket. Untuk informasi lebih lanjut tentang menetapkan izin IAM, lihat Menggunakan izin IAM.
  8. Impor data dari folder. Perbedaan dari impor non-stripe adalah sebagai berikut: URI menautkan ke nama folder tempat set stripe diupload, bukan ke satu file, dan Anda menentukan parameter --striped:
    gcloud beta sql import bak INSTANCE_NAME gs://BUCKET_NAME/FOLDER_NAME \
    --database=DATABASE_NAME --striped
    
  9. Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut menggunakan gsutil iam.

REST v1

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

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

  3. Berikan instance Anda peran IAM storage.objectAdmin untuk bucket Anda. Untuk informasi lebih lanjut tentang menetapkan izin IAM, lihat Menggunakan izin IAM.
  4. Impor data dari file:

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • bucket_name: Nama bucket Cloud Storage
    • path_to_folder: Jalur ke folder (di bucket Cloud Storage) tempat set stripe berada
    • database_name: Nama database yang akan dibuat di instance Cloud SQL Anda
    • true | false: Menetapkan ke true untuk menggunakan impor stripe

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import

    Meminta isi JSON:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://bucket_name/path_to_folder",
          "database": "database_name",
          "bakImportOptions": {
            "striped": true | false
          }
        }
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan melihat respons JSON seperti berikut:

    Untuk menggunakan pengguna yang berbeda untuk impor, tentukan properti importContext.importUser.

    Untuk mengetahui daftar lengkap parameter untuk permintaan tersebut, lihat halaman instances:import.
  5. Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut.

REST v1beta4

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

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

  3. Berikan instance Anda peran IAM storage.objectAdmin untuk bucket Anda. Untuk informasi lebih lanjut tentang menetapkan izin IAM, lihat Menggunakan izin IAM.
  4. Impor data dari file:

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • bucket_name: Nama bucket Cloud Storage
    • path_to_folder: Jalur ke folder (di bucket Cloud Storage) tempat set stripe tersebut berada
    • database_name: Nama database yang akan dibuat di instance Cloud SQL Anda
    • true | false: Menetapkan ke true untuk menggunakan impor stripe

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import

    Meminta isi JSON:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://bucket_name/path_to_folder",
          "database": "database_name",
          "bakImportOptions": {
            "striped": true | false
          }
        }
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan melihat respons JSON seperti berikut:

    Untuk menggunakan pengguna yang berbeda untuk impor, tentukan properti importContext.importUser.

    Untuk mengetahui daftar lengkap parameter untuk permintaan tersebut, lihat halaman instances:import.
  5. Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut.

Jika Anda mendapatkan error seperti ERROR_RDBMS, maka pastikan bahwa tabel tersebut sudah ada. Jika tabel tersebut ada, maka konfirmasi bahwa Anda memiliki izin yang benar pada bucket. Untuk mendapatkan bantuan dalam mengonfigurasi kontrol akses di Cloud Storage, lihat Membuat dan Mengelola Daftar Kontrol Akses.

Langkah selanjutnya