All Products
Search
Document Center

ApsaraDB RDS:Konfigurasikan persistent connections

Last Updated:May 13, 2026

Operasi O&M seperti switchover pada instans ApsaraDB RDS for MySQL Anda dapat menyebabkan putusnya koneksi yang berdampak pada aplikasi Anda. Fitur persistent connection mencegah gangguan tersebut dengan menjaga koneksi tetap aktif selama operasi semacam itu, sehingga meningkatkan ketersediaan dan mengurangi biaya O&M.

Overview

Fitur persistent connection dari database proxy untuk ApsaraDB RDS for MySQL memastikan bahwa koneksi antara aplikasi Anda dan proxy tetap aktif selama event seperti switchover instans. Hal ini mencegah aplikasi yang terhubung melalui database proxy endpoint menerima pesan error koneksi, sebagaimana diilustrasikan pada gambar berikut.

image.png

image.png

How it works

Database proxy menggunakan dua jenis koneksi: koneksi frontend antara proxy dan client Anda, serta koneksi backend antara proxy dan database. Selama switchover instans, proxy mempertahankan koneksi frontend meskipun koneksi backend terputus. Mekanisme ini memungkinkan proxy menyediakan persistent connections.

Untuk koneksi backend ke instans ApsaraDB RDS for MySQL, kunci persistensi adalah memulihkan status koneksi setelah terjadi gangguan.

Status koneksi untuk ApsaraDB RDS for MySQL biasanya mencakup variabel sistem, variabel yang ditentukan pengguna, tabel temporary, encoding set karakter, status transaksi, dan informasi prepared statement. Topik ini menggunakan set names utf8mb4 sebagai contoh untuk menjelaskan cara kerja fitur persistent connection untuk ApsaraDB RDS for MySQL.

Switchover

Selama switchover, database proxy untuk ApsaraDB RDS for MySQL mempertahankan persistent connection dalam tiga langkah:

Catatan

Operasi O&M yang melibatkan switchover mencakup:

  • Switchover primary/secondary

  • Pembaruan versi engine minor

  • Perubahan parameter yang memerlukan restart instans

  • Perubahan konfigurasi instans utama

  1. Mulai switchover: Blokir koneksi dan permintaan baru

    Proxy tidak dapat mempertahankan transaksi. Oleh karena itu, proxy menangani session secara berbeda berdasarkan statusnya:

    • Untuk session dengan transaksi aktif selama periode pemblokiran, proxy meneruskan permintaan ke instans utama backend untuk dieksekusi.

    • Untuk session yang memulai transaksi baru selama periode pemblokiran, proxy memblokir permintaan tersebut. Client kemudian menunggu respons dari server.

    • Untuk session dengan transaksi yang masih aktif setelah periode pemblokiran berakhir, proxy menghentikan koneksi. Database backend kemudian melakukan rollback terhadap transaksi yang belum dikomit.

    image.png

  2. Saat switchover: Alihkan koneksi yang ada

    Selama switchover, status koneksi yang ada dimodifikasi:

    • Untuk koneksi yang tidak dapat dipertahankan, proxy menghentikan seluruh koneksi.

    • Untuk koneksi yang dapat dipertahankan, proxy mengalihkannya ke instans database baru.

    • Proxy membersihkan koneksi ke instans utama asli dari connection pool.

    image.png

  3. Setelah switchover: Pulihkan koneksi

    Untuk koneksi yang berhasil dipertahankan, proxy membuat koneksi ke instans utama baru dan memulihkan status koneksi.

    image.png

Failover

Failover adalah event tak terencana di mana kegagalan sistem menyebabkan instans ApsaraDB RDS secara otomatis mempromosikan instans secondary menjadi instans utama baru.

Proxy menyimpan cache pernyataan SQL yang sedang dieksekusi di database atau akan diteruskan. Ketika terjadi kegagalan database, koneksi backend antara proxy dan database terputus. Setelah proxy mendeteksi failover, proxy tidak langsung memutus koneksi dari client. Sebaliknya, proxy meneruskan permintaan baca yang gagal ke instans database yang tersedia dan memulihkan status koneksi.

Penting

Untuk permintaan tulis yang gagal, proxy tidak dapat menentukan apakah penulisan ke database berhasil atau tidak. Oleh karena itu, persistensi sesi selama failover tidak mendukung permintaan tulis.

Aktifkan persistent connections

Catatan

Sejak 9 Januari 2024, fitur persistent connection diaktifkan secara default untuk instans ApsaraDB RDS for MySQL yang memenuhi syarat saat Anda mengaktifkan database proxy. Anda dapat menonaktifkan fitur ini kapan saja.

Prasyarat

Persistent connections untuk switchover

Instans ApsaraDB RDS memenuhi persyaratan berikut:

  • Versi engine: MySQL 5.6, 5.7, 8.0, atau 8.4

  • Edition: RDS High-availability Edition atau RDS Cluster Edition

  • Jenis penyimpanan: cloud disk atau Premium Local SSDs

  • Jenis proxy: general-purpose atau dedicated

  • database proxy diaktifkan, dan versi proxy adalah 1.14.5_20231207 atau lebih baru.

Persistent connections untuk failover

Instans ApsaraDB RDS memenuhi persyaratan berikut:

  • Versi engine: MySQL 5.6, 5.7, atau 8.0

  • Edition: RDS High-availability Edition atau RDS Cluster Edition

  • Jenis penyimpanan: cloud disk atau Premium Local SSDs

  • Jenis proxy: dedicated

    Catatan

    Database proxy general-purpose hanya mendukung persistent connections untuk switchover. Database proxy dedicated mendukung persistent connections baik untuk switchover maupun failover.

  • database proxy diaktifkan, dan versi proxy adalah 2.9.1 atau lebih baru.

Prosedur

  1. Buka halaman ApsaraDB RDS Instances. Di bilah navigasi atas, pilih wilayah tempat instans berada. Lalu, temukan instans tersebut dan klik ID-nya.

  2. Di panel navigasi kiri, klik Database Proxy.

  3. Di bagian Basic Information, klik Enable di samping Persistent Connection.

    Catatan

    Jika teks 'persistent connection' tidak ditampilkan, artinya instans Anda tidak memenuhi persyaratan untuk mengaktifkan persistent connections.

Gunakan persistent connections

Prasyarat

  • Database proxy diaktifkan.

  • Fitur persistent connection diaktifkan untuk database proxy.

Prosedur

  1. Buka halaman ApsaraDB RDS Instances. Di bilah navigasi atas, pilih wilayah tempat instans berada. Lalu, temukan instans tersebut dan klik ID-nya.

  2. Di panel navigasi kiri, klik Database Proxy.

  3. Konfigurasikan kebijakan akses untuk database proxy endpoint target sesuai kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Konfigurasikan kebijakan akses untuk database proxy endpoint. Atur Read/Write Attributes menjadi Read/Write (Read/Write Splitting).

  4. Ajukan endpoint internal atau publik untuk database proxy sesuai kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Setel database proxy endpoint.

  5. Dalam aplikasi Anda, gunakan endpoint internal atau publik beserta nomor port database proxy untuk terhubung ke database.

  6. Ketika terjadi operasi O&M yang melibatkan switchover pada instans database, database proxy secara otomatis mempertahankan koneksi. Koneksi aplikasi Anda ke proxy tidak terputus selama Anda menggunakan database proxy endpoint.

Batasan

Selama switchover, fitur persistent connection tidak dapat mempertahankan koneksi dalam skenario berikut:

  • Koneksi dengan set hasil yang belum lengkap, di mana server MySQL belum selesai mengirimkan semua data.

  • Koneksi dengan transaksi yang belum dikomit.

  • Koneksi yang telah menggunakan pernyataan change user.

  • Koneksi yang telah menggunakan pernyataan LOAD DATA.

  • Koneksi dengan tabel temporary.

  • Koneksi yang digunakan untuk berlangganan binary logs melalui database proxy endpoint.

  • Pemanggilan fungsi FOUND_ROWS(), ROW_COUNT(), dan LAST_INSERT_ID() tidak didukung. Meskipun fungsi-fungsi ini dapat dipanggil, akurasi hasil yang dikembalikan tidak dapat dijamin. MySQL tidak lagi merekomendasikan penggunaan SELECT FOUND_ROWS(). Kami menyarankan Anda mengganti SELECT FOUND_ROWS() dengan SELECT COUNT(*) FROM tb1 untuk kueri. Untuk informasi lebih lanjut, lihat FOUND_ROWS().

Catatan penggunaan

  • Karena koneksi dapat terhubung ulang, ID thread dari koneksi saat ini yang dikembalikan oleh kueri select connection_id() mungkin berubah.

  • Karena koneksi dibuat ulang, alamat IP dan port yang ditampilkan di show processlist atau SQL Explorer mungkin tidak sesuai dengan alamat IP dan port aktual client.

  • Jika suatu koneksi memiliki variabel yang ditentukan pengguna, koneksi tersebut dapat dipertahankan, tetapi variabelnya menjadi tidak valid.

Nonaktifkan persistent connections

  1. Buka halaman ApsaraDB RDS Instances. Di bilah navigasi atas, pilih wilayah tempat instans berada. Lalu, temukan instans tersebut dan klik ID-nya.

  2. Di panel navigasi kiri, klik Database Proxy.

  3. Di bagian Basic Information, klik Disable di samping Persistent Connection.

Pengujian fitur

Topik ini hanya menyediakan hasil pengujian untuk skenario switchover.

Lingkungan pengujian

  • Instans uji ApsaraDB RDS for MySQL:

    • MySQL 8.0, RDS High-availability Edition

    • Tipe instans: mysql.x2.xlarge.2c (dedicated, 8 vCPU, memori 16 GB)

  • Tool pengujian: Sysbench

  • Data pengujian:

    • 100 tabel, masing-masing berisi 40.000 baris.

    • Jumlah thread konkuren: 128.

Metode pengujian

Uji retensi koneksi instans ApsaraDB RDS for MySQL dalam berbagai skenario O&M. Retensi koneksi adalah persentase koneksi yang tetap aktif setelah operasi O&M.

Jalankan perintah pengujian berikut:

sysbench --db-driver=mysql --mysql-host=127.X.X.1 --mysql-port=3306 --mysql-user=username --mysql-password='' --tables=100 --table-size=40000 --threads=128 --mysql-db=sbtest --report-interval=5  --time=600 oltp_read_write run
Catatan

Tabel berikut menjelaskan parameter utama dalam perintah pengujian.

  • db-driver: Menentukan engine database.

  • mysql-host: Menentukan database proxy endpoint.

  • tables: Menentukan jumlah tabel dalam database.

  • table-size: Menentukan jumlah catatan dalam setiap tabel.

  • threads: Menentukan jumlah thread konkuren.

  • time: Menentukan durasi pengujian dalam detik.

Hasil pengujian

Dalam skenario O&M yang diuji, instans ApsaraDB RDS for MySQL mencapai retensi koneksi 100%.

Switchover scenario

Retention

Minor engine version update

100%

Primary/secondary switchover

100%

Primary instance configuration change

100%

Parameter change that requires a restart

100%

Referensi API

API

Description

ModifyDBProxy

Memodifikasi fitur database proxy untuk instans ApsaraDB RDS.

DescribeDBProxy

Menanyakan detail database proxy untuk instans ApsaraDB RDS.

Dokumen terkait

Aktifkan database proxy