るいすのブログ

オタクエンジニアの雑記

InnoDB Cluster のアップグレードをやる


8.0.19 -> 8.0.20

1. MySQL Shell を最新にする

2. MySQL Router を最新にする

3. メタデータを最新にする

MySQL  db01:33060+ ssl  JS > dba.upgradeMetadata()
NOTE: Installed metadata at 'db02.luis.local:3306' is up to date (version 2.0.0).
Metadata state is consistent and a restore is not necessary.

今回は必要なかった。
メタデータの互換性がないアップグレードで、MySQL Shell のアップグレードを忘れると、InnoDB Cluster の操作ができなくなるので注意

4. MySQL Server を最新にする

普通にアップグレードすれば OK
スレーブから、最後にプライマリー

もし、アップグレード後の検証が必要なら set persist group_replication_start_on_boot=false; をしてから停止させたほうが吉

 MySQL  db02:33060+ ssl  JS > c.status()
{
    "clusterName": "main",
    "defaultReplicaSet": {
        "name": "default",
        "primary": "db03.luis.local:3306",
        "ssl": "REQUIRED",
        "status": "OK",
        "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.",
        "topology": {
            "db01.luis.local:3306": {
                "address": "db01.luis.local:3306",
                "mode": "R/O",
                "readReplicas": {},
                "replicationLag": null,
                "role": "HA",
                "status": "ONLINE",
                "version": "8.0.20"
            },
            "db02.luis.local:3306": {
                "address": "db02.luis.local:3306",
                "mode": "R/O",
                "readReplicas": {},
                "replicationLag": null,
                "role": "HA",
                "status": "ONLINE",
                "version": "8.0.20"
            },
            "db03.luis.local:3306": {
                "address": "db03.luis.local:3306",
                "mode": "R/W",
                "readReplicas": {},
                "replicationLag": null,
                "role": "HA",
                "status": "ONLINE",
                "version": "8.0.20"
            }
        },
        "topologyMode": "Single-Primary"
    },
    "groupInformationSourceMember": "db03.luis.local:3306"
}