在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
当前回答
恢复转储文件
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}
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"
试试下面的命令是否能帮到你:
sudo su - yourdbuser
psql
\i yourbackupfile
我在运行pg_dump时遇到身份验证问题,所以我移动了转储文件
mv database_dump /tmp
进入临时目录,然后运行
su -u postgres
cd /tmp
pg_restore database_dump
如果您有一个大型数据库转储,您可能只想创建另一个目录,当前用户和postgres用户可以访问该目录,并将数据库转储文件放入该目录。
如果您使用pg_dump创建了备份,您可以通过以下方式轻松地恢复它:
打开命令行窗口 进入Postgres bin文件夹。例如:cd "C:\ProgramFiles\PostgreSQL\9.5\bin" 输入恢复数据库的命令。例如:psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql 输入postgres用户的密码 检查恢复进程