ITPub博客

首页 > 数据库 > PostgreSQL > pg单表windows如何迁移到linux-骚操作

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

原创 PostgreSQL 作者:wx13062302674 时间:2025-05-09 16:19:07 15 删除 编辑

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的一些特殊恢复技能,在生产环境中还是建议常规方式导出导入。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27147296/viewspace-3083763/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
拥有oracle ocp,mysql ocp,pg ace,精通oracle底层恢复,精通pg,如文件勒索、触发器勒索恢复,asm磁盘组各种故障处理,在各行业中帮助用户恢复了大量的数据。公众号:数据库技术加油站,欢迎关注!

注册时间:2018-08-30

  • 博文量
    44
  • 访问量
    58093