首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Postgres数据文件恢复数据

从Postgres数据文件恢复数据
EN

Stack Overflow用户
提问于 2012-08-15 16:51:48
回答 2查看 1.9K关注 0票数 1

Got系统与Postgres中断( RAID是原因),没有任何备份。

试图使用Postgres将数据放入另一个comptuter (并进行无论如何备份)。

但是当我设置数据目录并运行postgres时,总是会收到消息

代码语言:javascript
复制
GET FATAL:  database files are incompatible with server
2012-08-15 19:58:38 GET DETAIL:  The database cluster was initialized with BLCKSZ 16777216, but the server was compiled with BLCKSZ 8192.
2012-08-15 19:58:38 GET HINT:  It looks like you need to recompile or initdb.

这是非常奇怪的数字16777216(2到24 -大)。

但是,在编译时,我不能重置默认值8192 (使用-- with -blocksize= can no;BLCKSZ -我在头文件中找不到它)。

)。

有办法提取数据吗?

这是环境和环境:

硬盘驱动器: RAID 1,阵列中有3个SAS磁盘

操作系统:Ubuntu10.04.04 amd64

Postgres: 9.1 (通过apt-get (我们将存储库链接更改为Ubuntu的更高版本))

系统坏了--过了一段时间

AAC:主机适配器闪烁LED 0x56 适配器内核恐慌56

(文件系统或硬件错误)

不知怎么我们找到了数据目录。pg_conroldata显示:

pg_control版本号:中转站

编录版本号:对.

数据库系统标识符:相当标准5714530593695276911

数据库集群状态:再转轨再转制

最后修改的pg_control : 11:50:50

最新的检查点地点:中转站

优先检查点定位:自愿性、自愿性、无偿性

最新检查站重做地点: 1B595668/2000020

最新的检查点的TimeLineID:

最新检查点的NextXID:

最新的检查点的NextOID:中转站

最新检查点的NextMultiXactId: 1

最新检查点的NextMultiOffset: 0

最新检查点的oldestXID:中转站

最新检查点的旧数据库: 1344846103

最新检查点的oldestActiveXID: 0

最新检查站时间: 11:50:50 :50

最小恢复结束位置:0/0

备用启动地点:无偿转轨

当前的wal_level设置:自愿性、最小性

当前max_connections设置:容量100

当前max_prepared_xacts设置:0

当前max_locks_per_xact设置: 64

最大数据对齐:

数据库数据块大小:相当数据

每段大关系块:131072

WAL区块规模:成本法、法、税、法、准、法、准等

每瓦力段的字节:

标识符的最大长度:

索引中的最大列:

烤面包块的最大尺寸:0

日期/时间类型存储:数据/时间类型存储

Float4参数传递-照本宣科的再转制

Float8参数传递-照本宣科的再转制

首先,我努力在Ubuntu服务器(硬盘-简单串行2,Ubuntu10.04 i386,Postgres 9.1)中安装DB,并在上面得到了相同的例外(对于BLCKSZ)。

这就是为什么我在虚拟机中部署了Ubuntu10.04 amd64和英语Postgres 9.1 (因为在前面的步骤中,在错误日志中使用了got '‘而不是俄罗斯符号)得到了同样的例外(对于BLCKSZ)。

它已经删除了Ather版本,并按照docs http://www.postgresql.org/docs/9.1/static/installation.html中的描述编译了它。玩configure --with-blocksize=BLOCKSIZE是没有效果的--得到了同样的错误。

不好意思,为了那篇文章。

pg_contol被一些操作打破了。

Sow,集群是由pg_resetxlog成功地用初始数据恢复的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-17 00:24:07

16 of的块大小非常奇怪,因为这两个值看起来完全是假的:

索引中的最大列: 2387576020吐司块的最大大小:0

在花费时间编译具有非标准块大小的postgres之前,...you可能想要质疑这些数据的完整性。

如果您查看与关系对应的文件的大小,它们是16 at还是8Kb的倍数?如果数据库中有一些千兆字节的表,那么磁盘上的截断大小( postgres将数据拆分成多个文件的大小)是什么?这应该等于data block size*Blocks per segment of large relation。在默认安装中,它是1Gb。

票数 0
EN

Stack Overflow用户

发布于 2012-08-15 20:33:28

有关配置内核资源的详细信息,请参阅这里。也许这个新操作系统的默认/当前设置不允许邮局管理员启动。

这里是关于BLCKSZ参数的含义和上下文的详细信息。运行64位PostgreSQL的系统失败了,而新系统是32位构建的吗?如果可能的话,尝试获取失败系统的PostgreSQL的版本信息可能会说明问题。让我们知道所使用的版本、构建和操作系统。是一个定制的建筑吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11973567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档