微軟棄 Windows 而擁抱 Linux 之后,國(guó)內(nèi)首本SQL Server On Linux的圖書(shū)出版,這本書(shū)教了很多新玩法。

          SQL
          Server作為微軟公司著名的數(shù)據(jù)庫(kù)管理系統(tǒng),多年以來(lái)一直穩(wěn)居各種數(shù)據(jù)庫(kù)排名的前三甲。作為最初由圖靈獎(jiǎng)數(shù)據(jù)庫(kù)方面得主詹姆斯·格雷主導(dǎo)開(kāi)發(fā),并基于另外一位圖靈獎(jiǎng)數(shù)據(jù)庫(kù)方面得主Michael
          Stonebraker開(kāi)發(fā)的Ingres發(fā)展起來(lái)的SQL Server數(shù)據(jù)庫(kù)管理系統(tǒng),經(jīng)過(guò)30多年的錘煉,已經(jīng)得到業(yè)內(nèi)的廣泛認(rèn)同和應(yīng)用。

          作為早已輕松支持TB甚至PB級(jí)別數(shù)據(jù)量的數(shù)據(jù)庫(kù)產(chǎn)品,合理使用SQL Server足以應(yīng)對(duì)絕大部分常規(guī)需求。由于某些原因,在國(guó)內(nèi)SQL
          Server一直不被看好,這個(gè)現(xiàn)象從2014年微軟第3任CEO薩蒂亞·納德拉上任,并提出“Microsoft Open
          Source”之后得到了很大的改變。隨著.NET、Visual Studio、Office等微軟產(chǎn)品逐步實(shí)現(xiàn)跨平臺(tái)應(yīng)用,SQL
          Server也在2016年正式可運(yùn)行在主流的Linux平臺(tái)上(目前它支持Red Hat/CentOS、Ubuntu和SUSE)。

          隨著SQL Server 2017的正式發(fā)布,SQL
          Server除了跨平臺(tái)之外,還引入了大量的新功能,這些功能不僅對(duì)數(shù)據(jù)庫(kù)性能及數(shù)據(jù)庫(kù)管理效率帶來(lái)明顯的提升,還加快了SQL
          Server和大數(shù)據(jù)、人工智能領(lǐng)域的整合。

          鑒于目前國(guó)內(nèi)尚未有系統(tǒng)介紹關(guān)于SQL Server在Linux上運(yùn)行的圖書(shū),同時(shí)網(wǎng)上資料過(guò)于零散,作者經(jīng)過(guò)近一年的實(shí)踐及資料整合寫(xiě)了《SQL Server
          On Linux運(yùn)維實(shí)戰(zhàn)》,目的是讓讀者盡快上手,掌握基于Linux的SQL
          Server的安裝、配置、管理及性能優(yōu)化方法。書(shū)中部分內(nèi)容不局限于Linux平臺(tái),但以Linux平臺(tái)為主。




          《SQL Server On Linux運(yùn)維實(shí)戰(zhàn)》

          作者:黃釗吉, 熊章立







          *
          SQL Server鳳凰涅槃,浴火重生;

          *
          跨平臺(tái),Linux和Windows平臺(tái)均適用;

          *
          從入門(mén)到精通,突出運(yùn)維監(jiān)控、性能調(diào)優(yōu);

          *
          融入作者10年工作經(jīng)歷,系統(tǒng)、實(shí)用、經(jīng)常翻閱的工具書(shū)。




          通過(guò)閱讀本書(shū),你將會(huì)了解到如何使用基于Linux的SQL Server,如何更好地管理在Linux上的SQL Server及如何進(jìn)行常規(guī)的SQL
          Server性能優(yōu)化。


          運(yùn)行在Linux上的新版SQL
          Server,將其新特性及強(qiáng)大功能與Linux原生系統(tǒng)的優(yōu)點(diǎn)進(jìn)行結(jié)合,不僅在運(yùn)維及性能上帶來(lái)巨大的便利和提升,同時(shí)對(duì)大數(shù)據(jù)和數(shù)據(jù)挖掘領(lǐng)域的逐步兼容[如內(nèi)置機(jī)器學(xué)習(xí)、圖形處理、兼容HDFS
          (hadoop分布式文件系統(tǒng))、Containers(容器)等特性],使得企業(yè)不需要從頭開(kāi)始搭建或者把現(xiàn)有環(huán)境遷移到“適合”大數(shù)據(jù)環(huán)境的其他關(guān)系型數(shù)據(jù)庫(kù)中。

          01

          為何選擇Linux平臺(tái)的SQL Server

          曾經(jīng)由于大數(shù)據(jù)產(chǎn)生在Linux環(huán)境,SQL Server不能直接訪問(wèn)HDFS(其實(shí)從SQL Server 2012開(kāi)始它已經(jīng)可以訪問(wèn)了,但是需要一些輔助驅(qū)動(dòng))
          ,不能運(yùn)行在Linux上,所以SQL Server認(rèn)為是時(shí)代的棄子,只能守住現(xiàn)有的一畝三分地,會(huì)在傳統(tǒng)領(lǐng)域中掙扎并慢慢消亡。




          自現(xiàn)任微軟CEO(薩蒂亞·納德臺(tái))上臺(tái)之后,微軟有了翻天覆地的改變,隨著云優(yōu)先、移動(dòng)優(yōu)先的策略,“Microsoft Open
          Source”的大方針不斷深化,微軟故步自封的形象在逐步改變。SQL Server作為微軟非云專(zhuān)屬(微軟云有其他數(shù)據(jù)庫(kù)產(chǎn)品如Azure Cosmos
          DB)的最重要的數(shù)據(jù)庫(kù)產(chǎn)品,在數(shù)據(jù)技術(shù)(DT)時(shí)代和人工智能(AI)時(shí)代,自然也有了革命性的改變。




          在IT領(lǐng)域工作過(guò)的讀者應(yīng)該多多少少聽(tīng)說(shuō)過(guò),在大規(guī)模環(huán)境下,經(jīng)過(guò)“合理管理”的Linux服務(wù)器在性能和穩(wěn)定性方面,都比Windows
          Server好。其中一個(gè)例子就是在服務(wù)器重啟頻率和軟件更新、補(bǔ)丁修復(fù)工作中Linux明顯比Windows Server表現(xiàn)得更好。




          實(shí)際上,從SQL Server 2016開(kāi)始,SQL Server就能運(yùn)行在Linux環(huán)境下。SQL Server
          2017的正式發(fā)布進(jìn)一步實(shí)現(xiàn)了其在Windows Server和主流Linux平臺(tái)的無(wú)縫連接。同時(shí),不只是SQL Server數(shù)據(jù)庫(kù)引擎,還包括SQL
          Server Agent、某些高可用技術(shù)等,它們都能運(yùn)行在Linux平臺(tái)。




          接下來(lái)我們稍微瀏覽一下為什么選擇Linux平臺(tái)上的SQL Server。

          以下僅是作者總結(jié),并不代表官方說(shuō)法。以下僅是作者總結(jié),并不代表官方說(shuō)法。

          *
          大趨勢(shì):這幾年最火的莫過(guò)于DT、AI、大數(shù)據(jù)、IoT(物聯(lián)網(wǎng))
          、區(qū)塊鏈等,而且無(wú)一例外地它們都產(chǎn)生在Linux生態(tài)環(huán)境下。并非說(shuō)Windows不好,但是從現(xiàn)狀來(lái)看,我們也不得不面對(duì)Linux,有Linux方面的知識(shí)才能跟得上潮流,不至于被時(shí)代淘汰。作為微軟技術(shù)從業(yè)者,單純學(xué)Linux難免有點(diǎn)抵觸。現(xiàn)在可以結(jié)合SQL
          Server來(lái)學(xué)習(xí),作者認(rèn)為這是再好不過(guò)的切入點(diǎn),不管合不合理,給自己一個(gè)學(xué)習(xí)的理由并沒(méi)有什么不好。

          *
          新版本新體驗(yàn):不管是SQL Server還是其他主流的數(shù)據(jù)庫(kù)管理系統(tǒng),每一次的新版本都帶來(lái)了各種新功能、新體驗(yàn)。在最近幾個(gè)大版本(特別是2012及其后續(xù)版本)
          中,在數(shù)據(jù)引擎、傳統(tǒng)BI甚至大數(shù)據(jù)領(lǐng)域,都可以看到SQL
          Server在不停地進(jìn)步。比如我們可以使用一些功能(如分區(qū))對(duì)大型庫(kù)/表進(jìn)行管理,借助In-Memory技術(shù)大幅度提升OLTP的性能,通過(guò)AlwaysON技術(shù)實(shí)現(xiàn)讀寫(xiě)分離和HA+DR方案,提高資源利用率和系統(tǒng)穩(wěn)定性,另外還能對(duì)安全方面的功能進(jìn)行提升。本書(shū)會(huì)挑選一些比較重要的特性進(jìn)行介紹和演示。

          *
          純SQL Server的優(yōu)缺點(diǎn):除了少部分對(duì)SQL Server On Windows或SQL Server On Linux感興趣的讀者可能未接觸過(guò)SQL
          Server之外,大部分讀者都應(yīng)使用過(guò)SQL Server,拋開(kāi)一些排名,客觀地對(duì)比一下現(xiàn)在主流的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。

          主流的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)

          開(kāi)源:雖然SQL Server不開(kāi)源,但是Oracle/DB2/SAP這些也不開(kāi)源。

          原生負(fù)載均衡:雖然SQL Server不支持原生負(fù)載均衡,但是MySQL也不支持。Oracle還得花大價(jià)錢(qián)購(gòu)買(mǎi)。

          跨平臺(tái):從SQL Server 2016開(kāi)始它已經(jīng)不再是討論的話題。

          支持?jǐn)?shù)據(jù)量:至于較大型的系統(tǒng)(比如單表超過(guò)1億行),MySQL恐怕早就要借助分庫(kù)分表或者其他技術(shù)來(lái)分?jǐn)傌?fù)載,而SQL
          Server則不一定,在設(shè)計(jì)合理、硬件充足的前提下,適當(dāng)進(jìn)行一些處理(如表分區(qū)、文件組拆分等)操作,很容易應(yīng)對(duì)億級(jí)表的高效操作。

          性能:除非業(yè)務(wù)邏輯及數(shù)據(jù)量確定到了一定程度,否則未經(jīng)專(zhuān)家調(diào)優(yōu)的Oracle也不一定比SQL
          Server好。同樣,未經(jīng)調(diào)優(yōu)的Linux,比Windows更不安全。重點(diǎn)還是要看如何使用它們。

          口碑:可能作者了解不多,到目前為止,作者從未聽(tīng)過(guò)國(guó)內(nèi)出名的Oracle專(zhuān)家(包括各ACE、ACE Director)在公共場(chǎng)合說(shuō)別的產(chǎn)品(特別是SQL
          Server)不好,他們不是不清楚各產(chǎn)品之間的差異,而是不想浪費(fèi)時(shí)間精力在這些無(wú)謂的爭(zhēng)吵當(dāng)中。如果你并不同時(shí)精通(簡(jiǎn)歷上寫(xiě)的那種不算)兩種或以上的數(shù)據(jù)庫(kù)產(chǎn)品,那么千萬(wàn)別輕易進(jìn)行對(duì)比和下定論。還是那一句:不是產(chǎn)品真得不好,而是你水平有限。其實(shí)SQL
          Server活到現(xiàn)在,還是有它的優(yōu)勢(shì)的。另外在寫(xiě)作本書(shū)過(guò)程中,作者還看到國(guó)內(nèi)某位Oracle ACED的關(guān)于Linux上SQL Server
          AlwaysON方面的文章,作為Oracle對(duì)非內(nèi)部員工授予的最高稱(chēng)號(hào)獲得者,他們也在學(xué)習(xí)SQL Server。這里作者不是想說(shuō)SQL
          Server如何好,而是態(tài)度問(wèn)題,要有一個(gè)開(kāi)放包容的態(tài)度,你才能走得更遠(yuǎn)。

          關(guān)于Linux上的SQL Server性能,可以見(jiàn)官方提供的資料,必應(yīng)搜索“Microsoft, Red Hat, and HPE
          Collaboration Delivers Choice & Value to Enterprise Customers”。

          02

          SQL Server On Linux新特性簡(jiǎn)介

          正如人類(lèi)進(jìn)化一樣,傳統(tǒng)數(shù)據(jù)庫(kù)軟件為了應(yīng)對(duì)時(shí)代的發(fā)展,必須要做出很多的“進(jìn)化”甚至“革新”。有些是我們看不到的,比如SQL Server 2000到SQL
          Server 2005就引入了一次徹底的重構(gòu),加入了SQLOS,到SQL Server 2016之前,我們大量使用的DMV都來(lái)自這里。從SQL Server
          On Linux/SQL Server 2017開(kāi)始,又引入了SQL PAL,這些對(duì)于用戶(hù)甚至DBA來(lái)說(shuō)都是透明的。這些通常成了產(chǎn)品的賣(mài)點(diǎn)。

          近年來(lái)SQL
          Server平均每?jī)赡臧l(fā)布一個(gè)大版本,每個(gè)大版本又包含了大量的新特性,沒(méi)有必要一一詳述,作者會(huì)根據(jù)經(jīng)歷及當(dāng)前需求,挑選一些比較有價(jià)值的功能介紹和演示。

          完整的新特性列表可見(jiàn)官方文檔,可以用必應(yīng)搜索“SQL Server 2016 中的新增功能”及其延伸閱讀部分。

          按照官方的安裝過(guò)程,本節(jié)也從數(shù)據(jù)庫(kù)引擎、SSIS、機(jī)器學(xué)習(xí)及兼容Linux這4大方面進(jìn)行介紹,其中每個(gè)功能前面的小括號(hào)代表著它在哪個(gè)版本開(kāi)始出現(xiàn)。

          2.1 數(shù)據(jù)庫(kù)引擎

          數(shù)據(jù)庫(kù)管理(含數(shù)據(jù)庫(kù)安全)

          這部分是數(shù)據(jù)庫(kù)管理系統(tǒng)中的基礎(chǔ)功能。它讓數(shù)據(jù)庫(kù)“可用”,只有可用的數(shù)據(jù)庫(kù),才能繼續(xù)執(zhí)行性能、高可用及數(shù)據(jù)利用等功能。SQL Server
          2016~2017對(duì)數(shù)據(jù)庫(kù)管理有了很多的新增功能或者原有功能的強(qiáng)化,讀者可能會(huì)用到的有以下幾個(gè)功能。

          *

          (2016+)TempDB增強(qiáng):可在安裝過(guò)程中配置多個(gè)TempDB數(shù)據(jù)文件,對(duì)此,作者認(rèn)為它只是起到“提醒”用戶(hù)注意的作用,因?yàn)樗c過(guò)去沒(méi)有什么本質(zhì)的改變。在過(guò)去,對(duì)TempDB拆分多文件本身就是最佳實(shí)踐中的一個(gè),只是它沒(méi)有出現(xiàn)在安裝過(guò)程中。

          *
          (2016+)Temporal
          Tables:官方稱(chēng)臨時(shí)表,但是為了避免與常用的臨時(shí)表混淆,本書(shū)使用由必應(yīng)翻譯中得到的另外一個(gè)名字“時(shí)態(tài)表”,它記錄所有數(shù)據(jù)的更改及其日期,這將在7.5節(jié)中詳細(xì)介紹。

          *
          (2016+)Stretch Database:把本地?cái)?shù)據(jù)庫(kù)的數(shù)據(jù)動(dòng)態(tài)、安全地存儲(chǔ)到Azure的SQL數(shù)據(jù)庫(kù)中,由SQL
          Server透明地查詢(xún)本地?cái)?shù)據(jù)和連接數(shù)據(jù)庫(kù)中的遠(yuǎn)程數(shù)據(jù)。它適用于冷熱數(shù)據(jù)的歸檔。由于目前Linux版本并不支持這些,同時(shí)該功能需要使用Azure環(huán)境,這并不適合入門(mén),所以本書(shū)不介紹它。

          *
          (2016+)Always
          Encrypted:簡(jiǎn)稱(chēng)AE,中文常見(jiàn)名為始終加密。它啟用后,只有具有加密密鑰的應(yīng)用程序才能訪問(wèn)數(shù)據(jù)庫(kù)中的加密敏感數(shù)據(jù),密鑰絕不會(huì)傳給SQL Server。

          *
          (2016+)Dynamic Data
          Masking:簡(jiǎn)稱(chēng)DDM,中文常見(jiàn)名為動(dòng)態(tài)數(shù)據(jù)屏蔽。使用它后,不具有UNMASK權(quán)限的用戶(hù)只能看到經(jīng)過(guò)屏蔽處理的數(shù)據(jù)。

          *
          (2016+)Row-Level Security:簡(jiǎn)稱(chēng)RLS,中文常見(jiàn)名為行級(jí)安全性。它可以在數(shù)據(jù)庫(kù)引擎層面上限制數(shù)據(jù)訪問(wèn),用戶(hù)只能看到與其相關(guān)的數(shù)據(jù)行。

          *
          (2017+)可恢復(fù)的聯(lián)機(jī)索引重建(Resumable Online Index
          Rebuild):可以在發(fā)生故障停止處繼續(xù)恢復(fù)重建索引,避免重新執(zhí)行。它類(lèi)似于暫停功能,對(duì)于大型索引的維護(hù)有很大幫助。

          *
          (2017+)改進(jìn)高端服務(wù)器上小型數(shù)據(jù)庫(kù)的備份性能:使得備份更具有智能化。

          *
          (2017+)圖形處理:隨著數(shù)據(jù)分析越來(lái)越普及和深入應(yīng)用,在數(shù)據(jù)庫(kù)中可以通過(guò)熟悉的語(yǔ)言來(lái)對(duì)大量圖形進(jìn)行處理,但這部分超出了本書(shū)范圍。



          數(shù)據(jù)庫(kù)性能(含故障偵測(cè))

          性能及故障偵測(cè)將在性能篇進(jìn)行深入探討,SQL
          Server的每一次新版本發(fā)布,都必然帶來(lái)性能上的大幅度提升。在過(guò)去,要想知道某個(gè)時(shí)間段執(zhí)行了什么SQL語(yǔ)句,導(dǎo)致了什么性能問(wèn)題,往往只能從大量的監(jiān)控?cái)?shù)據(jù)中獲取,工作量很大,有時(shí)候甚至不可獲?。ū热珏礄C(jī)或者文件損壞等),而從SQL
          Server 2016開(kāi)始提供的查詢(xún)存儲(chǔ)功能能夠很好地減緩這種現(xiàn)象。同時(shí)SQL Server
          2017出現(xiàn)的智能優(yōu)化功能也可以協(xié)助那些沒(méi)有高水平DBA的企業(yè)減少性能影響。

          作者挑選了幾個(gè)比較有特色的功能,進(jìn)行一定的演示和介紹。

          *
          (2016+)查詢(xún)存儲(chǔ)(Query Store):用于存儲(chǔ)查詢(xún)文本、對(duì)應(yīng)的執(zhí)行計(jì)劃和性能指標(biāo),如耗時(shí)最長(zhǎng)、占用CPU或內(nèi)存最多的SQL。詳見(jiàn)12.2節(jié)。

          *
          (2014+)In-Memory OLTP:從SQL Server
          2014開(kāi)始引入并在后續(xù)版本中不斷改進(jìn)和增強(qiáng)。它對(duì)OLTP負(fù)載有大幅度的性能提升。詳見(jiàn)第16章。

          *

          (2017+)新一代的查詢(xún)處理器:可對(duì)工作負(fù)載的運(yùn)行時(shí)狀態(tài)進(jìn)行優(yōu)化,也稱(chēng)自適應(yīng)查詢(xún)處理。過(guò)去,我們通常是在事后進(jìn)行性能分析,這個(gè)過(guò)程就丟失了大量有價(jià)值的信息,新一代查詢(xún)處理器可以針對(duì)運(yùn)行時(shí)進(jìn)行優(yōu)化,更貼近“理想化”優(yōu)化。詳見(jiàn)性能篇介紹。

          *
          (2017+)自動(dòng)數(shù)據(jù)庫(kù)優(yōu)化:由SQL Server自己對(duì)潛在的性能問(wèn)題進(jìn)行深入研究,提出建議方案并自動(dòng)解決已標(biāo)識(shí)的問(wèn)題。詳見(jiàn)性能篇介紹。

          等),而從SQL Server 2016開(kāi)始提供的查詢(xún)存儲(chǔ)功能能夠很好地減緩這種現(xiàn)象。同時(shí)SQL Server
          2017出現(xiàn)的智能優(yōu)化功能也可以協(xié)助那些沒(méi)有高水平DBA的企業(yè)減少性能影響。


          高可用


          在現(xiàn)代社會(huì)中,核心系統(tǒng)、大型系統(tǒng)幾乎無(wú)一例外都使用了某些高可用技術(shù)。高可用的目的主要是使系統(tǒng)盡可能長(zhǎng)地在線并提供服務(wù)。作為微軟主推的高可用技術(shù),AlwaysON從SQL
          Server 2012出現(xiàn)開(kāi)始,它不斷地強(qiáng)化和完善,非常值得學(xué)習(xí)。

          *
          (2017+)AlwaysON全部數(shù)據(jù)庫(kù)支持跨數(shù)據(jù)庫(kù)事務(wù)。(2017+)支持無(wú)群集、最小副本提交和Windows-Linux跨操作系統(tǒng)遷移。

          由于本書(shū)的主題是SQL Server On
          Linux,且不打算深入研究AlwaysON這一足以單獨(dú)成書(shū)的技術(shù),所以本書(shū)把篇幅留在Linux上搭建AlwaysON的演示,對(duì)于后續(xù)的進(jìn)階讀者可以參見(jiàn)官方文檔或作者博客。

          大數(shù)據(jù)

          (2016+)PolyBase查詢(xún)引擎:用于將SQL Server和Hadoop或Azure Blob的外部數(shù)據(jù)進(jìn)行集成,它可導(dǎo)入導(dǎo)出及查詢(xún)。這超出本書(shū)范圍。

          除了PolyBase之外,SQL Server集成服務(wù)(簡(jiǎn)稱(chēng)SSIS)強(qiáng)化了大數(shù)據(jù)的數(shù)據(jù)采集,借助Power BI進(jìn)行數(shù)據(jù)分析和展示。這對(duì)SQL
          Server參與大數(shù)據(jù)的系統(tǒng)搭建帶來(lái)了不少的便利。

          2.2 SQL Server Integration Services

          這部分不在本書(shū)討論范圍,讀者可用必應(yīng)搜索“SQL Server Integration Services”進(jìn)行深入閱讀。

          *
          (2016+)支持AlwaysON可用性組。

          *
          (2016+)支持Always Encrypted。

          *
          (2016+)支持Hadoop文件系統(tǒng)(HDFS)。

          *
          (2017+)新增Scale Out功能。

          2.3 機(jī)器學(xué)習(xí)

          原為SQL Server R服務(wù),從2017開(kāi)始,它兼容Python,并更名為SQL Server機(jī)器學(xué)習(xí)服務(wù)。可以使用“機(jī)器學(xué)習(xí)服務(wù)”(數(shù)據(jù)庫(kù)內(nèi))在SQL
          Server中運(yùn)行R或者Python腳本,或者使用“機(jī)器學(xué)習(xí)服務(wù)器”(獨(dú)立)來(lái)部署和使用不需要SQL
          Server的R及Python模型。這些不屬于本書(shū)范疇,感興趣的讀者可以訪問(wèn)官方資料,使用必應(yīng)搜索“What is SQL Server Machine
          Learning Services?”

          雖然本書(shū)沒(méi)有提及,但是這個(gè)服務(wù)將會(huì)是以后的重點(diǎn)服務(wù),建議讀者多多重視。

          2.4 兼容Linux平臺(tái)

          SQL
          Server可以運(yùn)行在Linux和Windows平臺(tái),并且大部分功能是一致的,除了一些與平臺(tái)相關(guān)的功能會(huì)有所差異,作者相信隨著時(shí)間的推移它們將逐步兼容。由于SQL
          Server On Linux正是本書(shū)的主要內(nèi)容,所以這里暫時(shí)不展開(kāi)。

          2.5 其他

          除了上面4大類(lèi)之外,Linux上的SQL Server和Windows平臺(tái)上的是相同的數(shù)據(jù)庫(kù)引擎,絕大部分功能是一樣的。同時(shí)SQL Server On
          Linux不僅支持Linux還支持Docker。

          之所以說(shuō)大部分功能是一樣的,因?yàn)橐灿胁恢С只驎何粗С值墓δ?,截?017年10月,SQL
          Server還有不少需要逐步添加的功能,詳細(xì)清單可見(jiàn)官網(wǎng)資料,使用必應(yīng)搜索“Linux 上的SQL Server概述”的概述中的“版本和支持功能”。

          03

          SQL Server On Linux新玩法

          在構(gòu)思本書(shū)的時(shí)候,作者思考首先它應(yīng)該是一本工具書(shū),值得隨時(shí)翻閱,否則就意味著它過(guò)時(shí),沒(méi)有價(jià)值了;其次它應(yīng)該是一本介紹系統(tǒng)知識(shí)的書(shū)
          (本書(shū)更多是以DBA的角度來(lái)編寫(xiě)),不成體系的知識(shí)很難掌握。

          關(guān)于如何使用SQL Server On Linux,需要根據(jù)實(shí)際需求而定,但是拋開(kāi)具體行業(yè)需要使用不同的功能之外,我們可以考慮針對(duì)以下的需求使用某些功能。

          性能:使用In-Memory
          OLTP可極大地提高常規(guī)OLTP操作的性能,并對(duì)相對(duì)靜態(tài)的數(shù)據(jù)使用Columnstore技術(shù),Columnstore特別適合對(duì)數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行高效查詢(xún)。同時(shí)可借助Automatic
          Plan correction和Adaptive Query
          Processing對(duì)數(shù)據(jù)庫(kù)性能進(jìn)行更好的優(yōu)化提升。還可以借助AlwaysON技術(shù)對(duì)“讀操作”進(jìn)行更加智能的負(fù)載均衡。

          HA/DR:SQL Server
          2017提供AlwaysOn和Read-Scale這兩種不同的可用性組架構(gòu)。在Linux環(huán)境中,前者使用Linux群集的Pacemaker實(shí)現(xiàn)高可用、災(zāi)難恢復(fù)和讀負(fù)載均衡。而Read-Scale實(shí)際上是提供只讀副本來(lái)分?jǐn)傋x操作的壓力,可以不需要群集管理器,所以它特別適用于混合操作系統(tǒng)(Windows-Linux)環(huán)境。注意它并沒(méi)有高可用功能。

          安全:對(duì)數(shù)據(jù)庫(kù)進(jìn)行TDE(透明數(shù)據(jù)加密)以保護(hù)數(shù)據(jù)庫(kù)的安全,然后借助Always
          Encrypted功能實(shí)現(xiàn)全鏈路加密,還可以按實(shí)際所需的安全級(jí)別搭配使用RLS、DDM等加密功能。需要重點(diǎn)提醒的是,安全是技術(shù)問(wèn)題也是管理問(wèn)題,沒(méi)有任何一個(gè)技術(shù)可以完全地杜絕安全風(fēng)險(xiǎn)。

          運(yùn)維:運(yùn)維問(wèn)題的重點(diǎn)在于使系統(tǒng)可用,除了一些高可用技術(shù)之外,還需要考慮歷史數(shù)據(jù)、備份文件的容災(zāi)能力,另外對(duì)大型系統(tǒng)的日常維護(hù)也是重點(diǎn)之一,除了過(guò)去SQL
          Server提供的常規(guī)功能之外,還可以考慮使用以下3個(gè)功能使運(yùn)維工作更加高效。

          *
          使用Stretch Database把歷史數(shù)據(jù)存儲(chǔ)到Azure上,使得最高性能的資源能專(zhuān)門(mén)服務(wù)于活動(dòng)數(shù)據(jù)。

          *
          使用可恢復(fù)的聯(lián)機(jī)索引重建(Resumable Online Index Rebuild)功能,改進(jìn)大型索引的重建操作。

          *
          借助Azure,把數(shù)據(jù)庫(kù)直接備份到Azure中,減少存儲(chǔ)成本和文件損壞的風(fēng)險(xiǎn)。

          大數(shù)據(jù)/AI:運(yùn)行在Linux上的SQL Server內(nèi)置對(duì)Python和R的支持,搭配圖形處理(從SQL Server
          2017開(kāi)始出現(xiàn)),利用Azure上豐富的人工智能、機(jī)器學(xué)習(xí)還有HDInsight功能,以PowerBI作為數(shù)據(jù)展示,可以很好地完成大部分的大數(shù)據(jù)甚至AI工作。在未來(lái)的幾年內(nèi),作者認(rèn)為微軟將會(huì)在這個(gè)領(lǐng)域投入大量精力,使SQL
          Server不再僅僅是一個(gè)傳統(tǒng)的數(shù)據(jù)庫(kù)管理系統(tǒng)。

          04

          本書(shū)結(jié)構(gòu)


          這里大概介紹一下本書(shū)的結(jié)構(gòu),本書(shū)目標(biāo)是在實(shí)用的前提下,使其不僅能作為入門(mén)書(shū)籍,還能作為參考書(shū),隨時(shí)翻閱,所以在串聯(lián)各種知識(shí)點(diǎn)的前提下,也盡量兼顧每章的相對(duì)獨(dú)立。




          簡(jiǎn)單來(lái)說(shuō),由于SQL
          Server在Windows上運(yùn)行了三四十年,而在Linux上只運(yùn)行了一年多,加上Linux本身只是一個(gè)“內(nèi)核”??紤]到即使作為一個(gè)簡(jiǎn)單的服務(wù)器都需要進(jìn)行較多的配置,所以SQL
          Server在Linux上需要進(jìn)行的配置會(huì)比較多,而且很多界面操作到了Linux上后被簡(jiǎn)化甚至取消了。但總體來(lái)說(shuō),這并不會(huì)造成非常大的影響。




          《SQL Server On Linux運(yùn)維實(shí)戰(zhàn)》

          作者:黃釗吉, 熊章立











          *
          SQL Server鳳凰涅槃,浴火重生;

          *
          跨平臺(tái),Linux和Windows平臺(tái)均適用;

          *
          從入門(mén)到精通,突出運(yùn)維監(jiān)控、性能調(diào)優(yōu);

          *
          融入作者10年工作經(jīng)歷,系統(tǒng)、實(shí)用、經(jīng)常翻閱的工具書(shū)。





          - END -

          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務(wù)器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點(diǎn)信息
          問(wèn)題反饋
          郵箱:[email protected]
          QQ群:637538335
          關(guān)注微信

                成人性色生活片免费看爆迷你毛片 | 欧美性猛交xXxX自慰 | 中国熟妇AV毛茸茸 | 日韩AAAA片毛片少妇 | 欧美精品99久久久 |