Halaman ini menjelaskan konfigurasi lama untuk instance MySQL untuk ketersediaan tinggi (HA).
Dalam konfigurasi HA lama, instance Cloud SQL untuk MySQL menggunakan replika failover untuk menambahkan ketersediaan tinggi ke instance. Fitur ini tidak tersedia di konsol Google Cloud. Konfigurasi yang direkomendasikan tidak menggunakan replika failover. Sebagai gantinya, sistem ini menggunakan persistent disk regional Google, yang secara sinkron mereplikasi data pada tingkat blok diantara dua zona dalam satu region.
Untuk informasi lebih lanjut mengenai konfigurasi ketersediaan tinggi saat ini, lihat Ringkasan Konfigurasi Ketersediaan Tinggi.
Memperbarui instance dari ketersediaan lama ke ketersediaan tinggi terbaru
Guna mengupdate instance dari konfigurasi lama ke konfigurasi ketersediaan tinggi yang baru, lakukan langkah berikut:
- Hapus replika failover di instance MySQL yang ingin Anda update. Untuk mengetahui informasi selengkapnya, lihat Menonaktifkan ketersediaan tinggi pada instance.
- Konfigurasi instance untuk menggunakan versi ketersediaan tinggi terbaru. Untuk informasi selengkapnya, lihat Mengonfigurasi instance yang ada untuk ketersediaan tinggi.
Konfigurasi lama: Membuat instance baru yang dikonfigurasi untuk ketersediaan tinggi
Saat membuat instance, Anda dapat mengonfigurasinya untuk ketersediaan tinggi; Cloud SQL membuat replika failover secara bersamaan dengan membuat replika utama. Fitur lama tidak tersedia di konsol Google Cloud. Sebagai gantinya, gunakan perintah gcloud CLI atau cURL.
Untuk membuat instance yang dikonfigurasi untuk ketersediaan tinggi:
gcloud
- Buat instance utama dan replika failovernya:
gcloud sql instances create PRIMARY_INSTANCE_NAME \ --backup-start-time=BACKUP_WINDOW_START_TIME \ --failover-replica-name=FAILOVER_REPLICA_NAME \ --cpu=CPU \ --database-version=DATABASE_VERSION \ --memory=MEMORY \ --enable-bin-log
Waktu mulai periode pencadangan menggunakan format
HH:MM
.Pastikan Anda mengganti placeholder DATABASE_VERSION dengan MySQL 5.6 atau MySQL 5.7 (
--database-version=MYSQL_5_6
atau
--database-version=MYSQL_5_7
).Jika Anda tidak menentukan versi untuk parameter
database-version
, maka MySQL 8.0 akan dipilih, secara default. Konfigurasi lama ketersediaan tinggi pada MySQL tidak mendukung versi 8.0.Guna mengetahui daftar lengkap parameter yang tersedia, baca halaman referensi membuat instances gcloud sql.
- Konfigurasikan pengguna root pada instance utama:
gcloud sql users set-password root --host=% \ --instance PRIMARY_INSTANCE_NAME \ --password PASSWORD
Replika failover dibuat dengan CPU dan MEMORY yang sama sebagai instance utama. Anda dapat mengubah CPU dan MEMORY replika failover nanti, tetapi ukurannya setidaknya harus sebesar instance utama.
curl
- Buat instance utama dan replika failovernya:
Untuk mengetahui daftar lengkap parameter permintaan, lihat halaman instances:insert.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"name":"PRIMARY_INSTANCE_NAME", "region":"REGION", "settings": { "tier":"MACHINE_TYPE", "backupConfiguration": {"binaryLogEnabled": true, "enabled": true}}, "failoverReplica": {"name": "FAILOVER_REPLICA_NAME"}}' \ -X POST \ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances
-
Ketika instance utama selesai melakukan inisialisasi, perbarui sandi root pada
instance utama:
Perubahan ini secara otomatis disebarkan ke replika.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"name": "root", "host": "%", "password": "ROOT_PASSWORD"}' \ 'https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_NAME/users?host=%25&name=root'
Konfigurasi lama: Mengonfigurasi instance yang sudah ada untuk ketersediaan tinggi
Mengonfigurasi instance yang ada untuk ketersediaan tinggi akan menyebabkan periode nonaktif selama beberapa menit saat instance dikonfigurasi ulang.
Untuk mengonfigurasi instance yang ada untuk ketersediaan tinggi:
gcloud
- Periksa status instance utama:
gcloud sql instances describe PRIMARY_INSTANCE_NAME
Jika properti
databaseReplicationEnabled
adalahtrue
, instance tersebut adalah replika; Anda tidak dapat membuat replika failover untuk replika. - Jika properti
enabled
di bagianbackupConfiguration
adalahfalse
, aktifkan pencadangan untuk instance utama sekarang:gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --backup-start-time HH:MM
Parameter
backup-start-time
ditetapkan dalam waktu 24 jam, dalam zona waktu UTC±00, dan menentukan waktu mulai pencadangan 4 jam. backup window. Pencadangan dapat dimulai kapan saja selama periode pencadangan. - Jika properti
binaryLogEnabled
adalahfalse
, aktifkan log biner:gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --enable-bin-log
Mengaktifkan log biner akan menyebabkan instance dimulai ulang.
- Buat replika:
gcloud sql instances create FAILOVER_REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --replica-type=FAILOVER
curl
- Periksa status instance utama:
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ -X GET \ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME?fields=settings
Output-nya akan berisi
backupConfiguration
, misalnya:"backupConfiguration": { "kind": "sql#backupConfiguration", "startTime": "12:00", "enabled": true, "binaryLogEnabled": true }
- Jika
enabled
ataubinaryLogEnabled
adalahfalse
, gunakan metodepatch
resource instance untuk mengaktifkan keduanya. Tentukan properti konfigurasi pencadangan yang ingin dipertahankan dan yang ingin Anda rubah.Untuk mengaktifkan pencadangan, tetapkan
enabled
ketrue
danstartTime
ke nilai yang merupakan awal dari jendela pencadangan. Untuk mengaktifkan logging biner, tetapkanbinaryLogEnabled
ketrue
.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"settings" : {"backupConfiguration" : {"startTime": "HH:MM", "enabled": true, "binaryLogEnabled": true}}}' \ -X PATCH \ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME/
-
Gunakan metode
insert
dari resource instance untuk membuat replika failover.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"name": "REPLICA_NAME", "masterInstanceName": "PRIMARY_INSTANCE_NAME", "region": "PRIMARY_IMSTANCE_REGION", "databaseVersion": "PRIMARY_DATABASE_VERSION", "replicaConfiguration": {"failoverTarget": true}, "settings": {"tier":"MACHINE_TYPE"}}' \ -X POST \ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances
MACHINE_TYPE
minimal harus sebesar jenis mesin instance utama.
Memulai failover
Pengujian failover bersifat opsional, tetapi sebaiknya Anda lakukan agar dapat melihat respons aplikasi jika terjadi failover.
Untuk mempelajari failover lebih lanjut, lihat Ringkasan failover.
gcloud
Mulai failover:
gcloud sql instances failover PRIMARY_INSTANCE_NAME
curl
- Deskripsikan instance utama untuk mendapatkan nilai kolom
settingsVersion
.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ -X GET \ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME
- Mulai failover:
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"failoverContext":{"settingsVersion":"SETTINGS_VERSION"}}' \ -X POST \ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME/failover
Instance akan mengalami kegagalan dan tidak dapat menyajikan data selama beberapa menit.
Konfigurasi lama: Membuat pemberitahuan untuk jeda replikasi
Waktu yang diperlukan untuk operasi failover bergantung pada jumlah keterlambatan replikasi saat failover dimulai. Anda dapat menggunakan Cloud Monitoring di Konsol Google Cloud untuk memberi tahu Anda saat jeda replikasi melebihi batas.
Untuk informasi selengkapnya tentang jeda replikasi, telusuri "seconds_behind_master" di halaman SHOW SLAVE STATUS Syntax dalam dokumentasi MySQL.
Untuk mengetahui informasi selengkapnya tentang Cloud Monitoring, lihat dokumentasi Cloud Monitoring.
Konfigurasi lama: Menetapkan pemberitahuan untuk replika failover tertentu
- Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih Alerting.
- Klik Buat Alerting Policy.
- Masukkan nama deskriptif untuk notifikasi Anda.
- Pilih Metric Threshold adan klik Next untuk membuka tab Target.
- Untuk Jenis Resource, pilih Cloud SQL.
- Untuk Berlaku Untuk, pilih Sekali, lalu pilih failover replika.
- Klik Next untuk membuka tab Konfigurasi.
Masukkan nilai berikut:
Kolom Nilai Jika Metrik Beberapa detik di belakang master Kondisi di atas Batas 120 (atau nilai berapa pun yang sesuai untuk lingkungan Anda) Untuk 3 menit Pilih metode Notifikasi, lalu klik Simpan Kondisi.
Konfigurasi lama: Menetapkan pemberitahuan untuk grup replika failover
Jika Anda berencana membuat beberapa replika failover dalam project yang sama, akan lebih mudah menyetel pemberitahuan untuk seluruh grup, daripada setiap replika failover satu per satu. Guna membuat grup untuk pemantauan, gunakan akhiran untuk nama replika failover, seperti "-failover". Pastikan Anda tidak menggunakan akhiran ini untuk jenis instance Cloud SQL lainnya.
Buat grup replika failover Anda:
-
Di konsol Google Cloud, buka halaman Monitoring.
- Dari panel menu atas, pilih Grup > Buat....
- Masukkan nama deskriptif untuk grup Anda.
- Biarkan Nama dan Isi pilih, dan masukkan substring nama Anda.
- Klik Simpan Grup. Halaman ringkasan untuk grup baru dibuka.
- Pastikan instance yang diharapkan sudah disertakan dalam grup.
Buat pemberitahuan untuk replika failover tertentu:
- Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih Alerting.
- Klik Buat Alerting Policy.
- Masukkan nama deskriptif untuk notifikasi grup Anda.
- Pilih Metric Threshold adan klik Next untuk membuka tab Target.
- Untuk Jenis Resource, pilih Cloud SQL.
- Untuk Berlaku Untuk, pilih Grup, lalu pilih grup failover Anda.
- Biarkan Pelanggaran Anggota dipilih, lalu klik Berikutnya untuk membuka tab Konfigurasi.
Masukkan nilai berikut:
Kolom Nilai Jika Metrik Beberapa detik di belakang master Kondisi di atas Batas 120 (atau nilai berapa pun yang sesuai untuk lingkungan Anda) Untuk 3 menit Pilih metode Notifikasi yang diinginkan, lalu klik Simpan Kondisi.
Konfigurasi lama: Menonaktifkan ketersediaan tinggi pada instance
Anda harus menghapus instance replika failover untuk menghapus ketersediaan tinggi dari instance utama.
Sebelum melakukan prosedur ini, pastikan tidak ada operasi yang sedang berjalan pada instance utama.
Guna menonaktifkan ketersediaan tinggi:
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Pilih instance failover yang terkait dengan instance yang ingin Anda nonaktifkan ketersediaan tingginya.
- Di halaman detail Instance, klik Hapus.
- Di jendela Hapus Replika, ketik ulang nama instance failover.
- Klik Delete. Konfigurasi untuk instance asli berubah menjadi zona.
gcloud
Guna mengetahui informasi referensi, lihatgcloud sql instances delete
.
gcloud sql instances delete FAILOVER_REPLICA_NAME
curl
Permintaan berikut menggunakan metodeinstances:delete
untuk menghapus instance.
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json'\ -X DELETE\ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_NAME
Langkah berikutnya
- Pelajari lebih lanjut cara kerja konfigurasi ketersediaan tinggi.
- Uji cara aplikasi Anda merespons koneksi yang terputus dengan memulai ulang instance Anda.
- Pelajari lebih lanjut cara mengelola koneksi database.
- Pelajari Cloud Monitoring lebih lanjut.
- Buat replika baca untuk instance Anda.