暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

原创 王旭 2025-05-09
91

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

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

迁移场景

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

如何迁移

  • windows创建测试用表,生成2000w行数据,模拟生产业务多个文件的情况
null
null
  • 查看对应的文件存放在哪里,当前超过1g以上,产生了多个文件
null
  • 我们通过查询元数据,可以看到执行\dt就代表执行了如下sql的查询,事实上主要的就是pg_class表
null
  • 那能不能通过特殊办法,把元数据拿走,然后直接不停机拷贝物理文件到其它环境,如linux去运行呢?答案是可以的。

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

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

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

null
null

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

总结

  • 本次模拟只是为了研究pg的一些特殊恢复技能,在生产环境中还是建议常规方式导出导入。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论