91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

SQL SERVER Alwayson原理及如何進行故障排除

發布時間:2021-10-12 15:05:24 來源:億速云 閱讀:247 作者:柒染 欄目:大數據

本篇文章給大家分享的是有關SQL SERVER  Alwayson原理及如何進行故障排除,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

SQL SERVER Alwayson 是SQL SERVER 分布式數據庫的一種形式,使用的公司可能不是很多,對于快速開發和高可用,是一種很不錯的解決方法。但在使用中,也會有TROUBLE的問題,我們今天來聊聊SQL SERVER 的ALWAYS ON 的原理以及一些故障,希望對大家有幫助。

SQL SERVER 的Always on 是基于PAXOS 協議的,其實說到底WINDOWS  Failover Cluster 也應該是基于 PAXOS (如果有不對,希望 WINDOWER 們來指正我哈)

SQL SERVER  Alwayson原理及如何進行故障排除

這張圖就是一個SQL SERVER ALWAYS ON  2016 -2017 的架構圖,SQL SERVER 2017 支持 1個主 8個從節點的架構,不過一般來說都是1個主 兩個從的使用方式是一個主流。那SQL SERVER 的 ALWAYS ON  和 MYSQL的  MGR 有什么不同

1 MYSQL 的MGR 支持 多主的模式, SQL SERVER 不支持

2 SQL SERVER 的AWO 支持 同步和異步模式  MYSQL 的  MGR 你可以視為是強一致的同步模式。

3 SQL SERVER 和 MYSQL 都是通過日志的方式來進行復制的。

4  MYSQL 的 MGR 是使用整體數據庫復制的方式 ORACLEER們可以理解,而 SQL SERVER 的集群,不是基于 INSTANCE 而是基于數據庫的(不是ORACLE 理解的數據庫,ORACLE的ER 們可以理解為一組 SCHEMA,用戶擁有的表),從這點看 SQL SERVER 還是比較靈活的和友好的。

那下面還是的在深入的說一下 ALWAYS ON的原理

SQL SERVER  Alwayson原理及如何進行故障排除

上面的圖很好的詮釋了ALWAYS ON 的整個信息的同步流程

1 SQL SERVER 將 LDF 日志刷入磁盤,并且此時LDF 的日志必須要復制到從節點發送和主庫的日志寫入的順序是一致的。(這是不是想起MYSQL的 BINLOG,但不是很一樣,為什么自己想,上面寫了哦,想不起來,文章結尾會寫)

2 日志會復制到對應的從庫的日志隊列,然后捕捉的線程會一直運行,將傳送過來的數據進行數據的同步,如果由于某些原因,復制出現問題,那LOG SEND隊列就建立起來了。

3 信息在每個數據庫中的復制隊列被拿出然后通過網絡傳輸到從庫中

4 從庫接受并且將數據快速 cache 起來

5 LOG 被物理的FLUSH 到從庫的LDF 文件中,并且會給 主庫一個 ACK(這讓我想起MYSQL 的半同步)

6 啟動REDO 線程,將數據刷入到 MDF NDF 文件中。

看上去很簡單,但實際的工作絕對不比MYSQL的 BINLOG  復制簡單。

另外在主,從副本中是要有流量控制的,以一個數據包來說 包含了 8192個 MESSAGES ,同時對于數據庫等級也是有控制的,一個數據庫最大一次傳輸  11200 MESSAGES ,(以那個為準,這個問題估計你不是SQL SERVER  DBAER,文章結尾也會提到) ,這個兩個標準以先到先得的標準,在對方不應答的情況下,傳送LOG的服務會等到對方應答,接受到這么多的日志后,傳送方會繼續傳送。同時還有一個隱藏的發送標準就是LSN號,主從庫的差異,當然通過 last commit的時間也是可以判斷主從節點之間的同步狀態是怎樣的。具體請參考 SQL SERVER DMV 的 hard_database_replica_states

同時由于ALWAYSON 的 FAILOVER 功能,在進行FAILOVER 也是要評判當前的切換的主機是否和從庫的 LSN 吻合,這樣就演化出判斷AWO的性能的兩個參數  RTO 和 RPO 兩個參數通過這兩個參數可以判斷出AWO如果目前遇到主機故障,是否可以快速切換。讓我想起 MYSQL的 MHA的功能以及其存在的意義。這里不再做詳細的解釋,感興趣 GOOGLE 就可以,一堆解釋和腳本。

一般ALWAYSON 的故障常見的故障或問題,

 數據延遲,這是一種,(AWO 有兩種,異步和同步),這里即使你使用了同步的方式進行復制,那其實主庫和從庫還是有時間差異的(尤其在I/O 和網絡性能不好的情況下)

在SQL SERVER 里面這樣的問題叫 HIGH HADR_SYNC_COMMIT 

那引起這個問題是哪幾部可能存在這樣的問題,

事務在主節點初始化

主復制不作transaction logs 并且發送到 secondary 復制

從庫復制接受并且硬化日志并發送給從庫

下面的圖中,就是有可能產生性能問題的地方,但用大白話來說

1  大事務

2  糟糕的網絡

3  糟糕的I/0

SQL SERVER  Alwayson原理及如何進行故障排除

同時通過SQL SERVER 性能監控器的 DATABASE REPLICA 中的 事務延遲和 事務鏡像同步 都可以看出延遲了多長時間。

所以打破一個概念就是 SQL SERVER  AWO 同步復制,主從數據就一定百分百時間一致,NO NO NO 我查看了 目前的生產庫, MYSQLER們可以理解為 behind master 當然 SQL SERVER 高大上,時間都顯示了,差多少都心里有數。 

SQL SERVER  Alwayson原理及如何進行故障排除

好了回答上面的, 有人不知道的問題

MYSQL 5.6 的復制 和 MYSQL 5.7 的復制有什么不同,不知道這里就不提了,這里拿MYSQL 5.6 多線程復制 對比 SQL SERVER AWO 復制,可以類比,因為都是一個庫一個線程(SQL SERVER AWO 看上去也是),MYSQL 5.7 以后 到  8.0  可都是要 多線程復制,并且GR 的復制方式,這里就慢慢和 AWO 不能進行類比了。另外SQL SERVER 的復制是按照數據庫日志,而MYSQL 的復制是按照 BINLOG (FILTER database replication  那也是過濾和SQL SERVER 的復制還是不一樣,所以這點是不能類比的。

SQL SERVER  Alwayson原理及如何進行故障排除

順便給SQL SERVER  打個廣告 SQL SERVER 2019 直接整合 SPARK ,做大數據庫的 可以關注一下,雖然不見得有多好,但至少多一個選擇,短平快,數據量一般的還是可能享受到一波 ”宏利“

SQL SERVER  Alwayson原理及如何進行故障排除

以上就是SQL SERVER  Alwayson原理及如何進行故障排除,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

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

AI

弥勒县| 平远县| 嘉义市| 英德市| 西林县| 蓝山县| 栾川县| 齐河县| 永昌县| 高台县| 临安市| 徐汇区| 金川县| 湖口县| 澳门| 绩溪县| 江城| 武宣县| 亚东县| 淮南市| 富蕴县| 朝阳县| 临沧市| 灵武市| 江华| 依安县| 朔州市| 克什克腾旗| 青岛市| 织金县| 株洲市| 伊春市| 涿州市| 称多县| 玛多县| 江津市| 南康市| 伊吾县| 兴安县| 平阳县| 红原县|