InnoDB Cluster 一節點丟失
初始化故障節點
systemctl stop mysqld
rm -rf /var/lib/mysql/*
systemctl start mysqld
導出正常節點的數據庫,並傳到故障節點
mysqldump --all-databases --triggers --routines --events --quick --single-transaction --flush-logs --master-data=2 > dbs.dump
scp dbs.dump 192.168.1.224:~/
故障節點導入數據庫
mysql> set sql_log_bin=0;
mysql> ALTER USER root@'localhost' IDENTIFIED BY 'MySQL8.0';
mysql> source dbs.dump
mysql> set sql_log_bin=1;
重啓故障節點 MySQL
systemctl restart mysqld
將故障節點重新加入集羣
MySQL 192.168.1.226:33060+ ssl JS > var cluster=dba.getCluster('appCluster')
MySQL 192.168.1.226:33060+ ssl JS > cluster.removeInstance('[email protected]:3306')
MySQL 192.168.1.226:33060+ ssl JS > cluster.addInstance('[email protected]:3306')
集羣恢復正常
MySQL 192.168.1.226:33060+ ssl JS > cluster.status()
{
"clusterName": "appCluster",
"defaultReplicaSet": {
"name": "default",
"primary": "192.168.1.226:3306",
"ssl": "REQUIRED",
"status": "OK",
"statusText": "Cluster is ONLINE and can tolerate up to ONE failure.",
"topology": {
"192.168.1.224:3306": {
"address": "192.168.1.224:3306",
"mode": "R/O",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
},
"192.168.1.225:3306": {
"address": "192.168.1.225:3306",
"mode": "R/O",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
},
"192.168.1.226:3306": {
"address": "192.168.1.226:3306",
"mode": "R/W",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
}
}
},
"groupInformationSourceMember": "mysql://[email protected]:3306"
}