2010-09-10 87 views

回答

90

使用--table告诉pg_dump它必须备份哪些表:

pg_dump --host localhost --port 5432 --username postgres --format plain --ignore-version --verbose --file "C:\temp\filename.backup" --table public.tablename dbname

+3

而如何还原备份文件。 (.backup), 我用'pg_restore --host localhost --port 5432 --username postgres --dbname“anydb”--table public.tablename -Ft --verbose“/path/filename.backup”'但是它出现了:'pg_restore:[tar archiver]损坏的tar头文件发现--' – 2016-12-05 05:06:05

+8

'psql -U username -d database -1 -f your_dump.sql' – rnaud 2017-02-03 19:38:18

12

pg_dump的-h本地主机-p 5432个-U Postgres的-d mydb的-t MY_TABLE> backup.sql

您可以采取单个表的备份,但我建议采取整个数据库的备份,然后恢复您需要的任何表。拥有整个数据库的备份总是很好的。

9 ways to use pg_dump

+0

你的链接已经死了截至目前;( – Vogel612 2015-03-31 14:36:37

46

如果你是在Ubuntu上,

  1. 登录到你的Postgres用户sudo su postgres
  2. pg_dump -d <database_name> -t <table_name> > file.sql

确保您正在执行,其中postgres用户有命令写入权限(例如:/tmp

编辑

如果你想在转储另一台计算机的.sql,你可能需要考虑跳过得到保存到.sql文件所有者信息。

您可以使用pg_dump --no-owner -d <database_name> -t <table_name> > file.sql

+0

如果你想要所有的表,而不必指定每个的名称? – shekeine 2015-07-17 13:13:17

+2

只需删除-t选项!'pg_dump -d <数据库名>> file.sql' – 2015-07-17 13:14:08

+2

我不知道为什么,但-d选项对于psql9.3无效并且工作一是** pg_dump -U username db_name -t table_name> fileName **。 – 2016-11-15 10:54:51

10

如果你喜欢一个图形用户界面,你可以使用的pgAdmin III(Linux/Windows的/ OS X)。只需右键点击您选择的表格,然后“备份”。它会为你创建一个pg_dump命令。

enter image description here

enter image description here

enter image description here

相关问题