programing

MariaDB 마스터에서 마스터로의 복제 자동 증분이 순차적이지 않음

goodcopy 2023. 9. 5. 21:23
반응형

MariaDB 마스터에서 마스터로의 복제 자동 증분이 순차적이지 않음

다음 설정을 사용하여 MariaDB 서버 복제를 마스터할 두 마스터가 있습니다.

server A with 192.168.1.100:
------------------------------
bind-address            = 0.0.0.0
server-id       = 1
log-bin         = "mysql-bin"
binlog-do-db        = wordpress
replicate-do-db     = wordpress
relay-log="mysql-relay-log"
auto-increment-increment = 2
auto-increment-offset = 1

그리고:

Server B with 192.168.1.200:
---------------------------------
bind-address            = 0.0.0.0
server-id               = 2
log-bin                 = "mysql-bin"
binlog-do-db            = wordpress
replicate-do-db         = wordpress
relay-log="mysql-relay-log"
auto-increment-increment = 2
auto-increment-offset = 2

복제는 잘 작동하지만 자동 증분에 문제가 있습니다.보다시피 그들은 순차적이지 않습니다.예:

서버 A 증분: 1, 3, 5, 7, 9 및...

서버 B 증분: 2, 4, 6, 8 및 ...

서버 A에 레코드 2개, 서버 B에 레코드 1개를 삽입하면 테이블의 총 기본 키는 다음과 같습니다.ID : 1, 3, 4

보시다시피 A 서버에 두 개의 레코드를 삽입했기 때문에 2번이 누락되었습니다.하지만 우리가 송장 번호로 사용하기 때문에 순차 번호를 생성하려면 자동 증분이 필요합니다.

이것이 중복 키를 방지하기 위한 MariaDB 및 MySQL 데이터베이스의 내부 메커니즘이라는 것을 알고 있습니다.하지만 순차적 인덱스 복제를 위한 대체 HA 솔루션이 있는지 알고 싶습니다.

감사해요.

활성 마스터-마스터 복제의 경우 시퀀스를 수행할 수 없습니다.제가 설명할 수 있다면,

  • 서버 1(홀수 인덱스)에 2개의 행을 삽입하고 인덱스 1과 3을 생성했다고 가정합니다.
  • 동일한 내용이 서버 2에 복제되었습니다.
  • 서버 2에 트리거된 한 번의 삽입 후 서버는 다음 짝수 값인 4를 찾습니다.

대량의 쓰기가 없는 경우 마스터 슬레이브 설정을 마스터 마스터-마스터 대신 사용할 수 있습니다.HA 솔루션의 경우 자동 페일오버를 제공하는 데 도움이 되는 Orchestrator를 사용하고 쿼리의 경우 프록시 SQL을 사용할 수 있습니다.따라서 완전한 HA 및 자동 페일오버를 위해 아래와 같이 설정됩니다.

2 MySQL 노드

프록시ql 1개

오케스트레이터 1명

언급URL : https://stackoverflow.com/questions/63936523/mariadb-master-to-master-replication-auto-increment-is-not-sequential

반응형