zoukankan      html  css  js  c++  java
  • pg_basebackup: invalid tar block header size

    问题:
    在使用pg_basebackup搭建备节点时,由于pg_basebackup本身使用的是int整型来保存传输的数据大小,当传输的数据大于4G的话,整数就会溢出,进而报出:pg_basebackup: invalid tar block header size之类的错误.
     
    解决:
    在9.4版本之前(包括9.4,但直接查看9.4的代码,保存文件长度的变量是__int64的,可能是9.4之前的,也可能我看的已经打过补丁了)。如此不能直接使用pg_basebackup的p格式来搭建备节点,不过可以使用tar格式来搭建。
     
    pg_basebackup -D $PGDATA  -Ft -z -P -v  -h ip -p 端口号 -U 复制账号
    
     
    如此可以从主节点,将表空间,数据目录分别压缩传输过来,每个表空间都是单独一个压缩包,后面再分别在对应表空间解压即可。
    但我现在遇到的问题并不是要传输的文件大于4G,而是很小的文件也无法使用pg_basebackup传输,虽然最后通过使用tar格式解决了数据同步问题,但问题原因扔不清楚,查阅邮件列表也只看到传输大文件时出现过该问题。
     
    邮件列表谈及内容:
    https://www.postgresql.org/message-id/flat/20140603163031.GR24145%40awork2.anarazel.de#20140603163031.GR24145@awork2.anarazel.de
     
    希望有了解的告知原因。
  • 相关阅读:
    SOJ4478 Easy Problem II(模拟、栈)
    SOJ4480 Easy Problem IV (并查集)
    暴力枚举法总结
    区间DP学习总结
    51nod 1019 逆序数(逆序数+离散化)
    win7系统查看硬盘序列号步骤
    雷达图制作方法
    matlab更改打开时候默认路径
    excel多组数据散点图生成
    EndNote(三)之中文引文导入方式
  • 原文地址:https://www.cnblogs.com/xiaotengyi/p/7449577.html
Copyright © 2011-2022 走看看