Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将表从服务器1移动到服务器2_Sql_Postgresql_Binary Data - Fatal编程技术网

Sql 将表从服务器1移动到服务器2

Sql 将表从服务器1移动到服务器2,sql,postgresql,binary-data,Sql,Postgresql,Binary Data,我有两个Postgresql服务器(Windows),我正在尝试将表从server1传输到server2。此表大小约为200 MB,因为它包含二进制数据。 我想把桌子放进U盘,然后把它移到第二台服务器上。(假设两台服务器未通过LAN连接)。 最简单的方法是什么?你能用命令描述一下方法吗 最简单的方法可能是使用pg_dump 我没有在Windows上使用它,所以我不知道它的实际路径,但它应该在Postgres\bin目录中,您需要在shell窗口(如PowerShell或CMD)中执行它 假设您具

我有两个Postgresql服务器(Windows),我正在尝试将表从server1传输到server2。此表大小约为200 MB,因为它包含二进制数据。 我想把桌子放进U盘,然后把它移到第二台服务器上。(假设两台服务器未通过LAN连接)。
最简单的方法是什么?你能用命令描述一下方法吗

最简单的方法可能是使用pg_dump

我没有在Windows上使用它,所以我不知道它的实际路径,但它应该在Postgres\bin目录中,您需要在shell窗口(如PowerShell或CMD)中执行它

假设您具有对每台服务器的控制台访问权限,并且该表已存在于第二个数据库中:

pg_dump -a -b -Fc -t <tablename> <databasename> > <path to dump file>
pg_dump-a-b-Fc-t>
然后,当您将其移动到新服务器时

pg_restore -a -Fc -d <databasename> <path to dump file>
pgu还原-a-Fc-d
如果无法直接访问每台服务器,则需要将连接参数添加到每个命令:

-h <server> -U <username>
-h-U
参数的快速描述:

  • -a:仅转储数据,而不转储架构定义。如果新服务器上尚未放置该表,则应删除该表
  • -b:转储水滴。您提到表中有二进制数据,如果它们作为大对象存储,则需要包含此参数,否则可以跳过它
  • -Fc:将数据转储为的格式。c代表Postgres自定义格式,它更适合移动二进制数据。您可以将其更改为d以使用目录格式,因为您使用的是9.2,但我仍然喜欢自定义格式d但是在转储大型数据库时非常有用,因为它将每个表存储在指定目录中的一个文件中
  • -t:指定要转储一个表而不是整个数据库
  • -d:要还原到的数据库(此参数也可以在pg_dump中使用,但如果如上所述指定,则不需要此参数)

您可能还需要将
-t
参数添加到还原中,但据我所知,这应该不是必需的,因为转储中只有该表(但是,如果转储中有多个表,例如,如果它是数据库的完整转储,则只能用于还原部分数据库).

导出然后导入?您有什么问题?是的,当导入时显示错误消息,因为大小太大,我导出到sql文件。错误消息是什么?请发布更多详细信息postgresql版本是什么?@Aan关于
复制到CSV文件如何??