MySQL数据库升级的坑有哪些

技术MySQL数据库升级的坑有哪些这篇文章主要介绍“MySQL数据库升级的坑有哪些”,在日常操作中,相信很多人在MySQL数据库升级的坑有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

本文主要介绍“MySQL数据库升级有哪些坑”。在日常操作中,相信很多人对MySQL数据库升级的坑有所怀疑。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮你解答“MySQL数据库升级有哪些坑”的疑惑!接下来,请和边肖一起学习!
升级MySQL一般有两种可行的方案:一种是直接升级数据字典,在本地完成,整个过程离线中断业务;另一种是通过高可用性切换顺利实现。原则是建立从低版本到高版本的数据复制关系。该方案优势明显,对业务的侵入性较小,可以提前验证,甚至顺利回归。当然,第二个方案需要在前期做大量的准备工作。
第一种方法用于当前基于存储和持续时间等因素进行处理的环境中,整个过程如下:
1) mysqldump备份数据库,备份文件约120G。
2)停止MySQL 5.5数据库。
3)修改数据库端口重启数据库,比如从4308调整到4318,避免迁移过程中其他业务连接的影响,验证后停止数据库。
4)修改mysql_base路径到5.7版本,修改/usr/bin/mysql等环境变量的配置。
5)用5.7版本替换配置文件,以5.7模式启动数据库。
6)使用升级模式升级数据字典。命令如下:
MySQL _ upgrade-socket=/data/MySQL _ 4306/tmp/MySQL . sock-port=4308-uroot-pxxx
7)检查和再检查。
整个过程看起来还可以,实际操作中有很多漏洞。
1) mysqldump备份数据库,备份文件约120G。mysqldump用于快速在线备份,但异常情况下的恢复效率较难,所以这里不建议使用mysqldump进行备份,但建议使用物理备份,如果条件允许,甚至可以直接使用冷待机模式。
2)停止MySQL 5.5数据库。
3)修改数据库端口重启数据库,比如从4308调整到4318,避免迁移过程中其他业务连接的影响,验证后停止数据库。
4)修改mysql_base路径到5.7版本,修改/usr/bin/mysql等环境变量的配置。
5)用5.7版本替换配置文件,以5.7模式启动数据库。我没有注意到这里ibdata的配置,不幸遇到了一个奇妙的配置,如下:
innodb _ data _ file _ path=ibdata 1:1000m;Ibdata2:100m3360自动扩展,但原始规范配置是Ibdata文件,如下所示:
innodb _ data _ file _ path=ibdata 1:1g 3360 auto extend,这将在数据库启动时导致错误,表明ibdata文件已损坏。
6)使用升级模式升级数据字典。命令如下:
MySQL _ upgrade-socket=/data/MySQL _ 4306/tmp/MySQL。sock-port=4308-uroot-pxxxupgrade,这个命令的实现提示不够友好,抛出了很多错误,但最后还是安慰我升级成功了。问题到了这个阶段,其实很难结束。因为数据字典文件损坏,完全不可能升级数据字典。现在数据库里面连desc这个表都没有。
7)检查和再检查。原本容易收工的核查工作,现在变成了抢修工作。
后续的第一波补救措施如下:
8)凌晨利用现有的固定物理备份恢复数据大概需要1个小时,mysqldump果断放弃,印象中至少需要6个小时。
9)使用物理备份模式备份当前数据库。
10)再次升级数据库,尤其注意ibdata的配置。如果升级失败,请使用物理备份快速回滚。
11)升级过程再次受阻,这次是sql_mode,系统数据字典升级成功。但是在数据库的表检查中,很多数据表的格式检查失败主要是因为sql_mode的数据格式检查,需要执行类似的alter table测试xxxxx

像force这样的重构操作。

12)由于恢复过程中原因不明,InnoDB的重做日志也受到了影响,日志开始抛出错误,所以即使字典升级成功,目前恢复的数据库本身也有一些严重的损伤。

后续的第二波补救措施如下:

13)使用mysqldump备份当前数据库,只备份指定的数据库,不使用all-databases选项,单独导出权限。

14)部署一个带有不同端口的MySQL 5.7实例,比如端口4390。

15)sql_mode和5.5版本常用匹配,其他参数修改。

16)将mysqldump数据导入4390的5.7实例。

17)建立主从复制关系。

18)切换数据库端口,使新版本的5.7服务生效。

至此,“MySQL数据库升级有哪些坑”的研究结束,希望能解决大家的疑惑。理论和实践的结合可以更好的帮助大家学习,所以赶紧试试吧!如果你想继续学习更多的相关知识,请继续关注网站,边肖会继续努力,给大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/53572.html

(0)

相关推荐

  • 如何理解HTTPS加密算法

    技术如何理解HTTPS加密算法本篇文章为大家展示了如何理解HTTPS加密算法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言我们将会详细介绍RSA和ECDHE算法的原理以及在H

    攻略 2021年11月12日
  • apacheflink零基础系列教程(flink脱离hadoop使用)

    技术如何在Apache Flink中使用RocksDB状态后端如何在Apache Flink中使用RocksDB状态后端,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简

    攻略 2021年12月23日
  • 世界各国人口,现今世界各国人口形势怎么样

    技术世界各国人口,现今世界各国人口形势怎么样谢谢邀请世界各国人口,人口是人类发展的根本,截止目前全球总人数约为77.17亿人(数据来自上海自然博物馆),全球人口的不断增多,既增强了人类的能力,又给地球带来了负担。对于一个

    生活 2021年10月22日
  • Hutool Java工具类库_ExcelUtil怎么使用

    技术Hutool Java工具类库_ExcelUtil怎么使用这篇文章主要介绍“Hutool Java工具类库_ExcelUtil怎么使用”,在日常操作中,相信很多人在Hutool Java工具类库_ExcelUtil怎

    攻略 2021年11月29日
  • 日历工具BusyCal mac版减速了该怎么解决

    技术日历工具BusyCal mac版减速了该怎么解决今天就跟大家聊聊有关日历工具BusyCal mac版减速了该怎么解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收

    攻略 2021年12月8日
  • 香港云与VPS的区别云服务器香港

    技术香港云与VPS的区别云服务器香港任何稳运行的网站都需要的云服务器与VPS服务器平台的基石。如果不了解这些云服务器和VPS,选择合适的网络托管类型可能既乏味又耗时。下面就来简单介绍一下二者的区别什么是香港云服务器? 云

    礼包 2021年12月17日