pg单表windows如何迁移到linux-骚操作

来源:这里教程网 时间:2026-03-14 22:06:40 作者:

pg单表windows如何迁移到linux-骚操作

作者简介:王旭,在数据库管理方面拥有10多年经验。精通主流数据库系统,在企业数据库管理、性能优化、架构设计和高可用性能解决方案方面拥有丰富得实践经验。目前拥有(ORACLE ACE、MYSQL OCP、PG ACE、PGCA、PGCE、PGCM)等数据库认证。

迁移场景

数据量太大,需要某表做测试
需要用到linux的相关插件,而windows插件又无法使用的情况,(如数据恢复相关场景)

如何迁移

windows创建测试用表,生成2000w行数据,模拟生产业务多个文件的情况
查看对应的文件存放在哪里,当前超过1g以上,产生了多个文件
我们通过查询元数据,可以看到执行\dt就代表执行了如下sql的查询,事实上主要的就是pg_class表

那能不能通过特殊办法,把元数据拿走,然后直接不停机拷贝物理文件到其它环境,如linux去运行呢?答案是可以的。

执行checkpoint,刷脏,空闲时刻迁移,高峰期拷贝,可能内存中数据没有写到磁盘,数据块可能会有损坏,拷贝出来的用不了。

权限相关修改
假设我要将这个表弄到linux的postgres库下
接着备份和恢复元数据(windwos主服务器执行)
查看表是否存在
查看数据是否过来

--如上看到,数据并没有完全恢复,因为部分数据块还在内存中,我直接拷贝的文件走;

--再次执行数据有多了一些,看来没有完全触发检查点写文件。

总结

本次模拟只是为了研究pg的一些特殊恢复技能,在生产环境中还是建议常规方式导出导入。

相关推荐