Sql 将表从服务器1移动到服务器2
我有两个Postgresql服务器(Windows),我正在尝试将表从server1传输到server2。此表大小约为200 MB,因为它包含二进制数据。 我想把桌子放进U盘,然后把它移到第二台服务器上。(假设两台服务器未通过LAN连接)。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)中执行它 假设您具
最简单的方法是什么?你能用命令描述一下方法吗 最简单的方法可能是使用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文件如何??