簡體   English   中英

MariaDB 主到主復制自動增量不是順序的

[英]MariaDB master to master replication auto increment is not sequential

我有兩個 master 來掌握 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 中插入了兩條記錄,因此缺少第二個記錄。但是我需要自動增量來生成序列號,因為我們將它們用作發票編號。

我知道這是 MariaDB 和 MySQL 數據庫的內部機制,以避免重復鍵。 但我只是想知道是否有用於順序索引復制的替代 HA 解決方案。

謝謝

對於 Active master-master 復制,順序將是不可能的。 如果可以的話,讓我解釋一下

  • 假設我們在服務器 1(奇數索引)上插入了 2 行並生成了索引 1 和 3。
  • 同樣被復制到服務器 2。
  • 在該插入觸發到服務器 2 之后,服務器將找到下一個偶數值,即 4。

如果您沒有大量寫入,您可以使用主從設置而不是主-主。 對於 HA 解決方案,您可以使用協調器來幫助提供自動故障轉移和查詢負載平衡使用代理 SQL。 所以下面將設置完整的 HA 和自動故障轉移

2 MySQL節點

1個代理sql

1個協調器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM