Digabungkan kemarin ke kode Git untuk server database PostgreSQL adalah dukungan untuk memfasilitasi pencadangan tambahan.
Robert Haas beberapa bulan yang lalu memulai kembali pekerjaan untuk mengimplementasikan dukungan cadangan tambahan untuk PostgreSQL, bertahun-tahun setelah dia awalnya menggunakan fitur tersebut tetapi tidak berhasil pada saat itu. Namun kali ini hal-hal yang berjalan dengan baik dan digabungkan ke PostgreSQL adalah dukungan untuk menghasilkan cadangan tambahan.
Haas menjelaskan dalam proposalnya dari bulan Juni:
Desain dasar set patch ini cukup sederhana, dan ada tiga bagian utama. Pertama, ada proses latar belakang baru yang disebut walsummarizer yang berjalan sepanjang waktu. Ia membaca WAL dan menghasilkan file ringkasan WAL. File ringkasan WAL sangat kecil dibandingkan dengan WAL asli dan hanya berisi sedikit informasi yang kita perlukan untuk menentukan bagian mana dari database yang perlu dicadangkan. Mereka memberi tahu kita tentang file yang dibuat, dihancurkan, atau dipotong, dan mereka memberi tahu kita tentang blok yang dimodifikasi. Tentu saja, kami tidak mengetahui tentang blok yang dimodifikasi tanpa catatan log awal apa pun, misalnya. petunjuk sedikit pembaruan, tetapi itu adalah kebutuhan dan tidak penting untuk kebenarannya, jadi tidak apa-apa. Kedua, pg_basebackup memiliki mode yang dapat melakukan pencadangan tambahan. Anda harus menyediakan manifes cadangan dari cadangan penuh sebelumnya. Kami membaca file ringkasan WAL yang telah dihasilkan antara awal pencadangan sebelumnya dan awal pencadangan ini, dan menggunakannya untuk mengetahui file relasi mana yang telah berubah dan seberapa banyak. File non-relasi dikirim secara normal, sama seperti file dalam cadangan penuh. File relasi dapat dikirim secara penuh atau diganti dengan file tambahan, yang berisi subset blok dalam file ditambah sedikit informasi untuk menangani pemotongan dengan benar. Ketiga, sekarang ada utilitas pg_combinebackup yang mengambil cadangan penuh dan satu atau lebih cadangan tambahan, melakukan banyak pemeriksaan kewarasan, dan jika semuanya berhasil, menulis cadangan penuh sintetis baru, alias direktori data.
Contoh penggunaan sederhana:
pg_basebackup -cfast -Dx
pg_basebackup -cfast -Dy –inkremental x/backup_manifest
pg_combinebackup x y -o zKomitmen pada hari Rabu inilah yang menghasilkan dukungan pencadangan tambahan PostgreSQL. Ini lebih lanjut menjelaskan fiturnya:
“Untuk mengambil cadangan tambahan, Anda menggunakan perintah replikasi baru UPLOAD_MANIFEST untuk mengunggah manifes untuk cadangan sebelumnya. Cadangan sebelumnya ini bisa berupa cadangan penuh atau cadangan tambahan lainnya. Anda kemudian menggunakan BASE_BACKUP dengan opsi INCREMENTAL untuk mengambil cadangan. pg_basebackup sekarang memiliki opsi –incremental=PATH_TO_MANIFEST untuk memicu perilaku ini.
Pencadangan tambahan sama seperti pencadangan penuh biasa, hanya saja beberapa file relasi diganti dengan file dengan nama seperti INCREMENTAL.${ORIGINAL_NAME}, dan file backup_label berisi baris tambahan yang mengidentifikasinya sebagai cadangan tambahan. Alat pg_combinebackup yang baru dapat digunakan untuk merekonstruksi direktori data dari pencadangan penuh dan serangkaian pencadangan tambahan.”Fitur menarik untuk rilis besar berikutnya, PostgreSQL 17. Debut stabil server database PostgreSQL 17 untuk sementara direncanakan pada bulan September mendatang. akan menarik untuk melihat perubahan menarik apa lagi yang terjadi pada versi berikutnya.
Itulah berita seputar PostgreSQL Mendapat Dukungan Untuk Pencadangan Inkremental, semoga bermanfaat. Disadur dari Phoronix.com.