sql >> Databáze >  >> RDS >> PostgreSQL

Obnovit záložní soubor postgres pomocí příkazového řádku?

Existují dva nástroje, na které se můžete podívat, v závislosti na tom, jak jste vytvořili soubor výpisu.

Vaším prvním referenčním zdrojem by měla být manuálová stránka pg_dump(1) protože to je to, co vytváří samotný výpis. Říká:

Výpisy mohou být zobrazeny ve formátech skriptů nebo archivních souborů. Výpisy skriptů jsou soubory ve formátu prostého textu obsahující příkazy SQL potřebné k rekonstrukci databáze do stavu, ve kterém se nacházela v době, kdy byla uložena. Obnovte z takového skriptu a vložte jej topsql(1). Soubory skriptů lze použít k rekonstrukci databáze i na jiných počítačích a jiných architekturách; s některými úpravami, sedm na jiných databázových produktech SQL.

K opětovnému sestavení databáze je nutné použít alternativní formáty archivních souborů s pg_restore(1). Umožňují, aby byl pg_restore selektivní, pokud jde o to, co se obnovuje, nebo dokonce přeuspořádá položky před obnovením. Formáty souborů Thearchive jsou navrženy tak, aby byly přenosné napříč architekturami.

Záleží tedy na způsobu vyhazování. Pravděpodobně na to přijdete pomocí skvělého file(1) příkaz – pokud zmiňuje text ASCII a/nebo SQL, měl by být obnoven pomocí psql jinak byste pravděpodobně měli použít pg_restore

Obnovení je docela snadné:

psql -U username -d dbname < filename.sql

-- For Postgres versions 9.0 or earlier
psql -U username -d dbname -1 -f filename.sql

nebo

pg_restore -U username -d dbname -1 filename.dump

Podívejte se na jejich příslušné manuálové stránky – existuje několik možností, které ovlivňují fungování obnovy. Možná budete muset před obnovením vyčistit své "živé" databáze nebo je znovu vytvořit ze šablony0 (jak je uvedeno v komentáři), v závislosti na tom, jak byly generovány výpisy.



  1. Oracle RAC na cloudech třetích stran

  2. MariaDB JSON_REPLACE() Vysvětleno

  3. Automatický sběr dat změn databázového schématu na MS SQL Server

  4. Vytvoření výpisu databáze pro konkrétní tabulky a položky Postgres