PostgreSQL构建流复制拉取日志的起始位置在哪里
发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,WaitForWALToBecomeAvailable: if (!InArchiveRecovery) currentSource = XLOG_FROM_PG_WAL;
千家信息网最后更新 2025年01月26日PostgreSQL构建流复制拉取日志的起始位置在哪里
WaitForWALToBecomeAvailable: if (!InArchiveRecovery) currentSource = XLOG_FROM_PG_WAL; else if (currentSource == 0) currentSource = XLOG_FROM_ARCHIVE; for (;;){ int oldSource = currentSource; if (lastSourceFailed){ switch (currentSource){ case XLOG_FROM_ARCHIVE: case XLOG_FROM_PG_WAL://如果是备机,并且执行了promote或者存在TriggerFile文件则shutdown receive进程 if (StandbyMode && CheckForStandbyTrigger()){ ShutdownWalRcv(); return false; } if (!StandbyMode) return false; /* 构建流复制关系的位点: 1、如果上次正常关闭,不需要恢复,则从checkpoint点开始 2、否则,从恢复的结束位置开始 */ if (PrimaryConnInfo){ if (fetching_ckpt){ ptr = RedoStartLSN; tli = ControlFile->checkPointCopy.ThisTimeLineID; }else{ ptr = RecPtr; tli = tliOfPointInHistory(tliRecPtr, expectedTLEs); } curFileTLI = tli; RequestXLogStreaming(tli, ptr, PrimaryConnInfo, PrimarySlotName); receivedUpto = 0; } currentSource = XLOG_FROM_STREAM; break; ... } } ... }/*1、流复制拉取日志的起始位置是位点所在文件的文件开头2、也就是说,会以重新拉取整个xlog的文件并覆盖pg_xlog目录的相应文件3、所以,当以主shutdown,再次以备启动时,需要注意,会从新主拉取相应文件并4、覆盖本地文件,但是本地的pg_control文件并没有更新,所以读取的checkpoint位置会指向一个错误的位置5、这种情况构建流复制需要谨慎注意。*/RequestXLogStreaming: if (recptr % XLogSegSize != 0) recptr -= recptr % XLogSegSize; walrcv->receiveStart = recptr; walrcv->receiveStartTLI = tli; SendPostmasterSignal(PMSIGNAL_START_WALRECEIVER);//发起信号唤醒receiver进程
文件
位置
位点
进程
日志
起始
也就是
也就是说
信号
再次
开头
情况
所在
指向
目录
错误
更新
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
余姚敏捷软件开发外包
东城区一站式网络技术质量保证
怎么启动本地数据库
电子软件开发专业可以吗
软件开发项目进度解决表
数据库库名规则
酒店管理涉及的网络技术
ein7网络安全密匙怎么获取
软件开发效益预测
论坛数据库下载
达梦数据库 dm.ini找不到
软件开发南昌培训
深圳服务器地址
怎样设置服务器的权限管理
如何定义数据库表修改数据库
企业软件开发要多少钱
存 数据库 问卷数据
软件开发网络设计那个更好
软考 中级数据库
我的世界服务器 红石
数据库程序编辑软件
输入网络安全密码时输入框无反应
管理硬件设备的软件开发
数据库应用技术答案a卷
数学不好可以学网络安全专业吗
部队网络安全面临哪些威胁
白皮调色软件开发
河北国安网络技术有限公司
2020未成年人暑期网络安全
网络安全管理的基本方面