Cara membuat sandaran dan memulihkan pangkalan data PostgreSQL
- 2509
- 321
- Marcus Kassulke
Dalam persekitaran pengeluaran, tidak kira berapa besar atau kecil anda PostgreSQL pangkalan data mungkin, kembali biasa adalah aspek penting dalam pengurusan pangkalan data. Dalam artikel ini, anda akan belajar cara membuat sandaran dan memulihkan pangkalan data PostgreSQL.
Kami menganggap bahawa anda sudah mempunyai pemasangan kerja sistem pangkalan data PostgreSQL. Sekiranya tidak, baca artikel berikut kami untuk memasang PostgreSQL Pada taburan Linux anda.
- Cara Memasang PostgreSQL dan Pgadmin4 di Ubuntu 20.04
- Cara Memasang PostgreSQL dan PGADMIN di CentOS 8
- Cara memasang postgresql dan pgadmin di rhel 8
Mari kita mulakan…
Sandarkan pangkalan data PostgreSQL tunggal
PostgreSQL menyediakan pg_dump utiliti untuk membantu anda membuat sandaran pangkalan data. Ia menghasilkan fail pangkalan data dengan arahan SQL dalam format yang dapat dipulihkan dengan mudah pada masa akan datang.
Untuk disandarkan, a PostgreSQL pangkalan data, mulakan dengan log masuk ke pelayan pangkalan data anda, kemudian beralih ke Postgres Akaun Pengguna, dan Jalankan pg_dump seperti berikut (ganti tecmintdb
Dengan nama pangkalan data yang anda mahu sandarkan). Secara lalai, format output adalah fail skrip SQL teks biasa.
$ pg_dump tecmintdb > tecmintdb.SQL
The pg_dump Menyokong format output lain juga. Anda boleh menentukan format output menggunakan -F
pilihan, di mana c
bermaksud fail arkib format tersuai, d
bermaksud arkib format direktori, dan t
bermaksud fail arkib format tar: Semua format sesuai untuk dimasukkan ke dalam pg_restore.
Sebagai contoh:
$ pg_dump -f c tecmintdb> tecmintdb.dump atau $ pg_dump -f t tecmintdb> tecmintdb.tar
Untuk membuang output dalam format output direktori, gunakan -f
Bendera (yang digunakan untuk menentukan fail output) untuk menentukan direktori sasaran dan bukannya fail. Direktori yang akan dibuat oleh pg_dump tidak boleh wujud.
$ pg_dump -f d tecmintdb -f tecmintdumpdir
Untuk menyokong semua PostgreSQL pangkalan data, gunakan pg_dumpall alat seperti yang ditunjukkan.
$ pg_dumpall> all_pg_dbs.SQL
Anda boleh memulihkan pembuangan sampah menggunakan PSQL seperti yang ditunjukkan.
$ psql -f all_pg_dbs.SQL Postgres
Memulihkan pangkalan data PostgreSQL
Untuk memulihkan a PostgreSQL pangkalan data, anda boleh menggunakan PSQL atau pg_restore utiliti. PSQL digunakan untuk memulihkan fail teks yang dibuat oleh pg_dump sedangkan pg_restore digunakan untuk memulihkan pangkalan data PostgreSQL dari arkib yang dibuat oleh pg_dump Dalam salah satu format bukan teks (adat, tar, atau direktori).
Berikut adalah contoh cara memulihkan pembuangan fail teks biasa:
$ psql tecmintdb < tecmintdb.SQL
Seperti yang disebutkan di atas, pembuangan format adat bukan skrip untuk PSQL, Oleh itu, ia mesti dipulihkan pg_restore seperti yang ditunjukkan.
$ pg_restore -d tecmintdb tecmintdb.dump atau $ pg_restore -d tecmintdb tecmintdb.tar atau $ pg_restore -d tecmintdb tecmintdumpdir
Sandaran pangkalan data postgresql besar
Sekiranya pangkalan data yang anda sandarkan adalah besar dan anda ingin menghasilkan fail output yang lebih kecil, maka anda boleh menjalankan pembuangan mampat di mana anda perlu menapis output pg_dump melalui alat mampatan seperti gzip atau mana -mana kegemaran anda:
$ pg_dump tecmintdb | gzip> tecmintdb.Gz
Sekiranya pangkalan data sangat besar, anda boleh membuang selari dengan membuang Number_of_jobs jadual secara serentak menggunakan -j
bendera, seperti yang ditunjukkan.
$ pg_dump -f d -j 5 -f tecmintdumpdir
Penting untuk diperhatikan bahawa pilihan dump selari mengurangkan masa pembuangan sampah, tetapi sebaliknya, ia juga meningkatkan beban pada pelayan pangkalan data.
Sandaran Pangkalan Data PostgreSQL Jauh
pg_dump adalah alat klien PostgreSQL biasa, ia menyokong operasi pada pelayan pangkalan data jauh. Untuk menentukan pelayan pangkalan data jauh pg_dump Sekiranya hubungi, gunakan pilihan baris arahan -h
untuk menentukan tuan rumah jauh dan -p
Menentukan port jauh pelayan pangkalan data sedang didengarkan. Selain itu, gunakan -U
bendera untuk menentukan nama peranan pangkalan data untuk disambungkan sebagai.
Ingat untuk menggantikan 10.10.20.10 dan 5432 dan tecmintdb dengan alamat IP hos jauh atau nama hos, port pangkalan data, dan nama pangkalan data masing -masing.
$ pg_dump -u tecmint -h 10.10.20.10 -p 5432 tecmintdb> tecmintdb.SQL
Pastikan pengguna menyambung dari jauh mempunyai keistimewaan yang diperlukan untuk mengakses pangkalan data, dan kaedah pengesahan pangkalan data yang sesuai dikonfigurasikan pada pelayan pangkalan data, jika tidak, anda akan mendapat ralat seperti yang ditunjukkan dalam tangkapan skrin berikut.
Ralat Sambungan Pangkalan Data PostgreSQLIa juga mungkin untuk membuang pangkalan data secara langsung dari satu pelayan ke yang lain, gunakan pg_dump dan PSQL utiliti seperti yang ditunjukkan.
$ pg_dump -u tecmint -h 10.10.20.10 Tecmintdb | pqsl -u tecmint -h 10.10.20.30 Tecmintdb
Pangkalan Data PostgreSQL Auto Backup Menggunakan Kerja Cron
Anda boleh melakukan sandaran secara berkala menggunakan Cron pekerjaan. Cron Pekerjaan adalah cara yang biasa digunakan untuk menjadualkan pelbagai jenis tugas untuk dijalankan di pelayan.
Anda boleh mengkonfigurasi pekerjaan cron untuk mengautomasikan PostgreSQL sandaran pangkalan data seperti berikut. Ambil perhatian bahawa anda perlu menjalankan arahan berikut sebagai Superuser PostgreSQL:
$ mkdir -p/srv/backups/pangkalan data
Seterusnya, jalankan arahan berikut untuk mengedit Crontab untuk menambah pekerjaan cron baru.
$ crontab -e
Salin dan tampal baris berikut pada akhir Crontab. Anda boleh menggunakan mana -mana format pembuangan yang dijelaskan di atas.
0 0 * * * pg_dump -u postgres tecmintdb>/srv/backups/postgres/tecmintdb.SQL
Simpan fail dan keluar.
Perkhidmatan Cron akan mula menjalankan pekerjaan baru ini tanpa memulakan semula. Dan pekerjaan cron ini akan berjalan setiap hari pada tengah malam, ini adalah penyelesaian minimum untuk tugas sandaran.
Untuk maklumat lanjut mengenai cara menjadualkan pekerjaan cron, lihat: Cara Membuat dan Mengurus Pekerjaan Cron di Linux
Itu sahaja buat masa ini! Adalah idea yang baik untuk membuat sandaran data sebahagian daripada rutin pengurusan pangkalan data anda. Untuk menghubungi kami untuk sebarang pertanyaan atau komen, gunakan borang maklum balas di bawah. Untuk maklumat lanjut, lihat halaman rujukan PG_DUMP dan PG_RESTORE.