Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan penerusan tulis lokal di klaster DB Amazon Aurora MySQL
Penerusan tulis lokal (dalam klaster) memungkinkan aplikasi Anda mengeluarkan transaksi baca/tulis langsung pada Replika Aurora. Transaksi ini kemudian diteruskan ke instans DB penulis untuk di-commit. Anda dapat menggunakan penerusan tulis lokal ketika aplikasi Anda memerlukan konsistensi baca-setelah-tulis, yang merupakan kemampuan untuk membaca penulisan terbaru dalam suatu transaksi.
Replika baca menerima pembaruan secara asinkron dari penulis. Tanpa penerusan tulis, Anda harus bertransaksi pembacaan apa pun yang memerlukan konsistensi baca-setelah-tulis pada instans DB penulis. Atau Anda harus mengembangkan logika aplikasi khusus yang kompleks untuk memanfaatkan beberapa replika baca untuk skalabilitas. Aplikasi Anda harus sepenuhnya membagi semua lalu lintas baca dan tulis, sehingga mempertahankan dua set koneksi basis data untuk mengirim lalu lintas ke titik akhir yang benar. Overhead pengembangan ini memperumit desain aplikasi ketika kueri merupakan bagian dari satu sesi logis, atau transaksi, di dalam aplikasi. Selain itu, karena lag replikasi dapat berbeda di antara replika baca, sulit untuk mencapai konsistensi baca global di semua instans di dalam basis data.
Penerusan tulis menghindari kebutuhan untuk membagi transaksi tersebut atau mengirimkannya secara eksklusif ke penulis, yang menyederhanakan pengembangan aplikasi. Kemampuan baru ini memudahkan pencapaian skala baca untuk beban kerja yang perlu membaca penulisan terbaru dalam suatu transaksi dan tidak sensitif terhadap latensi penulisan.
Penerusan tulis lokal berbeda dari penerusan tulis global, yang meneruskan penulisan dari klaster DB sekunder ke klaster DB primer dalam basis data global Aurora. Anda dapat menggunakan penerusan tulis lokal dalam klaster DB yang merupakan bagian dari basis data global Aurora. Untuk informasi selengkapnya, lihat Menggunakan penerusan menulis dalam basis data global Amazon Aurora.
Penerusan tulis lokal membutuhkan Aurora MySQL versi 3.04 atau versi yang lebih tinggi.
Topik
- Mengaktifkan penerusan tulis lokal
- Memeriksa apakah klaster DB memiliki penerusan tulis yang diaktifkan
- Kompatibilitas aplikasi dan SQL dengan penerusan tulis
- Tingkat isolasi untuk penerusan tulis
- Konsistensi baca untuk penerusan tulis
- Menjalankan pernyataan multibagian dengan penerusan tulis
- Transaksi dengan penerusan tulis
- Parameter konfigurasi untuk penerusan tulis
- Metrik Amazon CloudWatch dan variabel status Aurora MySQL untuk penerusan tulis
- Mengidentifikasi transaksi dan kueri yang diteruskan
Mengaktifkan penerusan tulis lokal
Secara default, penerusan tulis lokal tidak diaktifkan untuk klaster DB MySQL Aurora. Anda mengaktifkan penerusan tulis lokal pada tingkat klaster, bukan pada tingkat instans.
penting
Anda juga dapat mengaktifkan penerusan tulis lokal untuk replika baca lintas wilayah yang menggunakan pencatatan log biner, tetapi operasi tulis tidak diteruskan ke Wilayah AWS sumber. Operasi tulis diteruskan ke instans DB penulis dari klaster replika baca binlog.
Gunakan metode ini hanya jika Anda memiliki kasus penggunaan penulisan ke replika baca binlog di Wilayah AWS sekunder. Jika tidak, Anda mungkin berakhir dengan skenario “otak terbelah” di mana set data yang direplikasi tidak konsisten satu sama lain.
Kami menyarankan Anda menggunakan penerusan tulis global dengan basis data global, daripada penerusan tulis lokal pada replika baca lintas wilayah, kecuali benar-benar diperlukan. Untuk informasi selengkapnya, lihat Menggunakan penerusan menulis dalam basis data global Amazon Aurora.
Menggunakan AWS Management Console, pilih kotak centang Aktifkan penerusan tulis lokal di bawah Penerusan tulis replika baca saat Anda membuat atau memodifikasi klaster DB.
Untuk mengaktifkan penerusan tulis dengan AWS CLI, gunakan opsi --enable-local-write-forwarding
. Opsi ini berfungsi saat Anda membuat klaster DB baru menggunakan perintah create-db-cluster
. Opsi ini juga berfungsi saat Anda memodifikasi klaster DB yang ada dengan menggunakan perintah modify-db-cluster
. Anda dapat menonaktifkan penerusan tulis dengan menggunakan opsi --no-enable-local-write-forwarding
dengan perintah CLI yang sama ini.
Contoh berikut ini membuat sebuah klaster DB Aurora MySQL dengan penerusan tulis yang diaktifkan.
aws rds create-db-cluster \ --db-cluster-identifier write-forwarding-test-cluster \
--enable-local-write-forwarding
\ --engine aurora-mysql \ --engine-version8.0.mysql_aurora.3.04.0
\ --master-username myuser \ --master-user-password mypassword \ --backup-retention 1
Anda kemudian membuat instans DB penulis dan pembaca sehingga Anda dapat menggunakan penerusan tulis. Untuk informasi selengkapnya, lihat Membuat klaster DB Amazon Aurora.
Untuk mengaktifkan penerusan tulis menggunakan API Amazon RDS, atur parameter EnableLocalWriteForwarding
ke true
. Parameter ini berfungsi saat Anda membuat klaster DB baru menggunakan operasi CreateDBCluster
. Opsi ini juga berfungsi saat Anda memodifikasi klaster DB yang ada dengan menggunakan operasi ModifyDBCluster
. Anda dapat menonaktifkan penerusan tulis dengan mengatur parameter EnableLocalWriteForwarding
ke false
.
Mengaktifkan penerusan tulis untuk sesi basis data
Parameter aurora_replica_read_consistency
adalah parameter DB dan parameter klaster DB yang memungkinkan penerusan tulis. Anda dapat menentukan EVENTUAL
, SESSION
, atau GLOBAL
untuk tingkat konsistensi baca. Untuk mempelajari selengkapnya tentang tingkat konsistensi, lihat Konsistensi baca untuk penerusan tulis.
Aturan berikut berlaku untuk parameter ini:
-
Nilai default-nya adalah " (nol).
-
Penerusan tulis hanya tersedia jika Anda menyetel
aurora_replica_read_consistency
keEVENTUAL
,SESSION
, atauGLOBAL
. Parameter ini hanya relevan dalam instans pembaca klaster DB yang memiliki penerusan tulis diaktifkan. -
Anda tidak dapat mengatur parameter ini (saat kosong) atau membatalkan pengaturan (saat sudah diatur) di dalam transaksi multipernyataan. Anda dapat mengubahnya dari satu nilai yang valid ke nilai valid lainnya selama transaksi tersebut, tetapi kami tidak merekomendasikan tindakan ini.
Memeriksa apakah klaster DB memiliki penerusan tulis yang diaktifkan
Untuk menentukan bahwa Anda dapat menggunakan penerusan tulis di klaster DB, konfirmasikan bahwa klaster memiliki atribut LocalWriteForwardingStatus
disetel ke enabled
.
Di AWS Management Console, pada tab Konfigurasi halaman detail untuk klaster, Anda melihat status Diaktifkan untuk Penerusan tulis replika baca lokal.
Untuk melihat status pengaturan penerusan tulis untuk semua klaster Anda, jalankan perintah AWS CLI berikut.
aws rds describe-db-clusters \ --query '*[].{DBClusterIdentifier:DBClusterIdentifier,LocalWriteForwardingStatus:LocalWriteForwardingStatus}' [ { "LocalWriteForwardingStatus": "enabled", "DBClusterIdentifier": "write-forwarding-test-cluster-1" }, { "LocalWriteForwardingStatus": "disabled", "DBClusterIdentifier": "write-forwarding-test-cluster-2" }, { "LocalWriteForwardingStatus": "requested", "DBClusterIdentifier": "test-global-cluster-2" }, { "LocalWriteForwardingStatus": "null", "DBClusterIdentifier": "aurora-mysql-v2-cluster" } ]
Sebuah klaster DB dapat memiliki nilai berikut untuk LocalWriteForwardingStatus
:
-
disabled
– Penerusan tulis dinonaktifkan. -
disabling
– Penerusan tulis dalam proses penonaktifan. -
enabled
– Penerusan tulis diaktifkan. -
enabling
– Penerusan tulis dalam proses pengaktifan. -
null
– Penerusan tulis tidak tersedia untuk klaster DB ini. -
requested
– Penerusan tulis telah diminta, tetapi belum aktif.
Kompatibilitas aplikasi dan SQL dengan penerusan tulis
Anda dapat menggunakan jenis pernyataan SQL berikut dengan penerusan tulis:
-
Pernyataan bahasa manipulasi data (DML), seperti
INSERT
,DELETE
, danUPDATE
. Ada beberapa pembatasan pada properti pernyataan ini yang dapat Anda gunakan dengan penerusan tulis, seperti yang dijelaskan di bawah ini. -
Pernyataan
SELECT ... LOCK IN SHARE MODE
danSELECT FOR UPDATE
. -
Pernyataan
PREPARE
danEXECUTE
.
Pernyataan tertentu tidak diizinkan atau dapat menghasilkan hasil usang saat Anda menggunakannya dalam klaster DB dengan penerusan tulis. Oleh karena itu, pengaturan EnableLocalWriteForwarding
dinonaktifkan secara default untuk klaster DB. Sebelum diaktifkan, periksa untuk memastikan bahwa kode aplikasi Anda tidak terpengaruh oleh pembatasan ini.
Batasan berikut berlaku untuk pernyataan SQL yang Anda gunakan untuk penerusan tulis. Dalam beberapa kasus, Anda dapat menggunakan pernyataan pada klaster DB dengan penerusan tulis yang diaktifkan. Pendekatan ini berfungsi jika penerusan tulis tidak diaktifkan dalam sesi oleh parameter konfigurasi aurora_replica_read_consistency
. Jika Anda mencoba menggunakan suatu pernyataan yang tidak diizinkan karena adanya penerusan tulis, Anda akan melihat pesan kesalahan seperti berikut ini:
ERROR 1235 (42000): This version of MySQL doesn't yet support '
operation
with write forwarding'.
- Bahasa definisi data (DDL)
-
Hubungkan ke instans DB tulis untuk menjalankan pernyataan DDL. Anda tidak dapat menjalankannya dari instans DB pembaca.
- Memperbarui tabel permanen menggunakan data dari tabel sementara
-
Anda dapat menggunakan tabel sementara pada klaster DB dengan penerusan tulis yang diaktifkan. Namun, Anda tidak dapat menggunakan pernyataan DML untuk mengubah tabel permanen jika pernyataan tersebut mengacu pada tabel sementara. Misalnya, Anda tidak dapat menggunakan pernyataan
INSERT ... SELECT
yang mengambil data dari tabel sementara. - Transaksi XA
-
Anda tidak dapat menggunakan pernyataan berikut pada klaster DB saat penerusan tulis diaktifkan dalam sesi. Anda dapat menggunakan pernyataan ini pada klaster DB yang tidak memiliki penerusan tulis yang diaktifkan, atau dalam sesi dengan pengaturan
aurora_replica_read_consistency
yang kosong. Sebelum mengaktifkan penerusan tulis dalam sebuah sesi, periksa apakah kode Anda menggunakan pernyataan ini.XA {START|BEGIN} xid [JOIN|RESUME] XA END xid [SUSPEND [FOR MIGRATE]] XA PREPARE xid XA COMMIT xid [ONE PHASE] XA ROLLBACK xid XA RECOVER [CONVERT XID]
- Pernyataan LOAD untuk tabel permanen
-
Anda tidak dapat menggunakan pernyataan berikut pada klaster DB dengan penerusan tulis yang diaktifkan.
LOAD DATA INFILE 'data.txt' INTO TABLE t1; LOAD XML LOCAL INFILE 'test.xml' INTO TABLE t1;
- Pernyataan plugin
-
Anda tidak dapat menggunakan pernyataan berikut pada klaster DB dengan penerusan tulis yang diaktifkan.
INSTALL PLUGIN example SONAME 'ha_example.so'; UNINSTALL PLUGIN example;
- Pernyataan SAVEPOINT
-
Anda tidak dapat menggunakan pernyataan berikut pada klaster DB saat penerusan tulis diaktifkan dalam sesi. Anda dapat menggunakan pernyataan ini pada klaster DB yang tidak memiliki penerusan tulis yang diaktifkan, atau dalam sesi dengan pengaturan
aurora_replica_read_consistency
yang kosong. Periksa apakah kode Anda menggunakan pernyataan ini sebelum mengaktifkan penerusan tulis dalam sebuah sesi.SAVEPOINT t1_save; ROLLBACK TO SAVEPOINT t1_save; RELEASE SAVEPOINT t1_save;
Tingkat isolasi untuk penerusan tulis
Dalam sesi yang menggunakan penerusan tulis, Anda hanya dapat menggunakan tingkat isolasi REPEATABLE READ
. Meskipun Anda juga dapat menggunakan tingkat isolasi READ COMMITTED
dengan Replika Aurora, tingkat isolasi tersebut tidak berfungsi dengan penerusan tulis. Untuk informasi tentang tingkat isolasi REPEATABLE READ
dan READ COMMITTED
, lihat Aurora Tingkat isolasi saya SQL.
Konsistensi baca untuk penerusan tulis
Anda dapat mengontrol tingkat konsistensi baca di klaster DB. Tingkat konsistensi baca menentukan berapa lama klaster DB menunggu sebelum operasi baca untuk memastikan beberapa atau semua perubahan direplikasi dari penulis. Anda dapat menyesuaikan tingkat konsistensi baca untuk memastikan bahwa semua operasi tulis yang diteruskan dari sesi Anda terlihat dalam klaster DB sebelum kueri berikutnya. Anda juga dapat menggunakan pengaturan ini untuk memastikan kueri pada klaster DB selalu melihat pembaruan terkini dari penulis. Pengaturan ini juga berlaku untuk kueri yang dikirimkan oleh sesi lain atau klaster lainnya. Untuk menentukan jenis perilaku ini untuk aplikasi Anda, pilih nilai untuk parameter DB aurora_replica_read_consistency
atau parameter klaster DB.
penting
Selalu atur parameter DB aurora_replica_read_consistency
atau parameter klaster DB saat Anda ingin meneruskan penulisan. Jika Anda tidak mengaturnya, Aurora tidak akan meneruskan penulisan. Parameter ini mempunyai nilai kosong secara default, jadi pilih nilai tertentu apabila Anda menggunakan parameter ini. Parameter aurora_replica_read_consistency
hanya memengaruhi klaster atau instans DB yang mengaktifkan penerusan tulis.
Saat Anda meningkatkan tingkat konsistensi, aplikasi Anda menghabiskan lebih banyak waktu untuk menunggu perubahan disebarkan di antara instans-instans DB. Anda dapat memilih keseimbangan antara waktu respons yang cepat dan memastikan bahwa perubahan yang dilakukan dalam instans DB lainnya sepenuhnya tersedia sebelum kueri Anda berjalan.
Anda dapat menentukan nilai berikut untuk parameter aurora_replica_read_consistency
:
-
EVENTUAL
– Hasil operasi tulis dalam sesi yang sama tidak terlihat sampai operasi tulis dilakukan pada instans DB penulis. 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. Ini adalah konsistensi yang sama seperti untuk klaster DB Aurora MySQL yang tidak menggunakan penerusan tulis. -
SESSION
– Semua kueri yang menggunakan penerusan tulis melihat hasil semua perubahan yang dilakukan dalam sesi tersebut. Perubahan dapat dilihat terlepas dari apakah transaksi dilakukan. Jika perlu, kueri menunggu hasil operasi tulis yang diteruskan untuk direplikasi. -
GLOBAL
– Sebuah sesi melihat semua perubahan yang dilakukan di semua sesi dan instans di dalam klaster DB. Setiap kueri mungkin akan menunggu selama periode yang berbeda-beda tergantung jumlah lag sesi. Kueri berlanjut saat klaster DB dimutakhirkan dengan semua data yang di-commit dari penulis, pada saat kueri dimulai.
Untuk informasi tentang parameter konfigurasi yang terlibat dalam penerusan tulis, lihat Parameter konfigurasi untuk penerusan tulis.
catatan
Anda juga dapat menggunakan aurora_replica_read_consistency
sebagai variabel sesi, misalnya:
mysql> set aurora_replica_read_consistency = 'session';
Contoh menggunakan penerusan tulis
Contoh berikut ini menunjukkan efek parameter aurora_replica_read_consistency
pada pernyataan INSERT
yang berjalan diikuti oleh pernyataan SELECT
. Hasilnya dapat berbeda, tergantung nilai aurora_replica_read_consistency
dan waktu pernyataan.
Untuk mencapai konsistensi yang lebih tinggi, Anda mungkin menunggu sebentar sebelum mengeluarkan pernyataan SELECT
. Atau Aurora dapat secara otomatis menunggu sampai hasil selesai mereplikasi sebelum melanjutkan dengan SELECT
.
Untuk informasi tentang cara menetapkan parameter DB, lihat .
contoh dengan aurora_replica_read_consistency
diatur ke EVENTUAL
Menjalankan pernyataan INSERT
, yang langsung diikuti dengan pernyataan SELECT
, memunculkan nilai untuk COUNT(*)
dengan jumlah baris sebelum baris baru disisipkan. Dengan menjalankan SELECT
lagi beberapa saat kemudian, muncul hitungan baris yang diperbarui. Pernyataan SELECT
tidak menunggu.
mysql> select count(*) from t1; +----------+ | count(*) | +----------+ | 5 | +----------+ 1 row in set (0.00 sec) mysql> insert into t1 values (6); select count(*) from t1; +----------+ | count(*) | +----------+ | 5 | +----------+ 1 row in set (0.00 sec) mysql> select count(*) from t1; +----------+ | count(*) | +----------+ | 6 | +----------+ 1 row in set (0.00 sec)
contoh dengan aurora_replica_read_consistency
diatur ke SESSION
Pernyataan SELECT
langsung setelah INSERT
akan menunggu sampai perubahan dari pernyataan INSERT
terlihat. Pernyataan SELECT
selanjutnya tidak menunggu.
mysql> select count(*) from t1; +----------+ | count(*) | +----------+ | 6 | +----------+ 1 row in set (0.01 sec) mysql> insert into t1 values (6); select count(*) from t1; select count(*) from t1; Query OK, 1 row affected (0.08 sec) +----------+ | count(*) | +----------+ | 7 | +----------+ 1 row in set (0.37 sec) +----------+ | count(*) | +----------+ | 7 | +----------+ 1 row in set (0.00 sec)
Dengan pengaturan konsistensi baca tetap disetel ke SESSION
, memperkenalkan waktu tunggu singkat setelah melaksanakan pernyataan INSERT
membuat hitungan baris yang diperbarui tersedia pada saat pernyataan SELECT
berikutnya berjalan.
mysql> insert into t1 values (6); select sleep(2); select count(*) from t1; Query OK, 1 row affected (0.07 sec) +----------+ | sleep(2) | +----------+ | 0 | +----------+ 1 row in set (2.01 sec) +----------+ | count(*) | +----------+ | 8 | +----------+ 1 row in set (0.00 sec)
contoh dengan aurora_replica_read_consistency
diatur ke GLOBAL
Setiap pernyataan SELECT
menunggu sampai semua perubahan data, sejak waktu mulai pernyataan, terlihat sebelum melakukan kueri. Waktu tunggu untuk setiap pernyataan SELECT
bervariasi, tergantung jumlah lag replikasi.
mysql> select count(*) from t1; +----------+ | count(*) | +----------+ | 8 | +----------+ 1 row in set (0.75 sec) mysql> select count(*) from t1; +----------+ | count(*) | +----------+ | 8 | +----------+ 1 row in set (0.37 sec) mysql> select count(*) from t1; +----------+ | count(*) | +----------+ | 8 | +----------+ 1 row in set (0.66 sec)
Menjalankan pernyataan multibagian dengan penerusan tulis
Pernyataan DML mungkin terdiri atas beberapa bagian, seperti pernyataan INSERT ... SELECT
atau pernyataan DELETE ...
WHERE
. Dalam kasus ini, seluruh pernyataan diteruskan ke instans DB tulis dan berjalan di sana.
Transaksi dengan penerusan tulis
Jika mode akses transaksi disetel ke hanya-baca, penerusan tulis tidak digunakan. Anda dapat menentukan mode akses untuk transaksi dengan menggunakan pernyataan SET TRANSACTION
atau pernyataan START TRANSACTION
. Anda juga dapat menentukan mode akses transaksi dengan mengubah nilai variabel sesi transaction_read_only
Jika transaksi yang berlangsung lama tidak mengeluarkan pernyataan apa pun dalam waktu yang lama, transaksi tersebut kemungkinan melebihi periode batas waktu idle. Periode ini memiliki nilai default satu menit. Anda dapat mengatur parameter aurora_fwd_writer_idle_timeout
untuk meningkatkannya hingga satu hari. Transaksi yang melebihi batas waktu idle dibatalkan oleh instans tulis. Pernyataan berikutnya yang Anda kirimkan akan menerima kesalahan waktu habis. Kemudian Aurora akan mengembalikan transaksi.
Jenis kesalahan ini dapat terjadi dalam kasus lain ketika penerusan tulis menjadi tidak tersedia. Misalnya, Aurora membatalkan transaksi apa pun yang menggunakan penerusan tulis jika Anda memulai ulang klaster DB atau jika Anda menonaktifkan penerusan tulis.
Ketika instans penulis dalam sebuah klaster yang menggunakan penerusan tulis lokal dimulai ulang, transaksi dan kueri yang aktif dan diteruskan pada instans pembaca yang menggunakan penerusan tulis lokal akan ditutup secara otomatis. Setelah instans penulis tersedia lagi, Anda dapat mencoba kembali transaksi ini.
Parameter konfigurasi untuk penerusan tulis
Grup parameter DB Aurora mencakup pengaturan untuk fitur penerusan tulis. Detail tentang parameter ini dirangkum dalam tabel berikut, dengan catatan penggunaan setelah tabel.
Parameter | Cakupan | Tipe | Nilai default | Nilai valid |
---|---|---|---|---|
aurora_fwd_writer_idle_timeout |
Klaster | Integer tanpa tanda | 60 | 1-86.400 |
aurora_fwd_writer_max_connections_pct |
Klaster | Integer panjang tanpa tanda | 10 | 0–90 |
aurora_replica_read_consistency |
Klaster atau instans | Enum | '' (null) | EVENTUAL , SESSION , GLOBAL |
Untuk mengontrol permintaan tulis yang masuk, gunakan pengaturan ini:
-
aurora_fwd_writer_idle_timeout
– Jumlah detik instans yang diperlukan oleh instans DB tulis untuk menunggu aktivitas pada koneksi yang diteruskan dari instans pembaca sebelum menutupnya. Jika sesi tetap idle setelah periode ini, Aurora akan membatalkan sesi. -
aurora_fwd_writer_max_connections_pct
– Batas atas pada koneksi basis data yang dapat digunakan pada instans DB penulis untuk menangani kueri yang diteruskan dari instans pembaca. Ini dinyatakan sebagai persentase dari pengaturanmax_connections
untuk penulis. Misalnya, jikamax_connections
adalah 800 danaurora_fwd_master_max_connections_pct
atauaurora_fwd_writer_max_connections_pct
adalah 10, maka penulis mengizinkan maksimal 80 sesi terusan serentak. Koneksi ini berasal dari pool koneksi yang sama yang dikelola oleh pengaturanmax_connections
.Pengaturan ini hanya berlaku pada penulis saat penerusan tulis diaktifkan. Jika Anda menurunkan nilai, koneksi yang ada tidak akan terpengaruh. Aurora mempertimbangkan nilai baru pengaturan saat mencoba membuat koneksi baru dari klaster DB. Nilai defaultnya adalah 10, mewakili 10% dari nilai
max_connections
.
catatan
Karena aurora_fwd_writer_idle_timeout
dan aurora_fwd_writer_max_connections_pct
adalah parameter klaster, semua instans DB di setiap klaster memiliki nilai yang sama untuk parameter ini.
Untuk informasi selengkapnya tentang aurora_replica_read_consistency
, lihat Konsistensi baca untuk penerusan tulis.
Untuk informasi selengkapnya tentang grup parameter DB, lihat .
Metrik Amazon CloudWatch dan variabel status Aurora MySQL untuk penerusan tulis
Metrik Amazon CloudWatch dan variabel status Aurora MySQL berikut ini berlaku saat Anda menggunakan penerusan tulis pada satu atau beberapa klaster DB. Semua metrik dan variabel status ini diukur pada instans DB penulis.
Metrik CloudWatch | Variabel status Aurora MySQL | Unit | Deskripsi |
---|---|---|---|
|
– | Milidetik |
Rata-rata waktu untuk memproses setiap pernyataan DML yang diteruskan pada instans DB penulis. Ini tidak termasuk waktu yang diperlukan klaster DB untuk meneruskan permintaan tulis, atau waktu untuk mereplikasi perubahan kembali ke penulis. |
|
– | Hitungan per detik | Jumlah pernyataan DML yang diteruskan yang diproses setiap detik oleh instans DB penulis ini. |
|
Aurora_fwd_writer_open_sessions |
Hitungan | Jumlah sesi yang diteruskan pada instans DB tulis. |
– |
Aurora_fwd_writer_dml_stmt_count |
Hitungan | Total jumlah pernyataan DML yang diteruskan ke instans DB penulis ini. |
– |
Aurora_fwd_writer_dml_stmt_duration |
Mikrodetik | Total durasi pernyataan DML yang diteruskan ke instans DB penulis ini. |
– |
Aurora_fwd_writer_select_stmt_count |
Hitungan | Total jumlah pernyataan SELECT yang diteruskan ke instans DB penulis ini. |
– |
Aurora_fwd_writer_select_stmt_duration |
Mikrodetik | Total durasi pernyataan SELECT yang diteruskan ke instans DB penulis ini. |
Metrik CloudWatch dan variabel status Aurora MySQL berikut ini diukur pada setiap instans DB pembaca dalam klaster DB dengan penerusan tulis yang diaktifkan.
Metrik CloudWatch | Variabel status Aurora MySQL | Unit | Deskripsi |
---|---|---|---|
|
– | Milidetik | Rata-rata waktu respons DML yang diteruskan pada replika. |
|
– | Hitungan per detik | Jumlah pernyataan DML yang diteruskan yang diproses setiap detiknya. |
|
Aurora_fwd_replica_open_sessions |
Hitungan | Jumlah sesi yang menggunakan penerusan tulis pada instans DB pembaca. |
|
– | Milidetik |
Rata-rata waktu tunggu yang diperlukan sebuah pernyataan Batas tunggu instans DB pembaca sebelum memproses kueri ditentukan oleh pengaturan |
|
– | Hitungan per detik | Jumlah total pernyataan SELECT yang diproses setiap detik di semua sesi yang meneruskan tulis. |
|
– | Milidetik | Latensi SELECT yang diteruskan, dirata-ratakan atas semua pernyataan SELECT yang diteruskan dalam periode pemantauan. |
|
– | Hitungan per detik | Rata-rata throughput SELECT per detik yang diteruskan dalam periode pemantauan. |
– |
Aurora_fwd_replica_dml_stmt_count |
Hitungan | Total jumlah pernyataan DML yang diteruskan ke instans DB pembaca ini. |
– |
Aurora_fwd_replica_dml_stmt_duration |
Mikrodetik | Total durasi semua pernyataan DML yang diteruskan ke instans DB pembaca ini. |
– |
Aurora_fwd_replica_errors_session_limit |
Hitungan |
Jumlah sesi yang ditolak oleh klaster primer karena salah satu kondisi kesalahan berikut:
|
– |
Aurora_fwd_replica_read_wait_count |
Hitungan | Total jumlah tunggu baca-sesudah-tulis pada instans DB pembaca ini. |
– |
Aurora_fwd_replica_read_wait_duration |
Mikrodetik | Total durasi tunggu karena pengaturan konsistensi baca pada instans DB pembaca ini. |
– |
Aurora_fwd_replica_select_stmt_count |
Hitungan | Total jumlah pernyataan SELECT yang diteruskan ke instans DB pembaca ini. |
– |
Aurora_fwd_replica_select_stmt_duration |
Mikrodetik | Total durasi pernyataan SELECT yang diteruskan ke instans DB pembaca ini. |
Mengidentifikasi transaksi dan kueri yang diteruskan
Anda dapat menggunakan tabel information_schema.aurora_forwarding_processlist
untuk mengidentifikasi transaksi dan kueri yang diteruskan. Untuk informasi selengkapnya tentang tabel ini, lihat information_schema.aurora_forwarding_processlist.
Contoh berikut ini menunjukkan semua koneksi yang diteruskan pada instans DB tulis.
mysql> select * from information_schema.AURORA_FORWARDING_PROCESSLIST where IS_FORWARDED=1 order by REPLICA_SESSION_ID; +-----+----------+--------------------+----------+---------+------+--------------+--------------------------------------------+--------------+--------------------+---------------------------------+----------------------+----------------+ | ID | USER | HOST | DB | COMMAND | TIME | STATE | INFO | IS_FORWARDED | REPLICA_SESSION_ID | REPLICA_INSTANCE_IDENTIFIER | REPLICA_CLUSTER_NAME | REPLICA_REGION | +-----+----------+--------------------+----------+---------+------+--------------+--------------------------------------------+--------------+--------------------+---------------------------------+---------------------------------------+ | 648 | myuser |
IP_address:port1
| sysbench | Query | 0 | async commit | UPDATE sbtest58 SET k=k+1 WHERE id=4802579 | 1 | 637 | my-db-cluster-instance-2 | my-db-cluster | us-west-2 | | 650 | myuser |IP_address:port2
| sysbench | Query | 0 | async commit | UPDATE sbtest54 SET k=k+1 WHERE id=2503953 | 1 | 639 | my-db-cluster-instance-2 | my-db-cluster | us-west-2 | +-----+----------+--------------------+----------+---------+------+--------------+--------------------------------------------+--------------+--------------------+---------------------------------+----------------------+----------------+
Pada instans DB pembaca penerusan, Anda dapat melihat thread yang terkait dengan koneksi DB penulis ini dengan menjalankan SHOW PROCESSLIST
. Nilai REPLICA_SESSION_ID
pada penulis, 637 dan 639, sama dengan nilai Id
pada pembaca.
mysql> select @@aurora_server_id; +---------------------------------+ | @@aurora_server_id | +---------------------------------+ | my-db-cluster-instance-2 | +---------------------------------+ 1 row in set (0.00 sec) mysql> show processlist; +-----+----------+--------------------+----------+---------+------+--------------+---------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +-----+----------+--------------------+----------+---------+------+--------------+---------------------------------------------+ | 637 | myuser |
IP_address:port1
| sysbench | Query | 0 | async commit | UPDATE sbtest12 SET k=k+1 WHERE id=4802579 | | 639 | myuser |IP_address:port2
| sysbench | Query | 0 | async commit | UPDATE sbtest61 SET k=k+1 WHERE id=2503953 | +-----+----------+--------------------+----------+---------+------+--------------+---------------------------------------------+ 12 rows in set (0.00 sec)