Postgresql断电后无法重启如何解决

这篇文章给大家介绍Postgresql断电后无法重启如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

机房断电后重启pg数据库,报如下错误:

< 2019-01-01 22:42:59.240 EST >LOG: database system was interrupted while in recovery at 2019-01-01 22:00:58 EST
< 2019-01-01 22:42:59.240 EST >HINT: This probably means that some data is corrupted and you will have to use the last backup for recovery.
< 2019-01-01 22:42:59.241 EST >LOG: database system was not properly shut down; automatic recovery in progress
< 2019-01-01 22:42:59.333 EST >PANIC: unexpected pageaddr 26EA/46000000 in log segment 00000001000026EA00000017, offset 0
< 2019-01-01 22:42:59.333 EST >LOG: startup process (PID 88586) was terminated by signal 6: Aborted
< 2019-01-01 22:42:59.333 EST >LOG: aborting startup due to startup process failure

修复方法:

切换到bin目录下:

cd /usr/pgsql-9.3/bin

使用pg_resetxlog命令修复日志:(/var/lib/pgsql/9.3/data为pg_data的目录)

pg_resetxlog -f /var/lib/pgsql/9.3/data

重启数据库:

pg_ctl start

补充:PostgreSQL 数据库服务无法启动的解决方法

因为客户那边的磁盘一般是FAT32的文件系统,所以我们程序安装时,采用手动安装PostgreSQL的形式安装数据库,但初始化数据库群成功并且成功注册了系统服务后,

发现PostgreSQL的服务总是启动不了,提示服务启动又停止了,然后在系统时间查看器里发现报的错误是:Could not create inherited socket, 错误编码为10022

关于Postgresql断电后无法重启如何解决就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

相关推荐:

如何在 PostgreSQL 中使用 Python 正确插入 JSON 数据

本文详解为何json_populate_record()会导致json插入失败,并提供简洁、安全、高效的替代方案:直接使用insertinto...values(%s)配合psycopg2的原生json支持。 本文详解为何json_populate_record()会导致json插入失败,并提供简洁...

如何使用 psycopg2 在 PostgreSQL 中定义数据库函数

本文详解如何通过psycopg2执行SQLCREATEFUNCTION语句,在PostgreSQL中安全、规范地创建自定义函数,涵盖连接管理、SQL注入防护、错误处理及最佳实践。 本文详解如何通过psycopg2执行sql`createfunction`语句,在postgresql中安全、规范地创建...

如何在 PostgreSQL 中安全地实现动态 ORDER BY 排序

本文详解为何不能直接用psycopg参数占位符(%s)绑定列名进行orderby,以及如何通过白名单校验或psycopg.sql模块安全构造动态排序查询。 在使用psycopg(尤其是v3+)操作PostgreSQL时,一个常见误区是试图将用户输入的排序字段(如"price"、"year")通过参数...

PostgreSQL 比 MySQL 更好吗?

一场关于postgresql与mysql孰优孰劣的激烈辩论,差点让一群开发者大打出手。 PostgreSQL阵营的论据 更严格的SQL标准遵循性:PostgreSQL对SQL标准的执行更为严格。 更高级的存储过程:原生执行计划缓存带来更优的存储过程支持。 优化的连接和查询:强大的表连接支持、高效的优...

PostgreSQL如何添加列?

postgresql添加列的方法为使用altertable命令并考虑以下细节:数据类型:选择适合新列存储数据的类型,如int或varchar。默认值:通过default关键字指定新列的默认值,避免值为null。约束条件:根据需要添加notnull、unique或check约束条件。并发操作:使用事务...

从 MySQL 迁移到 PostgreSQL

将数据库从mysql迁移到postgres是一个具有挑战性的过程。 虽然mysql和postgres执行类似的工作,但它们之间存在一些根本差异,这些差异可能会产生需要解决才能成功迁移的问题。 从哪儿开始? pgloader是一个可以用来将数据移动到postgresql的工具,但是,它并不完美,但在某...

PostgreSQL 与 MySQL

*为您的项目选择正确的数据库 * 数据库是现代应用程序的主力。今天,我们将比较两个巨头:PostgreSQL和MySQL。两者都有各自的优势,了解它们可以极大地影响您的开发过程。 速度恶魔与查询大师⚡ MySQL:对于日常任务来说速度极快,尤其是读取量大的应用程序。高性能网络应用程序的理想选择。 P...