从生产环境的postgre数据库服务器备份数据库并恢复数据库到本地

一、从生产环境的postgre数据库服务器备份数据库
1、开始-运行-cmd 弹出dos控制台
2、在控制台里,进入PostgreSQL安装路径的bin目录下:指令:cd C:\Program Files\PostgreSQL\9.0\bin

3、pg_dump -h (postgre_server) -U (postgre_username) (databasename) > (C:\databasename.bak)

4、输入指令:即为postgre_server服务器的链接密码

指令解释:
1)pg_dump 是备份数据库命令,
2)postgre_server是postgre服务器的ip地址(必须保证数据库允许外部访问的权限)当然本地的数据库ip写localhost;
3)postgre_username是数据库的用户名
4)databasename 是数据库名。
5)> 意思是导出到C:\databasename.bak文件里
(如果没有写路径,单单写databasename.bak文件名,那么备份文件会保存在C: \Program Files\PostgreSQL\9.0\bin 文件夹里。)

5、等待执行结束,进入以上对应目录即可看到备份文件databasename.bak

一、将备份数据库文件导入至本地postgre数据库
1、在本地postgre服务器中新建数据库new_databasename

2、开始-运行-cmd 弹出dos控制台

3、在控制台里,进入PostgreSQL安装路径的bin目录下:指令:cd C:\Program Files\PostgreSQL\9.0\bin

4、运行命令:psql -h (localhost) -U (postgre_username) -d (new_databasename) < (databasename.bak)

指令解释:
1)psql是恢复数据库命令
2)localhost是要恢复到哪个数据库的地址,当然你可以写上ip地址,也就是说能远程恢复(必须保证 数据库允许外部访问的权限)
3)postgre_username是要恢复到哪个数据库的用户;
4)new_databasename是要恢复到哪个数据库
5)<  的意思是把C:\databasename.bak文件导入到指定的数据库new_databasename里。

5、输入指令:即为localhost数据库服务器的链接密码
6、等待执行结束,整个过程完毕,新的数据库即可使用

7、以上恢复时报错:postgres导入备份出现'无效的命令\N'
解决方法:使用custom格式导出,然后用pg_restore导入。
导出:pg_dump -F custom -U username -d dbname -h host -p port -f filepath
导入:pg_restore -d dbname -U username -h host -p port --jobs=4 --verbose filepath
 

猜你喜欢

转载自blog.csdn.net/qq_31466841/article/details/84426285