Replikasi adalah kemampuan untuk membuat salinan instance Cloud SQL atau database lokal, dan melimpahkan tugas ke salinan.
Pengantar
Alasan utama menggunakan replikasi adalah untuk menskalakan penggunaan data dalam database tanpa menurunkan performa.
Alasan lainnya meliputi:
- Memigrasikan data antar region
- Memigrasikan data antar platform
- Memigrasikan data dari database lokal ke Cloud SQL
Selain itu, replika dapat dipromosikan jika instance yang asli rusak.
Saat merujuk ke instance Cloud SQL, instance yang direplikasi disebut instance utama dan salinannya disebut replika baca. Instance utama dan replika baca berada di Cloud SQL.
Saat merujuk ke database lokal, skenario replikasi disebut mereplikasi dari server eksternal. Dalam skenario ini, database yang direplikasi adalah server database sumber. Salinan yang berada di Cloud SQL disebut replika Cloud SQL. Ada juga instance yang mewakili server database sumber di Cloud SQL yang disebut instance representasi sumber.
Dalam skenario pemulihan dari bencana (disaster recovery), Anda dapat mempromosikan replika untuk mengonversinya menjadi instance utama. Dengan demikian, Anda dapat menggunakannya sebagai pengganti instance yang berada di region yang mengalami pemadaman. Anda juga dapat mempromosikan replika untuk mengganti instance yang rusak.
Cloud SQL mendukung jenis replika berikut:
- Replika baca
- Replika baca lintas region
- Replika baca bertingkat
- Replika baca eksternal
- Replika Cloud SQL, saat mereplikasi dari server eksternal
Cloud SQL tidak mendukung replikasi antara dua server eksternal. Namun, Cloud SQL mendukung replikasi berbasis ID transaksi global (GTID). GTID secara unik mengidentifikasi setiap transaksi di server dan dalam penyiapan replikasi. Karena setiap transaksi memiliki ID yang unik, server MySQL dapat melacak transaksi yang telah dijalankannya. GTID menggunakan koordinat absolut sehingga replika instance Cloud SQL dapat mengarah ke instance utamanya, dan Anda tidak perlu menentukan nama file untuk log biner atau posisi dalam pernyataan CHANGE MASTER
. Error dengan replika dan dengan pemulihan point-in-time akan lebih sedikit. Karena manfaat ini, Anda tidak dapat menonaktifkan replikasi berbasis GTID di Cloud SQL.
Replika baca
Anda dapat menggunakan replika baca untuk mengalihkan tugas dari instance Cloud SQL. Replika baca adalah salinan tepat dari instance utama. Data dan perubahan lain pada instance utama diperbarui hampir secara real time pada replika baca.
Replika baca bersifat hanya-baca, Anda tidak dapat menulis apapun di dalamnya. Replika baca memproses kueri, permintaan baca, dan traffic analisis, sehingga mengurangi beban pada instance utama.
Anda menghubungkan ke replika secara langsung menggunakan nama koneksi dan alamat IP tersebut. Jika Anda terhubung ke replika menggunakan alamat IP pribadi, Anda tidak perlu membuat koneksi pribadi VPC tambahan untuk replika tersebut karena koneksi tersebut sudah diberikan oleh instance utama.
Untuk informasi lebih lanjut tentang cara membuat replika baca, lihat Membuat replika baca. Untuk informasi lebih lanjut tentang cara mengelola replika baca, lihat Mengelola replika baca.
Sebagai praktik terbaik, letakkan replika baca di zona yang berbeda dengan instance utama saat Anda menggunakan HA pada instance utama. Praktik ini memastikan bahwa replika baca terus beroperasi saat zona yang berisi instance utama mengalami pemadaman. Lihat Ringkasan ketersediaan tinggi untuk informasi lebih lanjut.
Memilih jenis mesin yang sesuai
Replika baca dapat memiliki jenis mesin yang berbeda dari yang utama. Anda harus memantau metrik pada instance seperti penggunaan memori dan CPU untuk memastikan bahwa instance replika berukuran tepat sesuai beban kerjanya, terutama apabila ukurannya lebih kecil daripada instance utama. Instance replika yang berukuran kecil lebih rentan terhadap performa buruk, seperti peristiwa kehabisan memori (OOM) yang sering terjadi.
Replika baca lintas region
Replikasi lintas region memungkinkan Anda membuat replika baca di region yang berbeda dari instance utama. Anda membuat replika baca lintas region dengan cara yang sama seperti saat Anda membuat replika dalam region.
Replika lintas region:
- Tingkatkan performa baca dengan membuat replika tersedia lebih dekat dengan region aplikasi Anda.
- Menyediakan kemampuan pemulihan dari bencana tambahan untuk mencegah kegagalan regional.
- Memungkinkan Anda memigrasikan data dari satu region ke region lainnya.
Lihat Mempromosikan replika untuk migrasi regional atau pemulihan dari bencana untuk informasi lebih lanjut tentang replika lintas region.
Replika baca bertingkat
Replikasi bertingkat memungkinkan Anda membuat replika baca di bawah replika baca lain di region yang sama atau berbeda. Berikut adalah beberapa kasus penggunaan replika bertingkat:
- Pemulihan dari bencana (disaster recovery): Anda dapat menggunakan hierarki bertingkat replika baca untuk menyimulasikan topologi instance utama Anda dan replika bacanya. Selama pemadaman, replika baca yang Anda pilih akan dipromosikan menjadi replika baca utama dan replika baca di bawah replika baca utama yang baru akan terus mereplikasikan dan siap digunakan.
- Peningkatan performa: Mengurangi beban pada instance utama dengan mengurangi beban tugas replikasi ke beberapa replika baca.
- Pembacaan Skala: Anda dapat memiliki lebih banyak replika untuk membagikan beban baca.
- Pengurangan biaya: Menggunakan satu replika bertingkat dengan replikasi lintas region di region lain dapat mengurangi biaya jaringan Anda.
Terminologi
- Replika bertingkat: Replika baca yang memiliki replikanya sendiri.
- Level: Anda dapat membuat level replika dalam hierarki replika bertingkat. Misalnya, jika Anda menambahkan empat replika ke suatu instance, keempat replika tersebut berada di level yang sama.
- Instance yang seinduk: Beberapa replika yang mereplikasi dari instance utama yang sama. Instance yang seinduk berada di level yang sama dalam hierarki replika. Sebuah replika secara resmi dapat memiliki hingga sembilan instance yang sama.
- Replika daun: Replika baca yang tidak memiliki replikanya sendiri. Dalam hierarki replikasi multilevel, replika daun berada di level terakhir.
- Promosi: Tindakan yang mengonversi replika, di level apa pun dalam hierarki, menjadi instance utama. Saat dipromosikan, hierarki replika bertingkat akan dipertahankan.
Mengonfigurasi replika bertingkat
Replika bertingkat memungkinkan Anda menambahkan replika baca ke replika yang ada. Anda dapat menambahkan hingga empat level replika, termasuk instance utama. Saat Anda mempromosikan replika di bagian atas hierarki replika bertingkat, replika tersebut menjadi instance utama dan replika bertingkatnya terus mereplikasi.
Untuk merencanakan konfigurasi, Anda perlu memiliki sasaran terkait apa yang akan dilakukan oleh replika baca. Dua bagian berikutnya akan menjelaskan konfigurasi untuk pemulihan dari bencana (disaster recovery) dan replika multi-region.
Pemulihan dari bencana
Untuk memahami cara replika bertingkat membantu Anda pulih dengan cepat selama pemadaman, pertimbangkan skenario replikasi berikut:
Konfigurasi
Penonaktifan, layanan nonaktif
Promotion
Jika Anda ingin menggunakan instance di Region B dalam konfigurasi pemulihan dari bencana (disaster recovery) dan memiliki:
- Replika di region yang sama dilampirkan ke instance utama (Replika A)
- Replika di region lain (Replika Bertingkat) yang dilampirkan ke instance utama.
Anda dapat membuat replika baca di bawah replika bertingkat di Region B.
Pada tab Pemadaman, jika terjadi pemadaman di Region A, replika bertingkat akan dipromosikan menjadi instance utama. Replika bertingkat sudah memiliki replika baca di bawahnya, mengurangi batas waktu pemulihan (RTO).
Pada tab Promosi, Anda melihat bahwa saat replika bertingkat dipromosikan, replikanya juga dipromosikan dan terus mereplikasi di bawahnya.
Replikasi multi-region
Kasus penggunaan lain untuk replika bertingkat adalah mendistribusikan kapasitas baca ke region kedua dengan cara yang hemat biaya. Replika bertingkat C dan D dapat dibuat replikasi dari Replika B. Klien dapat mendistribusikan kueri baca di seluruh replika B, C, dan D untuk mengurangi beban pada setiap replika. Biaya traffic jaringan lintas region hanya dikeluarkan satu kali, dari instance utama ke Replika B. Replikasi dari B ke C dan D menggunakan transfer jaringan dalam region yang gratis.
Anda dapat membuat hierarki hingga empat instance menggunakan replika bertingkat untuk replikasi multi-region:
Utama A → Replika B → Replika C dan Replika D
Pembatasan
- Anda tidak dapat menghapus replika yang memiliki replika di bawahnya. Untuk menghapus replika, Anda harus memulai dengan replika daun dan melanjutkan ke atas melalui hierarki.
- Dependensi region melingkar tidak didukung. Untuk memiliki replika dari replika bertingkat di region yang sama dengan instance utama, replika bertingkat juga harus berada di region yang sama.
Replika baca eksternal
Replika baca eksternal adalah instance MySQL eksternal yang mereplikasi dari instance utama Cloud SQL. Misalnya, instance MySQL yang berjalan di Compute Engine dianggap sebagai instance eksternal.
Replika baca eksternal memiliki batasan-batasan berikut:
- Mereplikasi ke instance MySQL yang dihosting oleh platform cloud lain bisa jadi tidak
memungkinkan; periksa dokumentasi dari penyedia lain. Misalnya,
menyiapkan kolom konfigurasi
replicate-ignore-db
diperlukan, dan penyedia cloud yang tidak mengizinkan hal ini tidak didukung. Lihat Mengonfigurasi replika eksternal untuk kolom konfigurasi lain yang diperlukan. - Jika replikasi terganggu selama beberapa jam, misalnya oleh pemadaman jaringan atau server, replika akan berada di belakang replika utama. Replika akan mengejar setelah terhubung kembali ke replika utama dan mulai mereplikasi lagi. Namun, jika replikasi terganggu lebih lama dari log replikasi Cloud SQL yang dipertahankan (tujuh cadangan), Anda harus menghapus replika dan membuat replika baru.
- Data yang mengalir dari replika utama ke replika eksternal dikenai biaya sebagai transfer data keluar. Lihat halaman pricing untuk mengetahui harga transfer data untuk jenis instance Cloud SQL Anda.
Kasus penggunaan replikasi
Kasus penggunaan berikut berlaku untuk setiap jenis replikasi.
Nama | Kasus penggunaan | Replika | Manfaat dan kasus penggunaan | Informasi selengkapnya | |
---|---|---|---|---|---|
Replika baca | Instance Cloud SQL | Instance Cloud SQL |
|
||
Replika baca lintas region | Instance Cloud SQL | Instance Cloud SQL |
|
||
Replika baca eksternal | Instance Cloud SQL | Instance MySQL eksternal ke Cloud SQL |
|
||
Replikasi dari server eksternal | Instance MySQL eksternal ke Cloud SQL | Instance Cloud SQL untuk MySQL |
|
Prasyarat untuk membuat replika baca
Sebelum Anda dapat membuat replika baca dari instance Cloud SQL utama, instance tersebut harus memenuhi persyaratan berikut:
- Pencadangan otomatis harus diaktifkan.
- Logging biner harus diaktifkan yang mengharuskan pemulihan point-in-time untuk diaktifkan. Pelajari lebih lanjut dampak log ini.
- Setidaknya satu cadangan harus dibuat setelah logging biner diaktifkan.
Persyaratan tambahan untuk replika eksternal:
- Versi MySQL dari replika harus sama atau lebih tinggi dari versi replika dari instance utama. Pelajari lebih lanjut.
- Untuk keamanan, Anda harus mengonfigurasi SSL/TLS pada instance utama. Pelajari lebih lanjut.
Dampak mengaktifkan logging biner
Anda harus mengaktifkan pemulihan point-in-time untuk mengaktifkan logging biner pada instance utama untuk mendukung replika baca. Hal ini berdampak sebagai berikut:
- Overhead performa
Cloud SQL menggunakan replikasi berbasis baris dengan flag MySQL
sync_binlog=1
daninnodb_support_xa=true
. Oleh karena itu, diperlukan fsync disk tambahan untuk setiap operasi tulis, yang dapat mengurangi performa. - Penyimpanan overhead
Penyimpanan log biner dikenai biaya dengan tarif yang sama seperti data reguler. Log biner secara otomatis dipotong ke usia pencadangan otomatis terlama. Cloud SQL saat ini menyimpan tujuh cadangan otomatis terbaru, dan semua cadangna on-demand. Ukuran log biner, dan oleh karena itu jumlah yang dikenai biaya, bergantung pada workload. Misalnya, workload tulis yang berat menggunakan ruang log biner lebih banyak daripada workload baca yang berat.
Anda dapat melihat ukuran log biner menggunakan perintah MySQL SHOW BINARY LOGS.
Saat cadangan diambil, log disimpan dalam cadangan bersama dengan datanya.
Logging biner pada replika baca
- Logging biner didukung pada instance replika baca
(khusus MySQL 5.7 dan 8.0. Anda mengaktifkan logging biner pada replika dengan
perintah API yang sama seperti
pada yang utama, dengan menggunakan nama instance replika, bukan nama
instance utama. Perlu diingat bahwa istilah
enable binary logging
danenable point-in-time recovery
dapat dipertukarkan.Ketahanan logging biner pada instance replika (tetapi tidak pada instance utama) dapat disetel dengan flag
sync_binlog
, yang mengontrol seberapa sering server MySQL menyinkronkan log biner ke disk.Logging biner dapat diaktifkan pada replika meskipun pencadangan dinonaktifkan di replika utama.
Jika replika yang memiliki nilai yang ditetapkan ini dipromosikan ke server mandiri, setelan akan direset ke nilai aman
1
di server mandiri.
Penagihan
- Replika baca dikenakan biaya yang sama seperti instance Cloud SQL standar. Replikasi data tidak dikenai biaya.
- Untuk replika eksternal, data yang mengalir dari replika utama ke eksternal dikenai biaya sebagai transfer data. Lihat halaman pricing untuk mengetahui harga transfer data untuk jenis instance Cloud SQL Anda.
- Harga untuk replika baca lintas region sama dengan pembuatan instance Cloud SQL baru di region tersebut. Lihat Harga instance Cloud SQL dan pilih region yang sesuai. Selain biaya reguler yang terkait dengan instance, replika lintas region dikenai biaya transfer data lintas region untuk log replikasi yang dikirim dari instance utama ke instance replika, seperti yang dijelaskan dalam Harga Traffic Keluar Jaringan.
Referensi cepat untuk replika baca Cloud SQL
Topik | Diskusi |
---|---|
Cadangan | Anda tidak dapat mengonfigurasi cadangan pada replika. |
Inti dan memori | Replika baca dapat menggunakan jumlah inti dan memori yang berbeda dari instance utama. |
Menghapus instance utama | Sebelum dapat menghapus instance utama, Anda harus mengangkat semua replika baca tersebut ke instance mandiri atau menghapus replika baca. |
Menghapus replika | Saat Anda menghapus replika, status instance utama tersebut tidak akan terpengaruh. |
Menonaktifkan logging biner | Sebelum Anda dapat menonaktifkan log biner pada instance utama, Anda harus mempromosikan atau menghapus semua replika bacanya. |
Failover | Instance utama tidak dapat melakukan failover ke replika baca, dan replika baca tidak dapat melakukan failover dengan cara apa pun selama pemadaman layanan. |
Ketersediaan tinggi | Replika baca memungkinkan Anda mengaktifkan ketersediaan tinggi pada replika. |
Load balancing | Cloud SQL tidak menyediakan load balancing di antara replika. Anda dapat memilih untuk mengimplementasikan load balancing untuk instance Cloud SQL Anda. Anda juga dapat menggunakan penggabungan koneksi mendistribusikan kueri di seluruh replika dengan penyiapan load balancing untuk untuk mendapatkan performa yang lebih baik. |
Masa pemeliharaan | Masa pemeliharaan tidak dapat disetel pada replika baca dan masa pemeliharaan tidak dibagi dengan instance utama. Pemeliharaan dapat terjadi kapan saja pada replika baca. Pemeliharaan terjadi pada replika baca untuk waktu yang berbeda dengan instance utama. |
Beberapa replika baca | Cloud SQL mendukung replika bertingkat. Dengan demikian, Anda dapat membuat hingga 10 replika untuk satu instance utama, dan replika dapat digabungkan hingga empat level, termasuk yang utama. |
Replikasi paralel | Untuk mengetahui informasi tentang cara menggunakan replikasi paralel untuk peningkatan performa, lihat Mengonfigurasi replikasi paralel. |
IP Pribadi | Jika Anda terhubung ke replika menggunakan alamat IP pribadi, Anda tidak perlu membuat koneksi pribadi VPC tambahan untuk replika tersebut karena sudah diberikan oleh instance utama. |
Memulihkan instance utama | Anda tidak dapat memulihkan instance utama sebuah replika saat replika tersebut masih ada. Sebelum memulihkan instance dari cadangan atau menjalankan pemulihan point-in-time pada instance tersebut, Anda harus mengangkat atau menghapus semua replika tersebut. |
Setelan | Setelan MySQL instance utama diterapkan ke replika termasuk root password dan perubahan pada tabel pengguna. Perubahan CPU dan memori tidak diterapkan ke replika. |
Menghentikan replika | Anda tidak dapat melakukan stop pada replika. Anda dapat restart ,
delete , atau disable replication pada replika, tetapi Anda
tidak dapat menghentikannya seperti yang dapat Anda lakukan pada instance utama. |
Meng-upgrade replika | Replika baca dapat mengalami upgrade yang mengganggu kapan saja. |
Tabel pengguna | Anda tidak dapat membuat perubahan pada replika. Semua perubahan pengguna harus dilakukan di instance utama. |
Langkah selanjutnya
- Pelajari cara membuat replika baca.
- Pelajari cara mengonfigurasi konfigurasi replika eksternal.
- Pelajari cara mereplikasi data Anda dari server eksternal.
- Pelajari cara mengonfigurasi konfigurasi server eksternal.
- Pelajari replikasi di MySQL.
- Pelajari cara mengonfigurasi instance untuk ketersediaan tinggi.