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

一.数据库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/

关注

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

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


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

  1. 如何在windows开启UAC(用户账号控制)的情况下优雅的管理程序的权限申请方案(一)

    问题起源: 简单的说就是在windows vista之前的windows系统,只要是管理员(比如Administrator)账户登录系统以后,该账户下的任何程序的启动权限都具有管理员权限:这个权限是很 ...

  2. Windows Server 2008 没有磁盘清理工具的情况下使用系统提供的磁盘清理工具

    服务器C盘空间满的情况,首先处理了临时文件和有关的日志文件后空间还是不够用,清理C盘的方法有很多,分享一下如何在Windows Server 2008 没有磁盘清理工具的情况下使用系统提供的磁盘清理工 ...

  3. mysql基础14(关于mysql数据库在没有主键情况下去除重复数据办法)

    关于mysql数据库在没有主键情况下去除重复数据办法 约定 表名:mat 根据 cat 字段去重 新增加主键为 id 步骤 1.为mat新增一列自增主键 alter table mat add col ...

  4. 重装系统计算机名称回对ug,电脑重装系统后UG软件没有卸载的情况下重新启动UG软件的方法...

    <电脑重装系统后UG软件没有卸载的情况下重新启动UG软件的方法>由会员分享,可在线阅读,更多相关<电脑重装系统后UG软件没有卸载的情况下重新启动UG软件的方法(2页珍藏版)>请 ...

  5. 软件管家出错的情况下安装keil5

    软件管家出错的情况下安装keil5 1.按照管家的步骤出错了 1.按照管家的步骤出错了 我之前下过好几次keil,就这次出现问题了,这是按照管家的做法. 而我这次却出错了 于是我只好在官网上下载了,选 ...

  6. SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库

    在某些偶然的情况下,会引起SQL Server 2005数据库日志文件的损坏,比如:硬件故障.计算机非正常重启或关机. 当SQL Server 2005数据库日志文件损坏时,可能会出现以下情况: 1. ...

  7. 【解决】敬业签Windows电脑桌面便签软件安装不能打开要写入的文件问题造成桌面便签软件安装失败的解决办法

    部分Windows电脑用户下载安装敬业签Windows电脑桌面便签软件时,在安装过程中遇到[敬业签 安装 不能打开要写入的文件]问题而造成无法安装敬业签桌面便签软件,这是因为电脑对安装文件夹的写入权限 ...

  8. typescript用什么软件写_什么情况下,你应该使用TypeScript?(下)

    你好,欢迎收听极客视点. 此前,公众号"前端之巅"编译了开发者哈利勒·斯坦姆勒(Khalil Stemmler)的一篇文章,斯坦姆勒探讨了在什么情况下绝对应该使用 TypeScri ...

  9. python3中的int类型占64位_在windows 10 64位计算机中,默认情况下,numpy数组数据类型将以int32形式出现...

    最初的海报Prana问了一个非常好的问题."为什么在64位计算机上,整数默认设置为32位?"在 据我所知,简短的回答是:"因为它的设计是错误的". 显然,64位 ...

最新文章

  1. Netty - ByteBuf
  2. Java 比较相等 == or .equal()?
  3. 万维钢新书《你有你的计划,世界另有计划》_《丑小鸭定理》读书笔记
  4. 【java实训课】工程项目文件(IDEA+MYSQL)
  5. Apache 安装的2种方法
  6. 用公式实现动态设置图表的轴数据项
  7. 手机调试_手机充值不好用?因为正在调试期
  8. CENTOS5下VSFTPD的设置
  9. Javascript实现导出word - jquery jquery.wordexport.js 实现导出word
  10. linux ssh 推送文件_通过SSH实现Windows与linux之间传输文件
  11. mysql字符类型总结及常用字符函数
  12. (转载)Stackoverflow让我们变懒了?
  13. python社交网络分析 书籍_使用Python分析社交网络数据电子书.pdf
  14. 数字电路与逻辑设计 答案(第三版)
  15. matlab里的计算符号,Matlab符号运算总结
  16. Unity3D 异步加载
  17. OPC与三菱Q系列PLC通信
  18. WebRTC学习实现视频
  19. pytorch股票预测
  20. 回归(Regression)是什么意思

热门文章

  1. linux6.9 fc cache,(转载, 已看)fc-cache出错解决办法.
  2. 我从校园出来的这几年
  3. 如何夏普比率在量化交易中的价值
  4. 拼多多销售数据分析主要包含哪些方面的数据?
  5. Android系统 屏幕最低背光亮度值/最高背光亮度值 调试
  6. 接口报错500是什么意思_500错误原因解决办法?错误页面怎么解决?到底是什么问题?...
  7. 一技随身计算机作文,生活技能作文(精选9篇)
  8. POE交换机应该要选择网线?POE交换机选择网线要点
  9. Zotero安装配置插件教程: 多端同步、自动翻译、抓取题录信息、参考文献等
  10. LiveData的基本使用和原理解析