在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
当前回答
遵循以下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
其他回答
使用压缩转储保存和恢复完全相同的状态
其他答案分别给出了所有的关键位,但希望这将提供“只是工作保存和恢复到精确状态”的命令对。
转储到文件mydb.psql:
PGPASSWORD=mypassword pg_dump -U my_username -h localhost mydb -Fc -f mydb.psql
恢复:
PGPASSWORD=mypassword pg_restore -U my_username -h localhost \
--clean -d mydb -v mydb.psql
一些旗帜:
-Fc:格式压缩,而不是明文。 tmp文件。psql说: tmp。psql: PostgreSQL自定义数据库转储- v1.14-0 ——clean:在恢复目标DB之前销毁它,从而返回到完全相同的原始状态。 转储之后创建的任何数据都将丢失。
PGPASSWORD, -U和-h当然可以根据您的登录方法进行修改,例如,如果没有PGPASSWORD,您将提示输入密码,如果您在本地设置peer auth,这些都不需要。
在Ubuntu 22.04和PostgreSQL 14.5上测试。
试试这个:
psql -U <username> -d <dbname> -f <filename>.sql
从。sql文件恢复数据库psql
下面是我用来恢复数据库的pg_dump版本:
pg_restore -h localhost -p 5432 -U postgres -d my_new_database my_old_database.backup
或者使用psql:
psql -h localhost -U postgres -p 5432 my_new_database < my_old_database.backup
-h主机,-p端口,-u登录用户名,-d数据库名称
我没有看到这里提到转储文件扩展名(*.dump)。
这个解决方案对我很有效:
我有一个转储文件,需要恢复它。
首先,我尝试用pg_restore这样做,并得到:
pg_restore: error: input file appears to be a text format dump. Please use psql.
我用psql做了,工作得很好:
psql -U myUser -d myDataBase < path_to_the_file/file.dump
对不起,这些解决方案对我不起作用。我在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备份文件的名称。