Microsoft Network Monitor
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的松陽網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
這是微軟提供的網(wǎng)絡(luò)抓包工具
雖然它是微軟提供的,但所有的協(xié)議parser解析代碼全部都是開源的,采用其支持的特有腳本語言編寫,易理解、易擴(kuò)展;
它自帶協(xié)議parser比較全面,同時(shí)有一個(gè)開源社區(qū)提供持續(xù)支持;
另外,它也提供API幫助我們開發(fā)自己的網(wǎng)絡(luò)抓包、協(xié)議分析工具。
針對(duì)TDS協(xié)議解析需求:
Network Monitor自帶TDS協(xié)議解析器和UI比較友好
Network Monitor自帶TDS協(xié)議解析器在解析和結(jié)果展示方面更全面,以下是一個(gè)畫面片段,顯示了一個(gè)SQL Batch包。
先了解一下SQLSERVER的加密階段
一共有兩個(gè)階段
在認(rèn)證階段,SQLSERVER會(huì)使用自生成的自簽名證書,加密客戶端發(fā)過來的登陸用戶名和密碼
在數(shù)據(jù)傳輸階段,如果不使用證書,那么數(shù)據(jù)是使用明文在網(wǎng)絡(luò)上進(jìn)行傳送的
大家可以看一下這篇文章:
SQL Server 連接加密 (1) -- SQL Server connection encyption
網(wǎng)上有很多制作證書的教程,但是制作證書都比較麻煩,客戶端和服務(wù)器端都要弄很多東西。
詳細(xì)制作證書的過程可以參考園子里的這篇文章:
在SQL Server 2005 中開啟SSL(圖文結(jié)合)
當(dāng)然這篇文章不是講解這個(gè)network monitor抓包工具的,所以輕輕帶過就算了
那么,不制作證書怎么加密傳輸?shù)臄?shù)據(jù)啊????
答案就是:同樣使用在認(rèn)證階段的自生成的自簽名證書
詳細(xì)步驟:
步驟1:在SQLSERVER服務(wù)器端這邊設(shè)置強(qiáng)行加密
步驟2:重啟SQLSERVER,只有重啟SQLSERVER設(shè)置才能生效
步驟3:打開network monitor,新建一個(gè)capture
步驟4:?jiǎn)?dòng)capture,開始捕獲
步驟5:在客戶端這邊連上服務(wù)器端的SQLSERVER,然后你會(huì)在network monitor里的看到SSMS這個(gè)進(jìn)程已經(jīng)出現(xiàn)在Network Conversations窗口
步驟6:選中他,你會(huì)在Frame Summary窗口看到幀信息
步驟7:如果你在服務(wù)器端開啟了“強(qiáng)行加密”,那么收到的數(shù)據(jù)包都會(huì)是加密的
大家在Protocol Name這一欄看到的是TLS協(xié)議,而不會(huì)是TDS協(xié)議
步驟8:查看幀數(shù)據(jù)
步驟9:如果沒有加密的明文數(shù)據(jù),network monitor就能夠查看出來,并且Protocol Name這一欄顯示的是TDS協(xié)議,因?yàn)閿?shù)據(jù)包并沒有使用TLS協(xié)議進(jìn)行封裝
TIPS:當(dāng)關(guān)閉了SSMS的查詢窗口之后,連接還是存在的
很多人會(huì)問,關(guān)閉了連接,怎么連接還存在,客戶端為什么還會(huì)跟服務(wù)器端進(jìn)行通信?????
實(shí)際上,這個(gè)是客戶端的連接池機(jī)制,客戶端不斷發(fā)送keep alive數(shù)據(jù)包給服務(wù)器,下次有同樣的連接進(jìn)行重用了,不需要再進(jìn)行三次握手o(∩_∩)o
總結(jié)
本人介紹了不使用制作證書的方式來對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行加密的方法,實(shí)際上設(shè)置客戶端而不設(shè)置服務(wù)器端也是可以的
不過設(shè)置客戶端比較麻煩,還需要在連接字符串里加上encrypt屬性設(shè)置為Yes
設(shè)置服務(wù)器端和設(shè)置客戶端的加密的區(qū)別
服務(wù)器端:所有的連接都是加密的
客戶端:只是設(shè)置了加密的那個(gè)連接是加密的,其他沒有設(shè)置加密的連接依然是明文傳輸數(shù)據(jù)
當(dāng)然,使用SQLSERVER自生成的證書安全性是不及自己制作的證書的安全性高!!
相關(guān)連接:
加密與 SQL Server 的連接
使用自簽名證書加密的 SSL 連接不提供強(qiáng)安全性。它們?nèi)菀自趥鬏斨型臼艿焦簟T谏a(chǎn)環(huán)境中或在連接到 Internet 的服務(wù)器上,不應(yīng)依賴使用自簽名證書的 SSL。
始終要對(duì)客戶端應(yīng)用程序與 SQL Server
連接時(shí)傳輸?shù)膽{據(jù)(在登錄數(shù)據(jù)包中)進(jìn)行加密。SQL Server
將使用可信證書頒發(fā)機(jī)構(gòu)頒發(fā)的證書(如果可用)。如果未安裝可信證書,則在啟動(dòng)實(shí)例時(shí) SQL Server
將生成自簽名證書,并使用自簽名證書對(duì)憑據(jù)進(jìn)行加密。自簽名證書有助于提高安全性,但它不提供針對(duì)通過服務(wù)器進(jìn)行的身份欺騙的保護(hù)。如果使用自簽名證書,
并且 ForceEncryption 選項(xiàng)的值設(shè)置為“是”,則將使用自簽名證書對(duì)通過網(wǎng)絡(luò)在 SQL Server
和客戶端應(yīng)用程序之間傳輸?shù)乃袛?shù)據(jù)進(jìn)行加密
前言
SQL Server 2000從上市到現(xiàn)在已經(jīng)整整五個(gè)年頭。現(xiàn)在望眼欲穿的SQL Server 2005 終于發(fā)布了。五年磨一劍,SQLServer 2005 將是微軟具有里程碑性質(zhì)的企業(yè)級(jí)數(shù)據(jù)庫產(chǎn)品。本文從用戶關(guān)心的技術(shù)要點(diǎn)出發(fā)比較和討論SQL Server 2005 相對(duì)它的前版本SQL Server 2000所做的重大改進(jìn)或新增功能,介紹了SQL Server 2005 中最值得你為之升級(jí)的10 個(gè)理由。無論你是想了解或?qū)W習(xí)SQL Server 2005,還是正在評(píng)估或考慮升級(jí)到SQL Server 2005,本文都將對(duì)您有很好的參考作用。
升級(jí)理由一:數(shù)據(jù)分區(qū)
只有到了2005 版本SQL Server才擁有了真正的表和索引數(shù)據(jù)分區(qū)技術(shù)。這個(gè)技術(shù)一下子使SQL Server數(shù)據(jù)庫從“青壯年”成長(zhǎng)為成熟的企業(yè)級(jí)數(shù)據(jù)庫產(chǎn)品,是一個(gè)里程碑性質(zhì)的標(biāo)志。數(shù)據(jù)分區(qū)技術(shù)極大加強(qiáng)了表的可伸縮性和可管理性,使得 SQLServer 處理海量數(shù)據(jù)的能力有了質(zhì)的飛躍,是我認(rèn)為最值得升級(jí)的一個(gè)理由。
數(shù)據(jù)庫隨著硬件和業(yè)務(wù)的發(fā)展變得越來越大。五年前大多數(shù)數(shù)據(jù)庫還不過是十幾個(gè)GB大小,很少超過TB級(jí)別的。現(xiàn)在幾百個(gè)GB大小的數(shù)據(jù)庫系統(tǒng)隨處可見。如果沒有數(shù)據(jù)分區(qū)技術(shù)而想對(duì)大數(shù)據(jù)庫進(jìn)行高效管理是很困難的。SQL Server 2005以前版本的一個(gè)問題是隨著時(shí)間的推移數(shù)據(jù)庫越來越大,備份需要的空間越來越多,如何處理數(shù)據(jù)庫中的歷史數(shù)據(jù)是很棘手的事情。有些客戶可能會(huì)使用 DELETE語句定期定量刪除大表中的歷史記錄,如在每個(gè)周末備份數(shù)據(jù)庫后刪除一個(gè)星期以前的所有數(shù)據(jù)。但是如果表有上千萬行十幾個(gè)GB 大小,那么使用DELETE語句刪除數(shù)據(jù)庫中上萬行或高達(dá)20%數(shù)據(jù)的話,其性能很差。如果是在7 × 24小時(shí)運(yùn)行的聯(lián)機(jī)系統(tǒng)做這樣的數(shù)據(jù)維護(hù)操作那么還會(huì)引起比較嚴(yán)重的阻塞問題。另外有些客戶針對(duì)這個(gè)問題直接在方案設(shè)計(jì)上下功夫,比如按照年份月份星期設(shè)計(jì)表,然后定期把一些過時(shí)的歷史數(shù)據(jù)表(注意是“表”)備份并DROP掉,使得數(shù)據(jù)庫大小以及系統(tǒng)性能都能保持相對(duì)穩(wěn)定。但是這種方法有一個(gè)弊端,即應(yīng)用程序必須做相應(yīng)的配合根據(jù)不同的時(shí)間訪問對(duì)應(yīng)的表,增加了數(shù)據(jù)庫管理以及數(shù)據(jù)庫訪問邏輯的復(fù)雜性。
大表還容易帶來性能問題。你也許會(huì)想到SQL Server 2000中的本地分區(qū)視圖或分布式分區(qū)視圖技術(shù)。是的,SQL Server2000 中的確已經(jīng)有分區(qū)視圖的概念,從SQL Server 7.0開始就有了。可惜分區(qū)視圖的一個(gè)令人討厭的地方是其管理、設(shè)計(jì)和開發(fā)比較困難,特別是分布式分區(qū)視圖。如如何更新分布式視圖就是個(gè)難題。所以盡管一個(gè)設(shè)計(jì)良好的分區(qū)視圖系統(tǒng)會(huì)有很不錯(cuò)的性能改善,卻因?yàn)榉爆嵉呐渲茫芾砗烷_發(fā)使得其沒有在實(shí)際中得到充分應(yīng)用。
現(xiàn)在,SQL Server 2005 引入了真正的數(shù)據(jù)水平分區(qū)技術(shù),上面討論的數(shù)據(jù)庫增長(zhǎng)問題和性能問題就迎刃而解。這個(gè)進(jìn)步絕對(duì)不是一小步。數(shù)據(jù)庫的大小不再是個(gè)問題。你可以根據(jù)字段值的范圍將表和索引劃分為多個(gè)分區(qū)從而可以輕松管理一個(gè)幾個(gè)TB大小的數(shù)據(jù)庫系統(tǒng)。無論數(shù)據(jù)如何增長(zhǎng),你都可以使用分區(qū)技術(shù)使得數(shù)據(jù)庫大小保持相對(duì)穩(wěn)定。其中特別值得稱贊的地方是SQL Server 2005 中分區(qū)的管理和使用非常簡(jiǎn)單。分區(qū)的刪除,添加,拆分、合并和移動(dòng),以及分區(qū)的數(shù)據(jù)裝載等管理都非常容易。你可以對(duì)單獨(dú)的分區(qū)進(jìn)行維護(hù)而不是整個(gè)表。如果你需要大量裝載數(shù)據(jù),那么你可以先把數(shù)據(jù)并行的裝入到一個(gè)新分區(qū)當(dāng)中,建立索引,然后把該分區(qū)合并到當(dāng)前分區(qū)中來。這個(gè)動(dòng)作需要的時(shí)間極短。如果你需要?jiǎng)h除歷史數(shù)據(jù),假設(shè)你已經(jīng)設(shè)計(jì)好了歷史數(shù)據(jù)分區(qū),那么你僅僅需要把該分區(qū)移除即可,幾乎可以一瞬間完成。分區(qū)也使得大型表的并發(fā)訪問性能得到改善,特別是有多個(gè)CPU的數(shù)據(jù)庫系統(tǒng)。那些需要交叉訪問大量數(shù)據(jù)的查詢將從分區(qū)技術(shù)中獲益不少。
升級(jí)理由二:可編程性
CLR 集成
SQL Server 2005的可編程性是值得升級(jí)的第二個(gè)重要理由。從來沒有哪一個(gè)版本能像SQL Server 2005 這樣帶來這么多編程方面的變革。說老實(shí)話,在我知道的瞬間我是驚呆了。有些變化是革命性的。如CLR(Common Language Runtime,公共語言運(yùn)行時(shí))集成。就先說說CLR集成。CLR集成是指你可以使用任何一種.NET 語言編寫SQL Server 2005 的存儲(chǔ)過程,觸發(fā)器,函數(shù),自定義類型,甚至是自定義的聚合函數(shù)。估計(jì)不少數(shù)據(jù)庫軟件開發(fā)商會(huì)為這個(gè)功能歡呼雀躍。想想以前的擴(kuò)展存儲(chǔ)過程,編程非常不容易。代碼中一不小心就會(huì)引起內(nèi)存泄漏。而且由于擴(kuò)展存儲(chǔ)過程運(yùn)行在SQL Server 的進(jìn)程空間中,不好的代碼容易引起訪問違規(guī)(Access Violation)導(dǎo)致SQLServer 異常。
現(xiàn)在有了CLR 集成,你可以輕松利用.NET語言的優(yōu)勢(shì)如其面向?qū)ο蟮姆庋b、繼承和多態(tài)特性,編寫出那些需要對(duì)數(shù)據(jù)進(jìn)行復(fù)雜數(shù)值計(jì)算或邏輯的代碼,如字符串處理,數(shù)據(jù)加密算法,XML數(shù)據(jù)操作等等。由于CLR代碼宿于SQL Server進(jìn)程,你可以非常容易訪問數(shù)據(jù)庫中的數(shù)據(jù)。有了CLR,你不再局限于T-SQL,你現(xiàn)在立即擁有了.NET 框架類庫提供的各種各樣的類和例程,以及.NET語言提供的一致的編程模型,如錯(cuò)誤處理。展現(xiàn)在你面前的是一個(gè)可以無限擴(kuò)展的編程空間。你現(xiàn)在需要的僅僅是考慮什么時(shí)候使用T-SQL 語言,什么時(shí)候使用CLR。我猜測(cè)那些SQL Server軟件開發(fā)商幾乎會(huì)立即升級(jí)到SQLServer 2005 享受數(shù)據(jù)庫編程的便捷。
T-SQL 語言增強(qiáng)
SQL Server 2005 中的T-SQL語言有了非常大的改進(jìn)。其中筆者最為稱道的是現(xiàn)在可以使用和C++或C#類似的TRYCATCH結(jié)構(gòu)對(duì)T-SQL 進(jìn)行錯(cuò)誤處理了,大大簡(jiǎn)化了T-SQL錯(cuò)誤處理編程。SQL Server 2005以前的版本通過設(shè)置@@error變量表示最后的T-SQL 語句執(zhí)行成功與否。為避免@@error變量被新執(zhí)行的語句重置,你必須為每一條可能出錯(cuò)的TSQL語句后面立即檢查或保存@@error變量的值,并使用相應(yīng)的G O T O 語句進(jìn)行跳轉(zhuǎn),使得代碼變得復(fù)雜難讀。現(xiàn)在SQLServer 2005 有了TRY-CATCH結(jié)構(gòu)你只需要把相關(guān)的一組語句放在TRY塊里面即可。如果TRY塊里面任何語句發(fā)生錯(cuò)誤,就會(huì)執(zhí)行相應(yīng)的CATCH 塊。你甚至可以使用嵌套的TRYCATCH來實(shí)現(xiàn)復(fù)雜錯(cuò)誤處理流程。估計(jì)很多T-SQL語言使用者可能就為了這個(gè)TRY-CATCH 結(jié)構(gòu)而迫不及待地升級(jí)到SQL Server 2005。
除了傳統(tǒng)的DML(INSERT/UPDATE/DELETE)觸發(fā)器,SQL Server 2005 現(xiàn)在也可以對(duì)DDL 語言(CREATE、ALTER或DROP 開頭的語句)創(chuàng)建觸發(fā)器了。這對(duì)于那些需要對(duì)DDL語言執(zhí)行管理任務(wù)如審核以及規(guī)范數(shù)據(jù)庫操作的用戶特別有用。以前很多客戶問我如何跟蹤或避免表的刪除操作,現(xiàn)在終于有了答案。你可以簡(jiǎn)單建立一個(gè)針對(duì)DROP 語句的觸發(fā)器然后在觸發(fā)器里面ROLLBACK 事務(wù)就可以回滾DROP 動(dòng)作了。
SQL Server 2005 T-SQL 中還有一個(gè)很酷的OUTPUT 子句。現(xiàn)在你不費(fèi)吹灰之力就可以獲得INSERT 、UPDATE 或DELETE語句所影響的每行的信息。對(duì)于在INSERT或UPDATE操作之后需要檢索標(biāo)識(shí)列或計(jì)算列的值的場(chǎng)合OUTPUT子句非常有用。如獲得數(shù)據(jù)INSERT 后該行的Identity的值,產(chǎn)生一些唯一流水號(hào),驗(yàn)證剛剛插入的數(shù)據(jù)等等。一個(gè)有趣的例子是Identity值的取得。在SQL Server 2000 中你可以在INSERT 語句后立即調(diào)用IDENT_CURRENT()或SCOPE_IDENTITY()函數(shù)來得到INSERT 語句的Identity。現(xiàn)在你僅僅需要在INSERT 語句中指定output子句就直接得到剛剛插入的Identity值,實(shí)在太簡(jiǎn)單了,不是嗎?
SQL Server 2005 中T-SQL 語言新增或加強(qiáng)的功能還有很多。如SQL Server 2005 新增加了一類排名函數(shù)RANK/DENSE_RANK/NTILE/ROW_NUMBER,輕松解決了開發(fā)者要求返回?cái)?shù)據(jù)行中提供行號(hào)等排序功能。新增的 P I V O T 和UNPIVOT運(yùn)算符使得對(duì)結(jié)果集進(jìn)行行和列的旋轉(zhuǎn)變換十分簡(jiǎn)單。公用表表達(dá)式(CTE)解決了T-SQL語言的遞歸查詢問題,而使用 OPENROWSET 語句現(xiàn)在可以直接從文件里面執(zhí)行大容量操作了。我覺得每一個(gè)改進(jìn)都是那么有針對(duì)性,以至于使我相信這些T-SQL增強(qiáng)必定是SQL Server開發(fā)小組真正聆聽數(shù)據(jù)庫開發(fā)者心聲的結(jié)果。
升級(jí)理由三:安全
SQL Server 2005 的安全功能是我認(rèn)為值得升級(jí)的第三個(gè)理由。SQL Server 2005 的安全達(dá)到了前所未有的強(qiáng)大水平,有著比以前版本更清晰的安全模型即主體,安全對(duì)象和權(quán)限。在SQLServer 2000 中是用服務(wù)器級(jí)權(quán)限、數(shù)據(jù)庫角色和數(shù)據(jù)用戶權(quán)限的混合方式管理權(quán)限。而SQL Server 2005 統(tǒng)一使用GRANT語句管理主體對(duì)安全對(duì)象的權(quán)限,簡(jiǎn)化了安全管理。其中我認(rèn)為最大的改進(jìn)是用戶和架構(gòu)(schema)分離。在SQL Server 2000中如果用戶不是DBO 且擁有對(duì)象,那么移除該用戶將是很麻煩的事情。你需要首先使用sp_changeobjectowner改變?cè)撚脩魮碛械膶?duì)象所有權(quán),然后把所有引用該對(duì)象的代碼做相應(yīng)的修改。而在SQL Server 2005 中就不需要這樣麻煩了,因?yàn)楝F(xiàn)在用戶不再擁有對(duì)象。擁有對(duì)象的是schema 而不是用戶。數(shù)據(jù)庫中的所有對(duì)象都屬于某個(gè)schema。對(duì)象的完整名字是server.database.schema.object,符合SQL- 99 標(biāo)準(zhǔn),而不是以前的server.database.user.object 方式。刪除用戶僅需要改變schema的owner就可以了。不需要修改任何已存在的數(shù)據(jù)庫訪問代碼,真的很方便。用戶和架構(gòu)分離還有一個(gè)好處就是對(duì)象的權(quán)限管理變得簡(jiǎn)單。你可以把某些對(duì)象集中于某個(gè)架構(gòu)里面,然后對(duì)該架構(gòu)設(shè)置權(quán)限,那么架構(gòu)里面的所有對(duì)象就自動(dòng)繼承了同樣的權(quán)限。
如果你需要保護(hù)數(shù)據(jù)庫中的敏感數(shù)據(jù),那么SQL Server2005 中的數(shù)據(jù)加密功能絕對(duì)值得考慮。以前不止一次有客戶問我如何加密數(shù)據(jù)庫中的某些數(shù)據(jù),是否可以使用一些內(nèi)部不公開的函數(shù)如PWDENCRYPT加密數(shù)據(jù)。我的回答是使用Windows的EFS(加密文件系統(tǒng))功能加密數(shù)據(jù)庫文件或在應(yīng)用程序?qū)訉?duì)數(shù)據(jù)加密后再存儲(chǔ)。現(xiàn)在用戶期盼已久的數(shù)據(jù)加密功能終于在 SQL Server 2005 中得到實(shí)現(xiàn),那些有機(jī)密數(shù)據(jù)需要保護(hù)的用戶值得高興了。SQL Server 2005不是簡(jiǎn)單的提供一些加密函數(shù),而是把市場(chǎng)上已經(jīng)成熟的數(shù)據(jù)安全技術(shù)引進(jìn)到數(shù)據(jù)庫中,有一個(gè)清晰的加密層次結(jié)構(gòu)。SQL Server 2005 支持證書(certificate),非對(duì)稱密鑰和對(duì)稱密鑰算法,一是防止敏感數(shù)據(jù)被泄漏,二是防止數(shù)據(jù)被篡改。對(duì)稱密鑰支持RC4,RC2, TripleDES 和AES算法,而非對(duì)稱密鑰使用RSA 算法。證書其實(shí)就是非對(duì)稱密鑰中公鑰的容器。密鑰管理是安全中比較弱的部分。SQL Server 2005 每一層都使用證書、非對(duì)稱密鑰和對(duì)稱密鑰的組合對(duì)它下面的一層進(jìn)行加密,提高了密鑰安全性。出于性能考慮,一般不用加密強(qiáng)度大的非對(duì)稱密鑰或證書直接加密數(shù)據(jù),而是使用對(duì)稱密鑰加密數(shù)據(jù)獲得較快的性能,然后使用證書或非對(duì)稱密鑰加密對(duì)稱密鑰。
升級(jí)理由四:快照隔離
你還在為系統(tǒng)出現(xiàn)的阻塞(blocking)或死鎖(deadlock)現(xiàn)象苦惱嗎?快試試SQL Server 2005 中的快照隔離吧。通過行版本(row versioning)控制技術(shù),SQL Server 2005 除了原來支持的四種事務(wù)隔離級(jí)別(臟讀、提交讀、可重復(fù)讀、可串行讀)外新增了一個(gè)快照(SNAPSHOT)隔離級(jí)別,有可能使阻塞或死鎖成為歷史。 SQL Server在TEMPDB中存放不同版本的數(shù)據(jù)行,select 語句讀取這些不同版本的行,讀操作不阻塞寫數(shù)據(jù),寫操作也不阻塞讀操作,這樣那些由于讀/ 寫爭(zhēng)用導(dǎo)致的大量死鎖的系統(tǒng)將從中獲得無窮益處。如果你的系統(tǒng)復(fù)雜難優(yōu)化,那么升級(jí)到SQL Server 2005 試試快照隔離級(jí)別,也許會(huì)有意想不到的效果。
SQL Server 2005中的快照隔離可細(xì)分為兩種即READ_COMMITTED_SNAPSHOT和ALLOW_SNAPSHOT_ISOLATION。建議大家多使用前者,因?yàn)橐烟峤蛔x隔離可用于大多數(shù)現(xiàn)有應(yīng)用程序,而不需要進(jìn)行任何更改,其占用的TEMPDB空間也少。可以預(yù)見如果使用快照隔離級(jí)別,那么需要特別關(guān)注TEMPDB的大小和性能。你也許需要把TEMPDB放在有足夠空間的單獨(dú)磁盤上以提高性能。
考慮到快照隔離在避免阻塞和死鎖方面的作用,我把它作為升級(jí)的第四個(gè)理由。
升級(jí)理由五:數(shù)據(jù)庫鏡像
對(duì)于那些要求高可用性的用戶來說,數(shù)據(jù)庫鏡像也許是考慮升級(jí)的唯一理由。SQL Server 2005的前版本在高可用性方面提供了故障轉(zhuǎn)移群集(Failover Cluster)和Log shipping方案。群集方案的一個(gè)好處是在一臺(tái)機(jī)器發(fā)生問題時(shí)它可以提供極快的故障轉(zhuǎn)移能力,在備份服務(wù)器上聯(lián)機(jī)數(shù)據(jù)庫,應(yīng)用程序只需重新連接即可。群集方案的一個(gè)缺點(diǎn)是數(shù)據(jù)庫放在共享盤上,有單點(diǎn)失效這個(gè)缺點(diǎn),一旦共享盤失敗將導(dǎo)致整個(gè)系統(tǒng)崩潰。所以群集方案一般都要結(jié)合嚴(yán)緊的備份方案一起使用。而 logshipping系統(tǒng)有一個(gè)時(shí)間上的延遲,且如果日志備份很大,傳送速度也是個(gè)問題。SQL Server 2005引入的數(shù)據(jù)庫鏡像可作為故障轉(zhuǎn)移群集或Log shipping 的替代或補(bǔ)充方案來提高數(shù)據(jù)庫的高可用性。鏡像的主要優(yōu)點(diǎn)是它比前兩者更容易管理,沒有群集的單點(diǎn)失效缺點(diǎn),也沒有l(wèi)og shipping 的時(shí)間延遲。鏡像服務(wù)器可以放在很遠(yuǎn)的地方,提高了作為備份服務(wù)器的高可用性。
數(shù)據(jù)庫鏡像需要兩臺(tái)或三臺(tái)服務(wù)器。主服務(wù)器通過傳送事務(wù)日志中的每個(gè)事務(wù)到鏡像服務(wù)器來進(jìn)行數(shù)據(jù)同步。每當(dāng)數(shù)據(jù)庫commit一個(gè)事務(wù),該事務(wù)就會(huì)被同步到鏡像服務(wù)器。如果事務(wù)安全設(shè)置為FULL,傳送操作將為同步操作。同步操作可以確保將提交的事務(wù)提交給兩個(gè)服務(wù)器,但可能會(huì)增加事務(wù)提交的時(shí)間。如果事務(wù)安全設(shè)置為OFF,操作將為異步操作。事務(wù)會(huì)在不等待鏡像服務(wù)器的情況下提交,這將不影響主服務(wù)器事務(wù)的提交時(shí)間,但不能確保鏡像也提交了該事務(wù),所以在出現(xiàn)故障那一刻有可能有部分日志丟失。對(duì)于需要嚴(yán)格同步數(shù)據(jù)的鏡像系統(tǒng)可以采取同步模式。而僅僅希望有個(gè)備份服務(wù)器又不影響性能的情況下可以使用異步模式(高性能模式)。無論那種模式,一旦主服務(wù)器出現(xiàn)問題,你可以手動(dòng)實(shí)現(xiàn)故障轉(zhuǎn)移或配置系統(tǒng)實(shí)現(xiàn)自動(dòng)故障轉(zhuǎn)移。
升級(jí)理由六:商務(wù)智能BI 增強(qiáng)
SQL Server 2005 對(duì)已經(jīng)有或打算開發(fā)基于SQL Server 的商務(wù)智能方案的用戶吸引力極大。SQL Server 2005中有關(guān)商務(wù)智能方面的增強(qiáng)很多,是升級(jí)的很好理由。首先是傳統(tǒng)的DTS(Data Transformation Services)被新的IS(Integration Services)代替。SQL Server 2000 中的DTS用來在不同服務(wù)器之間轉(zhuǎn)移數(shù)據(jù),但對(duì)于復(fù)雜重復(fù)的工作流DTS倍感吃力。IS重新改寫了DTS的數(shù)據(jù)流引擎,引入提取、轉(zhuǎn)換和加載(ETL)數(shù)據(jù)的新編程體系,將數(shù)據(jù)流與控制流分開,開發(fā)能力大大加強(qiáng),包部署、管理和性能方面也比DTS上了一個(gè)數(shù)量級(jí)。筆者看來,DTS終于從原來的小打小鬧成長(zhǎng)為成熟的IS 數(shù)據(jù)集成服務(wù)體系。
分析服務(wù)(Analysis Services)在SQL Server 2005 中也有很多改進(jìn)。原來沒有profiler想跟蹤分析服務(wù)里面的語句非常痛苦。現(xiàn)在2005 終于支持profiler了。Profiler對(duì)性能調(diào)優(yōu)和排查錯(cuò)誤將非常有用。分析服務(wù)2005 真正具備了實(shí)時(shí)分析能力,新增加了四種數(shù)據(jù)挖掘算法,也支持.NET語言進(jìn)行開發(fā)(如存儲(chǔ)過程等)。至于報(bào)表服務(wù),2005 版本中添加了報(bào)表生成器和模型設(shè)計(jì)器這兩個(gè)新工具,支持報(bào)表拖拉設(shè)計(jì)。2005 的報(bào)表改進(jìn)如新的打印功能、多值參數(shù)等。設(shè)計(jì)過報(bào)表的人員會(huì)深深知道多值參數(shù)的妙處。
另外,無論是IS、報(bào)表服務(wù)等都可以在類似Visual Studio的環(huán)境中開發(fā),任務(wù)完成不過鼠標(biāo)拖拉之間,非常容易上手。
升級(jí)理由七:全文搜索增強(qiáng)
相對(duì)前版本SQL Server 2005中性能提升最多的部分當(dāng)數(shù)全文檢索。SQL Server 2000 中的全文本檢索和SQL Server 7.0中的差別不大,處于能用的水平。在SQL Server 2000中使用全文檢索一個(gè)最大的痛苦是建立全文索引的性能不好,需要的時(shí)間太長(zhǎng),特別是在表很大的情況下。一個(gè)幾千萬行數(shù)據(jù)的表也許需要數(shù)個(gè)小時(shí)到數(shù)天時(shí)間才能完成全文索引的建立。SQL Server 2005全文檢索在開發(fā)的時(shí)候就集中于三點(diǎn):性能,集成,和可擴(kuò)展性。據(jù)開發(fā)小組人員的簡(jiǎn)單測(cè)試,原來在SQL Server 2000中建立全文索引需要14天的表,現(xiàn)在只需要幾個(gè)小時(shí)!幾乎有上百倍的性能提升,只能用“驚異”來形容。其相關(guān)的全文檢索語句也有30%~50%甚至更高的性能提高。性能方面的提高得益于全新設(shè)計(jì)的全文檢索引擎。其中關(guān)鍵的一點(diǎn)設(shè)計(jì)是全文檢索引擎現(xiàn)在使用共享內(nèi)存和SQL Server 進(jìn)行數(shù)據(jù)大規(guī)模并發(fā)交互,而不是原來基于逐行的方式,使得性能上了好幾個(gè)數(shù)量級(jí)。
除了性能,SQL Server 2005 中的全文索引的集成性也大大加強(qiáng)。在SQL Server 2000 中很難對(duì)全文檢索進(jìn)行備份。一旦有數(shù)據(jù)庫恢復(fù)或移動(dòng),你得重新重建索引。對(duì)于幾百個(gè)GB的數(shù)據(jù)庫,重建索引幾乎是不能接受的惡夢(mèng)。現(xiàn)在終于可以和數(shù)據(jù)庫一起備份和恢復(fù)全文索引了。你不再需要在恢復(fù)數(shù)據(jù)庫后重建全文索引了!惡夢(mèng)終于成為歷史。除了可以備份外,你也可以方便的改變?nèi)乃饕拇疟P位置。你甚至可以在一個(gè)熱備機(jī)器上把全文索引建立好,然后copy 這個(gè)索引到生產(chǎn)服務(wù)器上使用。
升級(jí)理由八:可用性功能增強(qiáng)
索引聯(lián)機(jī)操作。除了數(shù)據(jù)庫鏡像,SQL Server 2005 中可用性還有很多其他提高。索引現(xiàn)在可以使用ONLINE關(guān)鍵字進(jìn)行在線建立或重建或刪除了。它的技術(shù)要點(diǎn)是在內(nèi)存里面動(dòng)態(tài)生成索引的另一個(gè)副本從而不影響原來查詢的進(jìn)行。一旦索引副本完成操作即替代原來索引成為當(dāng)前索引。我認(rèn)為索引聯(lián)機(jī)操作的意義是很大的,因?yàn)楹芏鄶?shù)據(jù)庫系統(tǒng)都有定期調(diào)整或維護(hù)索引方面的需求。有了2005 你無需擔(dān)心業(yè)務(wù)的正常運(yùn)行而大膽的對(duì)索引進(jìn)行維護(hù)或修改。
頁校驗(yàn)和。SQL Server 2005中的數(shù)據(jù)庫頁引入校驗(yàn)和增強(qiáng)了數(shù)據(jù)的可靠性。除了原來SQL Server 2000 中已有的TORN_PAGE_DETECTION 外,SQL Server 2005 新增實(shí)現(xiàn)了頁的檢驗(yàn)和(CHECKSUM)。你使用ALTER DATABASE語句的SET PAGE_VERIFY子句即可指定。它的原理是向磁盤中寫入8K數(shù)據(jù)頁面時(shí),SQL Server計(jì)算整個(gè)8K頁面內(nèi)容的校驗(yàn)和并將該值存儲(chǔ)在頁頭中。再次從磁盤中讀取頁時(shí),SQL Server動(dòng)態(tài)計(jì)算讀取到的頁面內(nèi)容的校驗(yàn)和,并與存儲(chǔ)在頁頭中的校驗(yàn)和值進(jìn)行比較。如果不相等則意味著頁面有物理損壞,需要檢查IO硬件。另外設(shè)置檢驗(yàn)和的另一個(gè)好處是還可以在備份和還原操作過程中使用RESTORE VERIFYONLY語句驗(yàn)證每一數(shù)據(jù)頁的完整性從而確認(rèn)備份文件沒有物理損壞。
在線還原。在數(shù)據(jù)庫的某一部分未恢復(fù)前,用戶無法對(duì)該部分進(jìn)行訪問,但可以訪問所有其他數(shù)據(jù)。SQL Server 2000中如果數(shù)據(jù)庫在還原或recovery當(dāng)中,用戶不能訪問數(shù)據(jù)庫。這樣如果數(shù)據(jù)庫很大需要rollback或rollforward的事務(wù)很多的話,recovery的時(shí)間會(huì)出奇的長(zhǎng)。SQL Server 2005 的在線還原功能使得數(shù)據(jù)庫在很短的時(shí)間內(nèi)變得可用。
升級(jí)理由九:復(fù)制增強(qiáng)
SQL Server 2000 中的復(fù)制功能已經(jīng)很好。我這里把復(fù)制作為升級(jí)的一個(gè)理由因?yàn)镾QL Server 2005在原來的基礎(chǔ)上又增添了不少的功能。如peer-to-peer對(duì)等復(fù)制,可以在參與者之間相互進(jìn)行復(fù)制,這樣你可以采用對(duì)等復(fù)制在復(fù)制參與者之間建立某種程度的負(fù)載平衡。合并復(fù)制現(xiàn)在支持通過HTTPS進(jìn)行數(shù)據(jù)同步,可以方便建立基于INTERNET 的復(fù)制。發(fā)布表現(xiàn)在可以使用標(biāo)準(zhǔn)的T-SQL語句如Alter Table等進(jìn)行結(jié)構(gòu)修改然后被復(fù)制而不是僅僅局限于使用sp_repladdcolumn和sp_repldropcolumn存儲(chǔ)過程。在SQL Server 2000 中,僅支持向其他數(shù)據(jù)庫(如DB2或Oracle)發(fā)布數(shù)據(jù),而在SQL Server 2005 中,可將Oracle 數(shù)據(jù)庫直接復(fù)制到SQL Server。可以從備份中初始化事務(wù)性訂閱而不是僅僅局限于從快照對(duì)復(fù)制進(jìn)行初始化,等等……
升級(jí)理由十:異步處理能力
SQL Server 2005 通過引入全新的Service Broker 提供了革命性的異步處理能力。Service Broker提供了一個(gè)功能強(qiáng)大的異步編程模型。它為數(shù)據(jù)庫應(yīng)用程序增加了可靠、可擴(kuò)展、分布式異步功能異步編程,允許程序僅僅在資源可用時(shí)才去執(zhí)行占用大量資源的任務(wù),以此來縮短響應(yīng)時(shí)間,提高吞吐量。在我看來,Broker的最大好處一是異步執(zhí)行能力,提高了可伸縮性,二是可靠執(zhí)行,三是集成于數(shù)據(jù)庫中,備份數(shù)據(jù)庫就備份了broker 的消息隊(duì)列。SQL Server 2005 中的查詢通知就是基于Service Broker的應(yīng)用。你可以使用查詢通知功能來發(fā)送一個(gè)命令到SQL Server請(qǐng)求在查詢結(jié)果發(fā)生變化時(shí)接收SQL Server的通知。這樣就可以只有在程序以前檢索的結(jié)果發(fā)生變化時(shí),才需要重新查詢數(shù)據(jù)庫。一個(gè)可以預(yù)見的應(yīng)用是在使用緩存的Web 站點(diǎn)中。Web站點(diǎn)首先發(fā)送語句到數(shù)據(jù)庫服務(wù)器,獲得數(shù)據(jù),緩存到本地,然后只有在收到查詢通知的時(shí)候才清理緩存,重新查詢數(shù)據(jù)。這個(gè)機(jī)制避免了重復(fù)輪詢 SQL Server,大大減輕了服務(wù)器的負(fù)載,也提高了Web 站點(diǎn)的伸縮性。
因?yàn)镾QL Server 2005 的Service Broker帶來了數(shù)據(jù)庫編程異步處理能力的革命,我把它作為升級(jí)的第十個(gè)理由。
去網(wǎng)上找找吧,這類的介紹很好找的
全國(guó)計(jì)算機(jī)等級(jí)考試四級(jí)數(shù)據(jù)庫工程師(sql)
mcts:sqlserver(微軟認(rèn)證數(shù)據(jù)庫管理員)證書
oracle系列:oracle
ocm
oracle
ocp認(rèn)證數(shù)據(jù)庫專家
oracle
oca
db2認(rèn)證
等等,各種各樣的,可以根據(jù)自己的專業(yè)學(xué)科和興趣愛好來選擇
1、Windows身份驗(yàn)證和SQL身份驗(yàn)證都是數(shù)據(jù)庫身份驗(yàn)證的一種,身份驗(yàn)證是用以識(shí)別數(shù)據(jù)的操作者身份。不管使用哪種身份驗(yàn)證,只要具有數(shù)據(jù)庫或表的相關(guān)權(quán)限,那么均可以對(duì)數(shù)據(jù)庫及表進(jìn)行相關(guān)的權(quán)限范圍之內(nèi)的增刪查改的操作,所操作后的數(shù)據(jù)都是相互影響;
2、Windows身份驗(yàn)證和SQL身份驗(yàn)證的區(qū)別不是權(quán)限,因?yàn)椴还苁荳indows用戶(包括服務(wù)器本地用戶及活動(dòng)目錄用戶)還是SQL用戶,都需要在SQL管理器中進(jìn)行授予權(quán)限后,才能在權(quán)限范圍之內(nèi)操作。樓上所說的windows用戶登錄默認(rèn)windows管理員為數(shù)據(jù)庫的管理員,這種說法是錯(cuò)誤的,SQL2008在安裝時(shí),會(huì)讓你添加至少一個(gè)SQL管理員,一般來說都會(huì)添加當(dāng)前的Windows用戶為默認(rèn)的數(shù)據(jù)庫管理員,當(dāng)然也可以添加其它任何Windows用戶作為數(shù)據(jù)庫管理員(并不是Windows管理員就會(huì)是數(shù)據(jù)庫管理員),在此也可以決定是否啟用SQL身份驗(yàn)證,如果啟用,那么則需要為SQL用戶SA設(shè)置一個(gè)密碼。
那么區(qū)別在于,一個(gè)使用SQL單獨(dú)用戶,一個(gè)使用Windows用戶,使用Windows用戶可以極大的方便管理員的管理,統(tǒng)一用戶身份驗(yàn)證(一般使用活動(dòng)目錄用戶,在實(shí)踐環(huán)境中,一般企業(yè)都會(huì)有自己的活動(dòng)目錄,如果使用SQL用戶的話,管理員則需要記憶和維護(hù)兩套用戶名及密碼,在這種情況下就會(huì)使用Windows用戶,SQL可以直接調(diào)用Windows用戶并授予數(shù)據(jù)庫及表相關(guān)權(quán)限。那么在有權(quán)限的情況下,管理員可以直接使用自己的域用戶來登陸連接SQL數(shù)據(jù)庫)
3、只要有相關(guān)的權(quán)限,所登陸到的數(shù)據(jù)當(dāng)然是一樣,前面已經(jīng)說過,身份驗(yàn)證是用以識(shí)別數(shù)據(jù)的操作者身份,那么不管以何種身份登陸,只要具有相關(guān)權(quán)限,那么均可以對(duì)數(shù)據(jù)庫及表進(jìn)行相關(guān)的權(quán)限范圍之內(nèi)的增刪查改的操作。
核心考試I:SQL Server管理。微軟目前針對(duì)SQL Server 2000只提供70-228考試。這門考試主旨在于測(cè)試考生對(duì)于數(shù)據(jù)庫管理和解決數(shù)據(jù)庫管理相關(guān)問題的能力。
如果你覺得自己已經(jīng)胸有成竹了 ?,可以試一下70-228 Practice Exam。如果你覺得還需要再準(zhǔn)備一下,那么可以嘗試一下Transcender practice ? tests。這些測(cè)試跟真題非常相似。
核心考試II:SQL Server設(shè)計(jì)。考生需要通過70-229考試,主要是測(cè)試考試成功設(shè)計(jì)并執(zhí)行SQL Server數(shù)據(jù)庫方案的能力。
核心考試III:網(wǎng)絡(luò)系統(tǒng)。要達(dá)到這個(gè)要求,可以選擇通過以下三門考試中任何一門。首先是70-215考試,這 ?門考試主要測(cè)試考生安裝、配置和執(zhí)行管理Microsoft Windows 2000 Server的能力。
如果你使用的是Windows ? 2003,你可以選擇通過測(cè)試管理和維護(hù)Microsoft Windows Server 2003環(huán)境的70-290考試,或者測(cè)試安裝、配置和執(zhí)行管理Microsoft Windows 2003 Server網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)的70-291考試。 ?
可選考試:考生可以從下面的考試中選出自己需要的MCDBA考試。這些考試覆蓋面廣,包含了許多應(yīng)用程序開發(fā) ?技術(shù)、數(shù)據(jù)入庫技巧和網(wǎng)絡(luò)設(shè)計(jì)基礎(chǔ)知識(shí)。目前可供選擇的考試包括: ?
70-216考試:執(zhí)行和管理Microsoft Windows 2000 網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu) ?
70-293考試:策劃和維護(hù)Microsoft Windows 2003 網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu) ?
70-528考試:Microsoft NET Framework 2.0 — 網(wǎng)絡(luò)系統(tǒng)客戶開發(fā) ?
70-526考試:Microsoft .NET Framework 2.0 — 桌面系統(tǒng)客戶開發(fā) ?
70-529考試:Microsoft .NET Framework 2.0 — 分布式應(yīng)用系統(tǒng)開發(fā) ?
70-305考試:運(yùn)用Microsoft Visual Basic .NET 和Microsoft Visual Studio .NET 開發(fā)和執(zhí)行Web應(yīng)用系統(tǒng) ?
70-306考試:運(yùn)用Microsoft Visual Basic .NET和Microsoft Visual Studio .NET開發(fā)和執(zhí)行桌面應(yīng)用系統(tǒng) ?
70-310考試:運(yùn)用Microsoft Visual Basic .NET和Microsoft .NET Framework 開發(fā)XML Web Services 和 ?Server Components ?
70-315考試:運(yùn)用Microsoft Visual C# .NET和Microsoft Visual Studio .NET開發(fā)和執(zhí)行Web應(yīng)用系統(tǒng) ?
70-316考試:運(yùn)用Microsoft Visual C# .NET和Microsoft Visual Studio .NET開發(fā)和執(zhí)行桌面應(yīng)用系統(tǒng) ?
70-320考試:運(yùn)用Microsoft Visual C# 和Microsoft .NET Framework開發(fā)XML Web Services和Server 組件,?一定要注意的是MCDBA考試跟其他微軟認(rèn)證考試有一定的重疊,包括Microsoft認(rèn)證系統(tǒng)管理員(MCSA)、 ?Microsoft認(rèn)證系統(tǒng)工程師(MCSE)和Microsoft認(rèn)證解決方案開發(fā)專家(MCSD)。
如果你正在考慮以后要通過以上認(rèn)證 ?,你就應(yīng)該認(rèn)真地考慮如何選擇你的MCDBA考試了。
因?yàn)橥ㄟ^的同一門考試可以作為多個(gè)認(rèn)證的資格考試,認(rèn)真挑 選你要通過的考試可以既省錢也省時(shí)間。
網(wǎng)站題目:sqlserver證書查詢,Sql證書
文章轉(zhuǎn)載:http://www.chinadenli.net/article26/dsdghjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站排名、品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、網(wǎng)頁設(shè)計(jì)公司、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)