全部产品
Search
文档中心

ApsaraDB RDS:Konfigurasikan pengaturan koneksi persisten

更新时间:Jul 06, 2025

Operasi O&M yang memicu pergantian pada instance ApsaraDB RDS for MySQL dapat menyebabkan koneksi sementara antara aplikasi dan proksi database terputus, berpotensi mengganggu layanan. Artikel ini menjelaskan cara mengonfigurasi pengaturan koneksi persisten untuk menjaga koneksi tetap aktif, meningkatkan ketersediaan instance, dan mengurangi biaya pemeliharaan.

Deskripsi fitur

Fitur koneksi persisten disediakan oleh proksi database ApsaraDB RDS for MySQL. Saat operasi O&M yang memicu pergantian dilakukan, fitur ini memastikan koneksi antara aplikasi dan proksi database tetap hidup. Dengan menggunakan titik akhir proksi database, kesalahan putus koneksi tidak akan dilaporkan. Gambar berikut menunjukkan detailnya.

image.png

image.png

Implementasi

Koneksi proksi database dibagi menjadi dua jenis: koneksi frontend antara proksi database dan klien serta koneksi backend antara proksi database dan database. Jika koneksi backend terganggu selama operasi seperti pergantian, koneksi frontend tetap aktif, sehingga menerapkan koneksi persisten.

Untuk koneksi backend antara proksi database dan instance RDS, koneksi persisten diimplementasikan dengan memulihkan status koneksi setelah gangguan.

Status koneksi backend bergantung pada informasi seperti variabel sistem, variabel pengguna, tabel sementara, pengkodean karakter, serta status transaksi dan pernyataan PREPARE. Artikel ini menggunakan contoh set names utf8mb4 untuk menjelaskan implementasi koneksi persisten di ApsaraDB RDS for MySQL.

Pergantian

Bagian ini menjelaskan bagaimana proksi database memastikan koneksi persisten selama pergantian.

Catatan

Berikut adalah daftar operasi O&M yang memicu pergantian:

  • Pergantian utama/sekunder

  • Pembaruan versi mesin minor

  • Modifikasi parameter yang memerlukan restart agar modifikasi berlaku

  • Perubahan konfigurasi instance RDS utama

  1. Mulai Pergantian: Blokir Koneksi dan Permintaan Baru

    Proksi database tidak mendukung transaksi persisten dan memproses sesi berdasarkan status sesi.

    • Sesi dalam transaksi aktif selama pemblokiran: Proksi database meneruskan permintaan ke instance RDS utama untuk diproses.

    • Sesi dalam transaksi baru selama pemblokiran: Proksi database memblokir permintaan, dan klien menunggu respons server.

    • Sesi dalam transaksi aktif setelah pemblokiran: Koneksi antara klien dan proksi database terputus, dan instance RDS membatalkan transaksi yang belum dikomit.

    image.png

  2. Pergantian: Ganti Status Koneksi yang Ada

    Berikut adalah penjelasan tentang status koneksi yang ada selama pergantian:

    • Koneksi non-persisten: Proksi database mengakhiri seluruh koneksi.

    • Koneksi persisten: Koneksi diakhiri dari instance RDS saat ini dan dialihkan ke instance RDS baru.

    • Koneksi ke instance RDS utama asli di pool koneksi: Koneksi dilepaskan.

    image.png

  3. Telah Diganti: Bentuk Ulang Koneksi

    Koneksi yang tetap hidup setelah pergantian dapat dipulihkan setelah koneksi antara proksi database dan instance RDS utama baru dibentuk.

    image.png

Failover

Jika instance RDS utama gagal, sistem secara otomatis menaikkan instance RDS sekunder sebagai instance RDS utama baru dan memindahkan beban kerja dari instance RDS utama asli. Pergantian ini tidak terduga dan disebut failover.

Proksi database menyimpan pernyataan SQL yang sedang dieksekusi atau akan diteruskan. Jika instance RDS gagal, koneksi backend antara proksi database dan database terganggu. Jika proksi database mendeteksi failover, koneksi antara proksi database dan klien tidak segera terputus. Proksi database meneruskan permintaan baca yang gagal ke instance RDS yang tersedia dan memulihkan koneksi.

Penting

Proksi database tidak dapat menjamin bahwa instance RDS berhasil memproses permintaan tulis yang gagal. Oleh karena itu, koneksi persisten tidak didukung untuk permintaan tulis selama failover.

Aktifkan koneksi persisten

Catatan

Mulai 9 Januari 2024, ketika Anda mengaktifkan fitur proksi database untuk instance ApsaraDB RDS for MySQL yang memenuhi persyaratan di bagian "Prasyarat", koneksi persisten diaktifkan secara default. Setelah diaktifkan, Anda dapat menonaktifkan koneksi persisten kapan saja.

Prasyarat

Koneksi persisten selama pergantian

Instance RDS Anda harus memenuhi persyaratan berikut:

  • Instance RDS menjalankan MySQL 5.6, MySQL 5.7, atau MySQL 8.0.

  • Instance RDS menjalankan Edisi Ketersediaan Tinggi RDS atau Edisi Kluster RDS.

  • Instance RDS menggunakan disk cloud atau Premium Local SSD.

  • Instance RDS menggunakan proksi database tujuan umum atau spesifikasi khusus.

  • Fitur proksi database diaktifkan untuk instance RDS, dan versi proksi database adalah 1.14.5_20231207 atau lebih baru. Untuk informasi lebih lanjut, lihat Aktifkan Fitur Proksi Database.

Koneksi persisten selama failover

Instance RDS Anda harus memenuhi persyaratan berikut:

  • Instance RDS menjalankan MySQL 5.6, MySQL 5.7, atau MySQL 8.0.

  • Instance RDS menjalankan Edisi Ketersediaan Tinggi RDS atau Edisi Kluster RDS.

  • Instance RDS menggunakan disk cloud atau Premium Local SSD.

  • Instance RDS menggunakan proksi database spesifikasi khusus.

    Catatan

    Proksi database tujuan umum mendukung koneksi persisten hanya selama pergantian. Proksi database spesifikasi khusus mendukung koneksi persisten selama pergantian dan failover.

  • Fitur proksi database diaktifkan untuk instance RDS, dan versi proksi database adalah 2.9.1 atau lebih baru. Untuk informasi lebih lanjut, lihat Aktifkan Fitur Proksi Database.

Prosedur

  1. Masuk ke Konsol Manajemen ApsaraDB RDS dan buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instance RDS Anda berada, temukan instance RDS, lalu klik ID instance.

  2. Di panel navigasi kiri, klik Database Proxy.

  3. Di bagian Informasi Dasar, klik Aktifkan di sebelah kanan Koneksi Persisten.

    Catatan

    Jika Anda tidak menemukan Koneksi Persisten, instance RDS Anda tidak memenuhi prasyarat.

Gunakan koneksi persisten

Prasyarat

  • Fitur proksi database diaktifkan untuk instance RDS Anda.

  • Koneksi persisten diaktifkan untuk instance RDS Anda.

Prosedur

  1. Masuk ke Konsol Manajemen ApsaraDB RDS dan buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instance RDS Anda berada, temukan instance RDS, lalu klik ID instance.

  2. Di panel navigasi kiri, klik Database Proxy.

  3. Konfigurasikan pengaturan koneksi untuk titik akhir proksi database yang diperlukan berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Konfigurasikan Pengaturan Koneksi untuk Titik Akhir Proksi Database. Atur Atribut Baca/Tulis ke Baca/Tulis (Pemisahan Baca/Tulis).

  4. Ajukan permohonan untuk titik akhir internal atau publik untuk titik akhir proksi database yang diperlukan berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Kelola Titik Akhir Proksi Database.

  5. Gunakan port dan endpoint internal atau publik dari titik akhir proksi database yang diperlukan untuk menghubungkan instance RDS Anda ke aplikasi.

  6. Saat operasi O&M yang memicu pergantian dilakukan pada instance RDS Anda, fitur proksi database membantu memastikan koneksi persisten. Dengan cara ini, koneksi yang dibuat menggunakan titik akhir proksi database tetap aktif.

Batasan

Selama pergantian, koneksi persisten tidak didukung dalam skenario berikut:

  • Server MySQL tidak mengembalikan seluruh set hasil dari koneksi. Misalnya, jika set hasil berukuran 100 MB, hanya 50 MB yang dikembalikan, dan sisanya sedang dikembalikan.

  • Transaksi yang belum dikomit ada.

  • Pernyataan CHANGE USER dieksekusi pada koneksi.

  • Pernyataan LOAD DATA dieksekusi pada koneksi.

  • Tabel sementara ada.

  • Koneksi untuk langganan log biner menggunakan titik akhir proksi database ada.

  • Fungsi FOUND_ROWS, ROW_COUNT, dan LAST_INSERT_ID tidak didukung. Anda dapat memanggil fungsi tersebut, tetapi hasil panggilannya mungkin tidak akurat. Penggunaan SELECT FOUND_ROWS() tidak lagi direkomendasikan oleh MySQL. Kami merekomendasikan Anda mengganti SELECT FOUND_ROWS() dengan SELECT COUNT(*) FROM tb1. Untuk informasi lebih lanjut, lihat FOUND_ROWS().

Catatan penggunaan

  • Jika Anda mengeksekusi pernyataan SELECT CONNECTION_ID() untuk menanyakan ID thread koneksi Anda, ID thread koneksi dapat berubah karena rekoneksi.

  • Alamat IP dan nomor port yang ditampilkan dalam output pernyataan SHOW PROCESSLIST atau di halaman SQL Explorer mungkin berbeda dari alamat IP dan nomor port klien karena rekoneksi.

  • Jika variabel yang ditentukan pengguna ada pada koneksi dan koneksi tetap hidup, variabel yang ditentukan pengguna menjadi tidak valid.

Nonaktifkan koneksi persisten

Prasyarat

Koneksi persisten diaktifkan untuk instance RDS Anda.

Prosedur

  1. Masuk ke Konsol Manajemen ApsaraDB RDS dan buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instance RDS Anda berada, temukan instance RDS, lalu klik ID instance.

  2. Di panel navigasi kiri, klik Database Proxy.

  3. Di bagian Basic Information, klik Disable di sebelah kanan Persistent Connections.

Pengujian

Bagian ini menjelaskan pengujian pada koneksi persisten selama pergantian.

Lingkungan pengujian

  • Berikut adalah deskripsi instance RDS yang digunakan untuk pengujian:

    • Instance RDS menjalankan MySQL 8.0 pada Edisi Ketersediaan Tinggi RDS.

    • Instance RDS menggunakan tipe instance mysql.x2.xlarge.2c. Tipe instance ini termasuk dalam keluarga instance spesifikasi khusus dan menyediakan 8 inti CPU dan 16 GB memori.

  • Alat pengujian: Sysbench

  • Data pengujian:

    • 100 tabel disiapkan, dan setiap tabel berisi 40.000 entri data.

    • Jumlah thread konkuren adalah 128.

Metode pengujian

Dalam skenario O&M yang berbeda, uji rasio koneksi yang tetap hidup pada instance RDS sebelum dan sesudah operasi O&M yang memicu pergantian dilakukan.

Eksekusi pernyataan 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

Berikut adalah penjelasan parameter kunci dalam pernyataan pengujian di atas:

  • db-driver: mesin database.

  • mysql-host: titik akhir proksi database.

  • tables: jumlah tabel dalam database.

  • table-size: jumlah entri yang dimiliki setiap tabel.

  • threads: jumlah thread konkuren.

  • time: durasi pengujian. Unit: detik.

Hasil pengujian

Dalam skenario O&M berikut, rasio koneksi tetap hidup pada instance RDS mencapai 100%.

Pergantian

Rasio koneksi yang tetap hidup

Pembaruan versi mesin minor

100%

Pergantian utama/sekunder

100%

Perubahan konfigurasi instance RDS utama

100%

Modifikasi parameter yang memerlukan restart agar modifikasi berlaku

100%

Operasi terkait

Operasi

Deskripsi

ModifyDBProxy

Memodifikasi fitur proksi database sebuah instance.

DescribeDBProxy

Memeriksa detail proksi database sebuah instance.

Referensi

Aktifkan Fitur Proksi Database