如何在postgres数据库中创建单个表的备份?

时间:2010-09-10 07:24:25

标签: postgresql backup pg-dump

有没有办法使用postgres在数据库中创建单个表的备份?如何?这也适用于pg_dump命令吗?

7 个答案:

答案 0 :(得分:155)

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

pg_dump --host localhost --port 5432 --username postgres --format plain --ignore-version --verbose --file "<abstract_file_path>" --table public.tablename dbname

答案 1 :(得分:65)

如果您使用的是Ubuntu,

  1. 登录您的postgres用户sudo su postgres
  2. pg_dump -d <database_name> -t <table_name> > file.sql
  3. 确保您正在执行postgres用户具有写权限的命令(例如:/tmp

    修改

    如果要将.sql转储到另一台计算机,可能需要考虑将所有者信息保存到.sql文件中。

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

答案 2 :(得分:24)

  

pg_dump -h localhost -p 5432 -U postgres -d mydb -t my_table&gt;   backup.sql

您可以对单个表进行备份,但我建议您备份整个数据库,然后恢复所需的表。备份整个数据库总是好的。

9 ways to use pg_dump

答案 3 :(得分:10)

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

enter image description here

enter image description here

enter image description here

答案 4 :(得分:0)

作为弗兰克·海肯(Frank Heiken)回答的补充,如果您希望使用INSERT语句而不是copy from stdin,则应指定--inserts标志

pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname

请注意,由于它已弃用,因此我省略了--ignore-version标志。

答案 5 :(得分:0)

您可以使用此命令

pg_dump --table=yourTable --data-only --column-inserts yourDataBase > file.sql

您应该根据情况更改您的Table,您的数据库

答案 6 :(得分:0)

我试图从 psql 命令提示符中运行 pg_dump,但我无法在 ubuntu 20.04 机器上的任何地方跟踪输出文件。我尝试通过 find / -name "myfilename.sql" 查找。

相反,当我从 /home/ubuntu 尝试 pg_dump 时,我在 /home/ubuntu

中找到了我的输出文件