在本地,我使用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
其他回答
您可能需要以postgres身份登录,以便对数据库具有完全的权限。
su - postgres
psql -l # will list all databases on Postgres cluster
pg_dump / pg_restore
pg_dump -U username -f backup.dump database_name -Fc
指定备份文件的格式:
c将使用自定义的PostgreSQL格式,压缩后的备份文件大小最小 D表示目录,其中每个文件是一个表 t用于TAR存档(大于自定义格式) -h/——host运行服务器的机器的主机名 -W/——password在连接数据库之前强制pg_dump提示输入密码
恢复备份:
pg_restore -d database_name -U username -C backup.dump
参数-C应该在导入数据之前创建数据库。如果它不工作,你总是可以创建数据库,如。使用命令(以postgres用户或其他有创建数据库权限的用户)createdb db_name -O owner
pg_dump - psql
如果你没有指定参数-F默认的纯文本SQL格式被使用(或与-F p).那么你不能使用pg_restore。可以使用psql导入数据。
备份:
pg_dump -U username -f backup.sql database_name
恢复:
psql -d database_name -f backup.sql
当需要备份数据或从备份中恢复数据时,使用以下命令:
要创建数据备份,转到您的postgres\ bin\目录,如C:\programfiles\postgres\10\bin\,然后键入以下命令: pg_dump -FC -U ngb -d ngb -p 5432 >C:\BACK_UP\ngb. 090718_after_readupload .backup 要从备份中恢复数据,转到您的postgres\ bin\目录,如C:\programfiles\postgres\10\bin\,然后键入以下命令: C:\programFiles\postgres\10\bin> pg_restore -Fc -U ngb -d ngb -p 5432 <C:\ programFiles\postgres\10\bin 请确保备份文件存在。
此解决方案仅适用于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)
普拉维达!
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"
POSTGRESQL 9.1.12
转储文件:
pg_dump -U user db_name > archive_name.sql
输入用户密码并按enter键。
恢复:
psql -U user db_name < /directory/archive.sql
输入用户密码并按enter键。