windows下postgres数据库软件被损坏的情况下data文件存在恢复数据库

在项目要演示的前一天数据库突然被鲁大师给损坏了,导致项目无法启动,想了各种办法,查了很多资料,最终得以解决,再此做一个记录

一.数据库postgres损坏恢复方法此方法同样适用于系统崩溃后,找回数据的操作

如果是系统崩溃,需要找回数据,PostgreSQL安装目录的data文件夹要存在

核心原理:备份数据,重新安装和原来版本一样的数据库包括32位还是64位,尽量保持一致,尤其是32位还是64位的数据库,然后更换PostgreSql的data文件夹(将原来的data文件夹重命名即可),重启服务,详细操作如下:(记住只字不落的阅读

1.找到要备份数据库的data文件(确保完整

2.安装同一版本的数据库

3.停止Postgres服务,可以在运行中输入services.msc,在启动的窗口中关闭掉postgres服务,也可以通过在cmd中输入

net stop postgresql-9.3(这里是服务的名称,依照你的实际情况更改)

4.在任务管理器中关闭掉postgre的进程如果有的话(一般没有)

5.移除Postgres服务,在CMD(以管理员身份运行)中输入

cd "d:\Program Files\PostgreSQL\9.3\bin" 执行目录跳转到Postgre安装目录下的bin目录下,再输入

pg_ctl unregister -N "postgresql-9.3" (这里也是PostgerSql的服务名称)

5.确保Postgre进程没有在任务管理器里面,将Postgres安装目录下的data文件改data1,将1中要备份的data文件拷贝到当前Postgres目录下。

6.重新创建Postgres服务,CMD(以管理员身份运行)到 "d:\Program Files\PostgreSQL\9.3\bin" 输入

pg_ctl register -N "postgres" -D "d:\Program Files\PostgreSQL\9.3\data"

7.启动服务,cmd 输入 net start postgres 或者打开服务目录点击启动如下

8.打开pgadmin3 点击连接服务器 主机输入127.0.0.1 密码输入之前postgres密码 点确定 就可以连接上之前的服务器了

二、常见的postgres数据备份和恢复方法

1.数据备份:

D:\PostgreSQL\10\bin\pg_dump.exe --file "D:\\vvv.tar" --host "localhost" --port "5432" --username "postgres" --no-password --verbose --role "postgres" --format=t --blobs --encoding "UTF8" "gis"

2.数据恢复:

D:\PostgreSQL\10\bin\pg_restore.exe --host "localhost" --port "5432" --username "postgres" --no-password --dbname "gis2" --verbose "D:\\aa.tar"

3.批处理备份

@ECHO OFF
@setlocal enableextensions
@cd /d "%~dp0"
 
SET PGPATH=D:\PostgreSQL\10\bin\
SET SVPATH=E:\DatabaseBackup\
SET PRJDB=gis
SET DBUSR=postgres
SET DBDUMP=%PRJDB%_%date:~0,4%%date:~5,2%%date:~8,2%-%time:~0,2%_%time:~3,2%_%time:~6,2%.tar
@ECHO OFF
%PGPATH%pg_dump.exe --file "%SVPATH%%DBDUMP%" --host "localhost" --port "5432" --username "%DBUSR%" --no-password --verbose --role "%DBUSR%" --format=t --blobs --encoding "UTF8" "gis"
echo Backup Taken Complete %SVPATH%%DBDUMP%
pause

三、解决Postgresql服务启动又关闭的问题

错误1:无法重启服务或者启动后又停止,错误信息如下

查看系统日志:打开计算机管理====>查看应用程序日志信息,可以看出,由于日志配置错误的问题

日志如下:

解决方法

我们看到是和postgressql.conf文件相关 然后出现乱码的现象

所以解决思路上将原来安装postgres的data文件夹下面的postgressql.conf文件拷贝过来,重启服务就可以解决

错误2:

如果日志文件报错出现如下现象时

解决方法:找到 postgresql.conf 文件,做如图修改

 四、postgres常见问题汇总

1.postgres无法导入shp数据

需要安装postgis shapefile and dbf loader 插件,

可以使用向导安装,也可以直接去PostGIS官网下载即可(http://www.postgis.net/)

安装好后导入如下图

 

2.postgres安装后其他机器无法连接数据库

在文件夹 \PostgreSQL\9.3\data\pg_hba.conf 的最后一行添加如下代码即可

host     all     all     192.168.0.1/16     md5

3.postgres无法导入空间数据的表需要安装postgis扩展,方法如下,给数据库新建扩展,命名为postgis保存即可

 

也可以使用命令行 

CREATE EXTENSION postgis;

4.相关地址

如果要下载安装其他的版本,可以从官网的地址中找:

PostgreSQL 官网:https://www.postgresql.org/download/windows/

PostGIS 官网:http://download.osgeo.org/postgis/windows/

 

关注

如果有问题,请在下方评论

想获得更多的学习知识请关注微信公众号:西北码农或扫下方二维码


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值