项目数据mysql升级/迁移pgsql

背景是项目从老版本mysql升级到新版本k8s部署的pgsql,并且表结构发生变化。这个项目的外场比较多,环境因素不确定(不联网,现场操作人员非开发,依赖…),所以采用脚本升级的方式

1.0版本项目mysql,3类详单数据分别建了366天表,加上其它的合计共1167张表
2.0版本项目pgsql建立表分区,合计共33张表
由于SQL间存在方言,我采用导出csv的方式避免这个问题

# 测试数据
Export time: 4'33 
Export tables count:1167
Import time:4'46
Import tables count:33
Data rows:25973598

# 脚本结构
│
├─1.0
│      mysql.cfg -- mysql数据库配置
│      sql.cfg -- 导出脚本
│      start.sh -- 入口脚本
│
├─2.0
│      create_partition.sql -- 建立分区脚本
│      import.sh -- 导入脚本
│      pgsql.cfg -- pgsql数据库配置
│      start.sh -- 入口脚本
│
└─data -- 数据存放文件夹

脚本比较多就不往上粘了,简单说下思路

1.0

1)加载mysql配置
2)加载sql脚本
3)获取db连接
4)执行sql脚本输出至csv文件
5)关闭db连接
6)压缩打包csv文件

2.0

由于2.0版本是k8s部署的pgsql容器,脚本分为宿主机部分、容器部分
宿主机
1)获取k8s命名空间
2)获取pod name
3)使用k8s创建容器内目录
4)脚本传输至容器内
容器
1)加载pgsql配置
2)解压csv压缩包
3)获取db连接
4)执行脚本创建表分区函数并执行
5)导入csv文件入库
6)关闭数据库

我这个是按照现场数据库部署在不同服务器并且存在未联网、ftp工具不存在等因素搞得分离两步操作。如果条件允许完全可以一步执行,在中间加上ftp传输远程执行脚本即可。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值