1. 程式人生 > >MySQL 8.0 InnoDB Cluster 恢復故障成員

MySQL 8.0 InnoDB Cluster 恢復故障成員

png nsa rate sys nes replica art start ado

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"
}

MySQL 8.0 InnoDB Cluster 恢復故障成員