代码之家  ›  专栏  ›  技术社区  ›  Tim unnamed eng

tar转储中sql脚本文件的用途是什么?

  •  0
  • Tim unnamed eng  · 技术社区  · 7 年前

    a tar dump

    $ tar -tf dvdrental.tar 
    toc.dat
    2163.dat
    ...
    2189.dat
    restore.sql
    

    提取后

    $ file *
    2163.dat:    ASCII text
    ...
    2189.dat:    ASCII text
    restore.sql: ASCII text, with very long lines
    toc.dat:     PostgreSQL custom database dump - v1.12-0
    
    1. 目的是什么 restore.sql ?
    2. toc.dat 是二进制的,但我可以打开它,它看起来像一个sql 剧本也一样。不同的目的 恢复SQL 托达 ?

      文档中的以下引用不回答我的问题:

      每个表和blob转储一个文件,再加上描述转储对象的所谓目录文件 以pg_restore可以读取的机器可读格式。

    3. 因为焦油垃圾堆包含 恢复SQL 除此之外 .dat 文件夹, SQL脚本文件之间的区别是什么 恢复SQL 小精灵 在柏油堆里 纯转储(只有一个SQL脚本文件)?

    谢谢。

    2 回复  |  直到 7 年前
        1
  •  2
  •   Laurenz Albe    7 年前
    • restore.sql 不被使用 pg_restore . 从中查看此评论 src/bin/pg_dump/pg_backup_tar.c :

       *  The tar format also includes a 'restore.sql' script which is there for
       *  the benefit of humans. This script is never used by pg_restore.
      
    • toc.dat 目录 . 它包含用于在转储中创建和删除每个对象的命令,并由 PGO恢复 创建对象。它还包含 COPY *.dat 文件。

      您可以使用 pg_restore -l ,并且您可以编辑结果以仅还原具有 pg_restore -L .

    • 这个 <number> .dat 文件是包含表数据的文件,它们由 拷贝 陈述 托达 恢复SQL .

        2
  •  1
  •   Ereli    7 年前

    这看起来是一个将数据还原到postgresql的脚本。脚本是使用 pg_dump .

    如果你想恢复,请看一下 pg_restore .

    dat文件包含要在 \copy SQL脚本中的命令。

    这个 toc.dat SQL文件中未引用文件。如果你想用 cat toc.dat|strings 您会发现它包含的数据与sql文件非常相似,但是 internal ids .

    我认为在某些情况下,它可能会在没有sql的情况下工作,但现在它不是这样工作的。查看生成TOC的代码 here .