Postgresql日志系统的实现(十二)

2.3      为什么要执行基础备份?

首先,参见“PG8.x提供的备份方式使用方法”一节,了解基础备份的方式与步骤。

其次,要明白,使用“pg_start_backup”与“pg_stop_backup”是完成一次基础备份操作。这样做的原因是:

首先,“pg_start_backup”通过调用“RequestCheckpoint”使得“RequestCheckpoint”通过发送信号(SIGINT)的方式要求bgwriterBackgroundWriterMain)进程创建checkpoint;并记载“checkpointloc”和“startpoint”信息到备份标签文件中,而这两个变量的信息源自:

        checkpointloc = ControlFile->checkPoint;

        startpoint = ControlFile->checkPointCopy.redo;

其次,当文件拷贝完毕后,执行“pg_stop_backup”时,为了记载“stoppoint”的信息,强迫PG系统对Xlog日志段的文件进行切换操作,即“日志切换”(参见“日志切换的时机”,表明了切换的条件和时机),代码如下:

stoppoint = RequestXLogSwitch();

有了起始点与结束点的信息后,则把这些信息记载到类似“000000010000000000000000.003A4320.backup”这样的文件中,然后要求系统立即归档。

第三,当系统崩溃时,需要使用日志进行恢复时,就要用到备份标记文件,参见“恢复过程步骤,因为恢复时使用了备份标记文件,这样就能保证恢复的完整性。

    说明,所有这些,实质是为恢复时提供一个有效的可用的checkpoint所记载的信息。所以当进行基础备份时,有并发操作日志文件也是允许的,因为并发操作写的是日志文件,不影响对于有效checkpoint的记载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值