我是postgresql的新手,在本地,我使用pgadmin3.然而,在远程服务器上,我没有这样的奢侈.
我已经创建了数据库的备份并复制了它,但是,有没有办法从命令行恢复备份?我只看到与GUI或pg_转储相关的东西,所以,如果有人能告诉我如何进行,那就太棒了!
我是postgresql的新手,在本地,我使用pgadmin3.然而,在远程服务器上,我没有这样的奢侈.
我已经创建了数据库的备份并复制了它,但是,有没有办法从命令行恢复备份?我只看到与GUI或pg_转储相关的东西,所以,如果有人能告诉我如何进行,那就太棒了!
根据创建转储文件的方式,有两种工具可供查看.
您的第一个参考源应该是手册页pg_dump(1)
,因为这是创建转储本身的原因.上面写着:
转储可以以脚本或
可供 Select 的归档文件格式
这取决于它被丢弃的方式.您可能可以使用优秀的file(1)
命令来解决这个问题——如果它提到ASCII文本和/或SQL,应该使用psql
来恢复,否则您可能应该使用pg_rest或e
恢复非常简单:
psql -U username -d dbname < filename.sql
-- F或 Postgres versions 9.0 或 earlier
psql -U username -d dbname -1 -f filename.sql
或
pg_rest或e -U username -d dbname -1 filename.dump
Check out their respective manpages - there's quite a few options that affect how the rest或e w或ks. You may have to clean out your "live" databases 或 recreate them from template0 (as pointed out in a comment) bef或e rest或ing, depending on how the dumps were generated.