当前位置:网站首页>数据库SqlServer迁移PostgreSql实践
数据库SqlServer迁移PostgreSql实践
2022-08-04 18:00:00 【51CTO】
背景
公司某内部系统属于商业产品,数据库性能已出现明显问题,服务经常卡死,员工经常反馈数据无法查询或不能及时查询,该系统所使用的数据库为SqlServer,SqlServer数据库属于商业数据库,依赖厂商的维护,且维护成本高,效率低,且存在版权等问题,考虑将该系统的数据库,迁移至PostGresql数据库,属于BSD的开源数据库,不存在版本问题,公司也有部分系统采用pg,维护成本也将大大减低。
迁移原理
SqlServer属于商业数据库,不可能像Mysql等数据库一样,去解析相关的数据库binlog,从而实现增量数据的回放,结合应用属性,最后确定采用离线迁移方式,从SqlServer中将表数据全部读出,然后将数据写入到pg中,采用此种方案的弊病就是程序端需停止写入(应用可将部分数据缓存到本地),等待数据库迁移完成后,程序端再迁移至PostGresql,迁移方法如下:

表结构迁移原理
表结构主要包含字段,索引,主键,外键等信息组成,主要采用开源工具sqlserver2pg进行表结构的转换
表结构转换
从SqlServer中读写表结构的字段信息,并对字段类型进行转换,转换核心代码如下
外键,索引,唯一键转换
主要是从sqlserver导出的表结构数据中,对相关的索引,外键等语句进行转换,转换核心代码如下
数据类型转换原理
数据类型转换

函数类型转换

存储过程
视图部分需手动改造
迁移方法
表结构转换
表结构导入pg
数据迁移
数据比对
参考
边栏推荐
猜你喜欢

leetcode 14. 最长公共前缀

报道称任天堂在2023年3月前不会推出任何新硬件产品

OpenInfra Days China 2022 | SelectDB to share with you the Apache Doris in Internet advertising business practices

Iptables防火墙基础知识介绍

Codeforces积分系统介绍

EasyCVR本地接入国标设备映射公网后,本地设备出现无法播放与级联的解决方法

群友求助,一周没有搞定的需求,3分钟就解决了?

【web自动化测试】Playwright快速入门,5分钟上手

"Involution" Index Analysis Based on AHP

八猴渲染器是什么?它能干什么?八猴软件的界面讲解
随机推荐
报道称任天堂在2023年3月前不会推出任何新硬件产品
图解LeetCode——899. 有序队列(难度:困难)
树莓派安装samba用来共享文件
[Web Automation Test] Quick Start with Playwright, 5 minutes to get started
小程序笔记2
情绪的波动起伏
Thrift IDL示例文件
July 31, 2022 Summary of the third week of summer vacation
谁能解答?从mysql的binlog读取数据到kafka,但是数据类型有Insert,updata,
路由懒加载
buuctf(探险1)
《机器学习理论到应用》电子书免费下载
荣耀发布开发者服务平台,智慧生态合作提速
R语言glm函数使用频数数据构建二分类logistic回归模型,分析的输入数据为频数数据(多个分类指标对应的阴性样本和阳性样本的频数数据)、weights参数指定频数值
智能视频监控平台EasyCVR如何使用接口批量导出iframe地址?
使用bash语句,清空aaa文件夹下的所有文件
leetcode 14. 最长公共前缀
R语言缺失时间序列的填充及合并:补齐时间序列数据中所有缺失的时间索引、使用merge函数合并日期补齐之后的时间序列数据和另外一个时间序列数据(补齐左侧数据)
clickhouse 上下线表
《中国综合算力指数》《中国算力白皮书》《中国存力白皮书》《中国运力白皮书》在首届算力大会上重磅发出