




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
MySQL數據一致性杭州沃趣科技股份有限公司H2an0gz1ho5u
.W1O1Q.U0T3echnology
Co.,
Ltd.01目錄MySQL崩潰恢復安全性02MySQL復制原理及異步、semi-sync復制03MySQL主備復制如何保證數據一致性杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.01目錄MySQL崩潰恢復安全性02MySQL復制原理及異步、semi-sync復制03MySQL主備復制如何保證數據一致性杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.Innodb崩潰恢復安全性如何保證undo-log實現事務的原子性(記錄著數據變更前的記錄,用于回滾沒有提交的事務)redo-log實現事務的持久性,和Undo
Log相反,Redo
Log記錄的是發生新的修改的數據。恢復時可以根據Redo
Log的內容,將所有數據恢復到最新的狀態杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.undo+redo簡單的事務執行過程和特點假設表中有A、B兩個數據,值分別為1、2,事務執行update時的簡單過程如下:begin,undo
logredo
logundo
logredo
logredo
logcommit,事務開始記錄A=1記錄A=3記錄B=2記錄B=4把A、B修改落盤提交事務杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.undo+redo簡單的崩潰恢復過程如何使用redo
log、undo
log簡單崩潰恢復如下:checkpoint點prepare狀態redo
logundo
logchange
buffermerge,undo
purge主要是為了加快crash
恢復的速度用checkpoint標記數據落盤到哪個位置了,對于checkpoint之前的部分,不需要再用redo
log恢復,因為數據已經的部分.prepare狀態之前的事務,會直接回滾,杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.prepare狀態的事務,如果binlog已經落盤,落盤了,只需要應用checkpocinht點e之ck后point是什么?
則重新提交,否則回滾控制redo
log如何刷新的參數主庫參數優化:
mit=1杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.Double
writedouble
write
作用?避免部分寫double
write
組成?內存和磁盤各兩個1M組成杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.01目錄MySQL崩潰恢復安全性杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.0203MySQL主備復制如何保證數據一致性MySQL復制原理及異步、semi-sync復制MySQL的復制的應用場景?利用從庫做讀能力提升(讀寫分離)利用從庫做讀能力提升(讀寫分離)?利用從庫做master故障的接管(故障切換)利用從庫做master故障的接管(故障切換)?利用從庫做備份減少對業務的影響利用從庫做備份減少對業務的影響?利用從庫做升級(升級MySQL版本或者升級業務數據庫結構)利用從庫做升級(升級MySQL版本或者升級業務數據庫結構)?利用從庫做特殊的SQL統計(如count,group
by,sum)利用從庫做特殊的SQL統計(如count,group
by,sum)12345杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.MySQL
如何實現復制Binlog
Dump杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.二階段提交sync-binlog=1log-bin=mysql-bin開啟binary
logInnodb_support_xa=1多線程并發執行提交事務,按照事務的先后順序寫入binlog。杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.MySQL
binlog的格式發展MySQL5.1.5MySQL5.1.5MySQL5.1.8之前及其之后及其之后只支持statement新增支持row格新增支持mixed格式式格式杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.MySQL
Binary
log三種格式的區別Mixed=statement+row:mysql默認采用statement格式進行二進制日志文件的記錄,但是在一些情況下會使用row格式,可能使用row格式的情況有:1)表的存儲引擎為NDB,這時對表的DML操作都會以row格式記錄
2)使用了uuid(),user(),current_user(),found_rows(),row_count()等不確定函數
3)使用了insert
delay語句使用了用戶自定義函數UDF使用了臨時表Statement:記錄的是邏輯SQL優點是日志量小缺點是執行一些不確定的函數(如uuid(),now())會出現主從數據不一致Row:記錄的不再是簡單的SQL語句了(DDL還是記錄的SQL),而是記錄的表的行更改的情況優點是解決了statement格式下主從數據不一致的問題,所有數據都可以安全地復制缺點是日志量大,影響從庫日志的復制時間杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.Binary
log格式-statement格式記錄的內容Binary
log格式-row格式記錄的內容MySQL復制原理Master節點配置[mysqld]log-bin=mysql-binserver-id=1Slave節點配置[mysqld]server-id=2Binlog
Dump杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.Slave查看復制詳情show
slave
status\GMysql>show
slavestatus\GSlave_IO_Running:YESSlave_SQL_Running:YES杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.場景一:Master主庫正常關機從庫重連間隔參數:master_connect_retry=10杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.場景二:Master主庫異常InternetMASTER
SLAVEslave_net_timeoutmaster_connect_retrymaster_retry_count默認值3600秒默認值60秒,changemaster語句可設置默認值86400次,changemaster語句可設置杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.官方半同步復制原理杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.5.7增強半同步原理杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.開啟semi-sync主備復制主庫Master安裝插件semisync_master.so并配置f:mysql>
install
plugin
rpl_semi_sync_master
SONAME
'semisync_master.so';[mysqld]rpl_semi_sync_master_enabled=1rpl_semi_sync_master_timeout=1000
#
1
second從庫slave安裝semisync_slave.so插件并配置f:mysql>
install
pluginrpl_semi_sync_slave
SONAME
'semisync_slave.so';[mysqld]rpl_semi_sync_slave_enabled=1查看當前semi-sync變量設置:mysql>
SHOW
VARIABLES
LIKE
‘rpl_semi_sync%’;查看當前semi-sync狀態信息:mysql>
SHOW
STATUS
LIKE
'Rpl_semi_sync%';PS:如果從庫已經啟動了異步復制,那么在配置了semi-sync之后,備庫需要先stop
slaveio_thread;startslaveio_thread;然后再使用參數setglobalrpl_semi_sync_slave_enabled=1;重新打開半同步杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.01目錄MySQL崩潰恢復安全性02MySQL復制原理及異步、semi-sync復制03MySQL主備復制如何保證數據一致性杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.從庫崩潰恢復之后,如何知道從主庫的哪個位置開始復制?記錄主機master連接信息、IO線程讀取到的當前主機Binarylog文件名和日志偏移量master_info_repository=FILE時這些信息記錄到文件中relay_記錄本地SQL線程已經執行到的中繼日志名稱和主庫對應的Binarylog文件名、偏移量relay_log_info_repository=FILE時這些信息記錄到relay_文件中杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.IO線程和SQL線程的信息保存在文件中如何保證不丟失保存文件,崩潰時可能并沒有落盤,導致丟失雙sync參數設置為1,又會導致從庫性能差,且因為binlogevent的更新與保存這個位置之間并不是原子操作,所以就算設置為1還是可能丟失這個位置杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.IO線程和SQL線程的信息保存在innodb表中如何保證不丟失relay_log_recovery=ON保存table,innodb表,可利用innodb崩潰恢復特性對于SQL線程信息保存在table中,mysql自身做了兩個優化:
1、slave_relay_log_info表的update事務插入合并到SQL線程執行binlog的事務中,通過這個優化可以做到實時更新SQL線程杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.位置,并且保證了兩者之間是一個原子操作。2、innodb本身支持group
commit,更新slave_relay_log_info也適用MySQL數據一致性--回顧基于binlog邏輯日志復制log-bin=mysql-bin#主庫打開寫binlog功能server-id=1#復制架構中全局唯一binlog_format=row
#row數時,只把真正的變更復制到從庫mit=1#保證redo
實時落盤sync_binlog=1#保證binlog實時落盤
innodb_support_xa=1#保證binlog的寫入順序與事務提交順序一致server-id=2
#復制架構中全局唯一innodb存儲引擎自身通過rreeldaoy_lloo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 今天陜西省高考語文作文題
- 生態保護與生態農業推廣考核試卷
- 十八項護理核心制度
- 湖北省武漢市2023~2024學年高一數學下學期5月聯考試題含答案
- 陜西省咸陽市高新一中2024?2025學年高一下學期第五次質量檢測(3月) 數學試卷(含解析)
- 2025年濟南歷下區八年級第二學期數學期中考試試題(含答案)
- 江蘇省無錫市港下中學2025年初三下期中數學試題含解析
- 西安交通大學城市學院《語言學概論》2023-2024學年第一學期期末試卷
- 江西省上饒市民校考試聯盟婺源紫陽中學2025年高三第四次聯考生物試題含解析
- 上海市格致初級中學2025年高三考前模擬英語試題含解析
- B江水利樞紐工程畢業設計計算書
- HG+20231-2014化學工業建設項目試車規范
- 2024海南中考化學二輪重點專題突破 專題三 流程圖題(課件)
- 急性冠脈綜合征患者健康教育
- 道德與法治賽課一等獎:《勿忘國恥》教學課件(五下)
- 2024年全國初中數學競賽試題含答案
- 任務花式噴泉PLC控制任務課件
- 手術室轉運工人培訓
- MOOC 電子線路分析基礎-西安電子科技大學 中國大學慕課答案
- 15j403-1樓梯欄桿標準
- CATIA CAA二次開發開發教材
評論
0/150
提交評論