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

在一个 tar 转储

$ 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脚本。restore.sqltoc.dat的用途有何不同?

文件中的以下引用没有回答我的问题:

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

  1. 由于tar dump除了.dat文件外还包含restore.sql,tar dump和plain dump(只有一个sql脚本文件)中的sql脚本文件restore.sqltoc.dat有什么区别?

谢谢。

解答

  • restore.sql未被pg_restore使用。请参阅src/bin/pg_dump/pg_backup_tar.c的此评论:
* tar 格式还包括一个“restore.sql”脚本,用于
*人类的利益。 pg_restore 永远不会使用这个脚本。
  • toc.dat是_目录_。它包含在转储中创建和删除每个对象的命令,并被pg_restore用于创建对象。它还包含从*.dat文件加载数据的COPY语句。

您可以使用pg_restore -l以人类可读的形式提取目录,您可以使用pg_restore -L编辑结果以仅恢复特定对象。

  • _<number>_.dat文件是包含表数据的文件,被toc.datrestore.sql中的COPY语句使用。
Logo

PostgreSQL社区为您提供最前沿的新闻资讯和知识内容

更多推荐