当前位置:网站首页>数据库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
数据迁移
数据比对
参考
边栏推荐
- 企业调查相关性分析案例
- R语言ggpubr包的ggline函数可视化折线图、设置add参数为mean_se和dotplot可视化不同水平均值的折线图并为折线图添加误差线(se标准误差)和点阵图、设置折线和数据点边框颜色
- 小程序经典案例
- 基于大学生内卷行为的调查研究
- 容器化 | 在 NFS 备份恢复 RadonDB MySQL 集群数据
- 【技术积累】JS事件循环,Promise,async/await的运行顺序
- 《机器学习理论到应用》电子书免费下载
- 身为程序员的我们如何卷死别人?破局重生。
- R语言dplyr包group_by函数和summarise_at函数计算dataframe计算不同分组的计数个数和均值、使用%>%符号将多个函数串起来
- 2019年海淀区青少年程序设计挑战活动小学组复赛试题详细答案
猜你喜欢
随机推荐
企业调查相关性分析案例
Flask框架实现注册加密功能详解【Flask企业课学习】
R语言使用ggpubr包的ggsummarystats函数可视化柱状图(通过ggfunc参数设置)、在可视化图像的下方添加描述性统计结果表格、palette参数配置柱状图及统计数据的颜色
又一款高颜值 Redis 官方可视化工具,功能真心强大!
【web自动化测试】Playwright快速入门,5分钟上手
CF86D Powerful array
嵌入式开发:使用堆栈保护提高代码完整性
不论你是大众,科班和非科班,我这边整理很久,总结出的学习路线,还不快卷起来
【注册荣耀开发者】赢【荣耀70】手机
数据集成:holo数据同步至redis。redis必须是集群模式?
R语言ggpubr包的ggline函数可视化折线图、设置add参数为mean_se和dotplot可视化不同水平均值的折线图并为折线图添加误差线(se标准误差)和点阵图、设置折线和数据点边框颜色
【技术笔记】let 和 var和const的异同
clickhouse online and offline table
asp dotnet core 通过图片统计 csdn 用户访问
谁能解答?从mysql的binlog读取数据到kafka,但是数据类型有Insert,updata,
"No title"
Web端即时通讯技术:WebSocket、socket.io、SSE
DHCP&OSPF组合实验演示(Huawei路由交换设备配置)
工业元宇宙对工业带来的改变
Cholesterol-PEG-Maleimide,CLS-PEG-MAL,胆固醇-聚乙二醇-马来酰亚胺一种修饰性PEG









