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/

 

关注

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

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


postgresql(简称Postgres)是一个高性能的企业级开源关系型数据库管理系统。在实际运行过程中,由于各种原因,Postgres数据库可能会出现一些问题,比如数据损坏、硬盘故障、误删除等情况,这时候备份和恢复就显得尤为重要。 Postgres数据库备份 Postgres数据库备份主要包括两种方式:物理备份和逻辑备份。 1. 物理备份 物理备份是指备份整个Postgres数据库的物理文件,包括数据和日志等信息。这种备份方式具有非常高的恢复效率和完整性,备份后可以快速地还原到任何一个时间点的状态。但是,物理备份存在一些限制,例如,如果备份时数据库正在运行,会存在锁定文件的问题,同时备份后的数据不太容易人工查看和修改。 实现物理备份的两种方式: (1)基于文件系统备份 这种备份方式是直接备份Postgres数据库文件目录,包括数据文件Data File)、事务日志文件(WAL File)和配置文件等。使用类似于cp、tar等常见的文件操作命令完成备份,简单方便。 (2)基于pg_basebackup工具备份 pg_basebackup是PostgreSQL自带的备份工具,可以很方便地进行物理备份。只需指定备份目录,即可将整个PostgreSQL数据库备份到指定目录下。 2. 逻辑备份 逻辑备份是指备份Postgres数据库中的逻辑数据,比如表、视图、函数、触发器等,备份后数据可以人工查看和编辑。但是,逻辑备份的恢复效率没有物理备份高,同时在备份和恢复过程中需要注意一些事项。 实现逻辑备份的两种方式: (1)基于pg_dump工具备份 pg_dump工具是PostgreSQL自带的备份工具,可以对数据库进行逻辑备份。备份时可以指定备份的对象(比如表、视图、函数等),也可以备份整个数据库。备份完成后,可以通过pg_restore工具进行恢复。 (2)基于导出/导入工具备份 除了pg_dump工具,还有其他的导出/导入工具可以进行逻辑备份,比如psql、SQL Shell等。其中,psql是PostgreSQL自带的终端用户控制台工具,可以对数据库进行交互式的管理和操作,包括导出/导入数据等。 Postgres数据库恢复 Postgres数据库恢复需要根据备份类型进行相应的恢复操作。 1. 对于物理备份 (1)基于文件系统备份的恢复 只需要将备份文件还原到需要恢复PostgreSQL数据库目录下即可,恢复后启动PostgreSQL即可。 (2)基于pg_basebackup工具备份的恢复 指定备份目录为数据目录,启动PostgreSQL即可。在恢复完成后,还可以通过pg_archivecleanup工具清理归档日志。 2. 对于逻辑备份 (1)基于pg_dump工具备份的恢复 首先需要创建一个新的数据库(如果原数据库已经损坏)。然后使用pg_restore工具将备份文件恢复到指定数据库中即可。 (2)基于导出/导入工具备份的恢复 与pg_dump工具类似,需要先创建一个新的数据库,然后使用导入工具恢复备份文件到指定数据库中。 总结 Postgres数据库备份和恢复是保证数据安全、保障系统稳定的重要手段。无论是物理备份还是逻辑备份,都有各自的优势和限制,需要根据实际需求进行选择和应用。同时,备份和恢复操作也需要密切结合数据库实际情况和业务需求,综合考虑一些因素,如备份周期、备份策略、备份类型、备份存储空间、恢复时间等,才能够达到最佳效果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值