zoukankan      html  css  js  c++  java
  • 三十三、mysqldump实现版本迁移

    数据迁移

    生产环境中可能会对数据库进行版本迁移,常为低版本迁移到高版本。
    一般为原库不动,备份原库数据到新库使用。

    XBK跟mysqldump使用场景
    同构平台迁移,即同系统直接迁移,版本差异不大时可使用XBK进行迁移;
    异构平台迁移,即不同系统时使用mysqldump进行迁移;

    提前准备

    1、如何安装MySQL5.6
    2、如何安装MySQL5.7
    3、应对安装过程中报错

    在同一台服务器上共存这两个版本的MySQL,要注意以下几点:
    1、配置文件最好放在各自的目录中以免搞混,如/usr/local/mysql57/my.cnf
    2、运行时需要指定socket文件,如mysql -uroot -p -S /tmp/mysql56/mysql.sock
    3、server_id要不一样
    4、端口号要不一致

    迁移案例

    生产库为mysql5.6.44
    需要迁移到mysql5.7.26

    1、备份5.6数据

    $ mysqldump -uroot -p -A --master-data=2 --single-transaction -R -E --triggers >/backup/full56.sql
    $ scp /backup/full56.sql 10.154.0.111:/backup/full56.sql
    

    2.恢复数据

    $ /etc/init.d/mysql57 start
    $ mysql -S /tmp/mysql57/mysql.sock
    
    mysql> set sql_log_bin=0;
    mysql> source /backup/full56.sql
    mysql> set sql_log_bin=1;
    mysql> flush privileges;
    
    #因为两个数据库版本不同,故使用mysql_upgrade检查和升级不兼容的数据
    $ mysql_upgrade  -uroot -p -S /tmp/mysql57/mysql.sock
    

    3、截取binlog恢复
    假设10点备份,业务在正常运行,30分钟后升级完成,多余产生的30分钟数据截取二进制日志恢复
    假设10点33分钟恢复完成,多余的3分钟数据,先停止业务挂维护页,截取恢复剩余的binlog
    检查恢复数据,查看业务是否正常,撤销维护页

    关于降级升级

    特别注意!!!
    降级升级因为mysql5.7中的mysql库跟mysql5.6的mysql库不兼容,会导致mysql5.6数据库重启失败。

    重启报错为
    Starting MySQL.Logging to '/data/mysql5.6/data/client1.err'.
    ERROR! The server quit without updating PID file (/data/mysql5.6/data/client1.pid).

    查看错误日志为
    cat /data/mysql5.6/data/client1.err | grep ERROR
    2021-04-04 15:31:29 87146 [ERROR] Fatal error: mysql.user table is damaged or in unsupported 3.20 format.

    此时,需要删除MySQL5.6的数据重新初始化,相当于降了个寂寞。

    解决方案

    #降级升级时不备份mysql5.7的mysql库
    $ mysql -e "show databases;" | grep -Ev "Database|mysql" | 
    xargs mysqldump -uroot -p123 --skip-lock-tables --databases > /backup/full20210404.sql
    

    参考资料:Mysqldump备份数据库时排除某些库

    学习来自:老男孩深标DBA课程 第七章 备份恢复-2

    今天的学习是为了以后的工作更加的轻松!
  • 相关阅读:
    day25:接口类和抽象类
    vue1
    How the weather influences your mood?
    机器学习实验方法与原理
    How human activities damage the environment
    Slow food
    Brief Introduction to Esports
    Massive open online course (MOOC)
    Online learning in higher education
    Tensorflow Dataset API
  • 原文地址:https://www.cnblogs.com/tz90/p/14616654.html
Copyright © 2011-2022 走看看