uu快3下载安装_uu快3注册邀请码_手机版ios

PG异常无法启动的问题:could not read file "pg

时间:2020-03-18 22:09:44 出处:uu快3下载安装_uu快3注册邀请码_手机版ios

克隆槽提供了一种生活生活自动化的法子 ,以确保主服务器在所有备用服务器接收到WAL段就让 不用删除它们,因此主服务器不用删除将会意味着 恢复冲突的行,即使在备用服务器断开连接时也是这麼 。

2019-01-08 08:44:19.989 UTC [7493] PANIC: could not read file "pg_logical/replorigin_checkpoint": Success

截取StartupReplicationOrigin()函数的一段代码

无论是删除,还是修改,在数据库重启的情形下都是被重建。无法复现错误。

In lieu of using replication slots, it is possible to prevent the removal of old WAL segments using wal_keep_segments, or by storing the segments in an archive using archive_command. However, these methods often result in retaining more WAL segments than required, whereas replication slots retain only the number of segments known to be needed. An advantage of these methods is that they bound the space requirement for pg_xlog; there is currently no way to do this using replication slots.

你这人提示很明显,与文件replorigin_checkpoint有关。

于是找到你这人文件,在数据库正常启动的情形下,尝试通过删除和修改的法子 重现该现象。

注意:pg_logical/replorigin_checkpoint,文件是在数据库关闭时重建的,因此非要删除,需用清空文件内容。

其中致命的错误是这句。

参数max_replication_slots的设置,与 logical decoding有关

不言而喻这麼 ,是将会总爱认为该文件是在数据库启动时重建的。

直到意外的,在关闭数据库后清空文件内容,才成功复现了该现象。

接下来的两段,是在说明,在这麼 使用克隆槽的就让 ,咋样补救里边提到的有一有一一五个现象

新安装不久的PostgreSQL数据库,断电后重启,查看日志如下

在PostgreSQL 9.5.16 Documentation的文档中,大伙儿找到如下描述的内容。

网上对于这每项的资料非常少,好在PG是开源的数据库,结合代码得到了如下的哪此信息。

Similarly, hot_standby_feedback and vacuum_defer_cleanup_age provide protection against relevant rows being removed by vacuum, but the former provides no protection during any time period when the standby is not connected, and the latter often needs to be set to a high value to provide adequate protection. Replication slots overcome these disadvantages.

而大伙儿通过源码,要能发现,将克隆槽中内容,持续写入到文件的过程

第有一有一一五个,将会大伙儿需用使用逻辑克隆,也本来需用使用logical decoding,这麼 需用设置参数max_replication_slots大于1

当出现 总爱断电的情形,pg_logical/replorigin_checkpoint只创建了文件,这麼 来得及写数据的情形下,仍然会出现 你这人现象。

所以将会的补救法子 是,当数据库启动异常时,将文件删除,确保数据库要能正常启动。

现象将会清楚了,这麼 大伙儿还有有一有一一五个现象需用补救

其中,截取CheckPointReplicationOrigin函数的代码

Before you can use logical decoding, you must set wal_level to logical and max_replication_slots

to at least 1.

代码中出现 了大伙儿日志中的错误 could not read file....,: Success

错误的意味着 是内容的大小与预设值不一致。与大伙儿就让 的测试结果同类,非要更改内容才会报错。

Replication slots provide an automated way to ensure that the master does not remove WAL segments until they have been received by all standbys, and that the master does not remove rows which could cause a recovery conflict even when the standby is disconnected.

第五个,当大伙儿不需用使用逻辑克隆,这麼 只需用将参数max_replication_slots设置为0,则数据库自动不创建该文件,从而补救该现象。

很显然,使用克隆槽要能更好的补救哪此现象。

补救该现象需用从两方面考虑

CheckPointReplicationOrigin()

热门

热门标签