当前位置:Gxlcms > 数据库问题 > mysql-cluster数据自动修复(节点崩溃期间写入其他节点数据)

mysql-cluster数据自动修复(节点崩溃期间写入其他节点数据)

时间:2021-07-01 10:21:17 帮助过:2人阅读

Mysql-cluster是具有故障节点恢复正常后的数据自动恢复功能的。
实验环境中包含两个data节点:分别位于46,47两台服务器上
ndb_mgm> show
Connected to Management Server at: localhost:1186

[ndbd(NDB)] 2 node(s)
id=2 @10.186.20.46 (mysql-5.6.25 ndb-7.4.7, Nodegroup: 0)
id=3 @10.186.20.47 (mysql-5.6.25 ndb-7.4.7, Nodegroup: 0, *)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.186.20.45 (mysql-5.6.25 ndb-7.4.7)

[mysqld(API)] 2 node(s)
id=4 @10.186.20.46 (mysql-5.6.25 ndb-7.4.7)
id=5 @10.186.20.47 (mysql-5.6.25 ndb-7.4.7)

ndb_mgm>

此处所说的数据自动修复是指的,在其中一个节点崩溃后,另外一个节点对外提供服务,在崩溃期间所有的数据变动(ndb表),可以在崩溃节点恢复并且假如集群后,自动同步数据。

实验过程如下:
1,检验当前数据(test.a表为ndb表)
46:
mysql> select * from a;
+——+
| id |
+——+
| 1 |
| 2 |
+——+
2 rows in set (0.00 sec)

47:
mysql> select * from a;
+——+
| id |
+——+
| 1 |
| 2 |
+——+
2 rows in set (0.01 sec)

2,停掉47上的sql,data节点

[root@10-186-20-47 mysql3307]# ps -ef|grep mysqld
root 2216 2011 0 12:18 pts/0 00:00:00 /bin/sh ./bin/mysqld_safe –defaults-file=./my.cnf
mysql 2385 2216 1 12:18 pts/0 00:01:54 /opt/mysql_s/bin/mysqld –defaults-file=./my.cnf –basedir=/opt/mysql_s/ –datadir=/opt/mysql_s/data –plugin-dir=/opt/mysql_s//lib/plugin –user=mysql –log-error=/opt/mysql_s/data/10-186-20-47.err –pid-file=/opt/mysql_s/data/10-186-20-47.pid –socket=/tmp/mysql3302.sock –port=3302
root 4979 4641 0 12:37 pts/1 00:00:00 /bin/sh ./bin/mysqld_safe –defaults-file=./my.cnf
mysql 5157 4979 0 12:37 pts/1 00:00:12 /usr/local/mysql3307/bin/mysqld –defaults-file=./my.cnf –basedir=/usr/local/mysql3307 –datadir=/usr/local/mysql3307/data –plugin-dir=/usr/local/mysql3307/lib/plugin –user=mysql –log-error=/usr/local/mysql3307/data/10-186-20-47.err –pid-file=/usr/local/mysql3307/data/10-186-20-47.pid –socket=/tmp/mysql3307.sock –port=3307
root 14253 4641 0 14:44 pts/1 00:00:00 grep mysqld
[root@10-186-20-47 mysql3307]# kill 2385
[root@10-186-20-47 mysql3307]#

[root@10-186-20-47 mysql3307]# ps -ef|grep ndb
root 7810 1 0 13:13 ? 00:00:03 ndbd –ndb-connectstring=10.186.20.45:1186
root 7811 7810 1 13:13 ? 00:01:28 ndbd –ndb-connectstring=10.186.20.45:1186
root 14312 4641 0 14:44 pts/1 00:00:00 grep ndb
[root@10-186-20-47 mysql3307]# kill 7811 7810
[root@10-186-20-47 mysql3307]#

通过管理节点show命令查看是否处于不可用的状态
ndb_mgm> show

[ndbd(NDB)] 2 node(s)
id=2 @10.186.20.46 (mysql-5.6.25 ndb-7.4.7, Nodegroup: 0, *)
id=3 (not connected, accepting connect from 10.186.20.47)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.186.20.45 (mysql-5.6.25 ndb-7.4.7)

[mysqld(API)] 2 node(s)
id=4 @10.186.20.46 (mysql-5.6.25 ndb-7.4.7)
id=5 (not connected, accepting connect from 10.186.20.47)

ndb_mgm>

3,在46节点上做插入,删除操作。
mysql> insert into a select 3;
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> delete from a where id=1;
Query OK, 1 row affected (0.02 sec)

mysql>

4,开启47上的sql,data节点

[root@10-186-20-47 mysql_s]# ./bin/mysqld_safe –defaults-file=./my.cnf &
[2] 14408
[root@10-186-20-47 mysql_s]# 150825 14:46:26 mysqld_safe Logging to ‘/opt/mysql_s/data/10-186-20-47.err’.
150825 14:46:26 mysqld_safe Starting mysqld daemon with databases from /opt/mysql_s/data

[root@10-186-20-47 mysql_s]#
[root@10-186-20-47 mysql_s]#
[root@10-186-20-47 mysql_s]# ndb
ndbd ndbmtd
[root@10-186-20-47 mysql_s]# ndbd –ndb-connectstring=10.186.20.45:1186
2015-08-25 14:46:54 [ndbd] INFO – Angel connected to ‘10.186.20.45:1186’
2015-08-25 14:46:54 [ndbd] INFO – Angel allocated nodeid: 3
[root@10-186-20-47 mysql_s]#

5,检验47上数据是否同步

mysql> select * from a;
+——+
| id |
+——+
| 2 |
| 3 |
+——+
2 rows in set (0.00 sec)

数据已经自动修复。

版权声明:本文为博主原创文章,未经博主允许不得转载。

mysql-cluster数据自动修复(节点崩溃期间写入其他节点数据)

标签:数据

人气教程排行