因需要使用到分区表,在业务不中断的情况下,可以新增分区,需要将原来的Mariadb10.1.25版本升级到Mariadb10.3.8。
1、升级步骤如下
1)新搭建Mariadb10.3.8版本的DB
2)全备份Mariadb10.1.25版本数据(表结构、存储过程、函数、触发器等)
3)将Mariadb10.1.25的备份数据恢复到Mariadb10.3.8
4)使用/u02/mysql/bin/mysql_upgrade 升级
2、升级并导入备份后遇到问题
但是其中遇到一个问题,就是在导入备份后,由于Mariadb10.1.25版本的mysql.proc表有20个列,
Mariadb10.3.8有21个列,导入后,Mariadb10.3.8的mysq.proc表被Mariadb10.1.25的表覆盖。
导致后面执行存储过程是,存储过程报错:
Column count of mysql.proc is wrong. Expected 21, found 20. The table is probably corrupted
表可能已损坏
3、解决方法
查看这两个版本mysql.proc表的表结构,Mariadb10.3.8比Mariadb10.1.25,多一列 aggregate,
导入备份后,重建的表不包含这列,一次,需要重建
alter table mysql.proc add column `aggregate` enum('NONE','GROUP') NOT NULL DEFAULT 'NONE';
最后,再运行一次/u02/mysql/bin/mysql_upgrade