在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
当前回答
1)打开psql终端。
2)解压/ untar转储文件。
3)创建一个空数据库。
4)使用以下命令恢复。dump文件
<database_name>-# \i <path_to_.dump_file>
其他回答
这招对我很管用:
pg_restore --verbose --clean --no-acl --no-owner --host=localhost --dbname=db_name --username=username latest.dump
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"
您可能需要以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
如果您已经创建了一个名为mydb的新数据库,使用psql将.sql转储恢复到该数据库,
psql --file=dump.sql --username=postgres --host=localhost --port=5432 mydb
密码将由PSQL提示
连接选项为
-h, --host=HOSTNAME database server host or socket directory (default: "/var/run/postgresql")
-p, --port=PORT database server port (default: "5432")
-U, --username=USERNAME database user name (default: "xyz")
-w, --no-password never prompt for password
-W, --password force password prompt (should happen automatically)
请看下面的例子,它的工作
C:/Program Files/PostgreSQL/9.4/bin\pg_restore.exe——host localhost——port 5432——username "postgres"——dbname "newDatabase"——no-password——verbose
“C: \用户下载\优\ \新下载\ DB.backup”