pgBackRest adalah solusi pencadangan dan pemulihan yang andal untuk PostgreSQL yang secara mulus meningkatkan skala hingga database dan beban kerja terbesar.
pgBackRest v2.54.0 adalah rilis stabil saat ini. Catatan rilis ada di halaman Rilis.
Silakan temukan kami di GitHub dan beri kami bintang jika Anda menyukai pgBackRest!
Kompresi biasanya menjadi hambatan selama operasi pencadangan sehingga pgBackRest memecahkan masalah ini dengan pemrosesan paralel dan algoritma kompresi yang lebih efisien seperti lz4 dan zstd.
Protokol khusus memungkinkan pgBackRest untuk mencadangkan, memulihkan, dan mengarsipkan secara lokal atau jarak jauh melalui TLS/SSH dengan konfigurasi minimal. Antarmuka untuk menanyakan PostgreSQL juga disediakan melalui lapisan protokol sehingga akses jarak jauh ke PostgreSQL tidak diperlukan, sehingga meningkatkan keamanan.
Beberapa repositori memungkinkan, misalnya, repositori lokal dengan retensi minimal untuk pemulihan cepat dan repositori jarak jauh dengan retensi lebih lama untuk redundansi dan akses di seluruh perusahaan.
Pencadangan penuh, diferensial, dan tambahan didukung. pgBackRest tidak rentan terhadap masalah resolusi waktu rsync, membuat pencadangan diferensial dan tambahan aman tanpa persyaratan untuk checksum setiap file. Pencadangan tingkat blok menghemat ruang dengan hanya menyalin bagian file yang telah diubah.
Kebijakan retensi dapat diatur untuk pencadangan penuh dan diferensial guna menciptakan cakupan dalam jangka waktu apa pun. Arsip WAL dapat disimpan untuk semua cadangan atau hanya untuk cadangan terbaru. Dalam kasus terakhir WAL diperlukan untuk membuat cadangan lama yang konsisten akan disimpan dalam arsip.
Checksum dihitung untuk setiap file dalam cadangan dan diperiksa ulang selama pemulihan atau verifikasi. Setelah pencadangan selesai menyalin file, ia menunggu hingga setiap segmen WAL yang diperlukan untuk membuat pencadangan konsisten mencapai repositori.
Cadangan di repositori dapat disimpan dalam format yang sama dengan cluster PostgreSQL standar (termasuk tablespace). Jika kompresi dinonaktifkan dan tautan keras diaktifkan, maka dimungkinkan untuk mengambil snapshot cadangan di repositori dan memunculkan klaster PostgreSQL secara langsung pada snapshot tersebut. Hal ini menguntungkan untuk database berskala terabyte yang memerlukan waktu lama untuk memulihkannya dengan cara tradisional.
Semua operasi menggunakan fsync tingkat file dan direktori untuk memastikan daya tahan.
Jika checksum halaman diaktifkan, pgBackRest akan memvalidasi checksum untuk setiap file yang disalin selama pencadangan. Semua checksum halaman divalidasi selama pencadangan penuh dan checksum dalam file yang telah diubah divalidasi selama pencadangan diferensial dan inkremental.
Kegagalan validasi tidak menghentikan proses pencadangan, namun peringatan dengan rincian halaman mana yang gagal validasi akan dikeluarkan ke konsol dan log file.
Fitur ini memungkinkan kerusakan tingkat halaman dideteksi sejak dini, sebelum cadangan yang berisi salinan data yang valid telah habis masa berlakunya.
Pencadangan yang terputus dapat dilanjutkan dari titik penghentiannya. File yang sudah disalin dibandingkan dengan checksum di manifes untuk memastikan integritas. Karena operasi ini dapat dilakukan sepenuhnya pada host repositori, ini mengurangi beban pada host PostgreSQL dan menghemat waktu karena penghitungan checksum lebih cepat daripada mengompresi dan mengirimkan ulang data.
Perhitungan kompresi dan checksum dilakukan dalam aliran saat file disalin ke repositori, baik repositori tersebut berlokasi secara lokal atau jarak jauh.
Jika repositori berada di host repositori, kompresi dilakukan pada host PostgreSQL dan file dikirimkan dalam format terkompresi dan hanya disimpan di host repositori. Ketika kompresi dinonaktifkan, tingkat kompresi yang lebih rendah digunakan untuk mengefisienkan penggunaan bandwidth yang tersedia sekaligus menjaga biaya CPU tetap minimum.
Manifes berisi checksum untuk setiap file dalam cadangan sehingga selama pemulihan, checksum ini dapat digunakan untuk mempercepat pemrosesan secara signifikan. Pada pemulihan delta, file apa pun yang tidak ada dalam cadangan akan dihapus terlebih dahulu dan kemudian checksum dibuat untuk file yang tersisa. File yang cocok dengan cadangan akan dibiarkan di tempatnya dan file lainnya akan dipulihkan seperti biasa. Pemrosesan paralel dapat mengurangi waktu pemulihan secara drastis.
Perintah khusus disertakan untuk mendorong WAL ke arsip dan mendapatkan WAL dari arsip. Kedua perintah tersebut mendukung paralelisme untuk mempercepat pemrosesan dan berjalan secara asinkron untuk memberikan waktu respons tercepat ke PostgreSQL.
WAL push secara otomatis mendeteksi segmen WAL yang didorong beberapa kali dan menghapus duplikat ketika segmen tersebut identik, jika tidak, kesalahan akan muncul. Dorongan WAL asinkron memungkinkan transfer dipindahkan ke proses lain yang memampatkan segmen WAL secara paralel untuk throughput maksimum. Ini bisa menjadi fitur penting untuk database dengan volume penulisan yang sangat tinggi.
WAL get asinkron mempertahankan antrian lokal segmen WAL yang didekompresi dan siap untuk diputar ulang. Hal ini mengurangi waktu yang diperlukan untuk menyediakan WAL ke PostgreSQL yang memaksimalkan kecepatan pemutaran ulang. Koneksi dan penyimpanan dengan latensi lebih tinggi (seperti S3) mendapatkan manfaat paling besar.
Perintah push dan get memastikan bahwa database dan repositori cocok dengan membandingkan versi PostgreSQL dan pengidentifikasi sistem. Ini secara virtual menghilangkan kemungkinan kesalahan konfigurasi lokasi arsip WAL.
Tablespace didukung sepenuhnya dan pada pemulihan tablespace dapat dipetakan ulang ke lokasi mana pun. Dimungkinkan juga untuk memetakan ulang semua tablespace ke satu lokasi dengan satu perintah yang berguna untuk pemulihan pengembangan.
Tautan file dan direktori didukung untuk semua file atau direktori di cluster PostgreSQL. Saat memulihkan, dimungkinkan untuk memulihkan semua tautan ke lokasi aslinya, memetakan ulang beberapa atau semua tautan, atau memulihkan beberapa atau semua tautan sebagai file atau direktori normal dalam direktori cluster.
Repositori pgBackRest dapat ditempatkan di penyimpanan objek yang kompatibel dengan S3, Azure, dan GCS untuk memungkinkan kapasitas dan retensi yang hampir tidak terbatas.
pgBackRest dapat mengenkripsi repositori untuk mengamankan cadangan di mana pun mereka disimpan.
pgBackRest menyertakan dukungan untuk sepuluh versi PostgreSQL, lima versi yang didukung, dan lima versi EOL terakhir. Hal ini memberikan cukup waktu untuk meningkatkan ke versi yang didukung.
pgBackRest berupaya agar mudah dikonfigurasi dan dioperasikan:
Panduan pengguna untuk berbagai sistem operasi dan versi PostgreSQL.
Referensi perintah untuk operasi baris perintah.
Referensi konfigurasi untuk membuat konfigurasi pgBackRest.
Dokumentasi untuk v1 dapat ditemukan di sini. Tidak ada rilis lebih lanjut yang direncanakan untuk v1 karena v2 kompatibel dengan opsi dan repositori v1.
Kontribusi ke pgBackRest selalu diterima! Silakan lihat Pedoman Berkontribusi kami untuk detail tentang cara menyumbangkan fitur, peningkatan, atau masalah.
pgBackRest sepenuhnya gratis dan open source di bawah lisensi MIT. Anda dapat menggunakannya untuk tujuan pribadi atau komersial tanpa batasan apa pun. Laporan bug ditangani dengan sangat serius dan akan ditangani secepat mungkin.
Membuat kebijakan pemulihan bencana yang kuat dengan strategi replikasi dan pencadangan yang tepat bisa menjadi tugas yang sangat kompleks dan menakutkan. Anda mungkin memerlukan bantuan selama fase arsitektur dan dukungan berkelanjutan untuk memastikan perusahaan Anda terus berjalan dengan lancar.
Crunchy Data menyediakan versi paket pgBackRest untuk sistem operasi utama dan dukungan komersial penuh siklus hidup ahli untuk pgBackRest dan semua hal PostgreSQL. Crunchy Data berkomitmen untuk menyediakan solusi sumber terbuka tanpa vendor lock-in, memastikan bahwa kompatibilitas silang dengan pgBackRest versi komunitas selalu dijaga dengan ketat.
Silakan kunjungi Data Renyah untuk informasi lebih lanjut.
Pengakuan utama ditujukan kepada Stephen Frost atas semua saran dan kritiknya yang berharga selama pengembangan pgBackRest.
Crunchy Data telah menyumbangkan waktu dan sumber daya yang signifikan untuk pgBackRest dan terus secara aktif mendukung pengembangan. Resonate juga berkontribusi pada pengembangan pgBackRest dan mengizinkan versi awal (tetapi telah teruji dengan baik) untuk diinstal sebagai solusi cadangan PostgreSQL utama mereka.
Grafik kursi berlengan oleh Sandor Szabo.