PostgreSQL je bezplatný, open-source a jeden z nejpopulárnějších systémů pro správu relačních databází, který pohání miliony aplikací. Pokud jste správce databáze a používáte PostgreSQL v produkčním prostředí, je nezbytné zálohovat databázi, abyste mohli rychle obnovit systém v případě ztráty databáze.
V tomto tutoriálu vám ukážeme, jak zálohovat a obnovit databázi PostgreSQL v Linuxu.
Předpoklady
- Nové Ubuntu 20.04 VPS s PostgreSQL nainstalovaným na cloudové platformě Atlantic.net.
- Pokud ještě nemáte nainstalovaný PostgreSQL, můžete se podívat na tento blog, kde se dozvíte, jak nainstalovat a nakonfigurovat Postgres.
- Heslo uživatele root nakonfigurované na vašem serveru.
1 – Vytvořte cloudový server Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 20.04 s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte na svůj server Ubuntu 20.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
apt-get update -y
2 – Pochopte základní syntaxi pg_dump
PostgreSQL přichází s vestavěnými utilitami nazvanými pg_dump pro snadné vytváření a obnovování záloh.
Základní syntaxe příkazu pg_dump je uvedena níže:
pg_dump [OPTION]... [DBNAME]
Stručné vysvětlení každé možnosti je uvedeno níže:
-d, –dbname=DATABASENAME : Používá se k určení databáze, kterou chcete zálohovat.
-h, –host=HOSTNAME : Používá se k zadání názvu hostitele vašeho databázového serveru.
-U, –username=USERNAME : Používá se k zadání uživatelského jména PostgreSQL.
-w, –no-password : Používá se k ignorování výzvy k zadání hesla.
-p, –port=PORT : Používá se k zadání čísla portu serveru PostgreSQL.
-W, –password : Používá se k vynucení výzvy k zadání hesla.
–role=ROLENAME : SET ROLE před výpisem.
3 – Zálohování a obnova jedné databáze
Pomocí nástroje pg_dump můžete zálohovat a obnovit jednu databázi. Základní syntaxe pro zálohování jedné databáze je uvedena níže:
pg_dump -d [source-database] -f [database_backup.sql]
Chcete-li například zálohovat jednu databázi s názvem testdb a vygenerovat záložní soubor s názvem testdb_backup.sql, spusťte následující příkaz:
su - postgres pg_dump -d testdb -f testdb_backup.sql
Můžete také obnovit jednu databázi pomocí příkazu psql. Základní syntaxe pro obnovu jedné databáze je uvedena níže:
psql -d [destination_database] -f [database_backup.sql]
Chcete-li například obnovit jednu databázi s názvem testdb ze záložního souboru s názvem testdb_backup.sql, spusťte následující příkaz:
su - postgres psql -d testdb -f testdb_backup.sql
Měli byste získat následující výstup:
SET SET SET SET SET set_config ------------ (1 row) SET SET SET SET
Pokud chcete zastavit proces obnovy databáze v případě, že dojde k chybě, spusťte následující příkaz:
psql -d testdb --set ON_ERROR_STOP=on -f testdb_backup.sql
Poznámka: Před obnovením jakékoli databáze se doporučuje ukončit všechna připojení k této databázi a připravit záložní soubor.
Zálohování a obnovení všech databází
Všechny databáze v PostgreSQL můžete zálohovat pomocí utility pg_dumpall. Základní syntaxe pro zálohování všech databází, jak je uvedeno níže:
pg_dumpall -f [alldatabase_backup.sql]
Chcete-li například zálohovat všechny databáze v PostgreSQL a vygenerovat záložní soubor s názvem alldb_backup.sql, spusťte následující příkaz:
pg_dumpall -f alldb_backup.sql
Chcete-li obnovit všechny databáze ze záložního souboru s názvem alldb_backup.sql, spusťte následující příkaz:
psql -f alldb_backup.sql
Zálohování a obnovení jedné tabulky
PostgreSQL také umožňuje zálohovat jednu tabulku z konkrétní databáze. Toho lze dosáhnout pomocí následující syntaxe:
pg_dump -d [source-database] -t [table_name]-f [dbtable_backup.sql]
Chcete-li například zálohovat tabulku s názvem mytab z databáze s názvem testdb a vygenerovat záložní soubor s názvem testdb_mytab.sql, spusťte následující příkaz:
pg_dump -d testdb -t mytab -f testdb_mytab_backup.sql
Pokud chcete obnovit tuto tabulku ze záložního souboru, spusťte následující příkaz:
psql -d testdb -f testdb_mytab_backup.sql
Zálohování a obnovení komprimované databáze
Můžete také zálohovat databázi PostgreSQL a komprimovat ji do formátu .gz, abyste zmenšili velikost zálohy.
Chcete-li vytvořit zálohu databáze s názvem testdb a vygenerovat komprimovaný záložní soubor s názvem testdb_compressed.sql.gz, spusťte následující příkaz:
pg_dump -d testdb | gzip > testdb_compressed.sql.gz
Zálohu můžete také obnovit z komprimovaného souboru pomocí následujícího příkazu:
gunzip -c testdb_compressed.sql.gz | psql -d testdb
Závěr
Ve výše uvedené příručce jste se naučili několik způsobů zálohování a obnovy databáze PostgreSQL, které vám pomohou provádět každodenní operace zálohování databáze. Začněte ještě dnes s databází PostgreSQL na hostingu VPS od Atlantic.Net!