MySQL升级(5.6.50 ----> 5.7.32 )Inplace 升级演练

INPLACE 升级过程原理 (生产思路)
a. 安装新版本软件(就是单机多实例的安装步骤)

b. 关闭原数据库业务(挂维护页) innodb_fast_shutdown=0  ==》 设置为0 表示 是安全的关闭,生产必须要做的这一点
mysql> show variables like '%innodb_fast_shutdown%';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| innodb_fast_shutdown | 1     |  ==》默认是1 
+----------------------+-------+
1 row in set (0.01 sec)
mysql> 

关闭数据库后,备份原数据库数据(冷备就是cp到一个地方)
c. 使用新版本软件 “挂” 旧版本数据启动(--skip-grant-tables ,--skip-networking) 跳过网络连接 和 跳过授权表(使用新版本软件,启动老版本的数据文件)

d. 升级 : 只是升级系统表。升级时间和数据量无关的。

e. 正常重启数据库。

f. 验证各项功能是否正常。

g. 业务恢复。
建议: inpalce升级最好是主从环境,先从库再主库。

生产操作步骤:

5.6.50 ----> 5.7.32 Inplace 升级演练
1.安装新版本软件,相当于单机安装多版本

升级前会话kill 掉 
mysql> select concat('kill',id, ";") from information_schema.processlist;

调整参数,关闭快速关闭参数,生产关闭会变慢,上面kill 会话是必须的
set global innodb_fast_shutdown=0;

2.停原库 (5.6.50)
[root@db01 data]# /usr/local/mysql56/bin/mysqladmin -S /tmp/mysql3356.sock
shutdown

3.冷备数据库
[root@localhost ~]# mkdir -p /data/mysql56bak
[root@localhost ~]# cd /data/3356/data/
[root@localhost data]# ll
total 110612
-rw-rw---- 1 mysql mysql 56 Nov 20 22:42 auto.cnf
-rw-rw---- 1 mysql mysql 12582912 Nov 21 01:31 ibdata1
-rw-rw---- 1 mysql mysql 50331648 Nov 21 01:31 ib_logfile0
-rw-rw---- 1 mysql mysql 50331648 Nov 20 22:40 ib_logfile1
-rw-rw---- 1 mysql mysql 5778 Nov 20 23:02 localhost.localdomain.err
drwx------ 2 mysql mysql 4096 Nov 20 22:40 mysql
drwx------ 2 mysql mysql 4096 Nov 20 22:40 performance_schema
drwx------ 2 mysql mysql 6 Nov 20 22:40 test
[root@localhost data]# cp -ra * /data/mysql56bak/


4.使用高版本软件挂低版本数据启动
[root@db01 ~]# vim /data/3306/my.cnf
[root@db01 ~]# cat /data/3306/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql57   --》使用新版本软件
datadir=/data/3306/data
socket=/tmp/mysql3306.sock
server_id=56
port=3306

5.7软件读取5.6配置软件启动数据库
/usr/local/mysql57/bin/mysqld_safe --defaults-file=/data/3306/my.cnf --skip-
grant-tables --skip-networking &

5.升级(升级到8.0可以省略)
-->用5.7 的软件升级,连接5.6的配置文件去升级系统表
[root@localhost data]# /usr/local/mysql57/bin/mysql_upgrade -S /tmp/mysql56.sock --force
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv OK
mysql.db OK
mysql.engine_cost OK
mysql.event OK
mysql.func OK
mysql.general_log OK
mysql.gtid_executed OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.innodb_index_stats OK
mysql.ndb_binlog_index OK
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.proxies_priv OK
mysql.server_cost OK
mysql.servers OK
mysql.slave_master_info OK
mysql.slave_relay_log_info OK
mysql.slave_worker_info OK
mysql.slow_log OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
Upgrading the sys schema.
Checking databases.

--检查数据字典是否升级成功

6.重启数据库到正常状态
[root@localhost data]# mysql -S /tmp/mysql3306.sock
mysql> shutdown ;
[root@localhost data]# /usr/local/mysql57/bin/mysqld_safe --defaults-file=/etc/3306.cnf &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值