在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
当前回答
创建备份
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很重要
其他回答
1)打开psql终端。
2)解压/ untar转储文件。
3)创建一个空数据库。
4)使用以下命令恢复。dump文件
<database_name>-# \i <path_to_.dump_file>
对不起,这些解决方案对我不起作用。我在10号邮差。在Linux上:
我必须将目录更改为pg_hba.conf。 我必须编辑该文件以将方法从peer更改为md5 重启服务:service postgresql-10 Restart 更改目录到我的备份。SQL被定位并执行: PSQL postgres -d database_name -1 -f backup.sql -database_name是数据库的名称 - backup。SQL是我的. SQL备份文件的名称。
如果你正在使用docker,这个答案可能会有帮助。
启动容器 Docker start <postgres_container_id> .使用实例 访问容器内的bash Docker exec -it <postgres_container_id> bash 将.tar备份文件复制到docker容器(在另一个窗口中) Docker cp postgres_dump.tar <postgres_container_id>:/ 恢复备份 pg_restore -c -U < postgres_user > -d <password> -v "postgres_dump.tar 输入密码
没有密码提示的最短路径
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"
遵循以下3个步骤:
启动postgresql server - sudo systemctl Start postgresql 启用same - sudo systemctl Enable postgresql restore命令- pg_restore -h localhost -p 5432 - u postgres -d old_db . sh
假设转储文件在同一目录中
链接:
https://www.postgresqltutorial.com/postgresql-restore-database https://askubuntu.com/questions/50621/cannot-connect-to-postgresql-on-port-5432