Halaman ini menjelaskan cara mengonfigurasi instance untuk ketersediaan tinggi.
Anda dapat mengonfigurasi instance untuk ketersediaan tinggi saat membuat instance, atau Anda dapat mengaktifkan ketersediaan tinggi pada instance yang sudah ada.
Untuk informasi selengkapnya tentang ketersediaan tinggi, lihat Ringkasan konfigurasi ketersediaan tinggi.
Membuat instance baru yang dikonfigurasi untuk ketersediaan tinggi
Saat Anda membuat instance dan mengonfigurasinya untuk Cloud SQL akan membuatnya sebagai instance regional.
Untuk membuat instance yang dikonfigurasi untuk ketersediaan tinggi:
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Pilih Create instance.
- Pilih mesin database.
- Pada bagian Pilih ketersediaan region dan zona, pilih Beberapa zona (Ketersediaan tinggi).
- Luaskan Specify zones.
- Pilih zona primer dan sekunder. Kondisi berikut
berlaku jika zona sekunder merupakan zona yang digunakan selama pembuatan atau pengeditan instance:
- Zona secara default ditetapkan ke zona primer
Any
danAny (different from primary)
untuk zona sekunder.
Jika zona primer dan sekunder sudah ditentukan, maka kedua zona tersebut pasti merupakan zona yang berbeda.
- Zona secara default ditetapkan ke zona primer
- Klik Simpan.
Anda akan dikembalikan ke halaman instance untuk instance utama sementara instance tersebut sedang diperbarui.
gcloud
- Membuat instance regional:
gcloud sql instances create REGIONAL_INSTANCE_NAME \ --availability-type=REGIONAL \ --database-version=SQLSERVER_2017_STANDARD \ --cpu=NUMBER_CPUS \ --memory=MEMORY_SIZE
- Mengonfigurasikan pengguna root:
gcloud sql users set-password root no-host \ --instance=REGIONAL_INSTANCE_NAME \ --password=PASSWORD
Terraform
Untuk membuat instance dengan ketersediaan tinggi, 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 dengan menjalankan perintah berikut dan
memasukkan
yes
pada prompt:terraform apply
-
Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform destroy
REST v1
Untuk mengetahui daftar lengkap parameter permintaan, lihat halaman instances:insert.Membuat instance regional.
-
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
- project-id: ID Project
- instance-name: Nama instance
- database-version: String enum versi database
- region Region GCP
- machine-type Jenis mesin
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
Meminta isi JSON:
{ "name": "instance-name", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "backupConfiguration": { "enabled": true }, "availabilityType": "REGIONAL" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Setelah instance selesai melakukan inisialisasi, update sandi root pada
instance:
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
- password: Sandi pengguna root yang baru
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?host=%25&name=sqlserver'
Meminta isi JSON:
{ "name": "sqlserver", "host": "nohost", "password": "password"}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima kode status yang menandakan proses berhasil (2xx), dan sebuah respons kosong.
REST v1beta4
Untuk mengetahui daftar lengkap parameter permintaan (request), lihat halaman instances:insert.Membuat instance regional.
-
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
- project-id: ID Project
- instance-name: Nama instance
- database-version: String enum versi database
- region Region GCP
- machine-type Jenis mesin
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances
Meminta isi JSON:
{ "name": "instance-name", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "backupConfiguration": { "enabled": true }, "availabilityType": "REGIONAL" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
- Setelah instance selesai melakukan inisialisasi, update sandi root pada
instance:
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
- password: Sandi pengguna root yang baru
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=%25&name=sqlserver'
Meminta isi JSON:
{ "name": "sqlserver", "host": "nohost", "password": "password"}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima kode status berhasil (2xx) dan suatu respons kosong.
Untuk detail selengkapnya tentang cara membuat instance, lihat Membuat Instance.
Mengonfigurasi instance yang sudah ada untuk ketersediaan tinggi
Anda dapat mengonfigurasi instance Cloud SQL untuk ketersediaan tinggi menggunakan konsol Google Cloud, gcloud CLI, atau API.
Konsol
Untuk mengonfigurasi instance untuk ketersediaan tinggi:
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Edit.
- Di bagian opsi konfigurasi Pencadangan dan ketersediaan tinggi otomatis, pilih Ketersediaan tinggi (region). Sebaiknya, Anda juga mengaktifkan Otomatisasi pencadangan.
- Klik Simpan.
gcloud
Untuk mengonfigurasi instance menjadi instance ketersediaan tinggi regional, gunakan perintah gcloud sql instances patch
:
gcloud sql instances patch INSTANCE_NAME \ --availability-type REGIONAL
Ganti INSTANCE_NAME dengan nama instance Cloud SQL yang Anda konfigurasi untuk ketersediaan tinggi.
REST v1
Untuk mengonfigurasi instance menjadi instance ketersediaan tinggi regional:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance yang Anda konfigurasi untuk ketersediaan tinggi
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Meminta isi JSON:
{ "settings": {"availabilityType": "REGIONAL" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima kode status yang menandakan proses berhasil (2xx), dan sebuah respons kosong.
REST v1beta4
Untuk mengonfigurasi instance menjadi instance ketersediaan tinggi regional:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance yang Anda konfigurasi untuk ketersediaan tinggi
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Meminta isi JSON:
{ "settings": {"availabilityType": "REGIONAL" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima kode status yang menandakan proses berhasil (2xx), dan sebuah respons kosong.
Memulai failover
Pengujian failover bersifat opsional, tetapi sebaiknya Anda lakukan agar dapat melihat respons aplikasi jika terjadi failover.
Untuk mempelajari tentang failover lebih lanjut, lihat Ringkasan failover.
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Failover.
- Pada kotak dialog Picu failover secara manual, masukkan ID instance Anda di kolom teks, lalu klik Picu Failover.
gcloud
Memulai failover:
gcloud sql instances failover PRIMARY_INSTANCE_NAME
REST v1
- Tentukan instance utama untuk mendapatkan nilai dari kolom
settingsVersion
.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance yang Anda konfigurasi untuk ketersediaan tinggi
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip seperti berikut:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
- Memulai failover:
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
- project-id: ID Project
- instance-name: Nama instance
- settings-version: settingsVersion dari instanceInfo
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-name/failover
Meminta isi JSON:
{ "failoverContext": { "settingsVersion":"settings-version" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
REST v1beta4
- Tentukan instance utama untuk mendapatkan nilai dari kolom
settingsVersion
.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance yang Anda konfigurasi untuk ketersediaan tinggi
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip seperti berikut:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
- Memulai failover:
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
- project-id: ID Project
- instance-name: Nama instance
- settings-version: settingsVersion dari instanceInfo
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-name/failover
Meminta isi JSON:
{ "failoverContext": { "settingsVersion":"settings-version" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Instance akan mengalami kegagalan (failover) sementara dan tidak dapat menyajikan data selama beberapa menit.
Memverifikasi konfigurasi ketersediaan tinggi pada instance
Untuk memverifikasi bahwa sebuah instance memiliki ketersediaan tinggi dan untuk melihat zona-zona tempat instance berjalan:
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pastikan setelan ketersediaan tinggi berikut ditampilkan di bagian Konfigurasi:
- Sangat tersedia (regional)
- Berlokasi di menampilkan zona primer instance saat ini.
gcloud
gcloud sql instances describe INSTANCE_NAME
Outputnya akan menunjukkan bahwa availabilityType
adalah REGIONAL
.
Kolom gceZone
dan secondaryGceZone
menampilkan
zona primer dan sekunder saat ini dari instance tersebut.
REST v1
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip seperti berikut:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
Outputnya akan menunjukkan bahwa availabilityType
adalah REGIONAL
.
Kolom gceZone
dan secondaryGceZone
menampilkan
zona primer dan sekunder saat ini dari instance tersebut.
REST v1beta4
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip seperti berikut:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2017_STANDARD", }
Outputnya akan menunjukkan bahwa availabilityType
adalah REGIONAL
.
Kolom gceZone
dan secondaryGceZone
menampilkan
zona primer dan sekunder saat ini dari instance tersebut.
Mengubah zona instance ketersediaan tinggi
Mengubah salah satu atau kedua zona dari instance ketersediaan tinggi yang sudah ada akan menyebabkan periode nonaktif selama beberapa menit saat instance dikonfigurasi ulang. Untuk melihat zona primer dan sekunder saat ini, yang mana tempat instance ketersediaan tinggi dijalankan, lihat Memverifikasi konfigurasi ketersediaan tinggi sebuah instance.
Untuk mengubah zona instance ketersediaan tinggi:
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Edit.
- Di bagian Pilih ketersediaan region dan zona, luaskan
Tentukan zona lalu pilih zona baru. Zona secara default ditetapkan ke
Any
untuk zona primer danAny (different from primary)
untuk zona sekunder. Berikut adalah beberapa aturan yang berlaku:- Anda dapat menentukan hanya zona primer saja, atau zona primer dan sekunder.
- Jika zona primer dan sekunder ditentukan, kedua zona tersebut harus berbeda.
- Klik Simpan.
Anda akan dikembalikan ke halaman instance untuk instance utama sementara instance tersebut sedang diperbarui.
gcloud
Ubah zona tempat instance berjalan:
gcloud sql instances patch INSTANCE_NAME \ --zone=PRIMARY_ZONE --secondary-zone=SECONDARY_ZONE
Parameter --secondary-zone
bersifat opsional. Jika Anda menghapusnya,
Cloud SQL akan memilih zona tersedia yang berbeda dari
zona primer.
Berikut adalah beberapa aturan yang berlaku:
- Zona harus berupa zona yang valid dari region yang sama dengan instance Cloud SQL.
- Jika zona sekunder ditentukan, maka harus berbeda dari zona primer.
REST v1
Ubah zona instance regional:
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID Project
- INSTANCE_NAME: Nama instance
- PRIMARY_ZONE: Zona primer
- SECONDARY_ZONE: Zona sekunder
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Meminta isi JSON:
{ "settings": {"locationPreference": {"zone": "PRIMARY_ZONE", "secondaryZone": "SECONDARY_ZONE"}} }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima kode status yang menandakan proses berhasil (2xx), dan sebuah respons kosong.
Parameter
secondaryZone
bersifat opsional. Jika Anda menghapusnya, Cloud SQL akan memilih zona tersedia yang berbeda dari zona primer.Berikut adalah beberapa aturan yang berlaku:
- Zona harus berupa zona yang valid.
- Zona apa pun yang Anda pilih harus berada di region yang sama dengan instance Cloud SQL.
REST v1beta4
Ubah zona instance regional:
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID Project
- INSTANCE_NAME: Nama instance
- PRIMARY_ZONE: Zona primer
- SECONDARY_ZONE: Zona sekunder
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Meminta isi JSON:
{ "settings": {"locationPreference": {"zone": "PRIMARY_ZONE", "secondaryZone": "SECONDARY_ZONE"}} }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima kode status yang menandakan proses berhasil (2xx), dan sebuah respons kosong.
Parameter
secondaryZone
bersifat opsional. Jika Anda menghapusnya, Cloud SQL akan memilih zona tersedia yang berbeda dari zona primer.Berikut adalah beberapa aturan yang berlaku:
- Zona harus berupa zona yang valid.
- Zona apa pun yang Anda pilih harus berada di region yang sama dengan instance Cloud SQL.
Menonaktifkan ketersediaan tinggi untuk instance
Anda dapat menonaktifkan ketersediaan tinggi untuk instance Cloud SQL menggunakan konsol Google Cloud, gcloud CLI, atau API.
Konsol
Untuk menonaktifkan ketersediaan tinggi untuk instance:
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Edit.
- Buka Pencadangan otomatis.
- Di bagian Ketersediaan, klik Zona tunggal.
- Klik Simpan. Pengeditan ini mengharuskan Anda memulai ulang instance.
- Saat dialog muncul, klik Simpan dan mulai ulang.
gcloud
Untuk menonaktifkan ketersediaan tinggi untuk instance, gunakan perintah gcloud sql instances patch
:
gcloud sql instances patch INSTANCE_NAME \ --availability-type ZONAL
Ganti INSTANCE_NAME dengan nama instance Cloud SQL yang ketersediaan tingginya Anda nonaktifkan.
REST v1
Untuk mengubah jenis ketersediaan instance menjadi ZONAL
, gunakan metode instances:patch
. Metode ini menonaktifkan ketersediaan tinggi untuk instance.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance yang Anda nonaktifkan ketersediaan tinggi
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Meminta isi JSON:
{ "settings": {"availabilityType": "ZONAL" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima kode status yang menandakan proses berhasil (2xx), dan sebuah respons kosong.
REST v1beta4
Untuk mengubah jenis ketersediaan instance menjadi ZONAL
, gunakan metode instances:patch
. Metode ini menonaktifkan ketersediaan tinggi untuk instance.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance yang Anda nonaktifkan ketersediaan tinggi
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Meminta isi JSON:
{ "settings": {"availabilityType": "ZONAL" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima kode status yang menandakan proses berhasil (2xx), dan sebuah respons kosong.
Memecahkan masalah
Masalah | Pemecahan masalah |
---|---|
Anda tidak dapat menemukan metrik untuk failover manual. | Hanya failover otomatis yang masuk ke metrik. |
Penggunaan resource instance Cloud SQL (CPU dan RAM) mendekati 100%, sehingga instance ketersediaan tinggi mengalami gangguan. | Ukuran mesin instance terlalu kecil untuk beban tersebut.
Edit instance untuk mengupgrade ke ukuran mesin yang lebih besar agar mendapatkan lebih banyak CPU dan memori. |
Langkah berikutnya
- Pelajari lebih lanjut cara kerja konfigurasi ketersediaan tinggi.
- Uji bagaimana aplikasi Anda merespons ke koneksi yang terputus dengan memulai ulang instance Anda.
- Pelajari lebih lanjut cara mengelola koneksi database.
- Pelajari Google Cloud Observability lebih lanjut.