Kif tagħmel backup u tirrestawra Database PostgreSQL
F'ambjent ta 'produzzjoni, ma jimpurtax kemm jista' jkun kbir jew żgħir id-database PostgreSQL tiegħek, lura regolari huwa aspett essenzjali tal-ġestjoni tad-database. F'dan l-artikolu, titgħallem kif tagħmel backup u tirrestawra database PostgreSQL.
Nassumu li diġà għandek installazzjoni taħdem tas-sistema tad-database PostgreSQL. Jekk le, aqra l-artikoli li ġejjin tagħna biex tinstalla PostgreSQL fuq id-distribuzzjoni tal-Linux tiegħek.
- Kif tinstalla PostgreSQL u pgAdmin4 f'Ubuntu 20.04
- Kif Tinstalla PostgreSQL u pgAdmin f'CentOS 8
- Kif Tinstalla PostgreSQL u pgAdmin f'RHEL 8
Ejja nibdew…
Agħmel backup ta' Database PostgreSQL Uniku
PostgreSQL jipprovdi l-utilità pg_dump biex jgħinek tagħmel backup tad-databases. Jiġġenera fajl ta 'database bi kmandi SQL f'format li jista' jiġi restawrat faċilment fil-futur.
Biex tagħmel backup, database PostgreSQL, ibda billi tidħol fis-server tad-database tiegħek, imbagħad aqleb għall-kont tal-utent Postgres, u mexxi pg_dump kif ġej (ibdel tecmintdb
bl-isem tad-database li trid tagħmel backup) . B'mod awtomatiku, il-format tal-output huwa fajl b'kitba SQL b'test sempliċi.
$ pg_dump tecmintdb > tecmintdb.sql
Il-pg_dump jappoġġja formati oħra tal-produzzjoni wkoll. Tista' tispeċifika l-format tal-output billi tuża l-għażla -F
, fejn c
tfisser fajl tal-arkivju tal-format tad-dwana, d
tfisser arkivju tal-format tad-direttorju, u t
tfisser fajl tal-arkivju tal-format tar: il-formati kollha huma adattati għall-input f'pg_restore.
Pereżempju:
$ pg_dump -F c tecmintdb > tecmintdb.dump OR $ pg_dump -F t tecmintdb > tecmintdb.tar
Biex titfa 'l-output fil-format tal-output tad-direttorju, uża l-bandiera -f
(li tintuża biex tispeċifika l-fajl tal-output) biex tispeċifika d-direttorju fil-mira minflok fajl. Id-direttorju li se jinħoloq minn pg_dump m'għandux jeżisti.
$ pg_dump -F d tecmintdb -f tecmintdumpdir
Biex tagħmel backup tad-databases kollha PostgreSQL, uża l-għodda pg_dumpall kif muri.
$ pg_dumpall > all_pg_dbs.sql
Tista' tirrestawra d-dump billi tuża psql kif muri.
$ pgsql -f all_pg_dbs.sql postgres
Ir-restawr ta' Database PostgreSQL
Biex tirrestawra database PostgreSQL, tista 'tuża l-utilitajiet psql jew pg_restore. psql jintuża biex jirrestawra fajls ta’ test maħluqa minn pg_dump filwaqt li pg_restore jintuża biex jirrestawra database PostgreSQL minn arkivju maħluq minn pg_dump f’wieħed mill-formati mhux ta’ test sempliċi (custom, tar, jew direttorju).
Hawn hu eżempju ta’ kif tirrestawra dump ta’ fajl b’test sempliċi:
$ psql tecmintdb < tecmintdb.sql
Kif issemma hawn fuq, dump b'format personalizzat mhuwiex script għal pgsql, għalhekk għandu jiġi restawrat b' pg_restore kif muri.
$ pg_restore -d tecmintdb tecmintdb.dump OR $ pg_restore -d tecmintdb tecmintdb.tar OR $ pg_restore -d tecmintdb tecmintdumpdir
Backup ta' Databases Kbar ta' PostgreSQL
Jekk id-database li qed tagħmel backup hija kbira u trid tiġġenera fajl ta’ output pjuttost iżgħar, allura tista’ tħaddem dump kompressat fejn trid tiffiltra l-output ta’ pg_dump permezz ta’ għodda ta’ kompressjoni bħal gzip jew xi waħda mill-favoriti tiegħek:
$ pg_dump tecmintdb | gzip > tecmintdb.gz
Jekk id-database hija kbira ħafna, tista' tispiċċa b'mod parallel billi tarmi number_of_jobs tabelli fl-istess ħin billi tuża l-marka -j
, kif muri.
$ pg_dump -F d -j 5 -f tecmintdumpdir
Huwa importanti li wieħed jinnota li l-għażla tad-dump parallel tnaqqas il-ħin tad-dump, iżda min-naħa l-oħra, iżżid ukoll it-tagħbija fuq is-server tad-database.
Backup Remote PostgreSQL Databases
pg_dump hija għodda tal-klijent PostgreSQL regolari, tappoġġja operazzjonijiet fuq servers ta’ database remoti. Biex tispeċifika s-server tad-database remot pg_dump għandu jikkuntattja, uża l-għażliet tal-linja tal-kmand -h
biex tispeċifika l-host remot u -p
jispeċifika l-port remot li s-server tad-database qed jisma fuqu . Barra minn hekk, uża l-marka -U
biex tispeċifika l-isem tar-rwol tad-database biex tikkonnettja bħala.
Ftakar li tissostitwixxi 10.10.20.10 u 5432 u tecmintdb bl-indirizz IP tal-host remot tiegħek jew l-isem tal-host, il-port tad-database u l-isem tad-database rispettivament.
$ pg_dump -U tecmint -h 10.10.20.10 -p 5432 tecmintdb > tecmintdb.sql
Żgura li l-utent li jgħaqqad mill-bogħod ikollu l-privileġġi meħtieġa biex jaċċessa d-database, u l-metodu xieraq ta 'awtentikazzjoni tad-database huwa kkonfigurat fuq is-server tad-database, inkella, ikollok żball bħal dak muri fil-screenshot li ġej.
Huwa wkoll possibbli li titfa 'database direttament minn server għal ieħor, uża l-utilitajiet pg_dump u psql kif muri.
$ pg_dump -U tecmint -h 10.10.20.10 tecmintdb | pqsl -U tecmint -h 10.10.20.30 tecmintdb
Auto Backup PostgreSQL Database Bl-Użu ta 'Xogħol Cron
Tista 'twettaq backups f'intervalli regolari billi tuża cron jobs. L-impjiegi Cron huma mezz użat komunement għall-iskedar ta 'diversi tipi ta' kompiti biex jaħdmu fuq server.
Tista 'tikkonfigura xogħol cron biex awtomat il-backup tad-database PostgreSQL kif ġej. Innota li għandek bżonn tmexxi l-kmandi li ġejjin bħala s-superuser PostgreSQL:
$ mkdir -p /srv/backups/databases
Sussegwentement, mexxi l-kmand li ġej biex teditja l-crontab biex iżżid xogħol cron ġdid.
$ crontab -e
Ikkopja u waħħal il-linja li ġejja fl-aħħar tal-crontab. Tista 'tuża kwalunkwe mill-formati ta' dump spjegati hawn fuq.
0 0 * * * pg_dump -U postgres tecmintdb > /srv/backups/postgres/tecmintdb.sql
Issejvja l-fajl u oħroġ.
Is-servizz cron awtomatikament jibda jaħdem dan ix-xogħol il-ġdid mingħajr bidu mill-ġdid. U dan ix-xogħol cron se jibda kuljum f'nofs il-lejl, huwa soluzzjoni minima għall-kompitu tal-backup.
Għal aktar informazzjoni dwar kif tiskeda l-impjiegi cron, ara: Kif Oħloq u Immaniġġja l-Impjiegi Cron fuq Linux
Dak hu għalissa! Hija idea tajba li tagħmel backup tad-dejta parti mir-rutina tal-ġestjoni tad-database tiegħek. Biex tilħaqna għal xi mistoqsijiet jew kummenti, uża l-formola ta' feedback hawn taħt. Għal aktar informazzjoni, ara l-paġni ta’ referenza pg_restore.