許多技術人員可以輕松地討論db2技術的細節(jié),很自信地談論查詢并行化、數據壓縮、WebSphere MQ 集成、大對象管理、JDBC 和 ADO.Net 驅動程序、大型機 Parallel Sysplex上的數據共享、DB2 for Linux, Unix, andwindows(LUW)多維集群等等話題。但是,如果談話的對方是管理層的成員,那么會怎么樣?公司管理者們關心的主要問題是收入的增長、成本控制、產品質量和產品投入市場的時間。一般來說,這些人并不關心鎖的粒度、服務器內存管理和 sql語句優(yōu)化這樣的技術問題。他們并不關心db2技術本身的特色(盡管 db2 技術是很酷的),而是關心 db2對于實現組織目標能夠有哪些作用。日常使用db2的任何人都應該能夠從業(yè)務價值的角度討論db2技術。
通過我在 CheckFree Corp. 的經驗,我總結出了一個關鍵領域列表,在這些領域中 db2 技術可以提供業(yè)務人員能夠感受到的價值。
可伸縮性 vs. 隨著業(yè)務增長
單服務器 db2 系統(tǒng)(無論是運行在大型機上,還是運行在高端 Linux、Unix 或 windows 服務器上)可以為OLTP、業(yè)務智能(BI)或組合工作負載提供巨大的吞吐量。吞吐量大主要是由于 db2 利用了 64 位服務器內存尋址、新穎的 I/O優(yōu)化特性(比如列表預獲取)、預優(yōu)化的 sql(DB2 專業(yè)人員將其稱為靜態(tài)sql)以及高級工作負載管理功能。但是,在擴張迅速的業(yè)務環(huán)境中,數據訪問請求量會快速增長,單服務器系統(tǒng)的能力可能不足以處理未來的請求量。業(yè)務領導肯定不希望業(yè)務的增長受到數據服務器可伸縮性的限制。這就是規(guī)模擴展(scale-out)的重要之處,而可伸縮性正是 db2 真正占據優(yōu)勢的領域。
在這個上下文中,“規(guī)模擴展” 這個詞指的是能夠將針對單一邏輯映像數據庫的工作負載分散到多個物理服務器上。有兩個 db2規(guī)模擴展解決方案:大型機集群(稱為 Parallel Sysplex)上的數據共享和在 Linux、Unix 或 windows服務器集群上實現的 Data Partitioning Feature(DPF)。這兩種技術都是在行業(yè)中領先的技術。DB2 for z/OS數據共享能夠支持企業(yè)從最多 32 個 db2子系統(tǒng)對一個共享數據庫進行并發(fā)讀/寫訪問(這些子系統(tǒng)可以運行在許多大型機系統(tǒng)上,也可以運行在少量物理服務器上,每個服務器上有多個 db2子系統(tǒng))。這個解決方案不是市場上惟一的共享數據 DBMS 規(guī)模擴展解決方案,但是其他任何技術都無法提供 db2 for z/OS數據共享組這樣好的 CPU 效率(真正并發(fā)的節(jié)點間讀/寫數據訪問的 CPU 開銷非常低)。
帶 DPF 功能的 db2 能夠在 Linux、Unix 或 windows 環(huán)境中提供無以倫比的規(guī)模擴展能力??梢栽谝粋€ db2DPF 系統(tǒng)中配置數以百計的服務器;每個服務器提供對單一邏輯映像數據庫的一個物理子集的訪問(一個散列算法將給定的數據庫表的行分散到 DBA指定的節(jié)點上)。市場上也有其他的非共享(shared-nothing) DBMS 規(guī)模擴展解決方案,但是其他解決方案都無法像帶 DPF 功能的db2 那樣兼具易用性和靈活性,因為 DPF 功能是嵌入在 db2 for LUW 數據服務引擎中的。
對于共享數據和非共享 DBMS 體系結構孰優(yōu)孰劣的問題,人們還在爭論;但是,這兩種 db2解決方案對于底層服務器平臺都是非常合適的。DB2 for z/OS 數據共享的 CPU 開銷非常低,這是因為它使用的函數以優(yōu)化的方式分散在整個Parallel Sysplex 軟件結構中:z/OS 操作系統(tǒng)、DB2 DBMS、Coupling Facility ControlCode(它管理全局鎖和數據緩沖所用的共享內存結構)以及 CICS 事務管理器或 db2 Connect分布式客戶機網關(如果配置中有這些組件的話)。這種優(yōu)化是可行的,因為 db2 for z/OS數據共享只需要使用一個操作系統(tǒng)和一個芯片組(IBM system z 微處理器)。在 db2 for LUW環(huán)境中不可能進行這樣的功能分布,因為這樣的環(huán)境需要支持多個操作系統(tǒng)和多個服務器硬件平臺;因此,DB2 for LUW規(guī)模擴展解決方案基于最佳的非共享集群技術。無論采用哪種方式,組織都會得到所希望的效果:DBMS 不會阻礙業(yè)務的增長。
效率 vs. 降低總體擁有成本
在評估各種數據服務解決方案的相關費用時,人們往往關注獲得硬件和軟件許可證的費用。軟件和硬件的價格固然重要,但是在與 DBMS 相關的總擁有成本(TCO)中這只占很少的一部分。影響成本的其他因素包括:
管理數據庫系統(tǒng)所需的人數;
使用硬件資源(CPU 和硬盤存儲)的效率;
技術的培訓費用;
讓企業(yè)中的不同數據庫系統(tǒng)一起工作的難度;
先說說 db2 for z/OS,因為某些范圍內它可以替代非常昂貴的基于大型機的解決方案。下面一些因素可以影響 system z 平臺上的成本控制:
規(guī)模經濟
在 db2 for z/OS 系統(tǒng)上,可以處理非常大的工作負載;即使一連幾小時處于 90% 以上的利用率,數據服務大型機也能夠順利地運行。隨著事務處理量的增長,平臺的單個事務成本會顯著降低。
性價比趨勢
盡管 system z 平臺是一種相當昂貴的系統(tǒng)(因為它提供了尖端的硬件和軟件技術),但是在過去幾年中,單位計算能力(通常用每秒百萬指令數或 MIPS 來衡量)的成本已經下降了。無論是來自 ibm 還是其他廠商的大型機軟件,其價格也比以前更有競爭力了。
可管理性
組織可以在大型機 db2 系統(tǒng)上處理非常大的工作負載,而不需要大量的支持人員。DB2 for z/OS 系統(tǒng)程序員和 DBA具有令人吃驚的生產效率的原因之一是,許多公司提供了豐富的大型機 db2 工具;與之相關的另一個好處是,DB2 for z/OS會產生豐富的跟蹤數據,前面提到的工具可以對這些數據進行格式化,而且成本往往非常低。DB2 for z/OS支持人員還可以獲益于某些平臺特性,比如系統(tǒng)管理的存儲,這個特性能夠讓 z/OS操作系統(tǒng)在硬盤子系統(tǒng)中放置表和索引數據集(數據庫越大,系統(tǒng)管理的存儲的人員效率優(yōu)勢就越顯著)。
數據存儲的空間效率高
db2 for z/OS 服務器硬件可以幫助進行數據壓縮,這可以將表空間存儲的硬盤空間需求降低 50%以上(我們在CheckFree 常常觀察到 70% 或更好的壓縮效果,因為我們的表往往具有很長的行;長行的壓縮率一般好于短行)。由于 db2 9中的改進,在 Linux、Unix 和 windows 服務器上數據壓縮效果也很好了。
自治是什么意思?這個詞是指 db2 能夠自行完成以前需要 DBA 執(zhí)行的大量工作。我們在 CheckFree 發(fā)現,通過使用 db2Design Advisor(DB2 for LUW 中內置的自治特性之一),效率得到了極大提高。Design Advisor 會分析與db2 工作負載相關聯(lián)的 sql 語句,并為改進應用程序性能提出建議。我們的基于 AIX 的企業(yè)數據倉庫(EDW)使用帶 DPF 功能的db2,Design Advisor 對這個數據庫提出了修改某些表索引的建議,其效果讓我們非常滿意。
最后,還有協(xié)作方面的好處。CheckFree的IT基礎設施有意地設計成包含多個平臺(我們常常說的一句話是,“使用正確的工具完成工作”)。在我們最大的部門中,核心業(yè)務應用程序運行在一個大型機parallel sysplex 上。這個部門的操作數據存儲(ODS)運行在一個單獨的 system z 服務器上。我們的 EDW 運行在ibm pSeries 服務器集群上,CRM 應用程序運行在一個單獨的 Sun Solaris 服務器上。這些系統(tǒng)有什么共同點?它們都是基于db2 的。DBMS 具有共同的 “基因”,這會簡化平臺之間的數據轉移,并增強人員配置的靈活性。最近,我們的大型機 db2 團隊中 DBA人員過剩(盡管這些系統(tǒng)已經增長了,這是一種便于管理的環(huán)境),而快速增長的 EDW 需要更多的 DBA 人力資源。我們讓一位 db2 forz/OS DBA 轉入了 db2 for LUW 團隊,他很快就適應了新的崗位。DB2 for z/OS 和 db2 for LUW 之間存在DBA 能夠察覺到的差異嗎?確實有差異,但是與 db2 for z/OS 和在分布式系統(tǒng)服務器上運行的非 db2 DBMS之間的差異相比,這些差異是很小的。
高可用性 vs. 拿起電話話筒就能聽到撥號音
在CheckFree,我們一直在為應用程序的可用性而努力。我們希望應用程序的可用性像電話撥號音那樣持續(xù)不斷,當您拿起電話話筒時,就一定會聽到撥號音。DB2 能夠提供這樣的可用性。單服務器 db2 系統(tǒng)已經能夠提供極其出色的可用性;多服務器配置甚至能夠進一步提高可用性標準。
前面作為規(guī)模擴展解決方案提到了 parallel sysplex 上的 db2 for z/OS 數據共享,這種技術也能夠在兩個方面提高可用性:
減小服務意外中斷的影響
如果數據共享組中的一個 db2 子系統(tǒng)失敗了(無論是由于服務器、操作系統(tǒng)還是 db2故障),那么并不需要等待替代服務器接管這個子系統(tǒng)的數據庫連接。組中的其他成員已經能夠訪問數據庫,工作負載會自動地從失敗的子系統(tǒng)轉移到其他 db2系統(tǒng)上。失敗并非毫無影響,因為在失敗的 db2子系統(tǒng)重新啟動之前,這個成員上運行的程序正在更新的數據庫頁面是不可訪問的;但是,在通常情況下,處于這種狀態(tài)的數據庫頁面所占的百分比非常小,子系統(tǒng)的恢復是自動的(如果 “主” 服務器和操作系統(tǒng)仍然可用,那么會 “就地” 恢復;否則,在 sysplex中的另一個服務器上恢復)而且很快(在我們的環(huán)境中大約需要 90 秒)。與單獨的系統(tǒng)環(huán)境相比,數據共享組中的 db2失敗的影響要小得多。幾個月前,我們的生產數據共享組中發(fā)生了一次 db2 for z/OS 故障,但是客戶都沒有察覺到。
幾乎完全消除有計劃的服務中斷
因為數據共享為所有 db2 成員提供對數據庫中所有數據的讀/寫訪問,所以可以讓一個 db2子系統(tǒng)臨時停止運行,對它進行軟件維護,然后讓它重新運行,這個過程不會中斷應用程序的處理(當一個 db2成員停止運行時,應用程序通信量會轉給組中的其他成員)。這種功能讓我們能夠自由地對數據共享組進行維護,而不需要指定維護時間窗。
db2 對于業(yè)務的意義
如果需要用業(yè)務人員能夠理解的方式討論 db2,那么可以試試下面這些詞匯。
可伸縮性:DB2 可以隨著業(yè)務而增長,而不是限制業(yè)務的發(fā)展;
效率:DB2 可以降低數據服務平臺的總擁有成本(TCO),而數據服務平臺是組織的應用程序的基礎。降低 TCO 就相當于增加收入;
服務質量:DB2 技術可以減少有計劃的應用程序系統(tǒng)中斷,還可以縮小意外服務中斷的影響和范圍。因此,能夠提高服務質量和客戶忠誠度;
敏捷性:DB2 為訪問和管理傳統(tǒng)數據和非結構化數據提供了眾多可選方法;這種靈活性可以幫助組織對市場機遇做出快速響應。
對于 LUW 環(huán)境,DB2提供了一個多服務器解決方案,這個方案能夠提供更高的可用性,但它使用的是在非大型機環(huán)境中更有意義的非共享體系結構。這個解決方案稱為 HighAvailability Disaster Recovery(HADR),它可以維護 db2 for LUW數據庫的一個拷貝(使用單獨的服務器和硬盤存儲),這個拷貝與主數據庫保持精確的同步。HADR的實現方法是,不斷地將事務日志記錄發(fā)送給備用服務器,備用服務器實時地處理這些記錄。這種方法會讓備用數據庫與主數據庫同步,而且更新過的頁面的內存頁面緩沖區(qū)也與主服務器上的緩沖區(qū)保持一致。因此,在主系統(tǒng)發(fā)生故障時,備用系統(tǒng)會非??焖俚亟庸?通常只需要幾秒),而且不會丟失已經提交的數據庫更新。HADR 還可以按照異步模式運行,這種模式適合長距離數據更新復制,在可以接受少量數據損失的情況下,這可以提供災難恢復功能。
HADR 也可以減少有計劃的服務中斷時間,因為它使 db2 for LUW 的維護幾乎不需要維護時間窗。為使用 HADR實現這種效果,DBA 應該臨時終止從主服務器到備用服務器的日志記錄流,在備用服務器上應用并激活軟件補丁,重新啟動日志的傳輸,恢復同步(這個“追趕期”通常非常短);然后,通過一次用戶發(fā)起的接管,交換主服務器和備用服務器的角色(這個過程應該只需要花幾秒時間)。在此之后,重復前面的步驟,在HADR 配置中原來的主服務器(現在的備用服務器)上應用并激活軟件補丁。
敏捷性 vs. 對新的需求做出快速響應
db2 能夠幫助組織對挑戰(zhàn)和機遇做出快速響應,因為它能夠提供多個訪問 db2 數據庫中的數據的路徑。您希望從 Java應用程序訪問數據嗎?沒問題:DB2 提供了 JDBC 驅動程序并支持 SQLJ,因此能夠在 Java 應用程序中使用嵌入的預綁定的 sql語句。數據請求來自 windows 系統(tǒng)上運行的 .Net 應用服務器嗎?DB2 提供了 ADO.Net 驅動程序,并與 microsoft 的Visual Studio 應用程序開發(fā)工具集成。您希望使用服務器端 sql 嗎?DB2 存儲過程可以用幾種編程語言來編寫(包括Java),也可以采用 sql 存儲過程的形式。在大型機環(huán)境中廣泛使用的 CICS 和 IMS Transaction Manager程序可以提供更多的服務器端 sql 方式。對于文件處理這樣的任務,批處理程序具有很高的效率。
通過 db2 與 ibm WebSphere MQ(一種消息排隊和傳遞技術)的集成,應用程序開發(fā)的靈活性會得到進一步增強。將 MQ插入基于 db2 的基礎結構中是一種增強系統(tǒng)彈性的好方法:如果應用程序的 “處理消息”的組件不可用(由于故障或有計劃的停機),那么從客戶機系統(tǒng)收到的消息就會累積在隊列中,當不可用的應用程序組件再次聯(lián)機時,它會繼續(xù)從隊列中獲取消息。從發(fā)送消息的用戶或客戶機應用程序的角度來看,并沒有出現服務中斷。MQ隊列還有助于控制大幅度變化的工作負載量,其作用就像是汽車引擎散熱器的附屬水箱:消息處理應用程序可以按照自己的節(jié)奏處理消息;如果消息到達的速度超過了處理消息的速度,那么消息就會累積在隊列中,而不會造成 “目標” 服務器過載。DB2 和 MQ 組合的優(yōu)點還包括:協(xié)調的提交和回退(如果程序在db2 表中插入一行并在 MQ 隊列中放一個消息,那么當這個程序失敗時,DB2 和 MQ 更改會回退到最近的提交點);DB2 函數支持程序使用sql 語句與 MQ 交互;MQ 實用程序與 db2 實用程序非常相似,因此 db2/MQ 的交叉培訓非常容易。
數據級別上的靈活性怎么樣呢?DB2可以存儲和管理傳統(tǒng)的文本和數字數據,還可以非常高效地管理大對象(LOB),比如文檔、圖像和音頻文件。DB2 9 引入了先進的 XML數據存儲特性,在存儲 XML 文檔時可以保留數據元素的結構特性,還可以使用 sql 或 XQuery 高效地訪問數據。當然,可以在 DBMS之外存儲 LOB 和 XML 文檔;但是,將這些數據類型存儲在 db2中,就可以為集成數據管理、安全性以及備份和恢復提供一個現成的解決方案。其結果是,管理和保護數據所需的時間更少了,可以留出更多的時間來開發(fā)使用數據的應用程序。
技術的最終目的
我很喜歡談論在各個平臺上 db2 中使用的高級技術。但是,技術必須能夠幫助我的公司實現業(yè)務目標;否則,就是浪費資金。大多數業(yè)務人員對IT 產品的要求只有幾點:產品必須能夠工作(可靠性),它們不能限制公司在市場上的作為(增長和創(chuàng)新)。DB2 在 CheckFree的各個平臺和應用環(huán)境中表現出了這些品質。業(yè)務人員需要的就是這些;技術人員請務必注意這一點。
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請
點擊舉報。