[AWS]RDS数据库版本升级

server/2024/10/22 9:21:15/

背景:由于AWS上mysql5.7版本不再支持,需要进行版本升级。

吐槽:每年都要来那么几次,真的有病一样,很烦。

步骤一、升级检查

AWS提供了一个python的升级检测脚本,可以按照一下脚本下载测试:

[root@ip-bin]#wget https://dev.mysql.com/get/Downloads/MySQL-Shell/mysql-shell-8.0.32-linux-glibc2.12-x86-64bit.tar.gz
[root@ip-bin]#tar -xvzf mysql-shell-8.0.32-linux-glibc2.12-x86-64bit.tar.gz
[root@ip-bin]#cd mysql-shell-8.0.32-linux-glibc2.12-x86-64bit/bin
[root@ip-bin]#./mysqlsh
MySQL JS > util.checkForServerUpgrade('admin@your-instance.rds.amazonaws.com:3306',{"password":"123456","targetVersion":"8.0.30"})
The MySQL server at your-instance.rds.amazonaws.com:3306,
version 5.7.38-log - Source distribution, will now be checked for compatibility
issues for upgrade to MySQL 8.0.30...

参考文档:保驾护航 – Amazon RDS for MySQL 5.7 到 8.0 升级前置检查 | 亚马逊AWS官方博客

吐槽:这个脚本有点脑残,比如我检测了6个error,实际却看不到具体是哪些。

只能一条一条往上翻,最后却只看到一个Error。

步骤二:控制台进行蓝绿部署。



报错一:RDS集群和实力没有使用相同的参数组。
不知道哪个傻逼建立RDS集群时候,创建集群和读写实例的时候,使用不一样的参数组,你要分别到集群配置和每个实例单独配置里面进行修改,修改参数组之后要立即应用,并且还要重启,保证一致:


报错二:“蓝/绿部署需要启用逻辑复制的数据库集群。在为数据库集群创建蓝/绿部署之前,请将数据库集群与启用逻辑复制的自,定义数据库集群参数组相关联。”
说尼玛那么复杂,其实就是在参数组没有启动binlog复制,但是RDS默认的default参数组,是不能进行修改的,所以不得不去创建一个参数组,

更改之后,在进入集群和实例,把参数组该为你现在新设置的。

报错三:升级之后的8.0不支持,db.r4.large。(报错的时候英文说的很复杂,记不住了,大概意思)
这个就是要到每个读写实力里面,先去把版本升级了,极其傻逼,AWS变相赚你钱

修改之后也要立即应用。

报错四:“The current DB cluster parameter group mysql5-7 is custom. You must explicitly specify a new DB cluster parameter group, either default or custom, for the engine version upgrade”
还是按照报错三的方式,自建8.0的参数组,给实例和集群。

报错五:“Databases using RDS Proxy are not currently supported for Blue Green Deployments”
这是你RDS启动了一个代理,要先把代理拿掉,不然建立不起蓝绿部署。

步骤三:
蓝绿部署升级过程中可能会遇到升级失败,马上查看日志:upgrade-prechecks.log


这份日志拿给AI分析一下,只需要改error的部分就行了,warning的不用管。


http://www.ppmy.cn/server/133855.html

相关文章

快速排序.

文章目录 🍊自我介绍🍊快速排序快速排序的思想: 🍊代码演示 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞关注评论收藏(一键四连)哦~ 🍊自我介绍 Hello,大家好&…

基于SpringBoot+Vue+uniapp微信小程序的澡堂预订的微信小程序的详细设计和实现

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

探讨Node.js生态中的npm与npx工具

在Node.js生态中,npm和npx是两个重要的工具,它们的功能虽然有所重叠,但使用场景却不同。理解它们的区别可以帮助开发者更高效地管理项目依赖与执行工具。 npm与npx的区别 npm:主要用于管理项目依赖。通过 npm install&#xff0…

使用fpm工具制作Vim.rpm包

背景:生产环境中的CentOS 7在安全扫描中被扫描出vim存在堆缓冲区溢出(CVE-2024-45306)等漏洞。根据漏洞说明,需要升级到最新版。 奈何CentOS 7已经停止维护了,所以,想在网上找一个最新版的vim.rpm相当不容易…

【贪心算法】(第六篇)

目录 按⾝⾼排序(easy) 题目解析 讲解算法原理 编写代码 优势洗牌(⽥忌赛⻢)(medium) 题目解析 讲解算法原理 编写代码 按⾝⾼排序(easy) 题目解析 1.题目链接:…

【大模型实战篇】大模型分词算法WordPiece分词及代码示例

继《大模型数据词元化处理BPE(Byte-Pair Encoding tokenization)》之后,我们针对大模型原始数据的分词处理,继续分享WordPiece分词技术【1】。 1. 原理分析 WordPiece 是 Google 开发的分词算法,用于预训练 BERT。此后,它被多个基…

LED计数电路综合实验

一 实验目的 使用Logisim软件设计出以下 LED 计数电路并进行运行 二 电路功能分析 电路功能分析 (1)In5 为 1 时,会让 out1 ~ out5 均为 1,故点击 In5时,out1~out5 均会发亮。 (2)In4 为 1 时…

排序算法 —— 堆排序

目录 1.堆排序的思想 2.堆排序的实现 建堆 向上调整建堆 向下调整建堆 选数 堆排序实现代码 3.堆排序总结 1.堆排序的思想 堆排序是利用堆这种数据结构设计的排序算法,更准确的说,是利用堆的删除操作所设计的一种排序算法。 比如:删…