• pg_basebackup命令解析


    pg_basebackup命令首先解析输入的参数,再调用BaseBackup()函数进行备份处理。
    在BaseBackup()函数内部,会首先传送WAL日志(如果指定了-x选项的话)。随后依次遍历所有的tablespace复制备份整个数据库的文件。根据pg_basebackup命令的-F选项的指定情况(p表示输出普通文件,t表示输出tar格式,其中p选项是默认选项)选择不同的函数进行处理,incident发生的场合调用的是ReceiveAndUnpackTarFile()函数。对于每一个tablespace,该函数调用PQgetCopyData()函数接收数据库命令COPY TO STDOUT输出的tar格式流,在解析tar格式流后将流中的数据写入到目标目录中对应的文件中,从而完成数据库文件的复制。

    对于tar流:以512字节为一个块(block),不足部分以0补齐,因此tar流的大小是512的倍数。在解析时,也以512个字节为一个单位进行解析并写入到对应的文件中。传送的tar流式以文件为顺序进行发送,当传送完一个文件之后再开始传送下一个文件的数据。目前tar流只支持文件、目录和符号链接的数据的传送。

  • 相关阅读:
    3、UML中的类图及类图之间的关系
    2、GoF的23种设计模式
    1、软件设计模式概念
    枚举
    泛型
    MySQL
    蚁群算法MATLAB解VRP问题
    蚁群算法MATLAB解TSP问题
    模拟退火解TSP问题MATLAB代码
    模拟退火学习
  • 原文地址:https://www.cnblogs.com/flying-tiger/p/7080922.html
Copyright © 2020-2023  润新知