在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
当前回答
如下面的链接所示,你可以使用psql命令来恢复转储文件:
https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE
psql dbname < infile
如果你需要设置用户名,只需在命令后添加用户名:
psql dbname < infile username
其他回答
创建备份
pg_dump -h localhost -p 5432 -U postgres -F c -b -v -f
"/usr/local/backup/10.70.0.61.backup" old_db
-F c是自定义格式(压缩后,可以与-j N并行)-b是包含blobs, -v是verbose, -F是备份文件名。
从备份恢复
pg_restore -h localhost -p 5432 -U postgres -d old_db -v
"/usr/local/backup/10.70.0.61.backup"
设置-h localhost - option很重要
使用GZIP进行备份和恢复
对于较大的数据库,这是非常好的
备份
pg_dump -U user -d mydb | gzip > mydb.pgsql.gz
恢复
gunzip -c mydb.pgsql.gz | psql dbname -U user
https://www.postgresql.org/docs/14/backup-dump.html
如果您使用pg_dump创建了备份,您可以通过以下方式轻松地恢复它:
打开命令行窗口 进入Postgres bin文件夹。例如:cd "C:\ProgramFiles\PostgreSQL\9.5\bin" 输入恢复数据库的命令。例如:psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql 输入postgres用户的密码 检查恢复进程
try:
pg_restore -h localhost -p 5432 -U <username> -d <dbname> -1 <filename>
Backup: $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}
Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}