Mysql数据库主从同步小版本升级方案

Mysql数据库主从同步小版本升级方案

如果下文中有任何问题敬请更新指证。

1.升级方式说明

MySQL升级的两种方式:

  • in-place upgrade:

适合小版本的升级。
即:关闭当前的MySQL,替换当前的二进制文件或包,在现有的数据目录上重启MySQL,并运行mysql_upgrade.
特点:不改变数据文件,升级速度快;但不可以跨操作系统,不可以跨大版本(5.5—>5.7就不行)。

  • logical upgrade:

适合不同操作系统的MySQL升级,大版本之间的升级。
即:使用mysqldump 或 mydumper 导出导入数据,实现版本的升级。
特点:可以跨操作系统,跨大版本;但升级速度慢,容易出现乱码等问题。
本次升级版本为:

现有版本升级版本
Mysql 5.7.23Mysql 5.7.36
Mysql 8.0.20Mysql 8.0.27

本次升级版本为小版本范围内的升级,因此采用“in-place upgrade”的升级方式进行升级。

2.升级步骤

从库

2.1 预校验

5.7小版本升级,参数的变动列表可以参考官方文档:
https://dev.mysql.com/doc/refman/5.7/en/added-deprecated-removed.html

经过对比基于Mysql 5.7.23升级到Mysql5.7.36没有参数Removed和Deprecated。
5.7版本通过mysql_upgrade进行数据校验和修复。

以前在升级MySQL5.6、5.7的时候,通常我们会查阅官方文档,看看新老版本之间有什么变化,比如参数的变动,然后根据变动我们调整对应的参数,现在我们有了新的选择 MySQL Shell, 它让升级检查更加简单,容易,方便,快捷。如果系统未安装Mysql Shell需准备好相关安装包并进行安装。

#本地测试例子:
[root@localhost bin]# ./mysqlsh -- util checkForServerUpgrade  root@localhost:3306 --target-version=8.0.27 --output-format=JSON --config-path=/etc/my.cnf
{
    "serverAddress": "localhost:3306",
    "serverVersion": "8.0.20 - MySQL Community Server - GPL",
    "targetVersion": "8.0.27",
    "errorCount": 0,
    "warningCount": 0,
    "noticeCount": 0,
    "summary": "No known compatibility errors or issues were found.",
    "checksPerformed": [
        {
            "id": "checkTableOutput",
            "title": "Issues reported by 'check table x for upgrade' command",
            "status": "OK",
            "detectedProblems": []
        }
    ],
    "manualChecks": []
}

运行后即可直接看结果,按照输出的提示信息进行升级前各项的检查工作。

2.2新版本mysql环境准备
  1. 解压mysql 8.0.27
tar -zxvf mysql-commercial-8.0.27-el7-x86_64.tar.gz -C /software/
  1. 替换软链接/替换mysql程序二进制文件
    没有软连接的话,将原 b a s e D i r 目 录 , 我 这 里 是 / u s r / l o c a l / m y s q l 目 录 备 份 到 其 他 目 录 , 再 清 空 / u s r / l o c a l / m y s q 目 录 , 如 果 {baseDir}目录,我这里是/usr/local/mysql目录备份到其他目录,再清空/usr/local/mysq目录,如果 baseDir/usr/local/mysql/usr/local/mysqdataDir数据目录在/usr/local/mysql目录下请保留$dataDir数据目录。
[root@hhdb software]# unlink mysql
[root@hhdb software]# ln -s mysql-commercial-8.0.27-el7-x86_64 /usr/local/mysql
  1. 修改目录权限
chown -R mysql.mysql mysql-commercial-8.0.27-el7-x86_64
2.3停从库流量和实例并备份数据

1.检查表是否损坏

mysql> select * from information_schema.tables where TABLE_COMMENT like '%repair%';
Empty set (0.06 sec)

2.检查从库主从是否正常及有无延迟

mysql> show slave status \G

3.停从库流量及io_thread

mysql> stop slave io_thread;
Query OK, 0 rows affected (0.03 sec)

4.数据全部落盘
待slave sql_thread完全应用后全部落盘

mysql> set global innodb_fast_shutdown=0;
Query OK, 0 rows affected (0.00 sec)

5.停从库

mysql> shutdown;
Query OK, 0 rows affected (0.01 sec)

6.备份数据

通过 cp datadir 目录的方式来备份
cp –r  /oradata/data /backup/

2.4启动新版本MySQL

1.检查my.cnf配置文件
1.1 检查basedir指向位置是否正确
1.2 super_read_only 如果开启的话需要临时关闭,后期升级数据字典时候需要写入数据

2.检查启动脚本basedir指向是否正确,检查环境变量路劲配置是否正确。

3.启动mysql
service mysqld start

4.查看升级后的版本(8.0.16后版本到此升级成功)
mysql> select version();
±------------------+
| version() |
±------------------+
| 8.0.27-commercial |
±------------------+
1 row in set (0.00 sec)

2.5运行 mysql_upgrade 升级数据字典(MySQL 8.0.16之前的版本需要执行该步骤)

1.运行 mysql_upgrade
出现Upgrade process completed successfully字样表示成功
如果中间出现错误打断,需要再次运行

mysql_upgrade -uroot -S /tmp/mysql.sock

2.6升级后操作

1.检查主从状态及延迟情况

mysql> show slave status \G

主库

3.1.停主库流量

3.2.待主从数据一致后进行主从切换

3.3.原主库重复上述(2.1~2.5)步骤升级

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据库主从同步是一种常用的数据复制方式,可以确保数据在多个服务器之间的一致性。以下是设置MySQL数据库主从同步的步骤: 1. 配置主服务器: - 在主服务器的配置文件中(一般是my.cnf),启用二进制日志功能(log-bin)并设置一个唯一的标识符。 - 配置一个用于同步的账户,并给予REPLICATION SLAVE权限。 - 重启主服务器,使配置生效。 2. 备份主服务器数据: - 使用mysqldump或其他备份工具,将主服务器上的数据备份到一个文件中。 3. 配置从服务器: - 在从服务器的配置文件中,配置一个唯一的服务器ID。 - 配置一个用于同步的账户,并给予REPLICATION CLIENT权限。 - 重启从服务器,使配置生效。 4. 导入主服务器数据到从服务器: - 将备份文件导入到从服务器上,可以使用mysql命令行或其他导入工具。 5. 启动主从同步: - 在从服务器上执行CHANGE MASTER TO命令,指定主服务器的地址、账户信息和二进制日志文件名。 - 使用START SLAVE命令启动从服务器的同步进程。 6. 检查同步状态: - 使用SHOW SLAVE STATUS命令查看从服务器的同步状态,确保同步正常运行。 以上是基本的主从同步设置步骤,根据具体情况可能会有一些额外的配置和调优。请注意,在配置主从同步之前,确保网络连接正常,主从服务器之间的时间差不大,并且主从服务器的硬件配置相当。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值