PostgreSQL启动恢复过程中日志源的切换
2018-10-21 13:18
1391 查看
日志源会在XLOG_FROM_ARCHIVE->XLOG_FROM_STREAM->XLOG_FROM_ARCHIVE直接切换,只有读取过程中出错,就会切换到另外一个日志源。但实际执行过程中,XLOG_FROM_ARCHIVE出错后会到XLOG_FROM_PG_WAL读取,但是日志源的变量并不会改变。这个需要注意。
static int XLogFileReadAnyTLI(XLogSegNo segno, int emode, int source) { if (expectedTLEs) tles = expectedTLEs; else tles = readTimeLineHistory(recoveryTargetTLI); /* 1、WaitForWALToBecomeAvailable调用时,source是XLOG_FROM_ARCHIVE时,会使用XLOG_FROM_ANY 2、使用XLOG_FROM_ANY,会首先从归档中读取xlog,如果open失败,则会使用XLOG_FROM_PG_WAL 3、外部日志源变量并没有切换 */ foreach(cell, tles){ TimeLineID tli = ((TimeLineHistoryEntry *) lfirst(cell))->tli; if (tli < curFileTLI) break; /* don't bother looking at too-old TLIs */ if (source == XLOG_FROM_ANY || source == XLOG_FROM_ARCHIVE){ fd = XLogFileRead(segno, emode, tli,XLOG_FROM_ARCHIVE, true); if (fd != -1){ if (!expectedTLEs) expectedTLEs = tles; return fd; } } if (source == XLOG_FROM_ANY || source == XLOG_FROM_PG_WAL){ fd = XLogFileRead(segno, emode, tli, XLOG_FROM_PG_WAL, true); if (fd != -1){ if (!expectedTLEs) expectedTLEs = tles; return fd; } } } return -1; }
相关文章推荐
- PostgreSQL启动过程中的那些事十二.五:启动系统日志进程syslogger
- 通过哪个日志查看CRS启动过程
- PostgreSQL启动过程中的那些事七:初始化共享内存和信号十:shmem中初始化PROC索引、辅助进程和信号
- 安装解压版本的MySQL,安装过程中的常见命令,检查windows系统错误日志的方式来检查MySQL启动错误,关于Fatal error: Can't open and lock privilege
- PostgreSQL启动过程中的那些事十三_十四:初始化统计进程需要的资源、为autovuc进程启动做条件检查
- PostgreSQL服务过程中的那些事一:启动postgres服务进程一
- postgresql 9.1 基于 async stream 的 master/salve 切换过程
- linux开机启动过程、PATH、过滤一级目录、cd的参数、ls -lrt、命令切割日志
- Windows平台下Oracle实例启动过程中日志输出
- PostgreSQL启动恢复通过checkpoint open wal文件
- PostgreSQL启动恢复期间,恢复到的时间线的确定
- PostgreSQL启动过程中的那些事七:初始化共享内存和信号十一:shmem中初始化SharedProcArray
- 安装解压版本的MySQL,安装过程中的常见命令,检查windows系统错误日志的方式来检查MySQL启动错误,关于Fatal error: Can't open and lock privilege
- PostgreSQL启动过程中的那些事七:初始化共享内存和信号:四 shmem中初始化subtrans
- postgresql中参数logging_collector对数据库系统启动日志和操作日志信息目的地的影响
- Activity manager service :activity 启动流程中process的切换过程
- PostgreSQL服务过程中的那些事一:启动postgres服务进程一.七:初始化portal管理环境
- PostgreSQL启动过程中的那些事七:初始化共享内存和信号十五:shmem中初始化ProcSignal
- 用mysqldump备份及结合binlog日志恢复的全过程
- 记录由于一次强制断电导致的服务器无法启动的恢复过程