postgresql 在Postgres中将带有分区的表从一个数据库复制到另一个数据库

thtygnil  于 2023-02-15  发布在  PostgreSQL
关注(0)|答案(1)|浏览(297)

此线程here显示如何将表从一个数据库复制到另一个数据库,其中已存在类似的表:

pg_dump -a -t my_table my_db | psql target_db

但是,这个pg_dump只能在未分区的表或分区本身上工作,我在两个数据库中有许多分区:

table_1_part_1
table_1_part_2
...
table_1_part_n
...
table_k_part_m

因此,使用pg_dump时,我必须对每个分区都这样做。
在这种情况下,什么是高效复制的好解决方案?假设所有分区都存在于两个数据库中。如果有SQL查询,我可以在Python脚本中使用它。

fnx2tebb

fnx2tebb1#

我遇到了同样的需要将分区表从一个postgres服务器复制到另一个postgres服务器的情况(本质上我必须恢复一个删除的表)
正如@Edouard提到的,dblink确实有助于完成这项工作,我在@tinychen和@SebaGra提供的here答案中遇到了同样的建议。
以下是查询的外观:
插入到destination_db. table中从dblink("主机=主机地址数据库名=数据库名用户=用户名密码=密码","从source_db. table中选择 *")中选择 * 作为t1(列1数据类型,列2数据类型,....列N数据类型)
在我的需求中,有接近100个分区有大量的数据,因此服务器请求在2小时后超时,必须逐个分区地执行。
但是,我敢肯定,它可以处理中等音量很容易。
希望这能有所帮助!
谢谢,桑吉

相关问题