问题背景
阿里云服务器上安装了pg12然后突然有一天数据不能备份了,报错提示如下所示:
pg_dump: �������汾: 12.2; pg_dump �汾: 9.6.14
pg_dump: ��Ϊ�������汾��ƥ�����ֹ
解析:
上面错误大多数是乱码,但是恰恰一个关键点提醒了我。其一是pg-dump与两个版本号12.2和9.6.14
然后我猜测可能是我服务上同时安装了两个版本的pg造成数据库备份时候选择pg-dump出错了。
其实开始也饶了很大一个远路,就是去升级pg-dump,但是网上没有window版本pg 中pg-dump升级策略,大多数都是linux。当时这个点也折腾了个小晚上的时间。
解决方法
知道问题原因之后吗,解决起来那真可谓是直刺敌人心脏啊。
直接用db-dump手动恢复即可
1、通过cmd进入数据库的bin目录
cd C:\Program Files\PostgreSQL\9.6\bin
2、执行pg_dump备份命令,localhost 或者IP
pg_dump -h host -p port -U username -d dbname> C:\dbname.bak
执行完后,会提醒输入口令,就是要输入密码
示例:pg_dump -h localhost -p 5432 -U postgres -d ship> C:\ship.bak
3、执行psql还原命令,在这之前,需要建一个空白的同名的数据库
psql -h localhost -p 5432 -U postgres -d ship< C:\ship.bak
执行完后,会提醒输入口令,就是要输入密码
注意:
1、端口号。
2、数据库名称
如果你觉得有用,就请点个关注哈!下面附上我个人微信公众号以及bilibili站台号,有兴趣的朋友可以加入我的们技术交流群,不定期分享免费的、高质量的编程课程,还有内部机会哦!期待你的加入!
bilibili UP主:程序军火库&&程序狙击手