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* 后进行同步即可。

 

posted @ 2020-08-15 22:18  Lannister-leo  阅读(695)  评论(0编辑  收藏  举报