Vacuuming adalah operasi pemeliharaan database PostgreSQL yang penting. Fungsi ini digunakan untuk mengklaim kembali ruang penyimpanan yang ditempati oleh baris yang diperbarui atau dihapus untuk menghindari pembengkakan tabel atau indeks. Tabel ini juga digunakan untuk membekukan ID transaksi guna mencegah wraparound ID transaksi dan untuk memperbarui statistik tabel.
Untuk mengetahui informasi selengkapnya tentang proses vacuum, lihat Proses vacuum rutin.
Untuk mengotomatiskan proses pembersihan dan memperbarui statistik tabel secara kolektif, AlloyDB Omni mendukung pembersihan otomatis adaptif. Autovacuum adaptif memungkinkan penyesuaian otomatis workload vacuum saat workload Anda berubah, menghapus tuple yang tidak aktif, dan memperbarui statistik tabel.
Autovacuum memastikan performa transaksional aplikasi yang andal dan konsisten serta mempertahankan ketersediaan sistem yang tinggi dengan mencegah wraparound ID transaksi.
Secara default, AlloyDB Omni mengaktifkan autovacuum adaptif. Anda dapat menonaktifkan atau mengubah autovacuum adaptif di AlloyDB Omni dengan menggunakan flag database.
Manfaat
Autovacuum adaptif menawarkan manfaat berikut:
Penyesuaian resource otomatis. AlloyDB Omni secara otomatis menyesuaikan resource seperti CPU, I/O, jumlah proses vacuum, dan memori untuk proses vacuum berdasarkan status real-time workload dan resource yang tersedia tanpa memengaruhi performa sistem.
Pencegahan wraparound ID transaksi. AlloyDB Omni memantau progres vacuum dan kecepatan pemakaian ID transaksi. Jika perlu, AlloyDB Omni membatasi penggunaan ID transaksinya dengan mem-vacuum setiap tabel dalam database, sehingga mencegah wraparound ID transaksi.
Vakum berkala untuk tabel. AlloyDB Omni memicu autovacuum berdasarkan jumlah tuple yang tidak digunakan dan halaman yang perlu dipindai. Proses ini menghapus tuple yang tidak digunakan tepat waktu untuk menghindari pembengkakan tabel atau indeks.
Deteksi otomatis pemblokir. AlloyDB Omni secara otomatis mendeteksi pemblokir seperti transaksi yang berjalan lama, transaksi yang disiapkan tanpa induk, slot replikasi tanpa induk, dan menampilkan pesan peringatan yang mirip dengan berikut di log
postgres
:Found a backend process PROCESS_ID with a long running transaction whose transaction id age AGE is larger than or equal to the transaction age threshold AGE_THRESHOLD.
Mengonfigurasi autovacuum adaptif
Secara default, autovacuum adaptif diaktifkan di AlloyDB Omni. Anda dapat
menonaktifkan autovacuum adaptif dengan menyetel tanda database enable_google_adaptive_autovacuum
instance ke off
.
AlloyDB Omni mendukung beberapa tanda database PostgreSQL standar yang terkait dengan vacuum dan autovacuum, misalnya, vacuum_cost_delay
dan autovacuum_vacuum_cost_delay
.
Anda tidak perlu menyetel nilai di salah satu flag ini agar autovacuum adaptif berfungsi
karena autovacuum adaptif menyesuaikan dan mengoptimalkan perilakunya dengan workload nyata Anda.
Jika Anda menetapkan nilai dalam tanda ini, autovacuum adaptif akan menyesuaikan perilakunya
untuk mempertimbangkan preferensi Anda.
Untuk melihat daftar lengkap flag database PostgreSQL yang didukung terkait vacuum dan autovacuum, lihat flag vacuum dan flag autovacuum.