programing

Mariadb Galera 노드는 다시 가입할 특정 노드를 선택하지 않으면 성공적으로 다시 가입할 수 없습니다.

powerit 2023. 8. 16. 22:42
반응형

Mariadb Galera 노드는 다시 가입할 특정 노드를 선택하지 않으면 성공적으로 다시 가입할 수 없습니다.

데비안 10, Maridadb 10.3.26, Galera-3 25.3.31

3개의 노드 클러스터가 있습니다.노드 이름은 node3, node4 및 node5입니다.클러스터에서 노드 3의 연결이 끊어지는 경우가 있습니다.

복구할 노드 5를 선택하면 다음을 얻을 수 있습니다.

2020-11-18 19:42:08 7 [Note] WSREP: Requesting state transfer: success, donor: 2
2020-11-18 19:42:08 7 [Note] WSREP: GCache history reset: 57b37aa2-d111-11e8-a015-ab6cf5f3b3ea:0 -> 57b37aa2-d111-11e8-a015-ab6cf5f3b3ea:75720363
2020-11-18 19:42:08 17 [Note] WSREP: SST received: 57b37aa2-d111-11e8-a015-ab6cf5f3b3ea:75696989
2020-11-18 19:42:08 17 [Note] WSREP: wsrep_start_position set to '57b37aa2-d111-11e8-a015-ab6cf5f3b3ea:75696989'
2020-11-18 19:42:08 7 [Note] WSREP: Receiving IST: 23374 writesets, seqnos 75696989-75720363
2020-11-18 19:42:08 0 [Note] WSREP: 2.0 (node5): State transfer to 0.0 (node3) complete.
2020-11-18 19:42:08 0 [Note] WSREP: Member 2.0 (node5) synced with group.
2020-11-18 19:42:08 0 [Note] WSREP: (23249d11, 'tcp://0.0.0.0:4567') turning message relay requesting off
2020-11-18 19:42:15 0 [Warning] WSREP: Protocol violation. JOIN message sender 2.0 (node5) is not in state transfer (SYNCED). Message ignored.

그 후 node3은 wsrep_ready를 yes로 변경하지 않고 영원히 앉아 있게 됩니다.

반면에 node3이 node4를 선택하면 다음을 제외한 모든 종류의 메시지가 표시됩니다.

[Warning] WSREP: Protocol violation. JOIN message sender 2.0 (node5) is not in state transfer (SYNCED). Message ignored.

표시되지 않고 결국 node3 wsrep_ready가 yes가 되고 노드가 쿼리를 처리하기 시작합니다.

내가 그 문제를 얼마나 이해했는지 아십니까?

여기 데이터가 좀 더 있습니다.다음은 node5 대신 node4를 선택했을 때 성공적으로 조인한 예입니다.

2020-11-19 21:12:54 7 [Note] WSREP: State transfer required:
        Group state: 57b37aa2-d111-11e8-a015-ab6cf5f3b3ea:75815331
        Local state: 57b37aa2-d111-11e8-a015-ab6cf5f3b3ea:75696989
2020-11-19 21:12:54 7 [Note] WSREP: REPL Protocols: 9 (4, 2)
2020-11-19 21:12:54 7 [Note] WSREP: New cluster view: global state: 57b37aa2-d111-11e8-a015-ab6cf5f3b3ea:75815331, view# 349: Primary, number of nodes: 3, my index: 2, protocol version 3
2020-11-19 21:12:54 7 [Warning] WSREP: Gap in state sequence. Need state transfer.
2020-11-19 21:12:56 7 [Note] WSREP: Prepared SST request: mysqldump|10.4.44.82:3360
2020-11-19 21:12:56 7 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.
2020-11-19 21:12:56 7 [Note] WSREP: Assign initial position for certification: 75815331, protocol version: 4
2020-11-19 21:12:56 0 [Note] WSREP: Service thread queue flushed.
2020-11-19 21:12:56 7 [Note] WSREP: IST receiver addr using tcp://x.y.z.a:4568
2020-11-19 21:12:56 7 [Note] WSREP: Prepared IST receiver, listening at: tcp://x.y.z.a:4568
2020-11-19 21:12:56 0 [Note] WSREP: Member 2.0 (node3) requested state transfer from '*any*'. Selected 0.0 (node4)(SYNCED) as donor.
2020-11-19 21:12:56 0 [Note] WSREP: Shifting PRIMARY -> JOINER (TO: 75815331)
2020-11-19 21:12:56 7 [Note] WSREP: Requesting state transfer: success, donor: 0
2020-11-19 21:12:56 7 [Note] WSREP: GCache history reset: 57b37aa2-d111-11e8-a015-ab6cf5f3b3ea:0 -> 57b37aa2-d111-11e8-a015-ab6cf5f3b3ea:75815331
2020-11-19 21:12:56 0 [Note] WSREP: (fcbfdc45, 'tcp://0.0.0.0:4567') turning message relay requesting off

언급URL : https://stackoverflow.com/questions/64900511/mariadb-galera-node-will-not-successfully-rejoin-unless-it-picks-a-particular-no

반응형