首页 > 其他 > 详细

pg_basebackup命令解析

时间:2017-12-27 23:36:42      阅读:426      评论:0      收藏:0      [点我收藏+]

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流只支持文件、目录和符号链接的数据的传送。

pg_basebackup命令解析

原文:https://www.cnblogs.com/flying-tiger/p/7080922.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!