在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
当前回答
如果你有一个备份SQL文件,那么你可以很容易地恢复它。 只要按照下面给出的说明做就可以了
1. At first, create a database using pgAdmin or whatever you want (for example my_db is our created db name)
2. Now Open command line window
3. Go to Postgres bin folder. For example: cd "C:\ProgramFiles\PostgreSQL\pg10\bin"
4. Enter the following command to restore your database: psql.exe -U postgres -d my_db -f D:\Backup\backup_file_name.sql
如果需要,请为postgres用户输入密码,然后让postgres执行它的工作。查看恢复进程。
其他回答
此解决方案仅适用于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)
普拉维达!
请看下面的例子,它的工作
C:/Program Files/PostgreSQL/9.4/bin\pg_restore.exe——host localhost——port 5432——username "postgres"——dbname "newDatabase"——no-password——verbose
“C: \用户下载\优\ \新下载\ DB.backup”
试试这个:
psql -U <username> -d <dbname> -f <filename>.sql
从。sql文件恢复数据库psql
如果您已经创建了一个名为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)
备份= = >
选项1:在cmd中备份密码 1.PGPASSWORD="mypassword" pg_dump -U postgres -h localhost——insert mydb>mydb.sql 选项2:在cmd中进行无密码备份 2. pg_dump -U postgres -h localhost——插入mydb>mydb.sql Option3:以gzip格式备份(如果数据库很大) 3.pg_dump -U postgres -h localhost mydb——insert | gzip > mydb.gz
恢复: 1. psql -h localhost -d mydb -U postgres -p 5432 < mydb.sql