日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

AlwaysOn 2016 新特性和提升

發(fā)布時(shí)間:2024/4/13 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AlwaysOn 2016 新特性和提升 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

AlwaysOn 2016 新特性和提升


AlwaysOn可用性組作為SQL Server 2012的新特性被引入,它增強(qiáng)了數(shù)據(jù)庫(kù)鏡像和故障轉(zhuǎn)移集群技術(shù),提供了高可用和災(zāi)難恢復(fù)。


在SQL Server 2016中AlwaysOn有些特性的增強(qiáng)要求運(yùn)行在Windows Server 2016上。然而,如果你仍然運(yùn)行在Windows Server 2012 R2上,仍然有很多提升是可用的。


AlwaysOn 2016一些新特性和增強(qiáng):

  • l 支持更多故障轉(zhuǎn)移目標(biāo)

  • l 更好的日志傳輸性能

  • l 可讀副本的負(fù)載均衡

  • l 支持DTC

  • l 數(shù)據(jù)庫(kù)級(jí)別的健康監(jiān)控

  • l 支持組管理的服務(wù)賬號(hào)

  • l 基本可用性組

  • l 無域可用性組

  • l 分布式可用性組

  • l 支持加密數(shù)據(jù)庫(kù)

  • l 支持SSIS目錄

  • l BI增強(qiáng)


支持更多故障轉(zhuǎn)移目標(biāo)

在AlwaysOn 2012和2014,允許最多只能配置2個(gè)副本作為自動(dòng)故障轉(zhuǎn)移副本(包括當(dāng)前主副本在內(nèi)),2016允許配置3個(gè)。

自動(dòng)故障轉(zhuǎn)移通常用于支持高可用,在故障轉(zhuǎn)移中同步數(shù)據(jù)流接近零數(shù)據(jù)丟失。


更好的日志傳輸性能

隨著高速硬件SSD的普遍使用,提供了更大的吞吐量,這對(duì)于寫事務(wù)到輔助副本是很重要的。因此,微軟更新了AlwaysOn的數(shù)據(jù)同步過程,簡(jiǎn)化了管道以便有更好的吞吐量和CPU上的更少壓力。性能瓶頸大多數(shù)可能發(fā)生在日志捕獲(Log Capture)和重做(Redo)步驟。之前,日志捕獲和重做步驟使用單線程處理日志,而現(xiàn)在這些步驟使用多線程并行運(yùn)行,極大提升了性能。


數(shù)據(jù)同步描述如下:

Transaction Occurs –> Log Flush –> Log Capture –> Send –> Log Received –> Log Cached –> Log Hardened –> Acknowledgement Sent –> Redo


可讀副本的負(fù)載均衡

AlwaysOn一個(gè)很棒的特性是能夠使用輔助副本用于只讀操作。在AlwaysOn 2016之前的版本,監(jiān)聽器會(huì)定向只讀請(qǐng)求到第一個(gè)可用副本,即便你可能有多個(gè)輔助副本,并且你可能設(shè)置路由表優(yōu)先將度請(qǐng)求定向到副本3或副本4,而不是副本2。現(xiàn)在AlwaysOn 2016的可讀副本以輪詢的形式暴露給監(jiān)聽器。


1.配置輔助副本的只讀訪問

ALTER?AVAILABILITY?GROUP?[ag] MODIFY?REPLICA?ON?N'SQL16N2'?WITH?(SECONDARY_ROLE(ALLOW_CONNECTIONS?=?READ_ONLY)) GO ALTER?AVAILABILITY?GROUP?[ag] MODIFY?REPLICA?ON?N'SQL16N3'?WITH?(SECONDARY_ROLE(ALLOW_CONNECTIONS?=?READ_ONLY)) GO


2.配置只讀路由URL

ALTER?AVAILABILITY?GROUP?ag?MODIFY?REPLICA?ON?N'SQL16N2'?WITH?(SECONDARY_ROLE?(READ_ONLY_ROUTING_URL?=?N'TCP://SQL16N2:1433')); GO ALTER?AVAILABILITY?GROUP?ag?MODIFY?REPLICA?ON?N'SQL16N3'?WITH?(SECONDARY_ROLE?(READ_ONLY_ROUTING_URL?=?N'TCP://SQL16N3:1433')); GO


3.SQL Server 2016在只讀路由列表中引入了負(fù)載均衡列表

當(dāng)SQL16N1為主副本角色時(shí),創(chuàng)建只讀路由列表:

ALTER?AVAILABILITY?GROUP?ag?MODIFY?REPLICA?ON?N'SQL16N1'?WITH?(PRIMARY_ROLE?(READ_ONLY_ROUTING_LIST=(('SQL16N3',?'SQL16N2'),?'SQL16N1')));


以上路由列表表示在SQL16N3和SQL16N2之間負(fù)載均衡只讀連接。我們有兩個(gè)嵌入列表:

List 1: 'SQL16N3', 'SQL16N2'

List 2: 'SQL16N1'


按如下方式工作:

1. 路由到第一個(gè)列表中的副本

SQL16N3和SQL16N2對(duì)只讀連接是可訪問的。第一個(gè)只讀連接被路由到SQL16N3,第二個(gè)只讀連接被路由到SQL16N2,第三個(gè)只讀連接被路由到SQL16N3,第四個(gè)只讀連接被路由到SQL16N2,等等,在第一個(gè)列表的兩個(gè)副本之間使用一個(gè)只讀連接的輪詢分發(fā)。

2. 如果任一副本不可用了,路由將繼續(xù)在第一個(gè)列表的副本中

如果SQL16N3或者SQL16N2對(duì)于只讀連接變?yōu)椴豢稍L問,那么只讀連接將只被路由到第一個(gè)列表的可訪問只讀副本。例如,如果SQL16N3不是synchronized狀態(tài),或者ALLOW_CONNECTIONS被設(shè)為NO,那么所有的只讀連接將會(huì)被路由到SQL16N2。只要只讀連接的其中一個(gè)服務(wù)器可用,那么只讀連接就不會(huì)被路由到SQL16N1。

3. 如果第一個(gè)列表中的所有副本都不可訪問,將會(huì)路由到下一個(gè)列表

對(duì)于只讀連接,如果SQL16N3和SQL16N2變?yōu)椴豢稍L問,那么所有的只讀連接將只會(huì)被路由到下一個(gè)列表的副本,這里就是SQL16N1。

4. 如果第一個(gè)列表中的任一副本可用,將會(huì)恢復(fù)路由到第一個(gè)列表

因?yàn)閷?duì)于只讀連接,可訪問的第一個(gè)列表中的輔助副本有更高的優(yōu)先級(jí),后面的只讀連接將會(huì)恰當(dāng)?shù)倪B接到他們。


此外配置可用性組路由列表,你也必須確保客戶端的應(yīng)用連接串當(dāng)連接到AG監(jiān)聽器時(shí)增加ApplicationIntent參數(shù),值為ReadOnly。如果在客戶端應(yīng)用連接串中沒有設(shè)置,那這個(gè)連接將自動(dòng)定向到主副本。以下是只讀連接串的示例:

Server=tcp:AGListener,1433; Database=AdventureWorks;IntegratedSecurity=SSPI; ApplicationIntent=ReadOnly

也最好不要在相同的負(fù)載均衡組中混合同步和異步副本。


支持DTC

注:只有運(yùn)行在Windows Server 2016或者升級(jí)了KB3090973補(bǔ)丁的Windows Server 2012 R2上

如果你的客戶端應(yīng)用程序需要執(zhí)行跨多個(gè)實(shí)例的事務(wù),那么就需要分布式事務(wù)協(xié)調(diào)器(DTC)。DTC是操作系統(tǒng)的一部分,當(dāng)你的數(shù)據(jù)庫(kù)引擎執(zhí)行跨多個(gè)實(shí)例的事務(wù)時(shí),用于確保一致性。

USE?AdventureWorks2012; GO BEGIN?DISTRIBUTED?TRANSACTION; --?your?tsql?statement?here DELETE?FROM?AdventureWorks2012.HumanResources.JobCandidate WHERE?JobCandidateID?=?13; GO COMMIT?TRANSACTION; GO


你的應(yīng)用程序不僅可以在多個(gè)SQL Server實(shí)例間執(zhí)行事務(wù),也可以在其他兼容DTC服務(wù)器中,像WebSphere或Oracle。


用于 AlwaysOn 可用性組和數(shù)據(jù)庫(kù)鏡像的跨數(shù)據(jù)庫(kù)事務(wù)和分布式事務(wù)。

https://msdn.microsoft.com/en-us/library/mt748186.aspx https://blogs.technet.microsoft.com/dataplatform/2016/01/25/sql-server-2016-dtc-support-in-availability-groups/

https://docs.microsoft.com/zh-cn/sql/database-engine/availability-groups/windows/transactions-always-on-availability-and-database-mirroring?view=sql-server-2017


為了能在AlwaysOn 2016中執(zhí)行分布式事務(wù),可用性組創(chuàng)建語(yǔ)句CREATE AVAILABILITY GROUP帶有WITH DTC_SUPPORT = PER_DB從句。

CREATE?AVAILABILITY?GROUP?AGSQL2016 WITH?(DTC_SUPPORT?=?PER_DB) FOR?DATABASE?[Database1,?Database2,?Database3] REPLICA?ON 'SQLSRVTST1'?WITH?—?substitute?node?name ( ENDPOINT_URL?=?'TCP://SQLSRVTST1.<domain>:7022', AVAILABILITY_MODE?=?SYNCHRONOUS_COMMIT, FAILOVER_MODE?=?AUTOMATIC ), 'SQLSRVTST2'?WITH?—?substitute?node?name ( ENDPOINT_URL?=?'TCP://SQLSRVTST2.<domain>:7022', AVAILABILITY_MODE?=?SYNCHRONOUS_COMMIT, FAILOVER_MODE?=?AUTOMATIC ); GO


數(shù)據(jù)庫(kù)級(jí)別的健康監(jiān)控

在之前的AlwaysOn 2012和2014中,如果實(shí)例健康出現(xiàn)問題,將觸發(fā)故障轉(zhuǎn)移。如果有一個(gè)數(shù)據(jù)庫(kù)有問題,只要實(shí)例OK,可用性組就不會(huì)故障轉(zhuǎn)移。因此,如果你有一個(gè)數(shù)據(jù)庫(kù)掉線、異常或損壞,也不會(huì)觸發(fā)故障轉(zhuǎn)移。

在AlwaysOn 2016中,不論是一個(gè)實(shí)例有問題,還是一個(gè)或多個(gè)數(shù)據(jù)庫(kù)有問題,都會(huì)發(fā)生故障轉(zhuǎn)移。然而,這不是默認(rèn)設(shè)置。在創(chuàng)建可用組配置向?qū)?#xff0c;你可以選擇“Database Level Health Detection”復(fù)選框來指定。對(duì)應(yīng)的創(chuàng)建可用性組的參數(shù)為DB_FAILOVER = ON

對(duì)于什么情況下觸發(fā)數(shù)據(jù)庫(kù)故障轉(zhuǎn)移,你也可以調(diào)整FailureConditionLevel屬性設(shè)置。根據(jù)需要調(diào)整默認(rèn)值。可以參考:https://msdn.microsoft.com/en-us/library/ff878667.aspx


支持組管理的服務(wù)賬號(hào)

在SQL Server 2012,微軟添加了組管理的服務(wù)賬號(hào)增強(qiáng),以便服務(wù)賬號(hào)密碼可以更容易管理。你現(xiàn)在可以為你的SQL Server實(shí)例創(chuàng)建一個(gè)獨(dú)立的服務(wù)賬號(hào),在AD中管理密碼、分配代理權(quán)限給每個(gè)服務(wù)器。這個(gè)特性對(duì)AlwaysOn AG是有用的,因?yàn)槊艽a和訪問特定資源像共享文件的權(quán)限,可以通過一個(gè)賬號(hào)管理,而不是每個(gè)實(shí)例獨(dú)立配置。在AlwaysOn AG中使用組管理的服務(wù)賬號(hào)比使用通常的域用戶賬號(hào)更加安全。

參考:

https://docs.microsoft.com/en-us/windows-server/security/group-managed-service-accounts/group-managed-service-accounts-overview

https://blogs.msdn.microsoft.com/markweberblog/2016/05/25/group-managed-service-accounts-gmsa-and-sql-server-2016/


基本可用性組

AlwaysOn基本可用性組在SQL Server 2016標(biāo)準(zhǔn)版中可用。功能與數(shù)據(jù)庫(kù)鏡像一樣,而數(shù)據(jù)庫(kù)鏡像已經(jīng)被廢棄,會(huì)在將來的版本中被移除。基本可用性組提供了單個(gè)數(shù)據(jù)庫(kù)的故障轉(zhuǎn)移,在組內(nèi)只可以有兩個(gè)副本,數(shù)據(jù)同步可以是同步或異步模式,在輔助副本不提供只讀訪問和備份支持。創(chuàng)建基本可用性組,可以使用CREATE

AVAILABILITY?GROUP語(yǔ)句帶有WITH?BASIC從句。 CREATE?AVAILABILITY?GROUP?BAGSQL2016 WITH?(AUTOMATED_BACKUP_PREFERENCE?=?PRIMARY, BASIC, DB_FAILOVER?=?OFF, DTC_SUPPORT?=?NONE) FOR?DATABASE?[Database1,?Database2,?Database3] REPLICA?ON 'SQLSRVTST1'?WITH?--?substitute?node?name ( ENDPOINT_URL?=?‘TCP://SQLSRVTST1.<domain>.com:5022’, FAILOVER_MODE?=?AUTOMATIC, AVAILABILITY_MODE?=?SYNCHRONOUS_COMMIT, SECONDARY_ROLE?(ALLOW_CONNECTIONS?=?NO) ), 'SQLSRVTST2'?WITH?--?substitute?node?name ( ENDPOINT_URL?=?‘TCP://SQLSRVTST2.<domain>.com:5022’, FAILOVER_MODE?=?AUTOMATIC, AVAILABILITY_MODE?=?SYNCHRONOUS_COMMIT, SECONDARY_ROLE?(ALLOW_CONNECTIONS?=?NO) ) GO

參考:

https://blogs.technet.microsoft.com/msftpietervanhove/2017/03/14/top-5-questions-about-basic-availability-groups/


無域可用性組

注:只可運(yùn)行在Windows Server 2016上

大多數(shù)公司運(yùn)行在單一域環(huán)境,而有些公司運(yùn)行在多個(gè)域環(huán)境,可以部署跨多個(gè)域的可用性組,以便多臺(tái)服務(wù)器可以作為DR副本。而有些組織根本沒有運(yùn)行在域環(huán)境。

Windows Server 2016中,WSFC不需要集群節(jié)點(diǎn)在相同的域,或者根本不需要域(可以在工作組)。SQL Server 2016現(xiàn)在可以在以下環(huán)境部署AlwaysOn可用性組:

  • l 所有節(jié)點(diǎn)在單一域

  • l 節(jié)點(diǎn)在多個(gè)完全信任的域

  • l 節(jié)點(diǎn)在多個(gè)不信任的域

  • l 節(jié)點(diǎn)不在域中

通過去掉集群的域約束,提升了靈活性。參考:https://blogs.msdn.microsoft.com/clustering/2015/08/17/workgroup-and-multi-domain-clusters-in-windows-server-2016/


分布式可用性組

分布式可用性組,可將AlwaysOn AG跨兩個(gè)不同的WSFC,來擴(kuò)展AG。

分布式 AG 也是另一種遷移到新配置或升級(jí) SQL Server 的方法。 因?yàn)榉植际?AG 在不同體系結(jié)構(gòu)上支持不同的基礎(chǔ) AG,例如,可以從在 Windows Server 2012 R2 上運(yùn)行的 SQL Server 2016 更改為在 Windows Sever 2016 上運(yùn)行的 SQL Server 2017。

參考:

https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/distributed-availability-groups


支持加密數(shù)據(jù)庫(kù)

在之前版本AlwaysOn允許加密數(shù)據(jù)庫(kù),然而他們不能通過新建可用性組添加,并且如果切換到輔助副本他們不能被訪問。在SQL Server 2016,可以通過向?qū)砑蛹用軘?shù)據(jù)庫(kù),并且在故障轉(zhuǎn)移后可以訪問。這是因?yàn)?#xff0c;在創(chuàng)建可用性組時(shí),向?qū)?duì)于每個(gè)副本執(zhí)行了sp_control_dbmasterkey_password,并且使用每個(gè)實(shí)例的數(shù)據(jù)庫(kù)主秘鑰創(chuàng)建了憑據(jù)。在故障轉(zhuǎn)移后SQL Server會(huì)搜索正確的憑據(jù),知道可以解密數(shù)據(jù)庫(kù)主秘鑰。


關(guān)于添加加密數(shù)據(jù)庫(kù)到AlwaysOn可用性組有些限制。參考:https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/encrypted-databases-with-always-on-availability-groups-sql-server?view=sql-server-2017


支持SSIS目錄

在SQL Server 2016,你可以像其它數(shù)據(jù)庫(kù)一樣,為了增強(qiáng)高可用和災(zāi)難恢復(fù),添加SSIS目錄(SSISDB)和它的內(nèi)容(項(xiàng)目、包等)到AlwaysOn可用性組。


對(duì)于添加SSISDB到AlwaysOn可用性組有些特定的先決條件和配置,參考:https://docs.microsoft.com/en-us/sql/integration-services/catalog/ssis-catalog?view=sql-server-2017#always-on-for-ssis-catalog-ssisdb


BI增強(qiáng)

使用AlwaysOn可用性組,數(shù)據(jù)庫(kù)倉(cāng)庫(kù)負(fù)載指向一個(gè)或者多個(gè)可讀輔助副本,而主副本用于支持關(guān)鍵業(yè)務(wù)應(yīng)用。報(bào)表和數(shù)據(jù)分析是資源密集型應(yīng)用,因此負(fù)載指向非生產(chǎn)服務(wù)器可以提高整體性能。另一個(gè)增強(qiáng)點(diǎn)是,微軟優(yōu)化了數(shù)據(jù)同步進(jìn)程,在數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)同步延時(shí)非常低,以致近實(shí)時(shí)分析成為現(xiàn)實(shí)。


結(jié)論

最新版的AlwaysOn可用性組提升了功能性、可擴(kuò)展性、可管理性,并在高可用和災(zāi)難恢復(fù)上更加健壯。


總結(jié)

以上是生活随笔為你收集整理的AlwaysOn 2016 新特性和提升的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。