好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MySQL主從同步中的server-id示例詳解

MySQL主從同步中的server-id示例詳解

熱門標簽:400電話可以免費申請嗎 騰訊地圖標注提升 怎么在地圖標注位置生成圖片 福建外呼系統定制化 美國反騷擾電話機器人 真人語音電話機器人 悟空科技電話機器人 銅陵防封電銷卡 電銷卡外呼系統供應商

前言

當我們搭建MySQL集群時,自然需要完成數據庫的主從同步來保證數據一致性。而主從同步的方式也分很多種,一主多從、鏈式主從、多主多從,根據你的需要來進行設置。但只要你需要主從同步,就一定要注意server-id的配置,否則會出現主從復制異常。

在控制數據庫數據復制和日志管理中,有兩個重要的配置:server-id和server-uuid,他們會影響二進制日志文件記錄和全局事務標識。

server-id配置

當你使用主從拓撲時,一定要對所有MySQL實例都分別指定一個獨特的互不相同的server-id。默認值為0,當server-id=0時,對于主機來說依然會記錄二進制日志,但會拒絕所有的從機連接;對于從機來說則會拒絕連接其它實例。

MySQL實例的server-id是一個全局變量,可以直接查看:

mysql> show variables like '%server_id%';
+---------------+-----------+
| Variable_name | Value |
+---------------+-----------+
| server_id | 171562767 |
+---------------+-----------+
1 row in set (0.00 sec)

我們可以在線直接修改全局變量server-id,但不會立即生效,所以修改后記得重啟服務。而重啟后又會重新讀取系統配置文件配置,導致剛才的修改失效,因此建議修改配置文件后重啟服務而不是在線修改:

#my.cnf
[mysqld]
#replication
log-bin=mysql-bin
server-id=171562767
sync_binlog=1
binlog-ignore-db=mysql
binlog-ignore-db=information_schema

server-id用途

server-id用于標識數據庫實例,防止在鏈式主從、多主多從拓撲中導致SQL語句的無限循環:

  • 標記binlog event的源實例
  • 過濾主庫binlog,當發現server-id相同時,跳過該event執行,避免無限循環執行。
  • 如果設置了replicate-same-server-id=1,則執行所有event,但有可能導致無限循環執行SQL語句。

我們用兩個例子來說明server-id為什么不要重復:

當主庫和備庫server-id重復時

由于默認情況replicate-same-server-id=0,因此備庫會跳過所有主庫同步的數據,導致主從數據的不一致。

當兩個備庫server-id重復時

會導致從庫跟主庫的連接時斷時連,產生大量異常。根據MySQL的設計,主庫和從庫通過事件機制進行連接和同步,當新的連接到來時,如果發現server-id相同,主庫會斷開之前的連接并重新注冊新連接。當A庫連接上主庫時,此時B庫連接到來,會斷開A庫連接,A庫再進行重連,周而復始導致大量異常信息。

生成server-id的規則

既然server-id不能相同,而當我們有10個實例時,怎么保證每個都不同呢?有幾種常用的方法:

  • 隨機數
  • 時間戳
  • IP地址+端口
  • 在管理中心集中分配,生成自增ID

上面的這些方法都可以,但是注意不要超過了最大值2^32-1,同時值最好>2。我采用的方法是IP地址后兩位+本機MySQL實例序號,但如果是通過docker來進行管理多實例時,這個怎么生成大家可以想下有沒有什么優美的解決方案。

server-uuid配置

MySQL服務會自動創建并生成server-uuid配置:

  • 讀取${data_dir}/auto.cnf文件中的UUID
  • 如果不存在,自動創建文件和生成新的UUID并讀取
shell> cat ~/mysql/data/auto.cnf
[auto]
server-uuid=fd5d03bc-cfde-11e9-ae59-48d539355108

這個auto.cnf配置風格類似于my.cnf,但這個文件只包含一個auto配置塊和一行server-uuid配置。它是自動創建的,因此不要修改它的內容。

在主從拓撲中,主從可以知道互相的UUID,在主機上使用show slave hosts,在從機上使用show slave status查看Master_UUID字段。

server-uuid參數并不能取代server-id,他們有不同的作用。當主從同步時如果主從實例的server-uuid相同會報錯退出,不過我們可以通過設置replicate-same-server-id=1來避免報錯(不推薦)。

參考資料

  • 17.1.6 Replication and Binary Logging Options and Variables:https://dev.mysql.com/doc/ref...
  • 如何生成唯一的server Id:https://www.jb51.net/article/169550.htm

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • 解決MySQL主從數據庫沒有同步的兩種方法
  • Mysql數據庫的主從同步配置
  • 一文帶你了解Mysql主從同步原理
  • Docker 環境運行 Mysql 和開啟 Binlog 配置主從同步的設置方法
  • MySQL 主從同步,事務回滾的實現原理
  • MySQL數據庫主從同步實戰過程詳解
  • MySQL數據庫的主從同步配置與讀寫分離
  • MySQL主從同步原理及應用

標簽:湖南 湖北 白銀 云浮 臨汾 聊城 烏海 武威

巨人網絡通訊聲明:本文標題《MySQL主從同步中的server-id示例詳解》,本文關鍵詞  MySQL,主從,同步,中的,server-id,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL主從同步中的server-id示例詳解》相關的同類信息!
  • 本頁收集關于MySQL主從同步中的server-id示例詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 男啪女色黄无遮挡免费视频| 看日批| 亚洲AV无码乱码国产精品fc2| 长篇乱肉合集乱500小说林盛| 美女扒开尿口让| 羞羞漫画?歪歪漫画| 韩国xxxxx护士| 女人扒开腿让男人桶到爽| 黄视频网站下载| 一级特级毛片| 色就是色欧美图片| 人人爽人人澡| 国产a国产片91| 国产成人爱片免费观看视频 | 十大短视频禁用app| 中文字幕奈奈美被公侵犯| 日本三级韩国三级| 少妇被c??黄?在线网站| 真人一级毛片一级是A片真人片 | 国产精品久久久久久亚洲色欲| 簧片免费观看| 女性用牙膏久战不泄怎么用法| 农夫69小说小雨与农村老太| 国产精品久久久久久久精品二摆| 肮脏的交易中文字幕bt| 无码人妻丰满熟妇精品区东京直播| 日本免费在线看| 91人妻精品丰满大屁股| 朝八晚四在线观看| 别揉我胸?啊?嗯~接吻| 人与禽一级毛片免费看高清漫画 | 思思91精品国产综合在线| 国产精品12p| 国产精品亚洲综合一区二区三区| 特殊诊疗科室特殊待遇2| 五月天婷婷丁香中文在线观看| 67194国产精品免费观看| 国产一级a毛一级a做免费的视频| www.564av.com| 婬乱女警DvD| 亚洲爆乳无码一区二区三区 |