Penerapan cluster DB multi-AZ untuk Amazon RDS - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Penerapan cluster DB multi-AZ untuk Amazon RDS

Penerapan klaster DB multi-AZ adalah mode penyebaran semisinkron dan ketersediaan tinggi Amazon RDS dengan dua instans replika DB yang dapat dibaca. Klaster basis data Multi-AZ memiliki instans basis data penulis dan dua instans basis data pembaca di tiga Zona Ketersediaan terpisah dengan Wilayah AWS yang sama. Klaster basis data Multi-AZ menyediakan ketersediaan tinggi, kapasitas yang meningkat untuk beban kerja baca, dan latensi tulis yang lebih rendah jika dibandingkan dengan deployment instans basis data Multi-AZ.

Anda dapat mengimpor data dari basis data on-premise ke klaster basis data Multi-AZ dengan mengikuti petunjuk di Mengimpor data ke database Amazon RDS for MySQL dengan downtime yang dikurangi.

Anda dapat membeli instans basis data cadangan untuk klaster basis data Multi-AZ. Untuk informasi selengkapnya, lihat Instans DB terpesan untuk klaster DB Multi-AZ.

Ketersediaan dan dukungan fitur bervariasi di seluruh versi spesifik dari setiap mesin basis data, dan di seluruh Wilayah AWS. Untuk informasi selengkapnya tentang versi dan ketersediaan Wilayah Amazon RDS dengan kluster DB multi-AZ, lihat. Daerah yang Didukung dan engine DB untuk cluster DB multi-AZ di Amazon RDS

penting

Klaster basis data Multi-AZ tidak sama dengan klaster basis data Aurora. Lihat informasi tentang klaster basis data Aurora di Panduan Pengguna Amazon Aurora.

Ketersediaan kelas instans untuk cluster DB multi-AZ

Penerapan cluster DB multi-AZ didukung untuk kelas instans DB berikut:db.m5d,db.m6gd,db.m6id,,db.m6idn, db.r5ddb.r6gd, dan db.x2iedndb.r6id, dandb.r6idn. db.c6gd

catatan

Kelas instance c6gd adalah satu-satunya yang mendukung ukuran instance. medium

Untuk informasi selengkapnya tentang kelas instans DB, lihat DB.

Arsitektur cluster DB multi-AZ

Dengan cluster DB multi-AZ, Amazon RDS mereplikasi data dari instans DB penulis ke kedua instans DB pembaca menggunakan kemampuan replikasi asli mesin DB. Ketika perubahan dibuat pada instans basis data penulis, perubahan itu dikirim ke setiap instans basis data pembaca.

Deployment klaster basis data Multi-AZ menggunakan replikasi semisinkron, yang memerlukan pengakuan dari setidaknya satu instans basis data pembaca agar perubahan dapat di-commit. Deployment tidak memerlukan pengakuan bahwa peristiwa telah dieksekusi dan di-commit sepenuhnya pada semua replika.

Instans basis data pembaca bertindak sebagai target failover otomatis dan juga melayani lalu lintas baca untuk meningkatkan throughput baca aplikasi. Jika terjadi pemadaman pada instans DB penulis Anda, RDS mengelola failover ke salah satu instance DB pembaca. RDSapakah ini berdasarkan instans DB pembaca mana yang memiliki catatan perubahan terbaru.

Diagram berikut menunjukkan sebuah klaster basis data Multi-AZ.

Klaster basis data Multi-AZ

Klaster basis data Multi-AZ biasanya memiliki latensi penulisan yang lebih rendah jika dibandingkan dengan deployment instans basis data Multi-AZ. Klaster itu juga memungkinkan beban kerja hanya baca berjalan pada instans basis data pembaca. RDSKonsol menampilkan Availability Zone dari instans DB penulis dan Availability Zones dari instans DB pembaca. Anda juga dapat menggunakan describe-db-clustersCLIperintah atau escribeDBClusters API operasi D untuk menemukan informasi ini.

penting

Untuk mencegah kesalahan replikasi RDS untuk klaster DB SQL Multi-AZ saya, kami sangat menyarankan agar semua tabel memiliki kunci utama.

Grup parameter untuk cluster DB multi-AZ

Di klaster basis data Multi-AZ, sebuah grup parameter klaster basis data bertindak sebagai kontainer untuk nilai-nilai konfigurasi mesin yang diterapkan pada setiap instans basis data di klaster basis data Multi-AZ.

Di klaster basis data Multi-AZ, grup parameter basis data diatur ke grup parameter basis data default untuk mesin basis data dan versi mesin basis datanya. Setelan dalam grup parameter klaster basis data digunakan untuk semua instans basis data di klaster.

Lihat informasi tentang grup parameter di Menggunakan grup parameter klaster DB untuk klaster DB Multi-AZ.

RDSProxy dengan cluster DB multi-AZ

Anda dapat menggunakan Amazon RDS Proxy untuk membuat proxy untuk cluster DB multi-AZ Anda. Dengan menggunakan RDS Proxy, aplikasi Anda dapat mengumpulkan dan berbagi koneksi database untuk meningkatkan kemampuan mereka dalam skala. Setiap proksi melakukan pembentukan multipleks koneksi, yang juga disebut dengan penggunaan ulang koneksi. Dengan multiplexing, RDS Proxy melakukan semua operasi untuk transaksi menggunakan satu koneksi database yang mendasarinya. RDSProxy juga dapat mengurangi downtime untuk upgrade versi minor dari cluster DB multi-AZ menjadi satu detik atau kurang. Untuk informasi selengkapnya tentang manfaat RDS Proxy, lihatRDSProxy Amazon .

Untuk menyiapkan proxy untuk cluster DB multi-AZ, pilih Buat RDS Proxy saat membuat cluster. Untuk petunjuk membuat dan mengelola titik akhir RDS Proxy, lihatBekerja dengan titik akhir Amazon RDS Proxy.

Kelambatan replika dan klaster basis data Multi-AZ

Kelambatan replika adalah selisih waktu antara transaksi terbaru pada instans basis data penulis dan transaksi terbaru yang diterapkan pada instans basis data pembaca. CloudWatch Metrik Amazon ReplicaLag mewakili perbedaan waktu ini. Untuk informasi selengkapnya tentang CloudWatch metrik, lihatMemantau metrik RDSAmazon Amazon dengan Amazon CloudWatch.

Meskipun klaster basis data Multi-AZ memungkinkan performa tulis yang tinggi, kelambatan replika masih dapat terjadi karena sifat replikasi berbasis mesin. Karena setiap failover harus menyelesaikan dahulu kelambatan replika sebelum mempromosikan instans basis data penulis baru, memantau dan mengelola kelambatan replika ini menjadi sebuah pertimbangan.

RDSUntuk cluster DB SQL Multi-AZ Saya, waktu failover bergantung pada lag replika dari kedua instans DB pembaca yang tersisa. Kedua instans basis data pembaca harus menerapkan transaksi yang belum diterapkan sebelum salah satunya dipromosikan menjadi instans basis data penulis baru.

RDSUntuk klaster DB Postgre SQL Multi-AZ, waktu failover bergantung pada lag replika terendah dari dua instans DB pembaca yang tersisa. Instans basis data pembaca dengan kelambatan replika terendah harus menerapkan transaksi yang belum diterapkan sebelum dipromosikan menjadi instans basis data penulis baru.

Untuk tutorial yang menunjukkan cara membuat CloudWatch alarm saat lag replika melebihi jumlah waktu yang ditentukan, lihatTutorial: Membuat CloudWatch alarm Amazon untuk lag replika cluster multi-AZ DB untuk Amazon RDS.

Penyebab umum kelambatan replika

Secara umum, kelambatan replika terjadi ketika beban kerja tulis terlalu tinggi bagi instans basis data pembaca untuk menerapkan transaksi dengan efisien. Berbagai beban kerja dapat menimbulkan kelambatan replika sementara atau sinambung. Berikut beberapa contoh penyebab umum:

  • Konkurensi tulis tinggi atau pembaruan tumpak/batch berat pada instans basis data penulis, menyebabkan proses penerapan pada instans basis data pembaca tertinggal.

  • Beban kerja baca berat yang menggunakan sumber daya pada satu atau beberapa instans basis data pembaca. Menjalankan kueri yang lambat atau besar dapat memengaruhi proses penerapan dan dapat menyebabkan kelambatan replika.

  • Transaksi yang memodifikasi sejumlah besar data atau DDL pernyataan kadang-kadang dapat menyebabkan peningkatan sementara pada lag replika karena database harus mempertahankan perintah komit.

Mengurangi kelambatan replika

Untuk cluster DB multi-AZ untuk My SQL dan RDS RDS untuk PostgreSQL, Anda dapat mengurangi lag replika dengan mengurangi beban pada instans DB penulis Anda. Anda juga dapat menggunakan kontrol aliran untuk mengurangi kelambatan replika. Kontrol aliran bekerja dengan melakukan throttling operasi tulis pada instans basis data penulis, yang memastikan bahwa kelambatan replika tidak terus tumbuh tanpa batas. Throttling tulis dilakukan dengan menambahkan penundaan ke akhir transaksi, yang mengurangi throughput tulis pada instans basis data penulis. Meskipun tidak menjamin hilangnya kelambatan, kontrol aliran dapat membantu mengurangi kelambatan keseluruhan dalam banyak beban kerja. Bagian berikut memberikan informasi tentang penggunaan kontrol aliran dengan RDS untuk My SQL dan RDS untuk PostgreSQL.

Mengurangi lag replika dengan kontrol aliran untuk for My RDS SQL

Saat Anda menggunakan RDS untuk cluster DB SQL Multi-AZ saya, kontrol aliran diaktifkan secara default menggunakan parameter dinamis. rpl_semi_sync_master_target_apply_lag Parameter ini menentukan batas atas yang Anda inginkan untuk kelambatan replika. Saat kelambatan replika mendekati batas yang dikonfigurasikan ini, kontrol aliran membatasi transaksi tulis pada instans basis data penulis untuk mencoba mempertahankan kelambatan replika di bawah nilai yang ditentukan. Dalam beberapa kasus, kelambatan replika dapat melebihi batas yang ditentukan. Secara default, parameter ini diatur ke 120 detik. Untuk mematikan kontrol aliran, atur parameter ini ke nilai maksimumnya 86.400 detik (satu hari).

Untuk melihat penundaan saat ini yang disuntikkan oleh kontrol aliran, tampilkan parameter Rpl_semi_sync_master_flow_control_current_delay dengan menjalankan kueri berikut.

SHOW GLOBAL STATUS like '%flow_control%';

Output-nya semestinya mirip dengan yang berikut.

+-------------------------------------------------+-------+ | Variable_name | Value | +-------------------------------------------------+-------+ | Rpl_semi_sync_master_flow_control_current_delay | 2010 | +-------------------------------------------------+-------+ 1 row in set (0.00 sec)
catatan

Penundaan ditampilkan dalam mikrodetik.

Jika Performance Insights diaktifkan untuk klaster DB SQL Multi-AZ Saya, Anda dapat memantau peristiwa tunggu yang terkait dengan SQL pernyataan yang menunjukkan bahwa kueri ditunda oleh kontrol aliran. RDS Saat penundaan diperkenalkan oleh kontrol aliran, Anda dapat melihat peristiwa tunggu yang /wait/synch/cond/semisync/semi_sync_flow_control_delay_cond sesuai dengan SQL pernyataan di dasbor Performance Insights. Untuk melihat semua metrik ini, pastikan bahwa Skema Performa diaktifkan. Lihat informasi tentang Wawasan Performa di .

Mengurangi lag replika dengan kontrol aliran untuk Postgre RDS SQL

Saat Anda menggunakan RDS klaster DB Postgre SQL Multi-AZ, kontrol aliran digunakan sebagai ekstensi. Kontrol mengaktifkan pekerja latar belakang untuk semua instans basis data dalam klaster basis data. Secara default, pekerja latar belakang pada instans basis data pembaca mengomunikasikan kelambatan replika saat ini dengan pekerja latar belakang pada instans basis data penulis. Jika kelambatan melebihi dua menit pada sebarang instans basis data pembaca, pekerja latar belakang pada instans basis data penulis menambahkan penundaan di akhir transaksi. Untuk mengendalikan ambang batas kelambatan, gunakan parameter flow_control.target_standby_apply_lag.

Saat kontrol aliran membatasi SQL proses Postgre, peristiwa Extension tunggu di dan Performance pg_stat_activity Insights menunjukkan hal itu. Fungsi get_flow_control_stats menampilkan detail lama penundaan yang saat ini ditambahkan.

Kontrol aliran dapat menguntungkan sebagian besar beban kerja pemrosesan transaksi online (OLTP) yang memiliki transaksi pendek namun sangat bersamaan. Jika kelambatan disebabkan oleh transaksi yang berjalan lama, seperti operasi tumpak/batch, kontrol aliran tidak memberikan manfaat yang sama besarnya.

Anda dapat mematikan kontrol aliran dengan menghapus ekstensi dari shared_preload_libraries dan mem-boot ulang instans basis data Anda.

Cuplikan cluster DB multi-AZ

Amazon RDS membuat dan menyimpan cadangan otomatis cluster DB multi-AZ Anda selama jendela pencadangan yang dikonfigurasi. RDSmembuat snapshot volume penyimpanan cluster DB Anda, mencadangkan seluruh cluster dan bukan hanya instance individual.

Anda juga dapat mengambil cadangan manual cluster DB multi-AZ Anda. Untuk pencadangan jangka panjang, pertimbangkan untuk mengekspor data snapshot ke Amazon S3. Untuk informasi selengkapnya, lihat Membuat snapshot cluster DB multi-AZ untuk Amazon RDS.

Anda dapat memulihkan klaster DB Multi-AZ ke titik waktu tertentu, membuat klaster DB Multi-AZ baru. Untuk petunjuk, silakan lihat Memulihkan klaster DB Multi-AZ ke waktu tertentu.

Sebagai alternatif, Anda dapat memulihkan snapshot cluster DB multi-AZ ke penerapan Single-AZ atau penerapan instans DB multi-AZ. Untuk instruksi, lihat Memulihkan dari snapshot klaster DB Multi-AZ ke instans DB.