Menggunakan penerusan tulis di dalam basis data global Aurora PostgreSQL - Amazon Aurora

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

Menggunakan penerusan tulis di dalam basis data global Aurora PostgreSQL

Ketersediaan wilayah dan versi penerusan tulis di Aurora PostgreSQL

Penerusan tulis didukung dengan Aurora PostgreSQL versi 15.4 dan versi kecil yang lebih tinggi, serta versi 14.9 dan versi kecil yang lebih tinggi. Penerusan tulis tersedia di setiap Wilayah tempat basis data global berbasis Aurora PostgreSQL tersedia.

Untuk informasi lebih lanjut tentang versi dan ketersediaan Wilayah basis data global Aurora PostgreSQL, lihat Basis data global Aurora dengan Aurora PostgreSQL.

Mengaktifkan penerusan tulis di Aurora PostgreSQL

Secara default, penerusan tulis tidak diaktifkan saat Anda menambahkan klaster sekunder ke basis data global Aurora. Anda dapat mengaktifkan penerusan tulis untuk klaster DB sekunder Anda saat Anda membuatnya atau kapan saja setelah Anda membuatnya. Jika perlu, Anda dapat menonaktifkannya nanti. Mengaktifkan atau menonaktifkan penerusan tulis tidak menyebabkan waktu henti atau boot ulang.

Di konsol, Anda dapat mengaktifkan atau menonaktifkan penerusan tulis saat Anda membuat atau memodifikasi klaster DB sekunder.

Mengaktifkan atau menonaktifkan penerusan tulis saat membuat klaster DB sekunder

Saat Anda membuat klaster DB sekunder baru, Anda mengaktifkan penerusan tulis dengan memilih kotak centang Aktifkan penerusan tulis global di bagian Penerusan tulis replika baca. Atau kosongkan kotak centang untuk menonaktifkannya. Untuk membuat klaster DB sekunder, ikuti petunjuk untuk mesin DB Anda di Membuat klaster DB Amazon Aurora.

Tangkapan layar berikut menunjukkan bagian Penerusan tulis replika baca dengan kotak centang Aktifkan penerusan tulis global dipilih.

Bagian Penerusan tulis replika baca, yang menampilkan kotak centang Aktifkan penerusan tulis global dipilih.

Mengaktifkan atau menonaktifkan penerusan tulis saat memodifikasi klaster DB sekunder

Di konsol, Anda dapat memodifikasi klaster DB sekunder untuk mengaktifkan atau menonaktifkan penerusan tulis.

Mengaktifkan atau menonaktifkan penerusan tulis untuk klaster DB sekunder dengan menggunakan konsol
  1. Masuk ke AWS Management Console dan buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.

  2. Pilih Basis data.

  3. Pilih klaster DB sekunder, dan pilih Modifikasi.

  4. Di bagian Penerusan tulis replika baca, pilih atau kosongkan kotak centang Aktifkan penerusan tulis global.

  5. Pilih Lanjutkan.

  6. Untuk Jadwalkan modifikasi, pilih Terapkan segera. Jika Anda memilih Terapkan selama periode pemeliharaan terjadwal berikutnya, Aurora akan mengabaikan pengaturan ini dan langsung mengaktifkan penerusan tulis.

  7. Pilih Modifikasi klaster.

Untuk mengaktifkan penerusan tulis dengan menggunakan AWS CLI, gunakan opsi. --enable-global-write-forwarding Opsi ini berfungsi saat Anda membuat cluster sekunder baru menggunakan create-db-clusterperintah. Ini juga berfungsi ketika Anda memodifikasi cluster sekunder yang ada menggunakan modify-db-clusterperintah. Opsi ini mengharuskan basis data global menggunakan versi Aurora yang mendukung penerusan tulis. Anda dapat menonaktifkan penerusan tulis dengan menggunakan opsi --no-enable-global-write-forwarding dengan perintah CLI yang sama ini.

Prosedur berikut ini menjelaskan cara mengaktifkan atau menonaktifkan penerusan tulis untuk klaster DB sekunder di klaster global Anda dengan menggunakan AWS CLI.

Mengaktifkan atau menonaktifkan penerusan tulis untuk klaster DB sekunder yang ada
  • Panggil modify-db-cluster AWS CLI perintah dan berikan nilai-nilai berikut:

    • --db-cluster-identifier – Nama klaster DB.

    • --enable-global-write-forwarding untuk mengaktifkan atau --no-enable-global-write-forwarding untuk menonaktifkan.

    Contoh berikut mengaktifkan penerusan tulis untuk klaster DB sample-secondary-db-cluster.

    Untuk Linux, macOS, atau Unix:

    aws rds modify-db-cluster \ --db-cluster-identifier sample-secondary-db-cluster \ --enable-global-write-forwarding

    Untuk Windows:

    aws rds modify-db-cluster ^ --db-cluster-identifier sample-secondary-db-cluster ^ --enable-global-write-forwarding

Untuk mengaktifkan penerusan tulis menggunakan API Amazon RDS, atur parameter EnableGlobalWriteForwarding ke true. Parameter ini berfungsi saat Anda membuat klaster sekunder baru menggunakan operasi CreateDBCluster. Opsi ini juga berfungsi saat Anda memodifikasi klaster sekunder yang ada dengan menggunakan operasi ModifyDBCluster. Opsi ini mengharuskan basis data global menggunakan versi Aurora yang mendukung penerusan tulis. Anda dapat menonaktifkan penerusan tulis dengan mengatur parameter EnableGlobalWriteForwarding ke false.

Memeriksa apakah klaster sekunder telah mengaktifkan penerusan tulis di Aurora PostgreSQL

Untuk menentukan apakah Anda dapat menggunakan penerusan tulis dari klaster sekunder, Anda dapat memeriksa apakah klaster tersebut memiliki atribut "GlobalWriteForwardingStatus": "enabled".

Di AWS Management Console, Anda lihat Read replica write forwarding pada tab Konfigurasi halaman detail untuk cluster. Untuk melihat status setelan penerusan tulis global untuk semua cluster Anda, jalankan perintah berikut. AWS CLI

Klaster sekunder menunjukkan nilai "enabled" atau "disabled" untuk menunjukkan apakah penerusan tulis diaktifkan atau dinonaktifkan. Nilai null menunjukkan bahwa penerusan tulis tidak tersedia untuk klaster tersebut. Klaster ini bukan bagian dari basis data global, atau merupakan klaster primer, bukan klaster sekunder. Nilainya juga bisa "enabling" atau "disabling" jika penerusan tulis sedang dalam proses diaktifkan atau dinonaktifkan.

contoh
aws rds describe-db-clusters --query '*[].{DBClusterIdentifier:DBClusterIdentifier,GlobalWriteForwardingStatus:GlobalWriteForwardingStatus}' [ { "GlobalWriteForwardingStatus": "enabled", "DBClusterIdentifier": "aurora-write-forwarding-test-replica-1" }, { "GlobalWriteForwardingStatus": "disabled", "DBClusterIdentifier": "aurora-write-forwarding-test-replica-2" }, { "GlobalWriteForwardingStatus": null, "DBClusterIdentifier": "non-global-cluster" } ]

Untuk menemukan semua klaster sekunder yang memiliki penerusan tulis global, jalankan perintah berikut. Perintah ini juga mengembalikan titik akhir pembaca klaster ini. Anda menggunakan titik akhir pembaca klaster sekunder ketika Anda menggunakan penerusan tulis dari sekunder ke primer dalam basis data global Aurora Anda.

contoh
aws rds describe-db-clusters --query 'DBClusters[].{DBClusterIdentifier:DBClusterIdentifier,GlobalWriteForwardingStatus:GlobalWriteForwardingStatus,ReaderEndpoint:ReaderEndpoint} | [?GlobalWriteForwardingStatus == `enabled`]' [ { "GlobalWriteForwardingStatus": "enabled", "ReaderEndpoint": "aurora-write-forwarding-test-replica-1.cluster-ro-cnpexample.us-west-2.rds.amazonaws.com", "DBClusterIdentifier": "aurora-write-forwarding-test-replica-1" } ]

Kompatibilitas aplikasi dan SQL dengan penerusan tulis di Aurora PostgreSQL

Pernyataan tertentu tidak diizinkan atau dapat menghasilkan hasil usang saat Anda menggunakannya dalam basis data global dengan penerusan tulis. Selain itu, fungsi yang ditentukan pengguna dan prosedur yang ditentukan pengguna tidak didukung. Dengan demikian, pengaturan EnableGlobalWriteForwarding dinonaktifkan secara default untuk klaster sekunder. Sebelum mengaktifkan pengaturan tersebut, periksa untuk memastikan bahwa kode aplikasi Anda tidak terpengaruh oleh pembatasan ini.

Anda dapat menggunakan jenis pernyataan SQL berikut dengan penerusan tulis:

  • Pernyataan bahasa manipulasi data (DML), seperti INSERT, DELETE, dan UPDATE

  • Pernyataan SELECT FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE }

  • Pernyataan PREPARE dan EXECUTE

  • Pernyataan EXPLAIN dengan pernyataan di dalam daftar ini

Jenis pernyataan SQL berikut ini tidak didukung dengan penerusan tulis:

  • Pernyataan bahasa definisi data (DDL)

  • ANALYZE

  • CLUSTER

  • COPY

  • Kursor - Kursor tidak didukung, jadi pastikan untuk menutupnya sebelum menggunakan penerusan tulis.

  • GRANT|REVOKE|REASSIGN OWNED|SECURITY LABEL

  • LOCK

  • Pernyataan SAVEPOINT

  • SELECT INTO

  • SET CONSTRAINTS

  • TRUNCATE

  • VACUUM

Isolasi dan konsistensi untuk penerusan tulis di Aurora PostgreSQL

Dalam sesi yang menggunakan penerusan tulis, Anda dapat menggunakan tingkat isolasi REPEATABLE READ dan READ COMMITTED. Namun, tingkat isolasi SERIALIZABLE tidak didukung.

Anda dapat mengontrol tingkat konsistensi baca di klaster sekunder. Tingkat konsistensi baca menentukan seberapa lama waktu tunggu klaster sekunder sebelum setiap operasi baca untuk memastikan bahwa beberapa atau semua perubahan direplikasi dari klaster primer. Anda dapat menyesuaikan tingkat konsistensi baca untuk memastikan bahwa semua operasi tulis yang diteruskan dari sesi Anda terlihat dalam klaster sekunder sebelum kueri berikutnya. Anda juga dapat menggunakan pengaturan ini untuk memastikan bahwa kueri pada klaster sekunder selalu melihat pembaruan terkini dari klaster primer. Hal ini bahkan berlaku untuk yang dikirimkan oleh sesi lain atau klaster lainnya. Untuk menentukan jenis perilaku ini untuk aplikasi Anda, Anda memilih nilai yang sesuai untuk parameter tingkat sesi apg_write_forward.consistency_mode. Parameter apg_write_forward.consistency_mode memiliki efek hanya pada klaster sekunder dengan penerusan tulis diaktifkan.

catatan

Untuk parameter apg_write_forward.consistency_mode, Anda dapat menentukan nilai SESSION, EVENTUAL, GLOBAL, atau OFF. Secara default, nilainya diatur ke SESSION. Mengatur nilai ini ke OFF akan menonaktifkan penerusan tulis dalam sesi.

Saat Anda meningkatkan tingkat konsistensi, aplikasi Anda menghabiskan lebih banyak waktu menunggu perubahan disebarkan antar AWS Wilayah. Anda dapat memilih keseimbangan antara waktu respons yang cepat dan memastikan bahwa perubahan yang dilakukan di dalam lokasi lainnya sepenuhnya tersedia sebelum kueri Anda berjalan.

Dengan setiap pengaturan mode konsistensi yang tersedia, efeknya adalah sebagai berikut:

  • SESSION— Semua kueri di AWS Wilayah sekunder yang menggunakan penerusan tulis melihat hasil dari semua perubahan yang dibuat dalam sesi itu. Perubahan dapat dilihat terlepas dari apakah transaksi dilakukan. Jika perlu, kueri menunggu hasil operasi tulis yang diteruskan untuk direplikasi ke Wilayah saat ini. Kueri tidak menunggu hasil yang diperbarui dari operasi tulis yang dilakukan di Wilayah lain atau dalam sesi lain di dalam Wilayah saat ini.

  • EVENTUAL— Kueri di AWS Wilayah sekunder yang menggunakan penerusan tulis mungkin melihat data yang sedikit basi karena kelambatan replikasi. Hasil operasi tulis dalam sesi yang sama tidak terlihat sampai operasi tulis dilakukan pada Wilayah primer dan direplikasi ke Wilayah saat ini. Kueri tidak menunggu hasil yang diperbarui untuk tersedia. Dengan demikian, kueri dapat mengambil data yang lebih lama atau data yang diperbarui, bergantung pada waktu pernyataan dan jumlah lag replikasi.

  • GLOBAL— Sesi di AWS Wilayah sekunder melihat perubahan yang dibuat oleh sesi itu. Ini juga melihat semua perubahan yang dilakukan dari AWS Wilayah primer dan AWS Wilayah sekunder lainnya. Setiap kueri mungkin akan menunggu selama periode yang berbeda-beda tergantung jumlah lag sesi. Kueri berlangsung ketika cluster sekunder up-to-date dengan semua data yang dikomit dari cluster primer, pada saat kueri dimulai.

  • OFF – Penerusan tulis dinonaktifkan dalam sesi.

Untuk informasi selengkapnya tentang semua parameter yang terlibat dalam penerusan tulis, lihat Parameter konfigurasi untuk penerusan tulis di Aurora PostgreSQL.

Menjalankan pernyataan multibagian dengan penerusan tulis di Aurora PostgreSQL

Pernyataan DML mungkin terdiri atas beberapa bagian, seperti pernyataan INSERT ... SELECT atau pernyataan DELETE ... WHERE. Dalam kasus ini, seluruh pernyataan diteruskan ke klaster primer dan berjalan di sana.

Parameter konfigurasi untuk penerusan tulis di Aurora PostgreSQL

Grup parameter klaster Aurora mencakup pengaturan untuk fitur penerusan tulis. Karena ini adalah parameter klaster, semua instans DB di setiap klaster memiliki nilai yang sama untuk variabel ini. Detail tentang parameter ini dirangkum dalam tabel berikut, dengan catatan penggunaan setelah tabel.

Nama Cakupan Tipe Nilai default Nilai valid
apg_write_forward.connect_timeout Sesi detik 30 0–2147483647
apg_write_forward.consistency_mode Sesi enum Sesi SESSION, EVENTUAL, GLOBAL, OFF
apg_write_forward.idle_in_transaction_session_timeout Sesi milidetik 86400000 0–2147483647
apg_write_forward.idle_session_timeout Sesi milidetik 300000 0–2147483647
apg_write_forward.max_forwarding_connections_percent Global int 25 1–100

Parameter apg_write_forward.max_forwarding_connections_percent adalah batas atas pada slot koneksi basis data yang dapat digunakan untuk menangani kueri yang diteruskan dari pembaca. Opsi ini dinyatakan dalam bentuk persentase pengaturan max_connections untuk instans DB dalam klaster primer. Misalnya, jika max_connections adalah 800 dan apg_write_forward.max_forwarding_connections_percent adalah 10, maka penulis mengizinkan maksimum 80 sesi yang diteruskan secara serentak. Koneksi ini berasal dari pool koneksi yang sama yang dikelola oleh pengaturan max_connections. Pengaturan ini hanya berlaku pada klaster primer saat setidaknya ada satu klaster sekunder yang memiliki penerusan tulis yang diaktifkan.

Gunakan pengaturan berikut pada klaster sekunder:

  • apg_write_forward.consistency_mode – Parameter tingkat sesi yang mengontrol tingkat konsistensi baca pada klaster sekunder. Nilai yang valid adalah SESSION, EVENTUAL, GLOBAL, atau OFF. Secara default, nilainya diatur ke SESSION. Mengatur nilai ini ke OFF akan menonaktifkan penerusan tulis dalam sesi. Untuk mempelajari selengkapnya tentang tingkat konsistensi, lihat Isolasi dan konsistensi untuk penerusan tulis di Aurora PostgreSQL. Parameter ini hanya relevan dalam instans pembaca klaster sekunder yang memiliki penerusan tulis diaktifkan dan yang berada di dalam basis data global Aurora.

  • apg_write_forward.connect_timeout – Jumlah maksimum detik yang diperlukan klaster sekunder untuk menunggu saat membuat koneksi ke klaster primer sebelum menyerah. Nilai 0 berarti menunggu tanpa batas.

  • apg_write_forward.idle_in_transaction_session_timeout – Jumlah milidetik yang diperlukan klaster primer untuk menunggu aktivitas pada koneksi yang diteruskan dari klaster sekunder yang memiliki transaksi terbuka sebelum menutupnya. Jika sesi tetap idle dalam transaksi setelah periode ini, Aurora akan mengakhiri sesi. Nilai 0 menonaktifkan batas waktu.

  • apg_write_forward.idle_session_timeout – Jumlah milidetik yang diperlukan klaster primer untuk menunggu aktivitas pada koneksi yang diteruskan dari klaster sekunder sebelum menutupnya. Jika sesi tetap idle setelah periode ini, Aurora akan mengakhiri sesi. Nilai 0 menonaktifkan batas waktu.

CloudWatch Metrik Amazon untuk penerusan tulis di Aurora PostgreSQL

CloudWatch Metrik Amazon berikut berlaku untuk klaster utama saat Anda menggunakan penerusan tulis pada satu atau beberapa klaster sekunder. Semua metrik ini diukur pada instans DB penulis dalam klaster primer.

CloudWatch Metrik

Unit dan deskripsi

AuroraForwardingWriterDMLThroughput

Hitungan (per detik). Jumlah pernyataan DML yang diteruskan yang diproses setiap detik oleh instans DB penulis ini.

AuroraForwardingWriterOpenSessions

Hitungan. Jumlah sesi terbuka pada instans DB penulis ini yang memproses kueri yang diteruskan.

AuroraForwardingWriterTotalSessions

Hitungan. Total jumlah sesi yang diteruskan pada instans DB penulis ini.

CloudWatch Metrik berikut berlaku untuk setiap cluster sekunder. Metrik-metrik ini diukur pada setiap instans DB pembaca dalam klaster sekunder dengan penerusan tulis yang diaktifkan.

CloudWatch Metrik

Unit dan deskripsi

AuroraForwardingReplicaCommitThroughput

Hitungan (per detik). Jumlah commit dalam sesi yang diteruskan oleh replika ini setiap detik.

AuroraForwardingReplicaDMLLatency

Milidetik. Rata-rata waktu respons dalam milidetik DML yang diteruskan pada replika.

AuroraForwardingReplicaDMLThroughput

Hitungan (per detik). Jumlah pernyataan DML yang diteruskan yang diproses pada replika ini setiap detiknya.

AuroraForwardingReplicaErrorSessionsLimit

Hitungan. Jumlah sesi yang ditolak oleh klaster primer karena batas untuk koneksi maksimum atau koneksi penerusan tulis maksimum tercapai.

AuroraForwardingReplicaOpenSessions

Hitungan. Jumlah sesi yang menggunakan penerusan tulis pada instans replika.

AuroraForwardingReplicaReadWaitLatency

Milidetik. Rata-rata waktu tunggu dalam milidetik yang diperlukan oleh replika untuk menunggu agar konsisten dengan LSN klaster primer. Batas tunggu instans DB pembaca ditentukan oleh pengaturan apg_write_forward.consistency_mode. Untuk informasi tentang pengaturan ini, lihat Parameter konfigurasi untuk penerusan tulis di Aurora PostgreSQL.

Peristiwa tunggu untuk penerusan tulis di Aurora PostgreSQL

Amazon Aurora menghasilkan peristiwa tunggu berikut ini saat Anda menggunakan penerusan tulis dengan Aurora PostgreSQL.

IPC: AuroraWriteForwardConnect

Peristiwa IPC:AuroraWriteForwardConnect terjadi ketika proses backend pada klaster DB sekunder sedang menunggu koneksi ke simpul penulis klaster DB primer dibuka.

Kemungkinan menyebabkan peningkatan waktu tunggu

Peristiwa ini meningkat seiring meningkatnya jumlah upaya koneksi dari simpul pembaca Wilayah sekunder ke simpul penulis klaster DB primer.

Tindakan

Kurangi jumlah koneksi serentak dari simpul sekunder ke simpul penulis Wilayah primer.

IPC: AuroraWriteForwardConsistencyPoint

Peristiwa IPC:AuroraWriteForwardConsistencyPoint menjelaskan durasi kueri dari simpul di klaster DB sekunder akan menunggu hasil operasi tulis yang diteruskan untuk direplikasi ke Wilayah saat ini. Peristiwa ini hanya dihasilkan jika parameter tingkat sesi apg_write_forward.consistency_mode diatur ke salah satu dari berikut ini:

  • SESSION – kueri pada simpul sekunder menunggu hasil semua perubahan yang dibuat dalam sesi tersebut.

  • GLOBAL – kueri pada simpul sekunder menunggu hasil perubahan yang dibuat oleh sesi tersebut, ditambah semua perubahan yang di-commit dari Wilayah primer dan Wilayah sekunder lainnya di klaster global.

Untuk informasi selengkapnya tentang pengaturan parameter apg_write_forward.consistency_mode, lihat Parameter konfigurasi untuk penerusan tulis di Aurora PostgreSQL.

Kemungkinan menyebabkan peningkatan waktu tunggu

Penyebab umum untuk waktu tunggu yang lebih lama termasuk yang berikut:

  • Peningkatan lag replika, yang diukur dengan CloudWatch ReplicaLag metrik Amazon. Untuk informasi selengkapnya tentang metrik ini, lihat Memantau replikasi Aurora PostgreSQL.

  • Peningkatan beban pada simpul penulis Wilayah primer atau pada simpul sekunder.

Tindakan

Ubah mode konsistensi Anda, tergantung kebutuhan aplikasi Anda.

IPC: AuroraWriteForwardExecute

Peristiwa IPC:AuroraWriteForwardExecute terjadi ketika proses backend pada klaster DB sekunder sedang menunggu kueri yang diteruskan selesai dan mendapatkan hasil dari simpul penulis klaster DB primer.

Kemungkinan menyebabkan peningkatan waktu tunggu

Penyebab umum peningkatan waktu tunggu antara lain:

  • Mengambil banyak baris dari simpul penulis Wilayah primer.

  • Peningkatan latensi jaringan antara simpul sekunder dan simpul penulis Wilayah primer meningkatkan waktu yang dibutuhkan simpul sekunder untuk menerima data dari simpul penulis.

  • Peningkatan beban pada simpul sekunder dapat menunda pengiriman permintaan kueri dari simpul sekunder ke simpul penulis Wilayah primer.

  • Peningkatan beban pada simpul penulis Wilayah primer dapat menunda pengiriman data dari simpul penulis ke simpul sekunder.

Tindakan

Kami merekomendasikan tindakan yang berbeda-beda tergantung penyebab peristiwa tunggu Anda.

  • Optimalkan kueri untuk mengambil hanya data yang diperlukan.

  • Optimalkan operasi bahasa manipulasi data (DML) untuk hanya memodifikasi data yang diperlukan.

  • Jika simpul sekunder atau simpul penulis Wilayah primer dibatasi oleh CPU atau bandwidth jaringan, pertimbangkan untuk mengubahnya menjadi tipe instans dengan kapasitas CPU yang lebih besar atau lebih banyak bandwidth jaringan.

IPC: AuroraWriteForwardGetGlobalConsistencyPoint

Peristiwa IPC:AuroraWriteForwardGetGlobalConsistencyPoint terjadi ketika proses backend pada klaster DB sekunder yang menggunakan mode konsistensi GLOBAL sedang menunggu untuk mendapatkan titik konsistensi global dari simpul penulis sebelum menjalankan kueri.

Kemungkinan menyebabkan peningkatan waktu tunggu

Penyebab umum peningkatan waktu tunggu antara lain:

  • Peningkatan latensi jaringan antara simpul sekunder dan simpul penulis Wilayah primer meningkatkan waktu yang dibutuhkan simpul sekunder untuk menerima data dari simpul penulis.

  • Peningkatan beban pada simpul sekunder dapat menunda pengiriman permintaan kueri dari simpul sekunder ke simpul penulis Wilayah primer.

  • Peningkatan beban pada simpul penulis Wilayah primer dapat menunda pengiriman data dari simpul penulis ke simpul sekunder.

Tindakan

Kami merekomendasikan tindakan yang berbeda-beda tergantung penyebab peristiwa tunggu Anda.

  • Ubah mode konsistensi Anda, tergantung kebutuhan aplikasi Anda.

  • Jika simpul sekunder atau simpul penulis Wilayah primer dibatasi oleh CPU atau bandwidth jaringan, pertimbangkan untuk mengubahnya menjadi tipe instans dengan kapasitas CPU yang lebih besar atau lebih banyak bandwidth jaringan.

IPC: AuroraWriteForwardXactAbort

Peristiwa IPC:AuroraWriteForwardXactAbort terjadi ketika proses backend pada klaster DB sekunder sedang menunggu hasil kueri pembersihan jarak jauh. Kueri pembersihan dikeluarkan untuk mengembalikan proses ke keadaan yang sesuai setelah transaksi dengan penerusan tulis dibatalkan. Amazon Aurora melakukannya karena ada kesalahan yang ditemukan atau karena pengguna mengeluarkan perintah ABORT eksplisit atau membatalkan kueri yang sedang berjalan.

Kemungkinan menyebabkan peningkatan waktu tunggu

Penyebab umum peningkatan waktu tunggu antara lain:

  • Peningkatan latensi jaringan antara simpul sekunder dan simpul penulis Wilayah primer meningkatkan waktu yang dibutuhkan simpul sekunder untuk menerima data dari simpul penulis.

  • Peningkatan beban pada simpul sekunder dapat menunda pengiriman permintaan kueri pembersihan dari simpul sekunder ke simpul penulis Wilayah primer.

  • Peningkatan beban pada simpul penulis Wilayah primer dapat menunda pengiriman data dari simpul penulis ke simpul sekunder.

Tindakan

Kami merekomendasikan tindakan yang berbeda-beda tergantung penyebab peristiwa tunggu Anda.

  • Selidiki penyebab transaksi yang dibatalkan.

  • Jika simpul sekunder atau simpul penulis Wilayah primer dibatasi oleh CPU atau bandwidth jaringan, pertimbangkan untuk mengubahnya menjadi tipe instans dengan kapasitas CPU yang lebih besar atau lebih banyak bandwidth jaringan.

IPC: AuroraWriteForwardXactCommit

Peristiwa IPC:AuroraWriteForwardXactCommit terjadi ketika proses backend pada klaster DB sekunder sedang menunggu hasil perintah transaksi commit yang diteruskan.

Kemungkinan menyebabkan peningkatan waktu tunggu

Penyebab umum peningkatan waktu tunggu antara lain:

  • Peningkatan latensi jaringan antara simpul sekunder dan simpul penulis Wilayah primer meningkatkan waktu yang dibutuhkan simpul sekunder untuk menerima data dari simpul penulis.

  • Peningkatan beban pada simpul sekunder dapat menunda pengiriman permintaan kueri dari simpul sekunder ke simpul penulis Wilayah primer.

  • Peningkatan beban pada simpul penulis Wilayah primer dapat menunda pengiriman data dari simpul penulis ke simpul sekunder.

Tindakan

Jika simpul sekunder atau simpul penulis Wilayah primer dibatasi oleh CPU atau bandwidth jaringan, pertimbangkan untuk mengubahnya menjadi tipe instans dengan kapasitas CPU yang lebih besar atau lebih banyak bandwidth jaringan.

IPC: AuroraWriteForwardXactStart

Peristiwa IPC:AuroraWriteForwardXactStart terjadi ketika proses backend pada klaster DB sekunder sedang menunggu hasil perintah transaksi mulai yang diteruskan.

Kemungkinan menyebabkan peningkatan waktu tunggu

Penyebab umum peningkatan waktu tunggu antara lain:

  • Peningkatan latensi jaringan antara simpul sekunder dan simpul penulis Wilayah primer meningkatkan waktu yang dibutuhkan simpul sekunder untuk menerima data dari simpul penulis.

  • Peningkatan beban pada simpul sekunder dapat menunda pengiriman permintaan kueri dari simpul sekunder ke simpul penulis Wilayah primer.

  • Peningkatan beban pada simpul penulis Wilayah primer dapat menunda pengiriman data dari simpul penulis ke simpul sekunder.

Tindakan

Jika simpul sekunder atau simpul penulis Wilayah primer dibatasi oleh CPU atau bandwidth jaringan, pertimbangkan untuk mengubahnya menjadi tipe instans dengan kapasitas CPU yang lebih besar atau lebih banyak bandwidth jaringan.