RemovePromoteSignalFiles函数强制删除signaling standby promotion请求的文件。如果不删除,这些文件的存在会过早触发promotion。删除这些文件通常是没有必要的,因为它们仅仅在standby promotion过程中存在。然而会存在竞态情况:
如果pg_ctl promote被执行并在提升过程中创建了这些文件,这些文件会存在,即使数据库已经是新的master了。然后,新的standby使用该master产生的备份启动,这些文件会在数据库启动过程中存在,因此必须在这里删除以避免产生没有必要的promotion。
void RemovePromoteSignalFiles(void){
unlink(PROMOTE_SIGNAL_FILE);
unlink(FALLBACK_PROMOTE_SIGNAL_FILE);
}
同样,对于日志回卷的信号文件也需要操作
void RemoveLogrotateSignalFiles(void) {
unlink(LOGROTATE_SIGNAL_FILE);
}
文章为用户上传,仅供非商业浏览。发布者:Lomu,转转请注明出处: https://www.daogebangong.com/articles/detail/PostgreSQL-shu-ju-ku-shou-hu-jin-cheng-Postmaster-shan-chu-ti-sheng-wen-jian.html
评论列表(196条)
测试