Mengkonfigurasi pengaturan parameter untuk ekstensi pgactive - 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.

Mengkonfigurasi pengaturan parameter untuk ekstensi pgactive

Anda dapat menggunakan kueri berikut untuk melihat semua parameter yang terkait dengan ekstensi pgactive.

app=> SELECT * FROM pg_settings WHERE name LIKE 'pgactive.%';

Anda dapat mengkonfigurasi pgactive ekstensi menggunakan berbagai parameter. Parameter ini dapat diatur melalui antarmuka AWS Management Console atau AWS CLI.

Parameter ekstensi pgactive utama

Tabel berikut memberikan referensi untuk parameter utama pgactive ekstensi:

Parameter

Unit

Default

Deskripsi

pgactive.conflict_logging_include_tuples

boolean

Log informasi Tuple lengkap untuk pgactive ekstensi.

catatan

Restart server diperlukan agar perubahan diterapkan.

pgactive.log_conflicts_to_table

boolean

Menentukan apakah pgactive ekstensi mencatat konflik yang terdeteksi ke pgactive.pgactive_conflict_history tabel. Untuk informasi selengkapnya, lihat Pencatatan konflik untuk detailnya.

catatan

Restart server diperlukan agar perubahan diterapkan.

pgactive.log_conflicts_to_logfile

boolean

Menentukan apakah pgactive ekstensi mencatat konflik yang terdeteksi ke file log PostgreSQL. Untuk informasi selengkapnya, lihat Pencatatan konflik untuk detailnya.

catatan

Restart server diperlukan agar perubahan diterapkan.

pgactive.synchronous_commit

boolean

off

Menentukan perilaku komit untuk pekerja terapan pgactive. Saat dinonaktifkan (tidak aktif), pekerja terapkan melakukan komit asinkron, yang meningkatkan throughput PostgreSQL selama operasi penerapan tetapi menunda konfirmasi pemutaran ulang ke hulu. Mengaturnya off selalu aman dan tidak akan menyebabkan kerugian transaksi atau lompatan. Pengaturan ini hanya memengaruhi waktu pembilasan disk pada node hilir dan saat konfirmasi dikirim ke hulu. Sistem menunda pengiriman konfirmasi pemutaran ulang hingga komit dibuang ke disk melalui operasi yang tidak terkait seperti pos pemeriksaan atau pekerjaan berkala. Namun, jika bagian hulu memiliki hilir yang terdaftarsynchronous_standby_names, menyetelnya untuk off menyebabkan komit sinkron di hulu membutuhkan waktu lebih lama untuk melaporkan keberhasilan kepada klien. Dalam hal ini, atur parameter keon.

catatan

Bahkan ketika parameter ini disetel ke on dengan node yang terdaftar disynchronous_standby_names, konflik replikasi masih dapat terjadi dalam konfigurasi aktif-aktif. Ini karena sistem tidak memiliki penguncian antar simpul dan manajemen snapshot global, memungkinkan transaksi bersamaan pada node yang berbeda untuk memodifikasi tuple yang sama. Selain itu, transaksi hanya memulai replikasi setelah melakukan pada node hulu. Mengaktifkan komit sinkron tidak mengubah ekstensi pgactive menjadi sistem yang selalu konsisten.

pgactive.temp_dump_directory

string

Mendefinisikan jalur penyimpanan sementara yang diperlukan untuk operasi kloning database selama penyiapan awal. Direktori ini harus dapat ditulis oleh pengguna postgres dan memiliki ruang penyimpanan yang cukup untuk berisi dump database lengkap. Sistem menggunakan lokasi ini hanya selama pengaturan database awal dengan operasi salinan logis. Parameter ini tidak digunakan oleh filepgactive_init_copy command.

pgactive.max_ddl_lock_delay

milliseconds

-1

Menentukan waktu tunggu maksimum untuk kunci DDL sebelum secara paksa membatalkan transaksi tulis bersamaan. Nilai defaultnya adalah-1, yang mengadopsi nilai yang ditetapkan. max_standby_streaming_delay Parameter ini menerima satuan waktu. Misalnya, Anda dapat mengaturnya ke 10 detik selama 10 detik. Selama periode tunggu ini, sistem mencoba untuk memperoleh kunci DDL sambil menunggu transaksi tulis yang sedang berlangsung untuk melakukan atau memutar kembali. Untuk informasi lebih lanjut, lihat Penguncian DDL.

pgactive.ddl_lock_timeout

milliseconds

-1

Menentukan berapa lama upaya kunci DDL menunggu untuk mendapatkan kunci. Nilai default adalah-1, yang menggunakan nilai yang ditentukan dalam lock_timeout. Anda dapat mengatur parameter ini menggunakan satuan waktu seperti 10 detik selama 10 detik. Timer ini hanya mengontrol masa tunggu untuk mendapatkan kunci DDL. Setelah sistem mendapatkan kunci dan memulai operasi DDL, timer berhenti. Parameter ini tidak membatasi durasi total kunci DDL dapat ditahan atau waktu operasi DDL keseluruhan. Untuk mengontrol total durasi operasi, gunakan statement_timeout sebagai gantinya. Untuk informasi lebih lanjut, lihat Penguncian DDL.

pgactive.debug_trace_ddl_locks_level

boolean

Mengganti level log debug default untuk operasi penguncian DDL di ekstensi. pgactive Saat dikonfigurasi, pengaturan ini menyebabkan pesan terkait penguncian DDL dipancarkan pada tingkat debug LOG, bukan tingkat defaultnya. Gunakan parameter ini untuk memantau aktivitas penguncian DDL tanpa mengaktifkan tingkat verbose DEBUG1 atau DEBUG2 log di seluruh server Anda.

Level log yang tersedia, dalam urutan verbositas yang meningkat:

  • none - Pesan kunci DDL hanya muncul di DEBUG1 dan tingkat log server yang lebih rendah.

  • pernyataan - Menambahkan output LOG untuk upaya akuisisi kunci DDL.

  • acquire_release - Rekaman akuisisi kunci, rilis, peristiwa deklinasi, dan aplikasi node rekan dari kunci DDL jarak jauh.

  • rekan - Memberikan detail tambahan tentang negosiasi kunci DDL antara node rekan.

  • debug - Mencatat semua aktivitas terkait penguncian DDL di tingkat LOG.

Untuk informasi selengkapnya tentang opsi pemantauan, lihat Memantau kunci DDL global.

catatan

Perubahan pada setelan ini berlaku saat Anda memuat ulang konfigurasi. Anda tidak perlu me-restart server.

Parameter ekstensi pgactive tambahan

Tabel berikut menyajikan opsi konfigurasi internal yang lebih jarang digunakan dan tersedia untuk pgactive ekstensi.

Parameter

Unit

Default

Deskripsi

pgactive.debug_apply_delay

integer

Menetapkan penundaan penerapan (dalam milidetik) untuk koneksi yang dikonfigurasi yang tidak memiliki penundaan penerapan eksplisit dalam entri merekapgactive.pgactive_connections. Penundaan ini diatur selama pembuatan node atau waktu bergabung, dan pgactive tidak akan memutar ulang transaksi pada node rekan sampai setidaknya jumlah milidetik yang ditentukan telah berlalu sejak dilakukan.

Terutama digunakan untuk mensimulasikan jaringan latensi tinggi di lingkungan pengujian untuk membuatnya lebih mudah untuk menciptakan konflik. Misalnya, dengan penundaan 500 ms pada node A dan B, Anda memiliki setidaknya 500 ms untuk melakukan penyisipan yang bertentangan pada node B setelah memasukkan nilai pada node A.

catatan

Memerlukan server memuat ulang atau memulai ulang pekerja terapan agar berlaku.

pgactive.connectability_check_duration

integer

Menentukan durasi (dalam detik) bahwa pekerja database mencoba untuk membuat koneksi selama upaya gagal. Pekerja membuat satu upaya koneksi per detik hingga berhasil atau mencapai nilai batas waktu ini. Pengaturan ini berguna ketika mesin database dimulai sebelum pekerja siap untuk membuat koneksi.

pgactive.skip_ddl_replication

boolean

on

Mengontrol bagaimana perubahan DDL direplikasi atau ditangani di Amazon RDS dengan diaktifkan. pgactive Ketika diatur keon, node memproses perubahan DDL seperti node non-pgcctive. Persyaratan berikut berlaku saat bekerja dengan parameter ini:

  • Node baru tidak dapat bergabung dengan grup pgactive jika skip_ddl_replication nilainya berbeda dari node hulu.

  • Node yang ada tidak dapat memulai pekerja pgactive jika nilai parameternya tidak cocok dengan node hulu.

  • Semua anggota pgactive harus menggunakan nilai parameter yang sama.

Anda dapat memodifikasi parameter ini dengan dua cara dengan hak istimewa pengguna super: secara global, lokal (tingkat sesi).

catatan

Mengubah parameter ini secara tidak benar dapat merusak pengaturan replikasi Anda.

pgactive.do_not_replicate

boolean

Parameter ini hanya untuk penggunaan internal. Ketika Anda mengatur parameter ini dalam transaksi, perubahan tidak direplikasi ke node lain di cluster DB Anda.

catatan

Mengubah parameter ini secara tidak benar dapat merusak pengaturan replikasi Anda.

pgactive.discard_mismatched_row_attributes

boolean

Parameter ini ditujukan hanya untuk penggunaan spesialis. Sebaiknya gunakan parameter ini hanya saat memecahkan masalah replikasi tertentu. Gunakan parameter ini ketika:

  • Aliran replikasi yang masuk berisi baris dengan lebih banyak kolom daripada tabel lokal Anda.

  • Baris jarak jauh ini berisi nilai non-null.

Pengaturan ini mengesampingkan pesan kesalahan berikut dan memungkinkan divergensi data muncul agar replikasi berlanjut: cannot right-pad mismatched attributes; attno %u is missing in local table and remote row has non-null, non-dropped value for this attribute

catatan

Mengubah parameter ini secara tidak benar dapat merusak pengaturan replikasi Anda.

pgactive.debug_trace_replay

boolean

Ketika diatur keon, itu memancarkan pesan log untuk setiap tindakan jarak jauh yang menerapkan proses pekerja di hilir. Log meliputi:

  • Jenis perubahan

  • Nama tabel yang terpengaruh

  • Jumlah perubahan sejak transaksi dimulai

  • Komit transaksi LSN

  • Stempel waktu komit

  • Pengidentifikasi simpul hulu

  • Penerusan pengenal simpul (jika ada)

Log juga menangkap perintah DDL yang diantrian dan tetesan tabel.

para>

Secara default, log tidak menyertakan isi bidang baris. Untuk menyertakan nilai baris dalam log, Anda harus mengkompilasi ulang dengan flag berikut diaktifkan:

  • VERBOSE_INSERT

  • VERBOSE_UPDATE

  • VERBOSE_DELETE

catatan

Mengaktifkan pengaturan logging ini dapat memengaruhi kinerja. Kami menyarankan untuk mengaktifkannya hanya bila diperlukan untuk pemecahan masalah. Perubahan pada pengaturan ini berlaku saat Anda memuat ulang konfigurasi. Anda tidak perlu me-restart server.

pgactive.extra_apply_connection_options

Anda dapat mengonfigurasi parameter koneksi untuk semua koneksi node peer dengan node pgactive. Parameter ini mengontrol pengaturan seperti keepalives dan mode SSL. Secara default, pgactive menggunakan parameter koneksi berikut:

  • connect_timeout=30

  • keepalives=1

  • keepalives_idle=20

  • keepalives_interval=20

  • keepalives_count=5

Untuk mengganti parameter default, gunakan perintah serupa berikut:

pgactive.extra_apply_connection_options = 'keepalives=0'

String koneksi node individual lebih diutamakan daripada pengaturan ini dan opsi koneksi bawaan pgactive. Untuk informasi selengkapnya tentang format string koneksi, lihat string koneksi libpq.

Sebaiknya tetap mengaktifkan pengaturan keepalive default. Hanya nonaktifkan keepalives jika Anda mengalami masalah dengan transaksi besar yang diselesaikan melalui jaringan yang tidak dapat diandalkan.

catatan

Sebaiknya tetap mengaktifkan pengaturan keepalive default. Hanya nonaktifkan keepalives jika Anda mengalami masalah dengan transaksi besar yang diselesaikan melalui jaringan yang tidak dapat diandalkan. Perubahan pada pengaturan ini berlaku saat Anda memuat ulang konfigurasi. Anda tidak perlu me-restart server.

pgactive.init_node_parallel_jobs (int)

Menentukan jumlah pekerjaan paralel yang pg_dump dan pg_restore dapat digunakan selama node logis bergabung dengan fungsi. pgactive.pgactive_join_group

Perubahan pada pengaturan ini berlaku saat Anda memuat ulang konfigurasi. Anda tidak perlu me-restart server.

pgactive.max_nodes

int

4

Menentukan jumlah maksimum node yang diizinkan dalam grup ekstensi pgactive. Nilai defaultnya adalah 4 node. Anda harus mempertimbangkan hal berikut saat mengatur nilai parameter ini:

  • Semua node dalam grup ekstensi pgactive harus menggunakan nilai parameter yang sama.

  • Node baru tidak dapat bergabung jika nilai parameternya berbeda dari node hulu.

  • Node yang ada tidak dapat memulai pekerja ekstensi pgactive jika nilai parameternya berbeda dari node hulu.

  • Kelompok yang lebih besar membutuhkan upaya pemantauan dan pemeliharaan tambahan, sehingga nilai parameter ini dengan bijak.

Anda dapat mengatur parameter ini dengan dua cara: dalam file konfigurasi, menggunakan ALTER SYSTEM SET perintah

Nilai default untuk parameter ini adalah4, artinya, bisa ada maksimal 4 node yang diizinkan dalam grup pgactive ekstensi pada setiap titik waktu.

catatan

Perubahan berlaku setelah Anda me-restart server.

pgactive.permit_node_identifier_getter_function_creation

boolean

Parameter ini ditujukan untuk penggunaan internal saja. Saat diaktifkan, pgactive ekstensi memungkinkan pembuatan fungsi pengenal node pgactive.