首页 > 数据库 >MySQL InnoDB Cluster 恢复故障成员(数据库为5.7版本)

MySQL InnoDB Cluster 恢复故障成员(数据库为5.7版本)

时间:2022-12-08 12:22:50浏览次数:39  
标签:5.7 -- sql Cluster InnoDB mysql 3306 data 节点

问题:InnoDB Cluster 3个节点中,1个节点丢失,状态为:MISSING

问题分析:因为发现问题比较晚。数据库配置的日志是7天循环删除的。也就是说当MISSING时间大于7天的时候,就不能直接在mysqlsh中使用:cluster.rejoinInstance("root@hostname:3306")重新加入节点的方式恢复,因为主库的日志七天前的日志被清除了,所以无法直接恢复。

 解决步骤:

1.导出正常节点的数据库,并传到故障节点
mysqldump -uroot -p --all-databases --triggers --routines --events --quick --single-transaction --flush-logs --master-data=2 > dbs.dump
scp dbs.dump sql-1:~/

2.在集群中删除故障节点:

执行:mysqlsh
MySQL sql-2:3306 JS > var cluster=dba.getCluster(‘yspCluster‘)
MySQL sql-2:3306 JS > cluster.removeInstance('root@sql-1:3306')

3.删除故障节点的data目录,重新初始化数据库。创建用户(这一步其实就是重新初始化sql-1节点)

(1)先备份/etc/my.cnf,然后编辑配置文件

vim /etc/my.cnf

[mysqld]

basedir=/data/mysql

datadir=/data/mysql/data

    创建数据库目录

   mkdir -pv /data/mysql/data/

   chown -R mysql:mysql  /data/mysql/data/

(2) 初始化数据库

   mysqld --initialize --user=mysql --basedir=/data/mysql/ --datadir=/data/mysql/data                    (注意:此处会初始化出mysql的初始密码!!!)

(3)初始化mysql密码

mysqladmin -uroot -p'随机生成的密码' password '要设置的密码'

4.在sql-1节点上配置集群实例
dba.configureLocalInstance('root@localhost:3306');

 

重启数据库后再执行下面的语句,不然状态不会改变为Ok。

dba.checkInstanceConfiguration('root@localhost:3306') 检查集群实例的状态是否为:OK

5.故障节点导入数据库

登录到故障节点的数据库,执行下面的恢复命令:

mysql> set sql_log_bin=0;
mysql> source dbs.dump
mysql> set sql_log_bin=1;

重启故障节点 MySQL
6.集群中,将故障节点重新加入集群(在正常节点上)

mysqlsh

MySQLsql-2:3306 JS > var cluster=dba.getCluster()
MySQL sql-2:3306 JS > cluster.addInstance('root@sql-1:3306')


7.然后在之前的故障节点使用mysqlsh执行:

dba.configureLocalInstance('root@localhost:3306');    //  保存配置信息到文件,不然读节点重启后无法自动加入到集群中会一直MISSING。

 

标签:5.7,--,sql,Cluster,InnoDB,mysql,3306,data,节点
From: https://www.cnblogs.com/wutao-007/p/16965753.html

相关文章

  • 解析mysql存储结构---innodb_ruby工具
    innodb_ruby用途:主要可查看innodb数据库数据表的各种存储,解析innodb的文件,用于学习数据库底层的一些存储。在debian系统安装innodb_ruby1、sudoaptinstallruby-dev2、su......
  • MYSQL5.7实现递归查询
    根据父id查出所有子级,包括子级的子级,包括自身的idsys_tenant_company_relation为关联表,company_id为子id,parent_company_id为父idSELECTDATA.*FROM(......
  • CentOS 7.4使用yum源安装MySQL 5.7.20
    CentOS7.4使用yum源安装MySQL5.7.20小牛教程 InnoDB存储引擎 2022年11月25日从CentOS7.0发布以来,yum源中开始使用Mariadb来代替MySQL的安装。即使你输入的是yumin......
  • lunix 安装mysql5.7.38
    一、下载Mysql下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads    二、环境检查检测系统是否自带mysql rmp-qa|grepmysql 如果有进......
  • MySQL5.7二进制部署❄️⛄☃️
    MySQL5.7二进制部署❄️⛄☃️准备工作:卸载系统中的mariadbrpm-qa|grepmariadbyumremovemariadb1.下载二进制安装包wgethttps://downloads.mysql.com/archives......
  • mysql 5.7中关于count(*)的优化
    在mysql5.7中,对于selectcount(*)fromtable的优化,可以设置为:selectcount(*)fromtablewhereuid>0其中uid为辅助索引,辅助索引不存放数据......
  • mysql 5.6中关于innodb_stats_on_metadata
    在mysql5.6中,innodb_stats_on_metadata默认是关闭了这个会对INFORMATION_SCHEMA中的一些表进行查询操作,以方便索引统计信息,如果读要求高的建议关闭,见......
  • 5.7 三角函数的应用
    \({\color{Red}{欢迎到学科网下载资料学习}}\)【基础过关系列】2022-2023学年高一数学上学期同步知识点剖析精品讲义(人教A版2019)\({\color{Red}{跟贵哥学数学,so\qua......
  • MySQL 5.7 主从复制 GTID
    GTID中slave端的binlog是必须开启的,目的是记录执行过的GTID主库#开启gtidlog-bin=mysql-binexpire_logs_days=5binlog_format=mixedserver-id=1gtid_mode=onenforce_g......
  • mysql5.7.13-windows 免安装版配置简介及Linux 5.7.31版本安装
    前面的是第一次配置的,可能解决不了问题,可直接跳过,直接看目录,第二次重装的记录,比较全面目录​​第一次装​​​​分割线​​​​第二次重装,遇到的新问题​​​​问题3:Yourpa......