作者
digoal
日期
2019-10-12
标签
PostgreSQL , pg_transport , pgtransfer
背景
Postgrespro在较早的时候支持了表传输功能。
《透过postgrespro看PostgreSQL的附加功能》
https://postgrespro.com/docs/enterprise/11/pgtransfer
表传输功能通过拷贝数据文件来实现表级数据传输、迁移。在商用数据库中较为常见,例如oracle就有表传输、表空间传输的特性。可以直接迁移一个表空间的数据。
应用场景:
1、表级迁移
2、快速上云
aws近期也在rds pg中推出了类似的功能
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#PostgreSQL.TransportableDB
PG表空间实现方式YY
表传输功能:
通过拷贝数据文件实现超高效率的表级数据迁移,并且不产生redo。
传统方法需要insert或copy,包括build index的时间。
要求:
1、大版本一致
2、编译平台一致
3、block_size, checksum配置等一致
问题:
1、文件一致性。
2、如何实现在线,增量。
方法:
1、从原数据中读取要传输的表的数据文件(包括toast, index, index_toast, vm, fsm)位置
2、使用流复制协议拷贝文件
3、目标端新建表结构
4、使用流复制协议传输拷贝后的文件替换存储,完成表传输。
应用场景:
1、表级迁移
2、快速上云
参考
《透过postgrespro看PostgreSQL的附加功能》
https://postgrespro.com/docs/enterprise/11/pgtransfer
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#PostgreSQL.TransportableDB
PostgreSQL 许愿链接
您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.
9.9元购买3个月阿里云RDS PostgreSQL实例
PostgreSQL 解决方案集合
德哥 / digoal's github - 公益是一辈子的事.





