Cara mencadangkan dan mengembalikan database PostgreSQL

Cara mencadangkan dan mengembalikan database PostgreSQL

Dalam lingkungan produksi, tidak peduli seberapa besar atau kecil Anda PostgreSQL Basis data mungkin, punggung biasa adalah aspek penting dari manajemen basis data. Di artikel ini, Anda akan belajar cara mencadangkan dan mengembalikan database PostgreSQL.

Kami berasumsi bahwa Anda sudah memiliki instalasi yang berfungsi dari sistem database PostgreSQL. Jika tidak, baca artikel berikut untuk menginstal PostgreSQL pada distribusi linux Anda.

  • Cara menginstal postgresql dan pgadmin4 di ubuntu 20.04
  • Cara menginstal postgresql dan pgadmin di centos 8
  • Cara menginstal postgresql dan pgadmin di rhel 8

Mari kita mulai…

Cadangan Database PostgreSQL Tunggal

PostgreSQL menyediakan PG_DUMP utilitas untuk membantu Anda mencadangkan database. Ini menghasilkan file database dengan perintah SQL dalam format yang dapat dengan mudah dipulihkan di masa mendatang.

Untuk mendukung, a PostgreSQL database, mulailah dengan masuk ke server database Anda, lalu beralih ke Postgres akun pengguna, dan jalankan PG_DUMP sebagai berikut (ganti Tecmintdb Dengan nama database yang ingin Anda cadangan). Secara default, format output adalah file skrip SQL teks sederhana.

$ pg_dump Tecmintdb > Tecmintdb.SQL 

Itu PG_DUMP mendukung format output lainnya juga. Anda dapat menentukan format output menggunakan -F opsi, dimana C berarti file arsip format khusus, D berarti arsip format direktori, dan T Berarti file arsip format tar: Semua format cocok untuk dimasukkan PG_RESTORE.

Misalnya:

$ pg_dump -f c tecmintdb> tecmintdb.dump atau $ pg_dump -f t tecmintdb> tecmintdb.ter 

Untuk membuang output dalam format output direktori, gunakan -F Bendera (yang digunakan untuk menentukan file output) untuk menentukan direktori target alih -alih file. Direktori yang akan dibuat oleh PG_DUMP tidak boleh ada.

$ pg_dump -f d tecmintdb -f tecmintdumpdir 

Untuk mendukung semua PostgreSQL database, gunakan PG_DUMPALL alat seperti yang ditunjukkan.

$ pg_dumpall> all_pg_dbs.SQL 

Anda dapat mengembalikan dump menggunakan psql seperti yang ditunjukkan.

$ psql -f all_pg_dbs.SQL Postgres 

Memulihkan database PostgreSQL

Untuk mengembalikan a PostgreSQL Database, Anda dapat menggunakan psql atau PG_RESTORE keperluan. psql digunakan untuk mengembalikan file teks yang dibuat oleh PG_DUMP sedangkan PG_RESTORE digunakan untuk mengembalikan database PostgreSQL dari arsip yang dibuat oleh PG_DUMP Dalam salah satu format non-dataran-teks (kustom, tar, atau direktori).

Berikut adalah contoh cara mengembalikan pembuangan file teks biasa:

$ psql Tecmintdb < Tecmintdb.SQL 

Seperti disebutkan di atas, tempat pembuangan format khusus bukanlah naskah psql, Jadi itu harus dipulihkan dengan PG_RESTORE seperti yang ditunjukkan.

$ pg_restore -d tecmintdb tecmintdb.dump atau $ pg_restore -d tecmintdb tecmintdb.tar atau $ pg_restore -d tecmintdb tecmintdumpdir 

Cadangan Basis Data PostgreSQL Besar

Jika database yang Anda cadangkan besar dan Anda ingin menghasilkan file output yang cukup kecil, maka Anda dapat menjalankan dump terkompresi di mana Anda harus memfilter output dari PG_DUMP melalui alat kompresi seperti Gzip Atau salah satu favorit Anda:

$ pg_dump Tecmintdb | gzip> Tecmintdb.GZ 

Jika database sangat besar, Anda dapat membuang paralel dengan membuang number_of_jobs tabel secara bersamaan menggunakan -J bendera, seperti yang ditunjukkan.

$ pg_dump -f d -j 5 -f Tecmintdumpdir 

Penting untuk dicatat bahwa opsi dump paralel mengurangi waktu pembuangan, tetapi di sisi lain, itu juga meningkatkan beban pada server database.

Cadangan Database Remote PostgreSQL

PG_DUMP adalah alat klien PostgreSQL reguler, ini mendukung operasi di server database jarak jauh. Untuk menentukan server database jarak jauh PG_DUMP harus menghubungi, menggunakan opsi baris perintah -H untuk menentukan host jarak jauh dan -P Menentukan port jarak jauh yang didengarkan oleh server database. Selain itu, gunakan -U Bendera untuk menentukan nama peran basis data untuk terhubung sebagai.

Ingatlah untuk menggantikan 10.10.20.10 Dan 5432 Dan Tecmintdb dengan alamat IP host jarak jauh atau nama host, port database, dan nama database masing -masing.

$ pg_dump -u tecmint -h 10.10.20.10 -p 5432 Tecmintdb> Tecmintdb.SQL 

Pastikan bahwa pengguna yang menghubungkan jarak jauh memiliki hak istimewa yang diperlukan untuk mengakses database, dan metode otentikasi database yang sesuai dikonfigurasi pada server database, jika tidak, Anda akan mendapatkan kesalahan seperti yang ditunjukkan di tangkapan layar berikut ini.

Kesalahan koneksi database postgresql

Dimungkinkan juga untuk membuang database langsung dari satu server ke server lainnya, gunakan PG_DUMP Dan psql utilitas seperti yang ditunjukkan.

$ pg_dump -u tecmint -h 10.10.20.10 Tecmintdb | pqsl -u tecmint -h 10.10.20.30 Tecmintdb 

Database Auto Backup PostgreSQL menggunakan pekerjaan cron

Anda dapat melakukan cadangan secara berkala menggunakan cron pekerjaan. Cron Pekerjaan adalah cara yang umum digunakan untuk menjadwalkan berbagai jenis tugas untuk dijalankan di server.

Anda dapat mengonfigurasi pekerjaan cron untuk mengotomatisasi PostgreSQL cadangan database sebagai berikut. Perhatikan bahwa Anda perlu menjalankan perintah berikut sebagai superuser postgresql:

$ mkdir -p/srv/cadangan/database 

Selanjutnya, jalankan perintah berikut untuk mengedit crontab untuk menambahkan pekerjaan cron baru.

$ crontab -e 

Salin dan tempel baris berikut di akhir crontab. Anda dapat menggunakan salah satu format dump yang dijelaskan di atas.

0 0 * * * pg_dump -u postgres tecmintdb>/srv/cadangan/postgres/tecmintdb.SQL 

Simpan file dan keluar.

Layanan cron akan secara otomatis mulai menjalankan pekerjaan baru ini tanpa restart. Dan pekerjaan cron ini akan berjalan setiap hari di tengah malam, ini adalah solusi minimum untuk tugas cadangan.

Untuk informasi lebih lanjut tentang cara menjadwalkan pekerjaan cron, lihat: cara membuat dan mengelola pekerjaan cron di linux

Itu saja untuk saat ini! Ide yang bagus untuk menjadikan cadangan data sebagai bagian dari rutinitas manajemen database Anda. Untuk menghubungi kami untuk pertanyaan atau komentar, gunakan formulir umpan balik di bawah ini. Untuk informasi lebih lanjut, lihat halaman referensi PG_DUMP dan PG_RESTORE.