在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
在本地,我使用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"
其他回答
此解决方案仅适用于Windows。
首先,确保您已经将postgres bin文件夹添加到“Path”环境变量中(在我的例子中,这个文件夹是C:\Program Files\PostgreSQL\12\ bin)。
然后,打开Windows命令解释器(cmd),进入.sql文件所在的文件夹并执行以下命令:
pg_restore -U userName -d database-1 backupfile.sql
例如:
pg_restore -U sam -d SamDataBase -1 SamDataBaseBackup.sql
(它会问你的用户密码,所以确保输入正确,然后点击enter)
普拉维达!
恢复转储文件
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)。
Backup: $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}
Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}
POSTGRESQL 9.1.12
转储文件:
pg_dump -U user db_name > archive_name.sql
输入用户密码并按enter键。
恢复:
psql -U user db_name < /directory/archive.sql
输入用户密码并按enter键。
备份= = >
选项1:在cmd中备份密码 1.PGPASSWORD="mypassword" pg_dump -U postgres -h localhost——insert mydb>mydb.sql 选项2:在cmd中进行无密码备份 2. pg_dump -U postgres -h localhost——插入mydb>mydb.sql Option3:以gzip格式备份(如果数据库很大) 3.pg_dump -U postgres -h localhost mydb——insert | gzip > mydb.gz
恢复: 1. psql -h localhost -d mydb -U postgres -p 5432 < mydb.sql