zoukankan      html  css  js  c++  java
  • mariadb galera cluster 同步操作

    集群掉电,同事着急直接启动一台作为服务。

    预防外一,先把这个1节点作为主节点,单独作为一个集群 leader。

    SET GLOBAL wsrep_provider_options='pc.bootstrap=YES';

    同步第2个节点,同步过程中1节点无法访问。查看进程等待。

    select user,host,time,command,state from information_schema.processlist where state != '' order by 1;
    +----------------------+----------------------+--------+---------+------------------------------------------------+
    | user                 | host                 | time   | command | state                                          |
    +----------------------+----------------------+--------+---------+------------------------------------------------+
    | eXX             | XX   |    942 | Query   | Waiting for global read lock                   |
    | eXX           | XX   |    803 | Query   | Waiting for global read lock                   |
    | eXXXX                |X XX  |      3 | Query   | Opening tables                                 |
    | eXXXX              | XX  |     10 | Query   | Opening tables                                 |
    | eXXXX             | XX  |     16 | Query   | Opening tables                                 |
    ········

    可以看到,有全局读锁

    Waiting for global read lock

    检查同步

    MariaDB [(none)]> show status like 'wsrep_clu%';
    +----------------------------+--------------------------------------+
    | Variable_name              | Value                                |
    +----------------------------+--------------------------------------+
    | wsrep_cluster_weight       | 2                                    |
    | wsrep_cluster_capabilities |                                      |
    | wsrep_cluster_conf_id      | 18446744073709551615                 |
    | wsrep_cluster_size         | 2                                    |
    | wsrep_cluster_state_uuid   | c86db238-d520-11ea-8d9e-ee07c79bb5a5 |
    | wsrep_cluster_status       | Primary                              |
    +----------------------------+--------------------------------------+


    MariaDB [(none)]> show variables like '%wsrep_clu%';
    +-----------------------+---------------------------------------------------------+
    | Variable_name         | Value                                                   |
    +-----------------------+---------------------------------------------------------+
    | wsrep_cluster_address | gcomm://172.3.3.41:4567,172.3.3.43:4567,172.3.3.42:4567 |
    | wsrep_cluster_name    | my_wsrep_cluster                                        |
    +-----------------------+---------------------------------------------------------+
    2 rows in set (0.001 sec)

    报错:

    一、

    Aug 15 22:05:46 Mariadb42 mysqld[49007]: 2020-08-15 22:05:46 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name.  Please run mysql_upgrade
    Aug 15 22:05:46 Mariadb42 mysqld[49007]: 2020-08-15 22:05:46 0 [ERROR] InnoDB: Column last_update in table `mysql`.`innodb_table_stats` is INT UNSIGNED NOT NULL but should be BINARY(4) NOT NULL (type mismatch).

    由于集群中版本不同,需要升级数据库的相关表结构。

    mysql_upgrade -u root -p --force

    二、

    Jun 13 15:05:28 localhost.localdomain sh[41841]: 2020-06-13 15:05:28 0 [Note] InnoDB: Completed initialization of buffer pool
    Jun 13 15:05:28 localhost.localdomain sh[41841]: 2020-06-13 15:05:28 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See
    Jun 13 15:05:28 localhost.localdomain sh[41841]: 2020-06-13 15:05:28 0 [ERROR] InnoDB: Upgrade after a crash is not supported. This redo log was created before MariaDB 10.2.2.
    Jun 13 15:05:28 localhost.localdomain sh[41841]: 2020-06-13 15:05:28 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
    Jun 13 15:05:28 localhost.localdomain sh[41841]: 2020-06-13 15:05:28 0 [Note] InnoDB: Starting shutdown...
    Jun 13 15:05:28 localhost.localdomain sh[41841]: 2020-06-13 15:05:28 0 [ERROR] Plugin 'InnoDB' init function returned error.
    Jun 13 15:05:28 localhost.localdomain sh[41841]: 2020-06-13 15:05:28 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
    Jun 13 15:05:28 localhost.localdomain sh[41841]: 2020-06-13 15:05:28 0 [Note] Plugin 'FEEDBACK' is disabled.
    Jun 13 15:05:28 localhost.localdomain sh[41841]: 2020-06-13 15:05:28 0 [ERROR] Unknown/unsupported storage engine: InnoDB
    Jun 13 15:05:28 localhost.localdomain sh[41841]: 2020-06-13 15:05:28 0 [ERROR] Aborting'

    意思是”不支持在崩溃后进行升级。redo日志是用MariaDB 10.2.2之前创建的。”
    翻译成人话就是:由于redo log文件是早期版本(10.2.2之前)创建的,我不认识它。

    此处注意,因为公司用的是不同版本的mariadb 做的多主集群,需要将ib_logfile* 日志删除后,自启动(注释掉:#wsrep_on )使其建立自己版本的 ib_logfile0,ib_logfile1 后进行同步,有时无法同步成功,删除grastate.dat, galera.cache, ib_logfile*, ibdata* 后进行同步即可。

  • 相关阅读:
    一台Ubuntu server上安装多实例MySQL
    用VirtualBox构建MySQL测试环境笔记
    Mac点滴
    MySQL复制(三) --- 高可用性和复制
    Linux性能监控的几个工具(转)
    前端读者 | Javascript设计模式理论与实战:状态模式
    前端读者 | 为什么页面跟设计稿差距这么大?是啊!为毛啊?
    前端读者 | 由setTimeout引发的JS引擎运行机制的研究
    前端读者 | Web App开发入门
    前端读者 | 从一行代码里面学点JavaScript
  • 原文地址:https://www.cnblogs.com/Leo-Cjh/p/13510663.html
Copyright © 2011-2022 走看看