PostgreSQL构建流复制拉取日志的起始位置在哪里
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,WaitForWALToBecomeAvailable: if (!InArchiveRecovery) currentSource = XLOG_FROM_PG_WAL;
千家信息网最后更新 2025年11月10日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安全错误
数据库的锁怎样保障安全
烟台众诚互联网科技有限公司
我国网络安全法律法规
楚雄州公安网络安全保卫支队
南通工程软件开发特点
网络安全十大条例
中国网络安全协会案例
网络安全soc市场
徐汇区互联网络技术咨询信息
惠州餐饮软件开发方案
服务器无法建立安全
天水软件开发
罗湖区网络技术转移
腾达ac9博通版的服务器教程
hp9000服务器
支付网关无法连接服务器
数据库怎么检查约束
数据库与数据库软件
服务器编辑安全组规则
单元测试是在软件开发过程
数据库boot
什么用于收缩数据库
数据库分库讲解视频
网络安全法颁布实施的顺序
腾讯云服务器封禁合法吗
华为强化网络安全
滨州安卓软件开发公司有哪些
平陆网络安全宣传周
共享服务器如何防护勒索病毒
安全厅网络安全有哪部门管
我的世界滑稽服务器