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
     
    希望有了解的告知原因。
  • 相关阅读:
    hdu 4465 概率称号
    Log4j配置文件位置+Spring数据源配置文件位置
    Centos 6.5下一个SNMP简单配置(snmp protocol v3,监控宝)
    过程 线 多线程 并发 同步异步
    django简单图表
    十年
    一起写2048(160行python代码)
    leetcode
    匹配算法重载方法
    串行卧重建10:小设计,而不是大布局
  • 原文地址:https://www.cnblogs.com/xiaotengyi/p/7449577.html
Copyright © 2011-2022 走看看