GNU/Linux >> Znalost Linux >  >> Linux

Jak zálohovat a obnovovat databázi v PostgreSQL

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!


Linux
  1. Jak zálohovat a obnovit úložiště SVN v Linuxu

  2. Jak zálohovat a obnovit data a konfigurace RabbitMQ

  3. Jak zálohovat a obnovit databázi MySQL pomocí příkazového řádku

  1. MySQL:Jak zálohovat (vypsat) a obnovit databázi pomocí mysqldump

  2. Jak zálohovat a obnovit databázi Postgres

  3. Jak vytvořit a obnovit zálohu v Plesku

  1. Jak stáhnout a nainstalovat PostgreSQL na Windows

  2. Jak zálohovat a obnovit weby v Plesku

  3. Zálohování a obnova databáze MySQL pomocí mysqlhotcopy