您好,登錄后才能下訂單哦!
一、什么是主從復制
主從復制,是用來建立一個和主數(shù)據(jù)庫完全一樣的數(shù)據(jù)庫環(huán)境,稱為從數(shù)據(jù)庫,主數(shù)據(jù)庫一般是準實時的業(yè)務數(shù)據(jù)庫。在最常用的mysql數(shù)據(jù)庫中,支持單項、異步賦值。在賦值過程中,一個服務器充當主服務器,而另外一臺服務器充當從服務器;此時主服務器會將更新信息寫入到一個特定的二進制文件中。并會維護文件的一個索引用來跟蹤日志循環(huán)。這個日志可以記錄并發(fā)送到從服務器的更新中去。當一臺從服務器連接到主服務器時,從服務器會通知主服務器從服務器的日志文件中讀取最后一次成功更新的位置。然后從服務器會接收從哪個時刻起發(fā)生的任何更新,然后鎖住并等到主服務器通知新的更新。
二、主從復制的作用
一是確保數(shù)據(jù)安全;做數(shù)據(jù)的熱備,作為后備數(shù)據(jù)庫,主數(shù)據(jù)庫服務器故障后,可切換到從數(shù)據(jù)庫繼續(xù)工作,避免數(shù)據(jù)的丟失。
二是提升I/O性能;隨著日常生產(chǎn)中業(yè)務量越來越大,I/O訪問頻率越來越高,單機無法滿足,此時做多庫的存儲,有效降低磁盤I/O訪問的頻率,提高了單個設備的I/O性能。
三是讀寫分離,使數(shù)據(jù)庫能支持更大的并發(fā);在報表中尤其重要。由于部分報表sql語句非常的慢,導致鎖表,影響前臺服務。如果前臺使用master,報表使用slave,那么報表sql將不會造成前臺鎖,保證了前臺速度。
三、主從復制的原理
主從復制中涉及的文件
主庫: binlog
從庫:
relaylog 中繼日志
master.info 主庫信息文件
relaylog.info relaylog應用的信息
主從復制中涉及的三個線程
主庫:
Binlog_Dump Thread :
從庫:
SLAVE_IO_THREAD
SLAVE_SQL_THREAD
具體原理如圖所示:
1.從數(shù)據(jù)庫執(zhí)行change master to 命令(主數(shù)據(jù)庫的連接信息+復制的起點)
2.從數(shù)據(jù)庫會將以上信息,記錄到master.info文件
3.從數(shù)據(jù)庫執(zhí)行 start slave 命令,立即開啟SLAVE_IO_THREAD 和SLAVE_SQL_THREAD這兩個線程
一旦主從復制構(gòu)建成功,主數(shù)據(jù)庫當中發(fā)生了新的變化,都會通過 Binlog_dump_THREAD發(fā)送信號給SLAVE_IO_THREAD,增強了主從復制的實時性.
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。