婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解MySQL實現(xiàn)主從復制過程

詳解MySQL實現(xiàn)主從復制過程

熱門標簽:成都優(yōu)派外呼系統(tǒng) 電子地圖標注電話 上海智能外呼系統(tǒng)代理商 ps制作地圖標注gif 沈陽電銷外呼系統(tǒng)原理是什么 聊城智能外呼系統(tǒng)運營商 扎樣申請400電話 地圖標注人員兼職 寧波企業(yè)外呼系統(tǒng)收費

一、什么是主從復制

將主數(shù)據(jù)庫中的DDL和DML操作通過二進制日志(BINLOG)傳輸?shù)綇臄?shù)據(jù)庫上,然后將這些日志重新執(zhí)行(重做);從而使得從數(shù)據(jù)庫的數(shù)據(jù)與主數(shù)據(jù)庫保持一致。

二、主從復制的作用

1、主數(shù)據(jù)庫出現(xiàn)問題,可以切換到從數(shù)據(jù)庫。

2、可以進行數(shù)據(jù)庫層面的讀寫分離,

3、可以在從數(shù)據(jù)庫上進行日常備份

三、復制過程

Binary log:主數(shù)據(jù)庫的二進制日志

Relay log:從服務器的中繼日志

第一步:master在每個事務更新數(shù)據(jù)完成之前,將該操作記錄串行地寫入到binlog文件中。

第二步:salve開啟一個I/O Thread,該線程在master打開一個普通連接,主要工作是binlog dump process。如果讀取的進度已經(jīng)跟上了master,就進入睡眠狀態(tài)并等待master產(chǎn)生新的事件。I/O線程最終的目的是將這些事件寫入到中繼日志中。

第三步:SQL Thread會讀取中繼日志,并順序執(zhí)行該日志中的SQL事件,從而與主數(shù)據(jù)庫中的數(shù)據(jù)保持一致。

四、主從復制的具體操作

我是在同一個windows上不同的路徑下安裝兩個msyql實例。建議這里主從兩個mysql的安裝版本一致,盡管我自己的是不一致的。

1、分別修改主從數(shù)據(jù)庫的配置文件my.ini

master

3306是mysql默認端口號,這里master實例中可以不用修改;server-id用來指定唯一id,不同的mysql實例不重復即可;binlog-do-db指定需要復制的數(shù)據(jù)庫;log-bin用來開啟二進制日志文件。

salve

由于主從數(shù)據(jù)庫待會都是在通一臺電腦上運行,所以端口需要設置成不一樣,這里是3307

replicate-do-db:需要同步的數(shù)據(jù)庫名稱,與master上的配置保持一致。

2、在master上創(chuàng)建一個專門用于復制的賬戶:weidai/123456

這個新增的賬戶可以在表mysql.user中進行查詢:

我第一次操作的時候,到這里就完成了這個賬號的創(chuàng)建,但是到真正復制的時候,卻發(fā)現(xiàn)復制沒有成功,排查錯誤的時候發(fā)現(xiàn)master生成的binlong沒有問題,然后查看slave的狀態(tài):

在結尾處有這樣一行錯誤:

使用weidai這個賬號無法連接到master,所以應該是沒有獲取到master的binlog,導致中繼日志無法生成。

我反復檢查了賬號和密碼都沒有發(fā)現(xiàn)問題,然后查找相關資料,才發(fā)現(xiàn)是因為在master創(chuàng)建新用戶的時候少了一步操作:

新設置用戶或更改密碼后需用flush privileges刷新MySQL的系統(tǒng)權限相關表,否則會出現(xiàn)拒絕訪問。這就是出現(xiàn)前面錯誤的原因。另外還有一種辦法是重新啟動mysql服務器,來使新設置生效。

3、獲取主數(shù)據(jù)庫中此刻數(shù)據(jù)的位置,主要用于從數(shù)據(jù)啟動后,復制數(shù)據(jù)的起始位置,但是在獲取這個狀態(tài)值之前,主數(shù)據(jù)庫就不能再有數(shù)據(jù)的修改操作,所以需要先設置讀鎖定有效

4、主庫進行數(shù)據(jù)備份,備份的手段有很多種,這里不展開介紹,可以參考我上一篇文章,備份結束后可以釋放讀鎖,主庫就可以進行寫操作

5、啟動從數(shù)據(jù)庫,對剛才備份的數(shù)據(jù)進行還原,這個時候主從數(shù)據(jù)庫在備份那個時間點的數(shù)據(jù)是一致的。

6、在從數(shù)據(jù)庫上進行復制行為的相關配置

7、這個時候配置完成,但是從數(shù)據(jù)庫還不能進行同步,需要啟動slave線程

8、在master中創(chuàng)建表和新增數(shù)據(jù),在slave中觀察:

可以看出,我在master中進行的操作,都能在slave中體現(xiàn)出來,這個時候slave就如同是master的鏡子一樣。

五、主從同步狀態(tài)解讀

在slave上使用命令進行查看:

由于排版太過于難看,我整理如下:

Slave_IO_STATE:Waiting for master to send event

Master_host:127.0.0.1

Master_user:weidai

Master_port:3306

connnect_retry:60

Master_log_file:mysql-bin.000005

Read_Master_log_pos:1662

Relay_log_file:AE6Z*****-relay-bin.000002

Relay_log_pos:1415

Slave_IO_Running:yes

Slave_SQL_Running:yes

----------------------------------------------------------華麗麗分割線-------------------------------------------

Slave_IO_Running:yes

Slave_SQL_Running:yes

這兩個線程前面有提到,是slave上參與復制過程中兩個很重要的線程。YES表示正常,NO表示異常。

Slave_IO線程主要是將master上的binlong日志內(nèi)容復制到slave的中繼日志中(Relay_log),一般出現(xiàn)問題的概率不大, 出現(xiàn)問題大多數(shù)是因為權限或者網(wǎng)絡等問題,導致連接不上master。如同前面提到的那個錯誤。

Slave_SQL線程負責將中繼日志中的SQL執(zhí)行一遍,相對來說出錯的概率大些。如有人手動的在從庫中插入一些記錄,導致主從同步的時候出現(xiàn)主鍵沖突。

Slave_IO_STATE:Waiting for master to send event

這個狀態(tài)表示中繼日志同步完成,等待master有新的事件產(chǎn)生。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Mysql主從同步的實現(xiàn)原理
  • Mysql主從復制作用和工作原理詳解
  • MySQL數(shù)據(jù)庫主從同步實戰(zhàn)過程詳解
  • MySQL主從復制與讀寫分離原理及用法詳解
  • MySQL數(shù)據(jù)庫主從復制原理及作用分析

標簽:林芝 AXB 宿州 汕頭 朔州 咸寧 三明 內(nèi)江

巨人網(wǎng)絡通訊聲明:本文標題《詳解MySQL實現(xiàn)主從復制過程》,本文關鍵詞  詳解,MySQL,實現(xiàn),主從,復制,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解MySQL實現(xiàn)主從復制過程》相關的同類信息!
  • 本頁收集關于詳解MySQL實現(xiàn)主從復制過程的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 山东省| 深泽县| 河源市| 陵川县| 葵青区| 陈巴尔虎旗| 武清区| 博兴县| 舒城县| 洛宁县| 佳木斯市| 渭南市| 玉田县| 东乡县| 山阳县| 荥经县| 康马县| 嘉定区| 仲巴县| 淄博市| 竹山县| 绥中县| 水富县| 益阳市| 通江县| 桃源县| 和林格尔县| 林周县| 柘荣县| 荆门市| 丹东市| 内江市| 牡丹江市| 双柏县| 兰州市| 沙河市| 调兵山市| 望江县| 常州市| 连江县| 宜黄县|