欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

SQL Server AlwaysON 同步模式的疑似陷阱

系統(tǒng) 2826 0
原文: SQL Server AlwaysON 同步模式的疑似陷阱

SQL Server 2012 推出的最重要的功能之一Alwayson,是一個集之前Cluster和Mirror于一體的新功能,即解決了Cluster依賴共享存儲的問題,又解決了鏡像不能實時讀以及轉(zhuǎn)移后連接串需要添加轉(zhuǎn)移IP的問題,看起來的確很實用。

而且Alwayson多副本的功能為實現(xiàn)讀寫分離提供了可能,試想一下,當主副本壓力比較大的時候,是否可以將讀操作引向輔助副本呢?答案一般來講是肯定的,請注意,是一般!

Alwayson有兩個同步模式,同步和異步,即然是同步,理所當然的我認為他是實時的,所以我 配置了只讀路由 ,來使用這個功能。

遺憾的是,這個同步并不是數(shù)據(jù)的實時同步,當主副本數(shù)據(jù)發(fā)生變化時,同步模式下的輔助副本并不能立即取到變化的數(shù)據(jù)。

實驗如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
EXEC sp_addlinkedserver @server = N 'Secondary' , @srvproduct = N '' ,
???? @provider = N 'SQLNCLI' , @datasrc = N '192.168.200.201' ;
?
EXEC sp_addlinkedsrvlogin 'Secondary ' , 'false ' , NULL , 'sa' , 'sqlcn.com'
?
USE DemoDB
go
?
CREATE TABLE tb_alwayson
???? (
?????? id INT IDENTITY
????????????? PRIMARY KEY ,
?????? name VARCHAR (200)
???? )
?
INSERT ? INTO tb_alwayson
???????? ( name )
???????? SELECT ? NEWID()
?
SELECT ? COUNT (*)
FROM ??? tb_alwayson
WAITFOR DELAY '00:00:00.900'
SELECT ? COUNT (*)
FROM ??? Secondary.DemoDB.dbo.tb_alwayson

使用連接服務(wù)器,這是一個非常好理解的測試辦法,在我的環(huán)境里,你會發(fā)現(xiàn),在輔助副本上要取到變化的數(shù)據(jù),大概要900ms才能保證,900ms以下,都沒法保證,甚至在300ms以下,沒出現(xiàn)過一次能同步的情況。

這就是同步模式,讓你沒有一點點兒防備

?

那么這個同步模式到底是怎么個同步呢?

答案是這樣的:它可以保證事務(wù)日志是同步的,也就是可以保證不丟失數(shù)據(jù),但不能保證數(shù)據(jù)變化沒有延時,這是由于輔助副本在接收主副本傳來的Trans log時,首先將其緩到本地Log Cache,接著強制硬化到本地Ldf,然后隨即向主副本告知你可以commit了,但注意,此時的硬化到本地ldf并非本地數(shù)據(jù)已經(jīng)變化,這是因為輔助副本將trans log硬化到本地的同時,它是使用一個異步進程去redo這些trans log產(chǎn)生的Page變化到Data文件的,這也就決定了這個Redo的操作是不可能比硬化日志早的,所以數(shù)據(jù)的延時就是肯定的了。

?

《SQL Server 2012實施與管理實戰(zhàn)指南》中指AlwaysON同步過程如下:

任何一個SQL Server里都有個叫Log Writer的線程,當任何一個SQL用戶提交一個數(shù)據(jù)修改事務(wù)時,
它會負責把記錄本次修改的日志信息先記入一段內(nèi)存中的日志緩沖區(qū),然后再寫入物理日志文件(日志固化)。
所以對于任何一個數(shù)據(jù)庫,日志文件里都會有所有數(shù)據(jù)變化的記錄。
對于配置為AlwaysOn主副本的數(shù)據(jù)庫,SQL Server會為它建立一個叫Log Scanner的工作線程。
這個線程專門負責將日志記錄從日志緩沖區(qū)或者日志文件里中讀出,打包成日志塊,發(fā)送給各個輔助副本。
由于它的不間斷工作,才使主副本上的數(shù)據(jù)變化,可以不斷地向輔助副本上傳播。
輔助副本上 ,同樣會有兩個線程,完成相應(yīng)的數(shù)據(jù)更新動作,它們是 固化(Harden)和重做(Redo)
固化線程會將主副本Log Scanner所發(fā)過來的日志塊寫入輔助副本的磁盤上的日志文件里(這個過程被稱為"固化")。
而重做線程,則負責從磁盤上讀取日志塊,將日志記錄翻譯成數(shù)據(jù)修改操作,在輔助副本的數(shù)據(jù)庫上完成。
當重做線程完成其工作以后,輔助副本上的數(shù)據(jù)庫就會跟主副本一致了。AlwaysOn就是通過這種機制,保持副本之間的同步。
重做線程每隔固定的時間點,會跟主副本通信,告知它自己的工作進度。主副本就能夠知道兩邊數(shù)據(jù)的差距有多遠。

這些線程在工作上各自獨立,以達到更高的效率。 Log Scanner負責傳送日志塊,而無須等待Log Writer完成日志固化;輔助副本完成日志固化以后就會發(fā)送消息到主副本,告知數(shù)據(jù)已經(jīng)傳遞完畢,而無須等待重做完成。 其設(shè)計目標,是盡可能地減少AlwaysOn所帶來的額外操作對正常數(shù)據(jù)庫操作的性能影響。

事實已經(jīng)很清楚了,同步的原理決定了數(shù)據(jù)的延時,想用AlwaysON做讀寫分離的朋友們,考慮好你所能容忍的延時時間吧!

另外,微軟你敢在官方聯(lián)機文檔與各種技術(shù)大會上把同步模式非數(shù)據(jù)實時同步提一下嗎?

SQL Server AlwaysON 同步模式的疑似陷阱


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲激情视频在线观看 | 麻豆av在线播放 | 五月六月婷婷 | 91国色| 五月天色婷婷综合 | 国产一区二区亚洲 | 久久97久久97精品免视看 | 12345国产精品高清在线 | 黄色片免费在线播放 | 久久久九九精品国产毛片A片 | 四虎影院在线播放 | 国产亚洲一区在线 | 草草在线免费视频 | 亚洲免费人成在线视频观看 | 综合精品一区 | 精品免费| a在线v| 91精品国产综合久久久密闭 | 国产成人综合网在线观看 | 亚洲欧美一区二区三区 | 天天干天天舔天天操 | 欧美日韩在线免费观看 | 国产小视频在线观看免费 | 2021国产精品一区二区在线 | 国产精品美女久久久久久久网站 | 久久久精品久久视频只有精品 | 亚洲精品乱码 | 国产一级黄色网 | 特黄特色的大片观看免费视频 | 男女真实有遮挡xx00动态图 | 国产第一页浮力 | 亚洲午夜精品aaa级久久久久 | 欧美 日韩 中文字幕 | 欧美在线精品一区二区在线观看 | caoliushequ2017 | 国产色在线| 久久精品久久精品久久 | 污污的网站在线观看 | 亚洲国产区 | 五月婷六月丁香狠狠躁狠狠爱 | 天干夜天天夜天干天 |