全部产品
Search
文档中心

ApsaraDB RDS:Apa itu pemisahan baca/tulis?

更新时间:Jul 02, 2025

Jika sistem database Anda menerima banyak permintaan baca tetapi sedikit permintaan tulis, kinerja instance utama ApsaraDB RDS for MySQL dapat terpengaruh. Untuk mengatasi hal ini, gunakan fitur pemisahan baca/tulis dari proksi database. Sistem database secara otomatis meneruskan permintaan baca dan tulis melalui titik akhir proksi database. Titik akhir ini mengarahkan permintaan baca ke instance RDS baca-saja, sehingga mengurangi beban pada instance RDS utama. Sebelumnya, titik akhir proksi database dikenal sebagai terminal proksi.

Pengenalan

Setelah membuat instance RDS baca-saja, aktifkan fitur pemisahan baca/tulis proksi database. Fitur ini memungkinkan sistem meneruskan permintaan tulis ke instance RDS utama dan permintaan baca ke instance RDS baca-saja berdasarkan bobot baca yang ditentukan. Hal ini membantu mengurangi beban pada instance RDS utama.

Manfaat

  • Titik akhir pemisahan baca/tulis terpadu untuk memudahkan pemeliharaan.

    Jika pemisahan baca/tulis dinonaktifkan, Anda perlu menambahkan titik akhir instance RDS utama dan instance RDS baca-saja ke aplikasi Anda untuk melakukan pemisahan baca/tulis.

    Dengan mengaktifkan pemisahan baca/tulis, Anda hanya perlu terhubung ke titik akhir proksi database untuk memproses permintaan tulis dan baca yang secara otomatis diteruskan ke instance RDS utama dan instance RDS baca-saja. Ini membantu mengurangi biaya pemeliharaan.

    Anda juga dapat membuat instance RDS baca-saja untuk meningkatkan kemampuan baca sistem database tanpa perlu mengubah konfigurasi data di aplikasi Anda.

  • Tautan asli untuk meningkatkan kinerja dan mengurangi biaya pemeliharaan.

    Jika Anda membangun lapisan proksi sendiri di cloud untuk mengimplementasikan pemisahan baca/tulis, data harus diuraikan dan diteruskan oleh beberapa komponen sebelum mencapai sistem database Anda, yang meningkatkan latensi respons. Fitur pemisahan baca/tulis tertanam dalam ekosistem ApsaraDB RDS untuk mengurangi latensi respons, meningkatkan kecepatan pemrosesan, dan mengurangi biaya pemeliharaan.

  • Bobot baca dan ambang batas yang dapat dikonfigurasi untuk memastikan kesesuaian dalam berbagai skenario.

    Anda dapat menentukan bobot baca instance RDS utama dan instance RDS baca-saja agar sistem meneruskan permintaan baca sesuai dengan bobot yang ditentukan. Anda juga dapat menentukan ambang batas latensi untuk replikasi data ke instance RDS baca-saja.

  • Pemeriksaan kesehatan tingkat instance untuk meningkatkan ketersediaan layanan.

    Pemisahan baca/tulis secara otomatis memeriksa status kesehatan instance RDS utama dan instance RDS baca-saja. Jika instance RDS baca-saja tiba-tiba mati atau latensi replikasi datanya melebihi ambang batas yang ditentukan, sistem akan berhenti meneruskan permintaan baca ke instance tersebut. Permintaan baca dialihkan ke instance RDS sehat lainnya dalam sistem database Anda. Setelah instance RDS baca-saja pulih, ApsaraDB RDS melanjutkan pengiriman permintaan baca ke instance tersebut.

    Catatan

    Untuk mengurangi dampak dari titik kegagalan tunggal (SPOF), kami sarankan Anda membuat setidaknya dua instance RDS baca-saja.

Logika yang digunakan untuk meneruskan permintaan

Instance RDS utama

  • Permintaan yang menjalankan pernyataan INSERT, UPDATE, DELETE, dan SELECT FOR UPDATE.

  • Semua permintaan yang menjalankan operasi DDL, seperti pembuatan basis data atau tabel, penghapusan basis data atau tabel, serta perubahan skema atau izin.

  • Semua permintaan yang dibungkus dalam transaksi. Jika fitur pemisahan transaksi diaktifkan, permintaan akan diteruskan berdasarkan instruksi dalam Gunakan fitur pemisahan transaksi.

  • Permintaan yang dibungkus dalam transaksi non-baca-saja dengan tingkat isolasi repeatable read (RR) dan seterusnya.

  • Permintaan yang memanggil fungsi yang ditentukan pengguna.

  • Permintaan yang menjalankan prosedur tersimpan.

  • Permintaan yang menjalankan kueri multi-pernyataan. Untuk informasi lebih lanjut, lihat Multi-Statement.

  • Permintaan yang melibatkan tabel sementara yang dibuat secara eksplisit.

  • Permintaan yang menjalankan pernyataan SELECT last_insert_id().

  • Semua permintaan yang menanyakan atau mengonfigurasi ulang variabel pengguna.

  • Permintaan yang menjalankan pernyataan KILL dalam SQL. Pernyataan ini berbeda dari perintah KILL.

  • Permintaan yang menjalankan pernyataan LOCK, termasuk LOCK TABLE dan UNLOCK TABLE.

  • Permintaan yang menjalankan pernyataan FLUSH, termasuk FLUSH TABLES WITH READ LOCK (FTWRL).

  • Permintaan yang menjalankan pernyataan SAVEPOINT.

Instance RDS utama atau instance RDS baca-saja

  • Permintaan yang menjalankan pernyataan SELECT yang tidak dibungkus dalam transaksi.

  • Permintaan yang menjalankan pernyataan START TRANSACTION READ ONLY.

Semua instance RDS

  • Semua permintaan yang mengonfigurasi ulang variabel sistem.

  • Permintaan yang menjalankan pernyataan USE.

  • Permintaan yang menjalankan pernyataan SHOW PROCESSLIST.

    Catatan

    Setelah pernyataan SHOW PROCESSLIST dijalankan, proksi khusus mengembalikan semua proses yang berjalan pada instance RDS utama dan instance RDS baca-saja dalam sistem database Anda.

  • Permintaan yang menjalankan pernyataan NAMED PREPARE.

  • Permintaan yang menjalankan pernyataan COM_CHANGE_USER, COM_QUIT, dan COM_SET_OPTION.

Aktifkan pemisahan baca/tulis

Fitur pemisahan baca/tulis didukung untuk instance RDS yang menjalankan RDS High-availability Edition dan RDS Cluster Edition. Jika Anda ingin menggunakan fitur ini pada instance RDS yang menjalankan RDS High-availability Edition, Anda harus membuat instance RDS baca-saja. Setelah mengaktifkan fitur proksi database, fitur pemisahan baca/tulis secara otomatis diaktifkan untuk instance RDS Anda. Tidak diperlukan operasi manual.

  • RDS High-availability Edition: Jika instance RDS Anda menjalankan RDS High-availability Edition, instance RDS sekunder tidak dapat diakses. Untuk mengimplementasikan pemisahan baca/tulis, buat instance RDS baca-saja, lalu aktifkan fitur proksi database.

  • Instance RDS pada RDS Cluster Edition: Jika instance RDS Anda menjalankan RDS Cluster Edition, node sekunder dapat diakses dan hanya memproses permintaan baca. Anda dapat langsung mengaktifkan fitur proksi database untuk mengimplementasikan pemisahan baca/tulis.

Untuk menggunakan fitur pemisahan baca/tulis, Anda harus menggunakan titik akhir proksi database untuk terhubung ke instance RDS Anda. Klik Proksi Database di panel navigasi sisi kiri halaman detail instance untuk mendapatkan titik akhir proksi database. Setelah terhubung ke instance RDS Anda menggunakan titik akhir proksi database, titik akhir tersebut secara otomatis meneruskan permintaan baca dan tulis berdasarkan logika yang digunakan untuk meneruskan permintaan. Setelah mengaktifkan fitur pemisahan baca/tulis, Anda dapat melakukan operasi berikut:

  • Konfigurasikan atribut baca/tulis dan bobot baca: Anda dapat mengubah atribut baca/tulis titik akhir proksi database dan bobot baca instance RDS untuk mengisolasi permintaan dan menyesuaikan beban pada setiap instance.

  • Kueri distribusi pernyataan SQL: Anda dapat sementara mengaktifkan fitur Penjelajah SQL dan Audit untuk menanyakan pernyataan SQL yang dijalankan pada setiap instance RDS guna memahami distribusi permintaan baca dan tulis. Anda akan dikenakan biaya untuk menggunakan fitur Penjelajah SQL dan Audit. Jika tidak lagi memerlukan fitur ini, Anda dapat menonaktifkannya.

Setelah fitur proksi database diaktifkan dan pemisahan baca/tulis diimplementasikan, Anda dapat mengonfigurasi atribut baca/tulis dan menentukan bobot baca. Untuk informasi lebih lanjut, lihat Konfigurasikan atribut baca/tulis dan bobot baca.

Logika pemrosesan titik akhir proksi database berdasarkan atribut baca/tulis

Atribut baca/tulis

Cara menentukan bobot baca

Bobot instance RDS utama

Kasus normal

Setelah instance RDS baca-saja terakhir dihapus

Setelah semua instance RDS baca-saja mengalami kegagalan

Baca-saja

Otomatis atau Kustom

Anda tidak dapat menentukan bobot baca untuk instance RDS utama Anda.

Instance RDS utama: tidak memproses permintaan baca atau tulis. Dalam kasus ini, tidak ada penerusan permintaan yang dilakukan.

Titik akhir proksi database: hanya memproses permintaan baca.

Instance RDS utama: tidak memproses permintaan baca atau tulis. Dalam kasus ini, tidak ada penerusan permintaan yang dilakukan.

Titik akhir proksi database: tidak memproses permintaan baca atau tulis. Dalam kasus ini, terjadi kesalahan koneksi.

Instance RDS utama: tidak memproses permintaan baca atau tulis. Dalam kasus ini, tidak ada penerusan permintaan yang dilakukan.

Titik akhir proksi database: tidak memproses permintaan baca atau tulis. Dalam kasus ini, terjadi kesalahan koneksi.

Baca dan tulis

Otomatis

Bobot sama dengan 0

Untuk informasi lebih lanjut, lihat Aturan alokasi bobot baca oleh sistem.

Instance RDS utama: hanya memproses permintaan tulis.

Titik akhir proksi database: memproses permintaan baca dan tulis.

Instance RDS utama: memproses permintaan baca dan tulis.

Titik akhir proksi database: memproses permintaan baca dan tulis.

Instance RDS utama: memproses permintaan baca dan tulis.

Titik akhir proksi database: memproses permintaan baca dan tulis.

Kustom

Bobot lebih besar dari 0

Instance RDS utama: memproses permintaan baca dan tulis.

Titik akhir proksi database: memproses permintaan baca dan tulis.

Instance RDS utama: memproses permintaan baca dan tulis.

Titik akhir proksi database: memproses permintaan baca dan tulis.

Instance RDS utama: memproses permintaan baca dan tulis.

Titik akhir proksi database: memproses permintaan baca dan tulis.

Bobot sama dengan 0

Instance RDS utama: hanya memproses permintaan tulis.

Titik akhir proksi database: memproses permintaan baca dan tulis.

Instance RDS utama: memproses permintaan baca dan tulis.

Titik akhir proksi database: memproses permintaan baca dan tulis.

Instance RDS utama: memproses permintaan baca dan tulis.

Titik akhir proksi database: memproses permintaan baca dan tulis.

Catatan
  • Tidak ada penerusan permintaan: menunjukkan bahwa instance RDS utama tidak terlibat dalam penerusan permintaan baca-saja.

  • Kesalahan koneksi: menunjukkan bahwa kesalahan koneksi dilaporkan ketika terminal proksi tidak memproses permintaan baca atau tulis.

  • Dalam mode baca/tulis, ketika bobot instance RDS utama diatur ke 0, permintaan baca tidak diteruskan ke instance RDS utama secara default. Namun, jika instance RDS baca-saja dari instance RDS utama mengalami kegagalan, petunjuk paksa ditentukan, atau pemisahan transaksi diaktifkan, permintaan baca diteruskan ke instance RDS utama.

  • Untuk informasi lebih lanjut, lihat Konfigurasikan atribut baca/tulis dan bobot baca proksi database.

Referensi