Mengonfigurasi lama untuk ketersediaan tinggi

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:

  1. Hapus replika failover di instance MySQL yang ingin Anda update. Untuk mengetahui informasi selengkapnya, lihat Menonaktifkan ketersediaan tinggi pada instance.
  2. 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

  1. 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.

  2. 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

  1. Buat instance utama dan replika failovernya:
    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
    Untuk mengetahui daftar lengkap parameter permintaan, lihat halaman instances:insert.
  2. Ketika instance utama selesai melakukan inisialisasi, perbarui sandi root pada instance utama:
    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'
    Perubahan ini secara otomatis disebarkan ke replika.

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

  1. Periksa status instance utama:
    gcloud sql instances describe PRIMARY_INSTANCE_NAME

    Jika properti databaseReplicationEnabled adalah true, instance tersebut adalah replika; Anda tidak dapat membuat replika failover untuk replika.

  2. Jika properti enabled di bagian backupConfiguration adalah false, 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.

  3. Jika properti binaryLogEnabled adalah false, aktifkan log biner:
    gcloud sql instances patch PRIMARY_INSTANCE_NAME \
    --enable-bin-log

    Mengaktifkan log biner akan menyebabkan instance dimulai ulang.

  4. Buat replika:
    gcloud sql instances create FAILOVER_REPLICA_NAME \
    --master-instance-name=PRIMARY_INSTANCE_NAME \
    --replica-type=FAILOVER

curl

  1. 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
    }
    
  2. Jika enabled ataubinaryLogEnabled adalah false, gunakan metode patch resource instance untuk mengaktifkan keduanya. Tentukan properti konfigurasi pencadangan yang ingin dipertahankan dan yang ingin Anda rubah.

    Untuk mengaktifkan pencadangan, tetapkan enabled ke true dan startTime ke nilai yang merupakan awal dari jendela pencadangan. Untuk mengaktifkan logging biner, tetapkan binaryLogEnabled ke true.

    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/
  3. 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

  1. 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
  2. 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

  1. Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih Alerting.
  2. Klik Buat Alerting Policy.
  3. Masukkan nama deskriptif untuk notifikasi Anda.
  4. Pilih Metric Threshold adan klik Next untuk membuka tab Target.
  5. Untuk Jenis Resource, pilih Cloud SQL.
  6. Untuk Berlaku Untuk, pilih Sekali, lalu pilih failover replika.
  7. Klik Next untuk membuka tab Konfigurasi.
  8. 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

  9. 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:

  1. Di konsol Google Cloud, buka halaman Monitoring.

    Buka Monitoring

  2. Dari panel menu atas, pilih Grup > Buat....
  3. Masukkan nama deskriptif untuk grup Anda.
  4. Biarkan Nama dan Isi pilih, dan masukkan substring nama Anda.
  5. Klik Simpan Grup. Halaman ringkasan untuk grup baru dibuka.
  6. Pastikan instance yang diharapkan sudah disertakan dalam grup.

Buat pemberitahuan untuk replika failover tertentu:

  1. Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih Alerting.
  2. Klik Buat Alerting Policy.
  3. Masukkan nama deskriptif untuk notifikasi grup Anda.
  4. Pilih Metric Threshold adan klik Next untuk membuka tab Target.
  5. Untuk Jenis Resource, pilih Cloud SQL.
  6. Untuk Berlaku Untuk, pilih Grup, lalu pilih grup failover Anda.
  7. Biarkan Pelanggaran Anggota dipilih, lalu klik Berikutnya untuk membuka tab Konfigurasi.
  8. 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

  9. 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

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Pilih instance failover yang terkait dengan instance yang ingin Anda nonaktifkan ketersediaan tingginya.
  3. Di halaman detail Instance, klik Hapus.
  4. Di jendela Hapus Replika, ketik ulang nama instance failover.
  5. Klik Delete. Konfigurasi untuk instance asli berubah menjadi zona.

gcloud

Guna mengetahui informasi referensi, lihat gcloud sql instances delete.
gcloud sql instances delete FAILOVER_REPLICA_NAME

curl

Permintaan berikut menggunakan metode instances: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