SQL Server數據庫:虛擬化 VS 多實例

今天的IT界,虛擬化可謂是發展最迅速的技術之一。推動其快速發展的動力在于虛擬化技術能夠消除服務器和基礎硬件設備之間的相互依賴,使我們能夠在單個硬件平台上運行多個虛擬機,並且能夠很輕松地將虛擬機(機器附帶的基礎客戶操作系統和服務器)轉移到不同的硬件平台。很多企業都已經將這種技術作爲服務器整合的方法。但是虛擬化技術並不是整合服務器的唯一途徑。與微軟的其他服務器産品不同,SQL Server 自2000以後的版本,都能夠在同一系統下支持多SQL Server實例。

SQL Server對多服務器實例的支持使我們能夠在同一個服務器上運行多個SQL Server數據庫引擎。SQL Server 2005的企業版支持多達50個服務器實例。互聯網服務器供應商和其他需要有主機提供服務的情況下,往往會用采用多SQL serve實例,以便大量的客戶都能夠自己控制自己的SQL Server數據庫服務器而不要專門的硬件平台支持。那麽虛擬化和多SQL server實例之間有什麽異同,孰優孰劣,我們又該如何選擇呢?

這兩種服務器整合方案的主要一個主要區別在于,虛擬化是服務器水平的技術,而多實例是操作系統水平的技術。如果你運行的是多SQL Server實例,所有的實例都不虛運行在相同的Windows Server操作系統上。虛擬化則實現了更細粒度的操控,因爲每一台虛擬機都需要有自己的操作系統。例如,一台虛擬機運行在裝有SQL Server 2005的Windows Server 2003系統下,而在同一個服務器下的另一台虛擬機則可能運行在裝有SQL Server 2000的Windows 2000系統下。

在選擇過程中,首先要考慮的因素,而且在大多數情況下也是最重要的因素就是性能。由于本身的屬性決定了虛擬化服務器不會提供與物理服務器水平相當的性能,因爲虛擬環境造成的額外開銷要從性能來抵消。大多數情況下,估計虛擬機造成的額外開銷約爲10%-15%。在服務器整合環境下,由于其他虛擬機所支持的工作負荷的關系,這種對性能造成的沖擊可能更爲嚴重。相比之下,運行在物理硬件上的服務器實例,除了在服務器實例上運行查詢所産生的工作負荷之外,不會産生任何額外的開銷。

在管理方面,虛擬化和服務器實例很相似,但是運行多SQL Server有幾個優勢,比管理虛擬機要更爲輕松。因爲只需安裝一套操作系統和服務器軟件,所以服務器實例需要打補丁的機會更少。而對于虛擬化服務器而言,每個虛擬機都擁有自己的客戶操作系統和服務器産品,都需要獨立的管理和打補丁。這兩種解決方案中,都要用到企業管理器和SQL Server Management Studio來執行服務器管理任務。

而在部署和恢複方面,虛擬化技術則更有競爭優勢。通過虛擬化,構建可以部署到新的服務器的基礎映像只需要短短幾分鍾的時間;而且,可以對虛擬鏡像進行備份,或將其複制到遠程站點,這樣在發生故障時能夠在幾分鍾甚至數秒中之內恢複連線。

考慮到虛擬機的多操作系統和多SQL Server安裝問題,另外還有一個需要衡量的因素就是使用許可。多 SQL server實例並不需要額外的 SQL server許可。SQL Server 2005企業版提供了多達50個實例,而不需要額外的許可費用。在這種情況下,對于單個服務器,你只需要支付購買一個Windows Server 操作系統、一個SQL Server以及客戶端訪問許可的費用即可。而對于虛擬化來說,你需要爲各個虛擬機上的每個 Windows Server操作系統,以及每個安裝的SQL Server都分別支付許可費用。也就是說,如果你運行了5台虛擬機,而且每一個都包含了一套Windows Server和SQL Server的拷貝,那麽你就要支付5個Windows Server許可、5個 SQL Server許可以及相應的客戶端訪問許可費用。不過,Windows 2003 R2和Windows 2003企業版都支持4個Windows實例而不加收額外費用。賣價最爲昂貴的Windows 2003數據中心版則支持無限制的虛擬Windows實例。同樣的,SQL Server 2005以及2008企業版,提供了無限制的虛擬機使用許可。

所有權和責任也是值得三思的重要因素。運行多SQL Server實例的責任通常會落在持有SQL Server系統的團隊身上。而對于虛擬化,每個安裝了自己的操作系統和SQL Server的團隊或部門都保留了自身的責任。

對于服務器整合計劃來說,這兩種都可能都是有效的解決方案,並不是非此即彼的選擇。你可以將SQL Server和虛擬化結合起來,在一個虛擬機裏運行多SQL Server實例。不過請記住,即便虛擬化是當今炙手可熱的技術也不意味著你就要單戀這一枝花。

VS.NET中使用SQL Server 2000創建數據庫應用程序
適用于:   Microsoft? SQL Server? 2000   Microsoft Visual Studio? .NET   摘要:如何使用 Visual Studio .NET 工具創建數據庫對象和 Transact-SQL 存儲過程。  簡介   Microsoft? Visual Studio...查看完整版>>VS.NET中使用SQL Server 2000創建數據庫應用程序
 
Sql Server數據庫觸發器實例講解
定義: 何爲觸發器?在SQL Server裏面也就是對某一個表的一定的操作,觸發某種條件,從而執行的一段程序。觸發器是一個特殊的存儲過程。 常見的觸發器有三種:分別應用于Insert , Update , Delete 事件。(SQL Se...查看完整版>>Sql Server數據庫觸發器實例講解
 
使用VS 2005和SQL Server 2005創建連接
在Visual Studio 2005連接SQL Server 2000數據庫時,連接字符串會比較簡單,一般遠程連接的時候,只需像下面這樣配置Web.config文件: <appSettings><add key="ConnectionString" value="server=(local);da...查看完整版>>使用VS 2005和SQL Server 2005創建連接
 
VS,SQL,Windows Server 2008正式版發布時間確定
  2008年將是英雄輩出的一年,這不僅因爲在即將到來的北京奧運會上,中國健兒將爲祖國摘取更多金牌,譜寫出更輝煌的英雄樂章,更是因爲IT業界最大規模的英雄大會即將隆重舉行——2008年3月,盛大的微軟2008新一代企...查看完整版>>VS,SQL,Windows Server 2008正式版發布時間確定
 
VS 2005與SQL Server 2005優勢在哪
微軟整合SQL Server 2005與Visual Studio 2005倒不是頂新鮮的創舉,Oracle早在2004年年底即率先針對Visual Studio 2003,推出Oracle Developer Tools for Visual Studio .NET,用意在提供.NET平台的Oracle用戶,整合...查看完整版>>VS 2005與SQL Server 2005優勢在哪
 
實例講解SQL Server中非常有用EXISTS結構
EXISTS結構 EXISTS結構是一個TSQL函數,這個函數會就圓括號中的子查詢返回一個布爾變量。如果子查詢返回了任意行的話,這個結構就返回真;否則,它就返回假。這個結構特別適用于查詢表中是否存在某些記錄。它也非常適...查看完整版>>實例講解SQL Server中非常有用EXISTS結構
 
實例講解JSP調用SQL Server的存儲過程
JSP調用SQL Server存儲過程的實例: 創建表: CREATE TABLE ( IDENTITY (1, 1) NOT NULL , (50) COLLATE Chinese_PRC_CI_AS NOT NULL , (50) COLLATE Chinese_PRC_CI_AS NOT NULL , NOT NULL C...查看完整版>>實例講解JSP調用SQL Server的存儲過程
 
實例解析SQL Server 2000和JDBC的融合
  SQL Server 2000 是當今網絡編程中使用的比較多的一個數據庫系統,而Java則是流行的網絡編程語言,在網絡編程中涉及的比較多也比較重要的就是數據庫問題,Java自身提供了對各類主流數據庫系統的支持,通過提供Ja...查看完整版>>實例解析SQL Server 2000和JDBC的融合
 
一些SQL Server的應用實例
1、插入記錄insert into tableName (myColumn1,myColumn2) values (@myVal1,@myVal2)2、刪除記錄delete from tableName where myColumn=@myVal3、修改記錄 update from tableName set myColmn1=@myVal1 , myColmn2=@...查看完整版>>一些SQL Server的應用實例
 
 
回到王朝網路移動版首頁