中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL保證復制高可用的重要參數有哪些

發布時間:2021-11-06 11:06:42 來源:億速云 閱讀:237 作者:小新 欄目:MySQL數據庫

這篇文章主要介紹MySQL保證復制高可用的重要參數有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

MySQL保證復制高可用的重要參數有哪些MySQL保證復制高可用的重要參數有哪些
expire_logs_days ,binlog清理的時間。
從庫上relay-log-recovery = 1和relay-log-info-repository = TABLE; 保證了主從數據的一致性,不論從機怎么出錯都能保證,主從一致。

為什么呢?

首先說SQL線程,SQL線程apply應用二進制日志,并且將binlog應用到的位置記錄到relay-info.log中。
MySQL保證復制高可用的重要參數有哪些
并且并不是relay log應用一次就刷盤寫relay-log.info一次,而是一個參數指定,如下,意思是說回放events 10000次寫一次盤。這個就是為什么從庫crash了,出現1062錯誤。因為從庫已經插入了數據,但是文件relay-log.info并沒有記錄文件,當重啟后文件告訴數據庫還要執行一次操作,就會出現這個主鍵重復插入的錯誤。所以這個參數設置為table的,就滿足了一致性,避免了數據庫和文件的不同步問題。
MySQL保證復制高可用的重要參數有哪些
IO線程:
和relay_log_info_repository不同的是,單單把master_info_repository設置成table是不能解決,備庫crash了,從IO線程接收日志的一致性問題,因為IO線程接收日志寫的文件是relay log文件,而數據庫接收到主庫的日志到哪里寫的是master-info.log文件,(同步情況由sync_master_info決定)這是兩個不同的文件,比如當relay接收到了日志,為event2,但是此時master-info.log記錄的是1,此時crash了,當重新啟動從庫時,master-info.log告訴數據庫我才接收到1,又重新接收了一次2,這樣就重復了,即便是master_info_repository設置成table一樣不解決問題。但是報錯時,show slave status。最終作用到的都是SQL線程報錯。所以還要設置另外一個參數 relay-log-recovery=1
MySQL保證復制高可用的重要參數有哪些
MySQL保證復制高可用的重要參數有哪些

最后一個非常重要的參數:
MySQL保證復制高可用的重要參數有哪些
把當前接收到的relay log清理掉。然后從SQL Thread應用到的位置,重新拉取relay log。

但是要保證主庫binlog要保留,保留時間要夠,因為我見過的有的公司主從延遲一個月之久。
還有read-only的設置,5.7有個新的權限super_read_only參數,設置為on,大家都沒有權限,dba也沒有。

SQL線程高可用

MySQL保證復制高可用的重要參數有哪些

將SQL回放的位置寫到relay-info.log中,沒執行到一個event,就寫一次這個文件,那么性能會不會很差啊?因為沒有fsync所以文件記錄的會落后,將relay_log_info_repository=TABLE(5.6才有),將這次造作放在數據庫,原子操作。(從庫配置)

MySQL保證復制高可用的重要參數有哪些

寫10000個event才fsync一次寫盤,那么就有一問題,如果設置為1,有用嗎?沒用,有丟失一條記錄的可能。

sync_relay_log_info:這個參數和sync_relay_log參數一樣,當設置為1時,slave的I/O線程每次接收到master發送過來的binlog日志都要寫入系統緩沖區,然后刷入relay-log.info里,這樣是最安全的,因為在崩潰的時候,你最多會丟失一個事務,但會造成磁盤的大量I/O。當設置為0時,并不是馬上就刷入relay-log.info里,而是由操作系統決定何時來寫入,雖然安全性降低了,但減少了大量的磁盤I/O操作。

IO線程的高可用

 MySQL保證復制高可用的重要參數有哪些

接收到一個event,寫master.log文件,表示接受到的位置,然后再去寫relay log file,這時候發送crash,又會有問題,同樣可以存表master_info_repository。

master log文件會落后,IO線程會重新拉master log文件中后的binlog,重復拉日志,SQL線程就報錯了,最終錯誤的顯示都是SQL線程。

Relay-log-recovery=1,將當前接受到的所有relay log 清除掉。然后以SQL線程運行到的位置重新拉取thread。SQL線程是可靠的,那么,還有什么問題呢?如果主庫上的二進制日志沒有了,那么也來不過來了,就有問題了,即便是基于SQL線程。但是線上有落后很久的情形。

master_info_repository=TABLE 從開啟并行復制,也一定設置為table,性能有一倍的差距。

Read_only與super_read_only的區別,有super_priv權限的用戶設置read_only還是可以寫入的,

從庫super_read_only也打

以上是“MySQL保證復制高可用的重要參數有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西林县| 丽水市| 宿迁市| 渝中区| 呼玛县| 乌拉特前旗| 宜兴市| 肃宁县| 惠水县| 宣恩县| 循化| 南宁市| 富阳市| 龙里县| 阳原县| 武胜县| 白城市| 邛崃市| 读书| 五台县| 夏津县| 荆门市| 东莞市| 白玉县| 年辖:市辖区| 惠东县| 大英县| 雅安市| 汝阳县| 洛阳市| 饶河县| 碌曲县| 民乐县| 佛山市| 闽清县| 宣化县| 习水县| 上饶市| 夏河县| 偏关县| 灌阳县|