ITPub博客

首页 > 数据库 > MySQL > 基于centos7的MySQL8.0二进制安装包的本地升级

基于centos7的MySQL8.0二进制安装包的本地升级

原创 MySQL 作者:龙山游龙 时间:2021-07-30 16:36:44 0 删除 编辑

第一部分数据库备份

在升级数据库之前,首先对数据库进行备份。可以采用冷备或热备。

1.1冷备

如果服务器有足够的时间能够停机进行备份操作,可以直接采用冷备的方式。在将数据库关闭之后,直接将数据目录复制到备份目录中。

shell> mkdir -p /mysql/mysql802/product
shell> cp /mysql/mysql80/product/* /mysql/mysql802/product

注意:冷备前需要先查看配置文件,确认数据库的所有文件是否都在数据目录中,部分日志有没有设置到其他目录中。

1.2逻辑热备

mysqldump是MySQL自带的备份工具,我们只需要直接使用就行。

shell> /mysql/mysql80/app/bin/mysqldump -uroot -pAbcd321# -S /mysql/product/mysql80/data/mysql.sock --single-transaction --master-data=2 -E -R --all-databases >full.sql

使用上述命令备份全库至指定目录。

shell> tail -1 full.sql
-- Dump completed on 2020-10-29  9:23:04

若最后输出Dump completed on,则说明备份成功。

1.3物理热备

下载XtraBackup8.0:

使用,登入官网XtraBackup8.0下载区,下载最新版本的二进制包。

在Linux系统上传介质包percona-xtrabackup-8.0.14-Linux-x86_64.glibc2.12.tar.gz,创建/Xtrabackup目录。

shell> mkdir -p /Xtrabackup
sftp> cd /Xtrabackup
sftp> put percona-xtrabackup-8.0.14-Linux-x86_64.glibc2.12.tar.gz

解压介质包,并设置环境变量。

shell> tar zxf percona-xtrabackup-8.0.14-Linux-x86_64.glibc2.12.tar.gz
shell> cd percona-xtrabackup-8.0.14-Linux-x86_64.glibc2.12/bin/
shell> pwd 
/Xtrabackup/percona-xtrabackup-8.0.14-Linux-x86_64.glibc2.12/bin
shell> vi /root/.bash_profile
export PATH=/Xtrabackup/percona-xtrabackup-8.0.14-Linux-x86_64.glibc2.12/bin:$PATH
shell> source /root/.bash_profile
shell> su -

至此,Percona Xtrabackup部署完成。然后开始备份。

shell> mkdir /Xtrabackup/backup
shell> xtrabackup --defaults-file=/mysql/mysql80/app/my.cnf -uroot -pAbcd321# -S /mysql/mysql80/product/data/mysql.sock --backup --target-dir=/Xtrabackup/backup
......
201029 09:32:42 completed OK!

最后输出completed OK!,则说明备份成功。

第二部分升级数据库

就地升级包括关闭旧的MySQL服务器,用新的二进制包替换旧的二进制包,在现有数据目录上重新启动MySQL,以及升级现有安装中需要升级的剩余部分。

2.1升级前准备

打开mysql官网下载页面:https: // downloads.mysql.com/archives/community/ ,下载要升级的对应版本的数据库,并上传到指定目录。

检查你的升级路径,数据库升级不支持跳过版本的升级,例如,不支持直接从MySQL 5.5升级到8.0。建议先升级到最新版本,再升级到下一版本。支持在发行系列中进行升级。

检查你的配置文件,查看参数设置是否与新版本的数据库兼容。

2.2提交或回滚分布式事务

如果在InnoDB中使用XA事务,请在升级之前运行XA RECOVER以检查未提交的XA事务。如果有返回结果,则通过发出XA COMMIT或 XA ROLLBACK语句来提交或回滚XA事务。

mysql> XA RECOVER;
mysql> XA COMMIT xid;

2.3配置慢关机

如果您使用InnoDB,请通过InnoDB_fast_shutdown配置MySQL执行慢关机。

mysql> set global innodb_fast_shutdown=0;

2.4关闭原数据库

在关闭数据库时,需要使用对应数据库的命令:

shell> /mysql/mysql80/app/bin/mysqladmin -uroot -pAbcd321# -S /mysql/product/mysql80/data/mysql.sock shutdown

如果您将MySQL服务器作为服务运行,可用service停止服务:

shell> service mysqld80 stop

2.5移走原数据库安装目录

shell> mkdir -p /mysql/mysql802/app
shell> mv /mysql/mysql80/app/* /mysql/mysql802/app/

2.6解压新的数据库

将新版本的数据库解压到原来的安装目录中:

shell> tar zxvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.gz -C /mysql/mysql80/app --strip-components=1

2.7启动数据库服务

用新的数据目录和旧的数据目录启动数据库服务。

shell> mysqld_safe --defaults-file=/mysql/mysql80/app/my.cnf --user=mysql &

如果您将MySQL服务器作为服务运行,请重新设置数据库服务:

[root@mysql ~]# cp /mysql/mysql80/app/support-files/mysql.server /etc/init.d/mysqld80
[root@mysql ~]# vi /etc/init.d/mysqld80
basedir=/mysql/mysql80/app
datadir=/mysql/mysql80/product/data
shell> service mysqld80 start

2.8升级数据库

从MySQL 8.0.16开始,服务器将在上一步启动服务时完成对系统的升级。如果你的新版本是MySQL 8.0.16以上,则不需要接下来两步。

mysql_upgrade检查所有数据库中的所有表是否与当前版本的MySQL不兼容。mysql_upgrade还会升级 mysql系统数据库,以便您可以利用新的特权或功能。

shell> mysql_upgrade -uroot -pAbcd321# -S /mysql/mysql80/product/data/mysql.sock
......
OK

最后如果弹出了OK输出,则说明升级数据库成功。

2.9重启数据库

关闭并重新启动MySQL服务器,以确保对系统表所做的所有更改均生效:

shell> mysqladmin -uroot -pAbcd321# -S /mysql/mysql80/product/data/mysql.sock shutdown
shell> mysqld_safe --defaults-file=/mysql/mysql80/app/my.cnf --user=mysql &

如果您将MySQL服务器作为服务运行:

shell> service mysqld80 restart


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30310891/viewspace-2784364/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
拥有超过9年以上的MySQL/Oracle数据库领域从业经验,TB级高并发数据库的管理经验。对于MySQL/Oracle内部原理、体系结构,数据页/块结构原理有着深刻认识;对于MySQL/ORACLE新特性、分布式高可用架构和性能调优有着丰富的的实战经验。擅长故障诊断以及数据库异常打开及数据灾难挽救。

注册时间:2015-06-28

  • 博文量
    78
  • 访问量
    109784