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:
- 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 ekspor stripe)storage.objects.delete
(hanya untuk ekspor stripe)storage.buckets.getIamPolicy
(hanya untuk mengekspor log transaksi)storage.buckets.setIamPolicy
(hanya untuk mengekspor log transaksi)
Untuk mendapatkan bantuan terkait peran IAM, lihat Identity and Access Management.
Ekspor data ke file BAK dari Cloud SQL untuk SQL Server
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 BAK.
- Di bagian Data untuk diekspor, gunakan menu drop-down untuk memilih database yang ingin Anda ekspor.
- Di bagian Tujuan, pilih Jelajahi untuk menelusuri bucket atau folder Cloud Storage 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 mengetahui informasi selengkapnya tentang penetapan izin IAM, lihat Menggunakan izin IAM. - 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. - Jika Anda tidak perlu mempertahankan peran IAM yang telah Anda tetapkan sebelumnya, maka cabut peran tersebut sekarang.
REST v1
-
Buat bucket Cloud Storage untuk ekspor.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_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 mengetahui informasi selengkapnya tentang cara menetapkan 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
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
Meminta isi JSON:
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Jika Anda tidak perlu mempertahankan peran IAM yang Anda tetapkan sebelumnya, maka hapus sekarang.
REST v1beta4
-
Buat bucket Cloud Storage untuk ekspor.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_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 mengetahui informasi selengkapnya tentang 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
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/export
Meminta isi JSON:
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Jika Anda tidak perlu mempertahankan peran IAM yang telah Anda tetapkan sebelumnya, maka cabut peran tersebut sekarang.
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:
- Anda mengajukan permintaan pencadangan penuh pada pukul 07.00.
- Anda mengaktifkan pemulihan point-in-time pada pukul 09.00. Tindakan ini memicu pencadangan penuh pada instance Anda.
- 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
- Membuat bucket Cloud Storage.
- Temukan akun layanan untuk instance Cloud SQL tempat Anda mengekspor.
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 mengetahui informasi selengkapnya tentang penetapan izin IAM, lihat Menggunakan izin IAM. 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.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.- Jika Anda tidak perlu mempertahankan peran IAM yang telah Anda tetapkan sebelumnya, maka cabut peran tersebut sekarang.
REST v1
-
Buat bucket Cloud Storage untuk ekspor.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_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 mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menggunakan izin IAM. - 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_BAK_FILE: jalur ke file BAK SQL
- DATABASE_NAME: 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/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
Isi JSON permintaan:
{ "exportContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Ekspor pencadangan diferensial.
Sebelum menggunakan salah satu data permintaan, buat 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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Jika Anda tidak perlu mempertahankan peran IAM yang Anda tetapkan sebelumnya, maka hapus sekarang.
REST v1beta4
-
Buat bucket Cloud Storage untuk ekspor.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_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 mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menggunakan izin IAM. - 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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Ekspor pencadangan 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 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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Jika Anda tidak perlu mempertahankan peran IAM yang telah Anda tetapkan sebelumnya, maka cabut peran tersebut sekarang.
Mengekspor log transaksi
Anda dapat mengekspor log transaksi untuk instance edisi Cloud SQL Enterprise Plus yang telah mengaktifkan pemulihan point-in-time (PITR) dan lognya disimpan di Cloud Storage.
gcloud
-
Buat bucket Cloud Storage untuk ekspor.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Langkah ini tidak wajib, tetapi sangat direkomendasikan, agar Anda tidak membuka akses ke data lain.
- Temukan akun layanan untuk instance Cloud SQL tempat Anda mengekspor.
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.Admin
ke akun layanan. Untuk mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menetapkan dan mengelola kebijakan IAM di bucket. Ekspor log transaksi.
gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/FOLDER_PATH --export-log-start-time=START_DATE_AND_TIME / --export-log-end-time=END_DATE_AND_TIME / --database=DATABASE_NAME --bak-type=TLOG
Untuk informasi tentang penggunaan perintah
gcloud sql export bak
, lihat halaman referensi perintah.- Jika Anda tidak perlu mempertahankan peran IAM yang telah Anda tetapkan sebelumnya, maka cabut peran tersebut sekarang.
REST
-
Langkah ini tidak wajib, tetapi sangat direkomendasikan, agar Anda tidak membuka akses ke data lain.
- Berikan
storage.Admin
pada instance Anda peran IAM untuk bucket Anda. Untuk mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menetapkan dan mengelola kebijakan IAM di bucket. - Ekspor 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.
- FOLDER_PATH: jalur ke folder di bucket Cloud Storage. Cloud SQL mengekspor log transaksi ke folder ini.
- DATABASE_NAME: nama database di dalam instance Cloud SQL.
exportLogStartTime
: tanggal dan waktu mulai log transaksi yang akan diekspor.exportLogEndTime
: tanggal dan waktu akhir log transaksi yang akan diekspor.
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/FOLDER_PATH", "databases": ["DATABASE_NAME"] "bakExportOptions": { bakType:"TLOG" exportLogStartTime: START_DATE_AND_TIME exportLogEndTime: END_DATE_AND_TIME } } }
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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Jika Anda tidak perlu mempertahankan peran IAM yang Anda tetapkan sebelumnya, maka hapus sekarang.
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
- 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 mengetahui informasi selengkapnya tentang penetapan izin IAM, lihat Menggunakan izin IAM. - 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. - Jika Anda tidak perlu mempertahankan peran IAM yang telah Anda tetapkan sebelumnya, maka cabut sekarang.
REST v1
-
Buat bucket Cloud Storage untuk ekspor.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_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 mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menggunakan izin IAM. - 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 menentukantrue
tanpa menentukan jumlah stripe, jumlah stripe yang optimal akan ditetapkan secara otomatis - number_of_stripes: Jumlah stripe yang digunakan. Jika ditentukan,
striped
tersirat sebagaitrue
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 menerima respons JSON yang mirip dengan yang berikut ini:
- Jika Anda tidak perlu mempertahankan peran IAM yang Anda tetapkan sebelumnya, maka hapus sekarang.
REST v1beta4
-
Buat bucket Cloud Storage untuk ekspor.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_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 mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menggunakan izin IAM. - 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 menentukantrue
tanpa menentukan jumlah stripe, jumlah stripe yang optimal akan ditetapkan secara otomatis - number_of_stripes: Jumlah stripe yang digunakan. Jika ditentukan,
striped
tersirat sebagaitrue
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 menerima respons JSON yang mirip dengan yang berikut ini:
- Jika Anda tidak perlu mempertahankan peran IAM yang Anda tetapkan sebelumnya, maka hapus sekarang.
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:
- 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 impor stripe)
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
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Import.
- Di kolom Pilih file sumber impor,
masukkan jalur ke bucket dan file BAK yang akan digunakan untuk impor.
Anda dapat mengimpor file yang dikompresi (
.gz
) atau file yang tidak dikompresi. Di bagian Format file, pilih BAK.
- Di bagian Tujuan, tentukan database di instance Cloud SQL tempat Anda ingin mengimpor file BAK.
- Untuk memulai impor, klik Impor.
gcloud
Buat bucket Cloud Storage untuk impor.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Langkah ini tidak wajib, tetapi sangat direkomendasikan, agar Anda tidak membuka akses ke data lain.
- Pastikan Anda telah mengonfigurasi peran dan izin yang diperlukan.
- Upload data dari file BAK ke bucket.
- Menjelaskan instance tujuan impor:
gcloud sql instances describe INSTANCE_NAME
- Salin kolom
serviceAccountEmailAddress
. - Gunakan
gcloud storage buckets add-iam-policy-binding
untuk memberikan peran IAMstorage.objectViewer
ke akun layanan untuk bucket. Untuk mengetahui informasi selengkapnya tentang penetapan izin IAM, lihat Menggunakan izin IAM. - Impor data dari file:
Untuk impor terenkripsi, gunakan perintah berikut:gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \ --database=DATABASE_NAME
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
- Jika Anda tidak perlu mempertahankan izin IAM yang Anda
tetapkan sebelumnya, hapus izin tersebut menggunakan
gcloud storage buckets remove-iam-policy-binding
.
REST v1
- 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 mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menggunakan izin IAM. - Impor data dari file:
Sebelum menggunakan salah satu data permintaan, buat 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 menerima respons JSON yang mirip dengan yang berikut ini:
Untuk menggunakan pengguna yang berbeda untuk impor, tentukan properti
Untuk mengetahui daftar lengkap parameter untuk permintaan tersebut, lihat halaman instances:import.importContext.importUser
. - Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut.
REST v1beta4
- 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 mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menggunakan izin IAM. - Impor data dari file:
Sebelum menggunakan salah satu data permintaan, buat 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 menerima respons JSON yang mirip dengan yang berikut ini:
Untuk menggunakan pengguna yang berbeda untuk impor, tentukan properti
Untuk mengetahui daftar lengkap parameter untuk permintaan tersebut, lihat halaman instances:import.importContext.importUser
. - 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:
Buat database yang berada dalam status
RESTORING
online menggunakan tanda--recovery-only
.Hapus database.
Untuk mengimpor data ke instance Cloud SQL menggunakan cadangan database diferensial, lakukan langkah-langkah berikut:
gcloud
Buat bucket Cloud Storage untuk impor.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Langkah ini tidak wajib, tetapi kami sangat merekomendasikan Anda melakukan hal ini agar Anda tidak membuka akses ke data lain.
- Pastikan Anda telah mengonfigurasi peran dan izin yang diperlukan.
- Upload data dari file BAK ke bucket.
- Menjelaskan instance tujuan impor:
gcloud sql instances describe INSTANCE_NAME
- Salin kolom
serviceAccountEmailAddress
. - Gunakan
gcloud storage buckets add-iam-policy-binding
untuk memberikan peran IAMstorage.objectViewer
ke akun layanan untuk bucket. Untuk mengetahui informasi selengkapnya tentang penetapan izin IAM, lihat Menggunakan izin IAM. 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
-
Impor cadangan database diferensial.
gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BACKUP_FILENAME \ --database=DATABASE_NAME --bak-type=DIFF --no-recovery
-
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 statusRESTORING
.gcloud sql import bak INSTANCE_NAME \ --database=DATABASE_NAME --recovery-only
- Jika Anda tidak perlu mempertahankan izin IAM yang Anda
tetapkan sebelumnya, hapus izin tersebut menggunakan
gcloud storage buckets remove-iam-policy-binding
.
REST v1
- 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 mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menggunakan izin IAM. -
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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Impor cadangan database 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_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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Gunakan
recoveryOnly
untuk menghadirkan database yang diimpor secara online. Langkah ini bersifat opsional, dan Anda hanya perlu melakukannya jika database Anda berada dalam statusRESTORING
.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_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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut.
REST v1beta4
- 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 mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menggunakan izin IAM. -
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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Impor cadangan database 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_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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Gunakan
recoveryOnly
untuk menghadirkan database yang diimpor secara online. Langkah ini bersifat opsional, dan Anda hanya perlu melakukannya jika database Anda berada dalam statusRESTORING
.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_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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
- 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 modifikasi yang dilakukan oleh setiap transaksi. Anda dapat menggunakannya untuk membangun kembali konsistensi database jika terjadi kegagalan sistem.
Untuk mengimpor data ke instance Cloud SQL menggunakan cadangan log transaksi, lakukan langkah-langkah berikut:
gcloud
Opsional: Buat bucket Cloud Storage untuk impor.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
- Upload file cadangan ke bucket.
- Menjelaskan instance tujuan impor:
gcloud sql instances describe INSTANCE_NAME
- Salin kolom
serviceAccountEmailAddress
. - Gunakan
gcloud storage buckets add-iam-policy-binding
untuk memberikan peran IAMstorage.objectViewer
ke akun layanan untuk bucket. Untuk mengetahui informasi selengkapnya tentang penetapan izin IAM, lihat Menggunakan izin IAM. Impor pencadangan penuh menggunakan parameter
--no-recovery
. Pastikan database Anda dalam statusRESTORING
setelah impor pencadangan penuh.gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/BACKUP_FILENAME \ --database=DATABASE_NAME --bak-type=FULL --no-recovery
- Opsional: Impor cadangan diferensial.
-
Impor cadangan log transaksi.
Ganti kode berikut: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
- 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. Kolom ini bersifat opsional dan nilainya harus menggunakan format RFC 3339.
- STOP_AT_MARK_NAME:
Transaksi yang ditandai tempat impor log transaksi harus berhenti. Ini adalah
kolom opsional dan dapat menggunakan string apa pun sebagai nilainya. Jika nilainya dalam format
lsn:log-sequence-number
, impor log transaksi akan berhenti pada nomor urutan log yang diberikan.
-
Opsional: Gunakan flag
--recovery-only
untuk menghadirkan database yang diimpor secara online. Lakukan langkah ini hanya jika database Anda berada dalam statusRESTORING
.gcloud sql import bak INSTANCE_NAME \ --database=DATABASE_NAME --recovery-only
- Jika Anda tidak perlu mempertahankan izin IAM yang Anda
tetapkan sebelumnya, hapus izin tersebut menggunakan
gcloud storage buckets remove-iam-policy-binding
.
REST v1
- 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 mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menggunakan izin IAM.
Untuk mengetahui daftar lengkap parameter untuk permintaan tersebut, lihat
halaman instances:import.
-
Impor pencadangan penuh dengan
noRecovery
. Pastikan database Anda dalam statusRESTORING
setelah impor pencadangan 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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Opsional: Impor cadangan diferensial.
- Impor 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. Kolom ini bersifat opsional dan nilainya harus menggunakan format RFC 3339.
- STOP_AT_MARK_NAME:
Transaksi yang ditandai tempat impor log transaksi harus dihentikan. Ini adalah
kolom opsional dan dapat menggunakan string apa pun sebagai nilainya. Jika nilainya dalam format
lsn:log-sequence-number
, impor log transaksi akan berhenti pada nomor urutan 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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Ulangi langkah ini hingga semua cadangan log transaksi diimpor. Opsional: Gunakan
recoveryOnly
untuk menghadirkan database yang diimpor secara online. Lakukan langkah ini hanya jika database Anda berada dalam statusRESTORING
.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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut.
REST v1beta4
- 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 mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menggunakan izin IAM. -
Impor pencadangan penuh dengan
noRecovery
. Pastikan database Anda dalam statusRESTORING
setelah impor pencadangan 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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Opsional: Impor cadangan diferensial.
- Impor cadangan log transaksi. Di sini,
stopAt
danstopAtMark
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. Kolom ini bersifat opsional dan nilainya harus menggunakan format RFC 3339.
- STOP_AT_MARK_NAME:
Transaksi yang ditandai tempat impor log transaksi harus dihentikan. Ini adalah
kolom opsional dan dapat menggunakan string apa pun sebagai nilainya. Jika nilainya dalam format
lsn:log-sequence-number
, impor log transaksi akan berhenti pada nomor urutan 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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Ulangi langkah ini hingga semua cadangan log transaksi diimpor. Opsional: Gunakan
recoveryOnly
untuk menghadirkan database yang diimpor secara online. Lakukan langkah ini hanya jika database Anda berada dalam statusRESTORING
.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 ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
- 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
Buat bucket Cloud Storage untuk impor.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Langkah ini tidak wajib, tetapi sangat direkomendasikan, agar Anda tidak membuka akses ke data lain.
- Pastikan Anda telah mengonfigurasi peran dan izin IAM yang diperlukan.
- Buat folder baru di bucket Anda.
- 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.
- Jelaskan instance tempat Anda mengekspor:
gcloud sql instances describe INSTANCE_NAME
- Salin kolom
serviceAccountEmailAddress
. - Gunakan
gcloud storage buckets add-iam-policy-binding
untuk memberikan peran IAMstorage.objectViewer
ke akun layanan untuk bucket. Untuk mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menggunakan izin IAM. - 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
- Jika Anda tidak perlu mempertahankan izin IAM yang Anda
tetapkan sebelumnya, hapus izin tersebut menggunakan
gcloud storage buckets remove-iam-policy-binding
.
REST v1
- 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 mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menggunakan izin IAM. - Impor data dari file:
Sebelum menggunakan salah satu data permintaan, buat 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 menerima respons JSON yang mirip dengan yang berikut ini:
Untuk menggunakan pengguna yang berbeda untuk impor, tentukan properti
Untuk mengetahui daftar lengkap parameter untuk permintaan tersebut, lihat halaman instances:import.importContext.importUser
. - Jika Anda tidak perlu mempertahankan izin IAM yang Anda tetapkan sebelumnya, maka hapus izin tersebut.
REST v1beta4
- 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 mengetahui informasi selengkapnya tentang cara menetapkan izin IAM, lihat Menggunakan izin IAM. - Impor data dari file:
Sebelum menggunakan salah satu data permintaan, buat 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 menerima respons JSON yang mirip dengan yang berikut ini:
Untuk menggunakan pengguna yang berbeda untuk impor, tentukan properti
Untuk mengetahui daftar lengkap parameter untuk permintaan tersebut, lihat halaman instances:import.importContext.importUser
. - 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 berikutnya
- Pelajari cara memeriksa status operasi impor dan ekspor.
- Pelajari lebih lanjut tentang praktik terbaik untuk mengimpor dan mengekspor data.
- Masalah umum untuk impor dan ekspor.