Halaman ini menjelaskan cloning, dan membuat clone instance.
Ringkasan
Meng-clone instance Cloud SQL akan membuat instance baru yang merupakan salinan dari instance sumber. Instance baru sepenuhnya independen dari instance sumber.
Pertanyaan umum (FAQ)
Pertanyaan | Jawaban |
---|---|
Apakah cloning dapat memengaruhi performa? | Tidak. Cloning tidak memiliki dampak performa pada instance sumber. |
Apakah cadangan disalin ke instance baru? | Tidak. Instance baru akan membuat cadangan otomatis baru. Cadangan manual tidak disalin dari instance sumber. |
Apakah instance baru memiliki alamat IP atau alamat yang sama? | Tidak. Instance baru memiliki alamat IP atau alamat baru. |
Apakah instance baru memiliki setelan konfigurasi yang sama? | Ya. Instance baru memiliki setelan yang sama seperti flag database, opsi konektivitas, jenis mesin, serta setelan penyimpanan dan memori. |
Apakah replika disalin ke instance baru? | Tidak. Anda perlu membuat replika baru untuk instance baru. |
Bisakah Anda meng-clone replika? | Tidak. Anda tidak dapat meng-clone replika. |
Bisakah Anda membuat clone dari waktu sebelumnya? | Ya. Pemulihan point-in-time menggunakan cloning untuk memulihkan instance dari waktu sebelumnya. Proses ini membantu memulihkan database Anda dari peristiwa penghancuran. |
Apakah setelan pemeliharaan instance sumber otomatis disalin ke instance yang di-clone? | Tidak. Anda perlu mengonfigurasi setelan pemeliharaan untuk instance yang di-clone. |
Dapatkah Anda membuat clone instance saat zona untuk instance tersebut tidak tersedia? | Ya. Saat membuat clone instance, Anda dapat menentukan zona yang berbeda untuk instance tersebut. |
Dapatkah Anda membuat clone database ke project lain? | Tidak. Anda tidak dapat membuat clone database ke project lain. |
Dapatkah Anda membuat clone instance yang pernah di-clone sebelumnya? | Ya. Anda dapat membuat clone instance yang telah di-clone dari instance lain. |
Apakah pengguna database disalin ke instance baru? | Ya, pengguna database disalin ke instance baru. Sandi untuk pengguna tersebut juga akan disalin sehingga tidak perlu dibuat ulang. |
Meng-clone instance
Anda dapat meng-clone instance Cloud SQL dengan menggunakan Konsol Google Cloud, gcloud CLI, Terraform, atau API.
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Temukan baris instance yang akan di-clone.
- Di kolom Tindakan, klik menu Tindakan Lainnya.
- Klik Buat clone.
- Pada halaman Buat clone, update instance ID jika perlu, dan
klik Buat clone, sehingga Clone status instance saat ini
dipilih.
Anda akan dikembalikan ke halaman listingan instance saat clone melakukan inisialisasi.
gcloud
Untuk meng-clone instance, gunakan perintah gcloud sql instances clone
:
gcloud sql instances clone SOURCE_INSTANCE_NAME DESTINATION_INSTANCE_NAME \ --project=PROJECT_ID
Lakukan penggantian berikut:
- SOURCE_INSTANCE_NAME: nama instance Cloud SQL yang akan di-clone
- DESTINATION_INSTANCE_NAME: nama instance yang di-clone
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance sumber dan tujuan
Untuk menjalankan perintah gcloud sql instances clone
, Anda harus memiliki izin cloudsql.instances.clone
. Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan guna menjalankan perintah gcloud CLI, lihat Izin Cloud SQL.
Terraform
Untuk meng-clone instance, gunakan resource Terraform
Menerapkan perubahan
Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka project Google Cloud Anda untuk melihat hasilnya. Di Konsol Google Cloud, buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
Menghapus perubahan
Untuk menghapus perubahan Anda, lakukan langkah-langkah berikut:
- Untuk menonaktifkan perlindungan penghapusan, di file konfigurasi Terraform Anda, tetapkan
argumen
deletion_protection
kefalse
.deletion_protection = "false"
- Terapkan konfigurasi Terraform terbaru dengan menjalankan perintah berikut dan memasukkan
yes
pada perintah:terraform apply
-
Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform destroy
REST v1
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance sumber dan tujuan
- SOURCE_INSTANCE_NAME: nama instance Cloud SQL yang akan di-clone
- DESTINATION_INSTANCE_NAME: nama instance yang di-clone
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
Meminta isi JSON:
{ "cloneContext": { "destinationInstanceName": "DESTINATION_INSTANCE_NAME" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
Untuk menggunakan metode API instances.clone
, Anda harus memiliki izin cloudsql.instances.clone
. Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan untuk menggunakan metode API, lihat Izin Cloud SQL.
REST v1beta4
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance sumber dan tujuan
- SOURCE_INSTANCE_NAME: nama instance Cloud SQL yang akan di-clone
- DESTINATION_INSTANCE_NAME: nama instance yang di-clone
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
Meminta isi JSON:
{ "cloneContext": { "destinationInstanceName": "DESTINATION_INSTANCE_NAME" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
Untuk menggunakan metode API instances.clone
, Anda harus memiliki izin cloudsql.instances.clone
. Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan untuk menggunakan metode API, lihat Izin Cloud SQL.
Membuat clone instance yang tidak tersedia
Konsol
Buat clone instance yang tidak tersedia ke zona lain karena alasan berikut:
- Zona saat ini yang merupakan tempat instance dikonfigurasi tidak dapat diakses. Instance ini memiliki status
FAILED
. - Instance sedang menjalani pemeliharaan. Instance ini memiliki status
MAINTENANCE
.
Untuk membuat clone instance yang tidak tersedia, selesaikan langkah-langkah berikut:
-
Pada konsol Google Cloud, buka halaman Instance Cloud SQL.
- Temukan baris instance yang akan di-clone.
- Di kolom Tindakan, klik menu Tindakan Lainnya.
- Klik Buat clone.
- Di halaman Buat clone, selesaikan tindakan berikut:
- Di kolom ID Instance, perbarui ID instance, jika diperlukan.
- Klik Clone dari titik waktu sebelumnya.
- Di kolom Titik waktu tertentu, pilih tanggal dan waktu yang ingin Anda gunakan untuk melakukan clone data. Hal ini akan memulihkan status instance dari titik waktu tersebut.
- Klik Buat clone.
Selagi clone tersebut melakukan inisialisasi, Anda akan dikembalikan ke halaman listingan instance.
gcloud
Buat clone instance yang tidak tersedia ke zona yang berbeda karena zona saat ini yang merupakan tempat instance dikonfigurasi tidak dapat diakses.
gcloud sql instances clone SOURCE_INSTANCE_NAME TARGET_INSTANCE_NAME \ --point-in-time DATE_AND_TIME_STAMP \ --preferred-zone ZONE_NAME
Pengguna atau akun layanan yang menjalankan gcloud sql instances clone
perintah harus memiliki izin cloudsql.instances.clone
. Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan guna menjalankan perintah gcloud CLI, lihat Izin Cloud SQL.
REST v1
Buat clone instance yang tidak tersedia ke zona yang berbeda karena zona saat ini yang merupakan tempat instance dikonfigurasi tidak dapat diakses.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID project.
- SOURCE_INSTANCE_NAME: nama instance sumber.
- TARGET_INSTANCE_NAME: nama instance target (yang di-clone).
- DATE_AND_TIME_STAMP: stempel tanggal dan waktu untuk instance sumber dalam zona waktu UTC dan dalam format RFC 3339 (misalnya,
2012-11-15T16:19:00.094Z
). - ZONE_NAME: Opsional. Nama zona untuk instance target. Hal ini digunakan untuk menentukan zona berbeda untuk instance Cloud SQL yang ingin Anda clone. Untuk instance regional, zona ini menggantikan zona utama, tetapi zona sekunder tetap sama dengan zona instance.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
Meminta isi JSON:
{ "cloneContext": { "destinationInstanceName": "TARGET_INSTANCE_NAME", "pointInTime": "DATE_AND_TIME_STAMP", "preferredZone": "ZONE_NAME" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
Pengguna atau akun layanan yang menggunakan metode API instances.clone
harus memiliki izin cloudsql.instances.clone
. Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan untuk menggunakan metode API, lihat Izin Cloud SQL.
REST v1beta4
Buat clone instance yang tidak tersedia ke zona yang berbeda karena zona saat ini yang merupakan tempat instance dikonfigurasi tidak dapat diakses.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID project.
- SOURCE_INSTANCE_NAME: nama instance sumber.
- TARGET_INSTANCE_NAME: nama instance target (yang di-clone).
- DATE_AND_TIME_STAMP: stempel tanggal dan waktu untuk instance sumber dalam
zona waktu UTC
dan dalam format RFC 3339
(misalnya,
2012-11-15T16:19:00.094Z
). - ZONE_NAME: Opsional. Nama zona untuk instance target. Hal ini digunakan untuk menentukan zona berbeda untuk instance Cloud SQL yang ingin Anda buat clone-nya. Untuk instance regional, zona ini menggantikan zona utama, tetapi zona sekunder tetap sama dengan instance.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
Meminta isi JSON:
{ "cloneContext": { "destinationInstanceName": "TARGET_INSTANCE_NAME", "pointInTime": "DATE_AND_TIME_STAMP", "preferredZone": "ZONE_NAME" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
Pengguna atau akun layanan yang menggunakan metode API instances.clone
harus memiliki izin cloudsql.instances.clone
. Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan untuk menggunakan metode API, lihat Izin Cloud SQL.
Meng-clone instance yang menggunakan alamat IP internal
Jika instance Cloud SQL menggunakan alamat IP internal, Anda dapat secara opsional menentukan rentang IP yang dialokasikan untuk alamat IP baru clone. Contoh, google-managed-services-default
.
gcloud
Meng-clone instance, yang secara opsional menentukan rentang IP yang dialokasikan yang ingin digunakan:
gcloud sql instances clone SOURCE_INSTANCE_NAME TARGET_INSTANCE_NAME \ --allocated-ip-range-name ALLOCATED_IP_RANGE_NAME
Pengguna atau akun layanan yang menjalankan perintah gcloud sql instances clone
harus memiliki izin cloudsql.instances.clone
. Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan guna menjalankan perintah gcloud CLI, lihat Izin Cloud SQL.
REST v1
Meng-clone instance, yang secara opsional menentukan rentang IP yang dialokasikan yang ingin digunakan:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: project ID
- source-instance-id: ID instance sumber
- target-instance-id: ID instance target
- allocated-ip-range-name: nama rentang IP yang dialokasikan
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/source-instance-id/clone
Meminta isi JSON:
{ "cloneContext": { "destinationInstanceName": "target-instance-id", "allocatedIpRange": "allocated-ip-range-name" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
Pengguna atau akun layanan yang menggunakan metode API instances.clone
harus memiliki izin cloudsql.instances.clone
. Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan untuk menggunakan metode API, lihat Izin Cloud SQL.
REST v1beta4
Meng-clone instance, yang secara opsional menentukan rentang IP yang dialokasikan yang ingin digunakan:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: project ID
- source-instance-id: ID instance sumber
- target-instance-id: ID instance target
- allocated-ip-range-name: nama rentang IP yang dialokasikan
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/source-instance-id/clone
Meminta isi JSON:
{ "cloneContext": { "destinationInstanceName": "target-instance-id", "allocatedIpRange": "allocated-ip-range-name" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
Pengguna atau akun layanan yang menggunakan metode API instances.clone
harus memiliki izin cloudsql.instances.clone
. Untuk informasi selengkapnya tentang izin yang diperlukan untuk menggunakan metode API, lihat Izin Cloud SQL.
Jika Anda tidak menentukan rentang IP yang dialokasikan, perilaku berikut akan diterapkan:
- Jika instance sumber dibuat dengan rentang yang ditentukan, instance yang di-clone akan dibuat dalam rentang yang sama.
- Jika instance sumber tidak dibuat dengan rentang yang ditentukan, instance yang di-clone akan dibuat dalam rentang acak.
Memecahkan masalah
Masalah | Pemecahan masalah |
---|---|
Cloning gagal dengan error constraints/sql.restrictAuthorizedNetworks . |
Operasi cloning diblokir oleh konfigurasi Authorized Networks .
Authorized Networks dikonfigurasi untuk alamat IP publik di bagian Konektivitas
pada konsol Google Cloud, dan cloning tidak diizinkan karena
pertimbangan keamanan.
Hapus semua entri |
Pesan error: Failed to create subnetwork. Couldn't find free
blocks in allocated IP ranges. Please allocate new ranges for this service
provider. Help Token: [help-token-id]. |
Anda mencoba menggunakan Konsol Google Cloud untuk meng-clone instance dengan alamat IP pribadi, tetapi Anda tidak menentukan rentang IP yang dialokasikan yang ingin digunakan dan instance sumber tidak dibuat dengan rentang yang ditentukan. Akibatnya, instance yang di-clone dibuat dalam rentang acak. Gunakan |