作者:瀚高PG实验室 (Highgo PG Lab)— 天蝎座
PG版本: PostgreSQL 9.5.7
操作系统: Red Hat Enterprise Linux Server release 7.3 (Maipo)
在目前的数据库和操作版本下,没有出现这个问题
highgo=# select pg_size_pretty(pg_relation_size('tbl_kenyon'));
pg_size_pretty
----------------
8860 MB
(1 row)
highgo=# select count(*) from tbl_kenyon;
-----------
110010000
(1 row)
[highgo@highgo 13296]$ ll -ht |grep 24623
-rw-------. 1 highgo highgo 1.0G Nov 6 12:24 24623.4
-rw-------. 1 highgo highgo 1.0G Nov 6 12:23 24623.3
-rw-------. 1 highgo highgo 1.0G Nov 6 12:22 24623.2
-rw-------. 1 highgo highgo 1.0G Nov 6 12:22 24623.1
-rw-------. 1 highgo highgo 1.0G Nov 6 12:21 24623
-rw-------. 1 highgo highgo 669M Nov 6 12:05 24623.8
-rw-------. 1 highgo highgo 1.0G Nov 6 12:04 24623.7
-rw-------. 1 highgo highgo 1.0G Nov 6 12:04 24623.6
-rw-------. 1 highgo highgo 1.0G Nov 6 12:03 24623.5
-rw-------. 1 highgo highgo 2.2M Nov 6 11:57 24623_fsm
[highgo@highgo data]$ pg_dump -h localhost -U highgo -F t -f highgo1105.dmp -t tbl_kenyon
Password:
highgo=# drop table tbl_kenyon ;
DROP TABLE
[highgo@highgo 13296]$ ll -ht |grep 24623
-rw-------. 1 highgo highgo 0 Nov 6 12:53 24623
[highgo@highgo data]$ pg_restore -h localhost -p 5866 -U highgo -d highgo --create --verbose -F t "highgo1105.dmp"
pg_restore: connecting to database for restore
Password:
pg_restore: creating TABLE "public.tbl_kenyon"
pg_restore: processing data for table "public.tbl_kenyon"
pg_restore: setting owner and privileges for TABLE "public.tbl_kenyon"
pg_restore: setting owner and privileges for TABLE DATA "public.tbl_kenyon"
highgo=# select pg_size_pretty(pg_relation_size('tbl_kenyon'));
pg_size_pretty
----------------
8860 MB
(1 row)
highgo=# select count(*) from tbl_kenyon;
count
-----------
110010000
(1 row)
以下部分摘抄自:《PostgreSQL9.5.3-CN-v1.0》中,9.4.6的版本说明部分。
pg_dump和pg_basebackup, 采用GNU约定来处理超过8GB的tar档案成员 (Tom Lane)。 tar 文件格式的POSIX标准不允许归档超过8GB的成员文件, 但是大多数现代化的tar实现支持一个扩展,修复了此问题。 采取这个扩展,以便在具有超过8GB数据的表上使用 -Ft 的 pg_dump不再失败,因此pg_basebackup 可以处理大于8GB的文件。此外,修复了一些可能导致在某些平台上4GB到8GB 之间的成员失败出现故障的可移植性问题。 潜在的这些问题可能会由于不可读的备份文件而导致无法恢复的数据丢失。