q8347901 2021-05-11 10:28 采纳率: 0%
浏览 30

批量升级mysql数据库

情况描述:

现在管理着10多台windows服务器,每台服务器上有3个MySQL数据库实例,每个实例上有150个数据库,每次都要升级这4500个数据库。

  升级的内容就是数据表增加字段,修改字段,修改存储过程等等,要保持这些库结构一致。

  我现在想的思路是:

在这10台服务器上都装上一个服务A,由服务A来接收指令执行对应服务器上的3个实例的450个数据库进行语句升级。

  装一个总控制程序B,由程序B告诉服务A需要执行什么升级语句。

因为升级语句在这么多库上执行时不能保证100%都执行通过,如果有100多个库执行失败了,那就需要对这些失败的库重新执行升级更新语句,所以还想对升级语句进行处理,保证这些语句可以重复多次执行。

由于mysql的语句特性,不能在语句文本(非存储过程)中执行IF 代码块,如果语句中新增列,需要先判断该列是不是已经存在了,不存在再新增,如果存在就不新增了。 在服务A中对语句分析,发现语句是ADD COLUMNS 则程序先判断该字段是否存在,再执行

 

我想问:

  想问问大家这种情况都是怎么升级数据库的?用的什么方法?如果自己写软件,那实现的思路大概是什么样呢?

  • 写回答

3条回答 默认 最新

  • 关注

    你要写一个程序来管理这4500多个数据库的升级。

    评论

报告相同问题?