SQL Server專家的十個秘密

來源:互聯網
上載者:User

過去數年來,許多公司紛紛精簡了其 IT 部門。很多資料庫管理員 (DBA) 不得不承擔大量的 SQL Server 資料庫管理工作。更糟糕的是,經常並沒有真正意義上的 DBA,而是隨便找個人來充任。而且有時候,DBA 純粹成了救火隊員,在不斷湧現的危機之間疲於奔命。這樣惡劣的環境是不正常的,也難以持久。沒有人願意處於這種持續壓力和幹擾之下。

擺脫這種境況的一個方法是花點功夫來簡化您的 SQL Server 環境,使之更易於理解和管理。我根據擔任 SQL Server 顧問的實際經驗總結出了以下十種方式,可以協助 SQL Server DBA 提高對環境的控制力,並減少發生危機的可能性。這些方式按大致的重要程度列出,越往後越重要。

10. 編製清單

有多少次當您被要求還原受損的資料庫資料時,您甚至不知道這些資料的存在?SQL Server 資料庫很容易在公司內泛濫。DBA 團隊可能不知道資料庫中哪些資料不在了,從而失去對 SQL Server 執行個體的控制。這樣一來,未進行備份、修補的資料庫可能無法採取恰當的保護,並錯失其他很多必要的管理工作。

因此,當務之急是掌握您可控的公司執行個體和資料庫最新清單。這是有效管理它們、必要時進行合并,並正確劃定範圍和規劃項目及升級的唯一途徑。編製清單還可以協助您在與公司內各個團隊協商之後,通過公布您負責的已知執行個體列表來明確您的職責。您可以擬定已知執行個體的支援策略,並要求新執行個體嚴格遵守您的配置準則,否則將不予支援。

有許多工具可以協助您建立 SQL Server 清單,例如,像 SQLPing3 和 SQLRecon 這樣的簡單工具、Microsoft 評估和計劃工具包和 Quest Discovery 嚮導等。

9. 標準化配置

如果您負責的資料庫和 SQL 執行個體數量在不斷增長,您會發現不同配置的數量也在以類似的方式增長。如果您不得不記住不同執行個體的配置細節,那麼很難在面對不同執行個體時取得高效。

解決方案是儘可能標準化配置資訊,如磁碟機代號、伺服器配置選項、資料庫設定、資料庫維護、安全設定等等。SQL Server 2008 中引入了原則式管理功能,可協助定義和實施策略。此外,Microsoft 的 SQL Server 技術專家 Lara Rubbelke 開發出了企業策略管理 (EPM) 架構,可輕鬆擴充到 SQL Server 2005 和 SQL Server 2000 執行個體上。您可以從 CodePlex 擷取該 EPM 架構。圖 1 顯示了一個 EPM 架構報告樣本。

圖 1 企業策略管理架構報告

8. 瞭解 I/O 子系統

有幾個與 I/O 子系統有關的因素會對 SQL Server 執行個體造成影響。您需要認識到這些因素及其可能的影響:

I/O 子系統的讀/寫輸送量和磁碟空間容量。必須能滿足工作負載峰值要求,並能在您不得不為增長的資料量購買更多容量之前提供足夠的空間。您可以確定 I/O 瓶頸並將資料和/或記錄檔移至 I/O 子系統的其他部分,從而更均勻地平衡負載。

I/O 子系統的 RAID 層級冗餘能力以及能否執行諸如分割鏡像備份的操作和任何形式的鏡像/複製在 I/O 子系統層面,而非 SQL Server 層面)。保護好資料和記錄檔,避免因磁碟機故障和其他潛在問題而遭受損失是很重要的。但這往往要進行折衷 - RAID-10 的冗餘能力勝過 RAID-5,價格也更昂貴。有關詳細指南,請參見白皮書“物理資料庫儲存設計”。

I/O 子系統的 RAID 條帶大小、NTFS 配置單位/簇大小和分區對齊是否配置正確。有關詳細資料,請查看我的部落格文章“Are your disk partition offsets, RAID stripe sizes, and NTFS allocation units set correctly?您的磁碟分割位移量、RAID 條帶大小和 NTFS 配置單位設定是否正確?)”。

7. 建立自訂維護計劃

我在教授資料庫維護課程時,總是以“你不能只是把資料庫付諸生產,然後聽之任之”作為開頭語。索引會隨時間變得越來越零碎,從而導致效能降低。統計資訊逐漸過時,從而導致不良查詢和惡化的效能。I/O 子系統可能遭到破壞,對備份的需求永無止境。

您可以為資料庫定製一個全面的維護計劃,來解決以上所有問題。自訂的計劃遠比不能充分滿足需求的通用計劃好得多。我曾於 2008 年 8 月在《TechNet 雜誌》上發表了“高效維護 SQL Server 資料庫的關鍵技巧”一文,其中介紹了如何建立好的維護計劃。建立自己的維護計劃的最佳開始方式是使用 Ola Hallengren 編寫的免費指令碼。我一直推薦客戶使用該指令碼。

6. 確保系統安全性

花點時間主動發現安全問題是很有必要的,可以防止事件發生,而不用事後再做處理。我的另一篇《TechNet 雜誌》文章,“常見的 SQL Server 安全性問題和解決方案”,列出了十個最常見的安全問題以及規避方法。此外,發現漏洞時別忘了及時修補系統。

5. 處理好與Team Dev的關係

在任何 IT 部門中,DBA 團隊與Team Dev之間的關係往往是主要矛盾之一。這兩個團隊通常都不理解對方的優先事項和關注點 - 從開發期限到 SQL Server 設計決策。在行為、效能問題以及部署與支援職責等方面,兩個團隊常常持不同觀點。

您可以通過積極而有效地參與Team Dev的工作來使自己的任務進展更順利。共同組織教育課程是一種頗為奏效的方式,尤其是當氣氛很友好時。在將設計付諸生產之前,與出席的 DBA 團隊成員一起進行評審並充分測試代碼,這有望避免可能進一步有損團隊關係的破壞性錯誤。

4. 制定全面的災難恢複策略

無論您的基礎結構有多牢固,當災難降臨時您必須具備應急計劃。您無法預知損壞、停電、火災、意外資料丟失或其他諸多潛在問題,因此,您需要一個計劃來應對這些問題並進行恢複。

您可以和管理層一起擬定資料庫的停機時間及資料丟失軟體許可協議,對如何從各種資料丟失類型中恢複做出規劃,並確定如何將資料庫和所有 SQL 執行個體納入公司的商務持續性計劃。弄清楚所有資料庫和執行個體的相對重要性,以便確定災難恢複的優先次序。

您還需要藉助其他技術來協助瞭解問題發生的時間,例如,頁面校正和、一致性檢查、SQL 代理警報和 System Center Operations Manager 警報等。災難恢複基礎結構可通過備份、記錄傳送、複製和資料庫鏡像來協助您保護資料,並有可能通過資料庫鏡像或容錯移轉叢集將容錯移轉到冗餘系統上。以下兩個 Microsoft 白皮書可為您提供協助:“High Availability with SQL Server 2008SQL Server 2008 高可用性)”和“Proven SQL Server Architectures for High Availability and Disaster Recovery具備高可用性和災難恢複功能的經檢驗的 SQL Server 體繫結構)”。

3. 定期備份並進行測試

無論您的高可用性和災難恢複計劃有多周詳,您都必須對資料庫進行定期備份。如果您的資料庫遭到破壞或滅頂之災,那麼您唯一的資源或許只有最後的備份,倘若您沒有任何備份,可能會給公司帶來極其嚴重的後果。您不僅需要備份,還需要定期進行恢複測試,以保證這些備份在需要時能夠正常使用。

您可以從我 2009 年為《TechNet 雜誌》撰寫的兩篇文章中找到更多資訊:“Understanding SQL Server Backups瞭解 SQL Server 備份)”和“SQL Server:Recovering From Disasters Using BackupsSQL Server:使用備份進行災難恢複)”。

2. 監視和維護效能

效能調節佔據了 DBA 的大部分時間,但有很多方法可以簡化這個過程:

建立效能基準,以便瞭解效能是否真的發生了變化。

將系統分解為可在無外部因素幹擾下隔離測量的基元。

使用等待-排隊方法快速查明效能問題。

採用系統基元、效能計數器監視效能,並等待統計資訊。這樣您會知道效能何時開始下降。可使用 SQL Server 2008 中的效能資料收集器功能以及 SQL Server 2005 的效能儀表板。

制定維護計劃。

藉助工具認真規劃和執行索引策略,如Database Engine Tuning Advisor、DTA、缺失索引動態管理檢視 (DMV) 和索引使用 DMV。

1. 懂得從何處尋找資訊

要做的事情無窮無盡,懂得何時放手並尋求協助才是上上之策。您應當瞭解自己的局限性,清楚自己不可能瞭解有關 SQL Server 的一切。如果有人能協助您完成任務或解決問題,那麼您沒有必要自己苦苦掙紮並浪費寶貴的時間。

您的首要 SQL Server 資訊源是 SQL Server 聯機叢書,您可以下載並安裝到本地,或在 MSDN 中聯機搜尋。《SQL Server 聯機叢書》很適合用來查詢文法,但如果你有更複雜的操作問題,或正嘗試解決某個問題,那麼最好的辦法是將問題發布到聯機論壇。MSDN 上有許多 SQL Server 論壇,還有一些熱門的社區網站,如 SQL Server Central。

還有一種尋求協助的快速方式是藉助 Twitter 的 SQL Server 社區。發布問題時加上 #sqlhelp 雜湊標籤,很多 SQL 專家包括我)便可以看到您的問題。

此外,可以參加專門討論 SQL Server 的會議,例如,每年的 PASS 社區峰會、兩年一次的 SQL Server Connections 或更頻繁的 SQL 星期六主題日。可以關注社區中很多 SQL Server 專家的部落格。您可以通過 MVP Thomas LaRock 維護的部落格排名,瞭解這些部落格的活躍程度及關注價值。

您可能已經因工作強度過大而不堪重負,但如果能抽出一些時間來瞭解這些建議,您會發現自己獲益匪淺。您的系統將運行得更順暢,您將更有條理,您將獲得更多的寧靜 - 您終將成為一名更為專業的 DBA。

原文地址

查看更多相關文章

編輯精選】

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.