簡體   English   中英

Mysql Master Master復制錯誤master / slave

[英]Mysql Master Master Replication errors master/slave

我嘗試了主-主復制; 作為它的一部分,我首先嘗試了主從復制。 復制連接成功,但是當我在主服務器上進行更改時,從服務器會拋出很多重復錯誤。

Last_SQL_Error:查詢中鍵“ PRIMARY”的錯誤“重復項'1576”。 默認數據庫:“ nagiosxi”。 查詢:'INSERT INTO xi_auditlog(log_time,source,user,type,message,ip_address,details)值('2018-05-15 16:34:19','Nagios XI','NULL',32,'cmdsubsys:用戶[nagiosadmin]將新配置應用於Nagios Core','localhost','')'Replicate_Ignore_Server_Ids:

根據我的理解,主機不能覆蓋從機中的值。 正在復制的數據庫是應用程序數據庫,主數據庫和從數據庫都引發很多錯誤,因為無法覆蓋這些值。

有人可以幫助我進行主復制嗎? 我是否需要為此編寫腳本?

為了使master-master或Galera安全使用AUTO_INCREMENT,應使用系統變量auto_increment_incrementauto_increment_offset為每個服務器生成唯一值。

https://mariadb.com/kb/zh/library/auto_increment/

將兩個主機上的auto_increment_increment設置為2。 將一台服務器上的auto_increment_offset設置為2,另一台服務器上將其設置為1(默認值)。

這將導致一台服務器僅創建偶數值,而另一台僅創建奇數值。 它們仍將是順序的,因為如果一台服務器創建了1、3、5、7和9,並且在所有這些復制完之后在另一台服務器上進行了下一次插入,則下一個id將為10。不可避免,但是正如任何有經驗的DBA會告訴您的那樣,請不要着迷於差距。

你應該設置你的binlog_formatROWMIXED -不STATEMENT -兩台服務器上。 如果按原樣備份log_slave_updates ,則還應該啟用log_slave_updates 如果您擁有對向的副本,則它們所連接的主副本必須啟用此選項。

另外,此時您將需要銷毀並重建其中一台服務器,因為它們的數據永遠不會保持一致。

對於主服務器/主服務器,建議的做法是一次僅寫入一台服務器。 您的應用程序可以隨意切換,但是如果僅將其中一個視為可寫,它將是最穩定的。

暫無
暫無

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

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