如何減少數據庫管理開銷 發揮最大功能

來源: IT專家網  發布時間: 2011-03-17 14:38  閱讀: 720 次  推薦: 0   原文鏈接   [收藏]  
摘要:數據庫是現在辦公中必不可少的,那么如何減少數據庫管理開銷,使數據庫發揮最大功能呢?本文將為大家詳解。

  數據庫的知識之前介紹了好多,比如使用動態數據庫訪問對象,接下來講解如何減少數據庫管理的開銷。

  連接應用程序

  每個應用程序都需要識別其所要連接的以便從中檢索數據的數據庫服務器。通過使用連接字符串可以實現應用程序和數據庫服務器的連接。典型的連接字符串如下:

Server=MyServerAddress;
Initial Catalog
=MyDatabaseName;
Integrated Security
=SSPI;

  在這個例子當中,數據庫服務器可以用機器名、IP連接地址、OBDC DSN名或DNS服務器別名等來進行識別。只要是可以解析為IP地址的名稱就可以用。名稱的解析可以用很多不同的方式進行。

  如果你的SQL Server機器在一個域里,可以創建一個DNS域名注冊到域里。當機器以DNS注冊,那么客戶端或應用程序就可以使用該機器的注冊名連接到該機器。而且,用DNS注冊,你可以創建一個DNS別名,這是一個代表了你的SQL Server機器的邏輯名。在連接字符串中使用DNS別名的話,當對數據庫服務器進行連接時,DNS會將秘密地將該名稱解析為IP地址。這樣的話,你進行連接的時候,只需要記住這個看起來有意義又比較容易記住的邏輯名,而不需要記住那串難記的IP地址數字串或機器名了。當你在連接字符串中使用DNS別名的時候,你可以創建一個連接策略來隔離來自物理地址或數據庫服務器機器名的應用程序。

  采用DNS識別數據庫應用軟件位置

  當使用DNS來識別數據庫應用軟件的位置時,你可以在連接字符串中使用機器的域名,但是這種方法不夠靈活。想象一下當你想要改變SQL Server物理機器的名稱時會發生什么事情。這種情況下,如果你使用機器名,那么你每改變一次機器名就得修改連接字符串以便引用新的機器名。

  如果你只有一個應用程序連接到一個數據庫服務器,情況可能還不會那么糟。但是,如果你在一臺機器上有很多的應用程序和很多數據庫,那么這將意味著一旦你重命名你的服務器,你就需要修改很多連接字符串。因此,在連接字符串中使用機器名無法靈活應對環境的變化。

  更好的做法是使用DNS別名來解析數據庫所在位置。當你不再用機器名來為所有的應用程序識別數據庫機器的地址時,你就應當考慮創建一個有實際意思的與別不同的DNS別名,這個別名可以解析為數據庫服務器的IP地址。例如,你可以用類似于SQL2005PRO這樣的DNS別名,這個在DNS中定義的名字和實際的物理機器的IP地址是一樣的。使用DNS別名可以賦予名字一定的含義。這里,SQL2005PROD這個名字的意思是用于生產的 SQL Server 2005服務器。這樣可以將上述的連接字符串改成:

Server=SQL2005PROD;
Initial Catalog
=MyDatabaseName;
Integrated Security
=SSPI;

  那么在連接字符串中用DNS域名又有什么好處呢?有一個描述性的名稱無疑是其中一個顯而易見的好處,但并不是唯一的好處。假設你的數據庫服務器包含了很多個不同的數據庫,還要支持50個不同的應用程序。又假設你的SQL Server機器名為SSEDB01,而這臺機器現在出現了某種未知的硬件錯誤。此外,你還有一個名為SSEDB02的備份機器,而你出于安全的考慮,已經將SSEDB01的備份傳送到了這臺SSEDB02中,所以你可以從SSEDB01快速恢復所有的數據庫來支持這50個不同的應用程序。

  另外,假設你知道在SSEDB02上恢復所有SSEDB01的數據庫比解決SSEDB01本身的硬件問題用時更少。在以上的前提條件下,如果你在應用程序的連接字符串中用的是機器名,那么你將不得不一個一個地修改所有的連接字符串,將SSEDB01的機器名改為SSEDB02,讓這50個應用程序指向新的后備服務器SSEDB02,以便完成整個恢復過程。修改50多個連接字符串可能需要相當長一段時間,而且很容易出錯。這種情況下,如果你在所有50多個連接字符串中使用的連接名是SQL2005PROD這樣的邏輯名,那么你只需要進行一個修改就可以將所有的應用程序重新指向新的后備服務器SSEDB02,也就是對DNS的修改,將SQL2005PROD改為指向SSEDB02的IP地址,而不是SSEDB01的IP地址。

  只要你修改了DNS,那么每一個應用程序就自動地連接到SSEDB02而不再連接到SSEDB01了,也就不需要花時間修改那50多個連接字符串中的任意一個。在連接設計的時候,只要做這么一個小小的應用方面的修改,用邏輯名來代表SQL Server服務器,而不用物理服務器名或IP地址,那么在出現問題需要將所有應用程序重新指向新SQL Server服務器時,工作量就會大大減少。

  用DNS進行容量管理

  在連接字符串中使用DNS別名可以幫助你進行容量管理。假設你的環境中又很多不同的SQL Server生產服務器。每一臺機器都要支持很多應用程序。又假設某些應用的數據庫基本上呈線性增長,但也有相當一部分應用數據庫沒有表現出一個可預見的增長速率。

  這些數據庫的增長速度在不同的時段表現的很不一樣,有時候一點都不增長,有時候呈指數遞增或遞減。由于有一部分這樣的增長率波動很大的數據庫,導致有一些服務器幾乎沒有什么可用空間,甚至經常性出現可用空間用完的情況,而同時另外有一部分服務器卻還有大量可用空間。那么怎樣利用DNS來幫助你管理這些磁盤空間,解決容量問題呢?

  當數據庫已經快擠滿服務器的硬盤空間時,再向往數據庫服務器增加更多的磁盤空間并不一定總是一件輕松的事情。可能需要花費幾個月的時間來獲取額外的硬件,并為增加服務器的硬盤空間容量磁盤設計一個時間進度計劃。因此,如果你的磁盤空間容量有問題,你就需要找到一個方法使你的數據庫具有即插即用的能力,以便管理這種容量問題。

  “即插即用”在這里的意思是你需要一種方法,讓你可以將數據庫從一個服務器快速復制到另外一個服務器,并能夠同時花費最少的精力就可以修改應用程序獲取數據所需要的IP地址。通過使用DNS,你可以將應用程序快速地指向數據庫的新地址。當然,你必須設計好你的應用程序連接策略來處理這種數據庫變動問題。

  假設你有一個數據庫服務器,里面包含了與訂單、財會、人事和結算這四個系統有關的數據庫。由以下四個數據庫分別負責這四個方面的應用:Order、REV、HR和Billing。在這種情況下,你應當為每個不同的應用定義不同的DNS域名,可以使用像ORDER、REV、HR和 BILLING這樣的DNS域名。讓每個數據庫應用的連接字符串使用合適的DNS域名,以確保應用程序指向各自的數據庫所在的當前物理服務器。當你因為容量問題而需要將其中某個數據庫從當前服務器轉移到另外一個服務器時,你只需要將該數據庫的DNS域名指向新的數據庫服務器即可。

  你可以還利用邏輯DNS命名法來處理其他問題。假設對于上述的每一種應用,你都分別有一個開發環境,一個質量保證環境和一個生產環境。在這種情況下,你可以給所有的DNS域名附加一個環境后綴。例如,對于BILLING,可以把開發環境下的DNS域名改為BILLINGDV,質量保證環境下的為BILLINGQA,而生產環境下的為BILLINGDV。

  假設你有某個數據庫服務器的CPU使用率特別高,那么通過使用DNS,你可以將一個或多個數據庫快速地從這個不堪重負的服務器中轉移到尚未飽和的服務器,然后將其DNS地址重新指向新服務器。這給你提供了一個低技術含量的解決方案來平衡數據庫服務器的CPU使用情況。

  上文中的方法也不是什么靈丹妙藥,也不是萬能的,所以大家要根據實際情況靈活運用,希望能幫到大家,而不要幫了倒忙。

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()