动力节点老杜mysql文件_mysql主从复制+mysql主从复制延迟解决方案
### 1. 為什么需要mysql主從復(fù)制
1. 數(shù)據(jù)熱備
2. 什么是主從復(fù)制
主從復(fù)制是指數(shù)據(jù)從一個(gè)mysql主節(jié)點(diǎn)復(fù)制到一個(gè)或者多個(gè)從節(jié)點(diǎn)。mysql 默認(rèn)是異步復(fù)制的方式, 從節(jié)點(diǎn)可以復(fù)制主節(jié)點(diǎn)中的所有數(shù)據(jù)或者指定的庫(kù)或者表.3. 主從復(fù)制原理
即: 1. master 的dump Thread根據(jù)slave的請(qǐng)求, 將本地的binlog以events的方式發(fā)送給 IO Thread 2. slave IO Thread 接收到binlog events后保存到中繼日志(relay log)中, 傳過(guò)來(lái)的信息會(huì)記錄在master.info文件中. 3. slave sql Thread獲取中繼日志中的內(nèi)容進(jìn)行重發(fā), 并把應(yīng)用過(guò)的記錄到relay-log.info中, 默認(rèn)情況下已經(jīng)應(yīng)用過(guò)的relay會(huì)自動(dòng)被清理
注意: 1. master 將操作語(yǔ)句記錄在bin log中, 授權(quán)slave遠(yuǎn)程訪問(wèn)的權(quán)限. 2. master和slave節(jié)點(diǎn)的時(shí)間需要同步
4. mysql主從復(fù)制的具體操作步驟
5. Mysql主從同步延遲分析
Mysql 主從同步都是單線程的, master所有的DDL和DML都會(huì)寫(xiě)入binlog中, 由于binlog是順序讀寫(xiě), 所以效率很高, slave的sql Thread將master的DDL和DML操作事件都在slave中重發(fā). DDL和DML 的IO操作是隨機(jī)的, 不是順序的, 所以成本要高很多, 另一方面由于SQL Thread也是單線程, 當(dāng)master并發(fā)高的時(shí)候,產(chǎn)生的DML數(shù)量超出了slaveSQL Thread的處理速度, 或者當(dāng)slave有大型的query語(yǔ)句產(chǎn)生了鎖, 那么延遲就產(chǎn)生了.解決方案: 1. 業(yè)務(wù)的持久化層的實(shí)現(xiàn)采用分庫(kù)架構(gòu), mysql服務(wù)器可以平行擴(kuò)展, 分散壓力 2. 單個(gè)主庫(kù), 多個(gè)從庫(kù), 主寫(xiě)從讀 3. 服務(wù)的基礎(chǔ)架構(gòu)在業(yè)務(wù)層和持久化層間加入memcache或者redis構(gòu)成的cache層. 降低mysql的讀寫(xiě)壓力
4.不同的業(yè)務(wù)的mysql放在不同的物理機(jī)上,分散壓力. 5. 使用更加好的硬件設(shè)備 6. mysql5.7 之后使用MTS并發(fā)復(fù)制技術(shù), 永久解決復(fù)制延遲問(wèn)題
總結(jié)
以上是生活随笔為你收集整理的动力节点老杜mysql文件_mysql主从复制+mysql主从复制延迟解决方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 语言与golang语言运行速度_Gola
- 下一篇: mysql 存储过程 嵌套if_mysq