在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。

我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。


当前回答

没有密码提示的最短路径

psql "postgresql://<db_user>:<db_pass>@<ip>:<port>/<db_name>" < "backup.sql"

如果您使用Windows操作系统

psql.exe "postgresql://<db_user>:<db_pass>@<ip>:<port>/<db_name>" < "backup.sql"

其他回答

1. 打开终端。

2. 使用以下命令备份数据库

your postgres bin -> /opt/PostgreSQL/9.1/bin/

源数据库服务器-> 192.168.1.111

您的备份文件位置和名称-> /home/dinesh/db/mydb.backup

您的源数据库名称-> mydatabase

/opt/PostgreSQL/9.1/bin/pg_dump --host '192.168.1.111' --port 5432 --username "postgres" --no-password  --format custom --blobs --file "/home/dinesh/db/mydb.backup" "mydatabase"

3.恢复mydb。备份文件到目标。

您的目标服务器-> localhost

您的目标数据库名称-> mydatabase

创建用于恢复备份的数据库。

/opt/PostgreSQL/9.1/bin/psql -h 'localhost' -p 5432 -U postgres -c "CREATE DATABASE mydatabase"

恢复备份。

/opt/PostgreSQL/9.1/bin/pg_restore --host 'localhost' --port 5432 --username "postgres" --dbname "mydatabase" --no-password --clean "/home/dinesh/db/mydb.backup"
Backup:  $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}

Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}

恢复转储文件

psql -d [Dbname] -U [UserName] -p 5432 < [FileLocation]

恢复一个.SQL文件

pg_restore -U [Username] -d [Dbname] -1 [FileLocation]

如果出现用户身份验证错误,请转到程序文件PSQL/data文件夹中的pg_hba.conf文件,并将“METHOD”更改为“Trust”。 重新启动windows服务中的psql serive (Win + R—> services.msc)。

恢复postgres备份文件取决于最初是如何进行备份的。

如果你使用pg_dump和-F c或-F d,你需要使用pg_restore,否则你可以使用

psql -h localhost -p 5432 -U postgres <备份文件

9种备份和恢复postgres数据库的方法

没有密码提示的最短路径

psql "postgresql://<db_user>:<db_pass>@<ip>:<port>/<db_name>" < "backup.sql"

如果您使用Windows操作系统

psql.exe "postgresql://<db_user>:<db_pass>@<ip>:<port>/<db_name>" < "backup.sql"