DB2數(shù)據(jù)庫的相關(guān)介紹

2016年11月14日03:35:18 發(fā)表評論 3,751 ℃

IBM DB2 是美國IBM公司開發(fā)的一套關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它主要的運行環(huán)境為UNIX(包括IBM自家的AIX)、Linux、IBM i(舊稱OS/400)、z/OS,以及Windows服務(wù)器版本。

DB2主要應(yīng)用于大型應(yīng)用系統(tǒng),具有較好的可伸縮性,可支持從大型機(jī)到單用戶環(huán)境,應(yīng)用于所有常見的服務(wù)器操作系統(tǒng)平臺下。 DB2提供了高層次的數(shù)據(jù)利用性、完整性、安全性、可恢復(fù)性,以及小規(guī)模到大規(guī)模應(yīng)用程序的執(zhí)行能力,具有與平臺無關(guān)的基本功能和SQL命令。DB2采用了數(shù)據(jù)分級技術(shù),能夠使大型機(jī)數(shù)據(jù)很方便地下載到LAN數(shù)據(jù)庫服務(wù)器,使得客戶機(jī)/服務(wù)器用戶和基于LAN的應(yīng)用程序可以訪問大型機(jī)數(shù)據(jù),并使數(shù)據(jù)庫本地化及遠(yuǎn)程連接透明化。 DB2以擁有一個非常完備的查詢優(yōu)化器而著稱,其外部連接改善了查詢性能,并支持多任務(wù)并行查詢。 DB2具有很好的網(wǎng)絡(luò)支持能力,每個子系統(tǒng)可以連接十幾萬個分布式用戶,可同時激活上千個活動線程,對大型分布式應(yīng)用系統(tǒng)尤為適用。

DB2除了可以提供主流的OS/390和VM操作系統(tǒng),以及中等規(guī)模的AS/400系統(tǒng)之外,IBM還提供了跨平臺(包括基于UNIX的LINUX,HP-UX,SunSolaris,以及SCOUnixWare;還有用于個人電腦的OS/2操作系統(tǒng),以及微軟的Windows 2000和其早期的系統(tǒng))的DB2產(chǎn)品。DB2數(shù)據(jù)庫可以通過使用微軟的開放數(shù)據(jù)庫連接(ODBC)接口,Java數(shù)據(jù)庫連接(JDBC)接口,或者CORBA接口代理被任何的應(yīng)用程序訪問。

DB2數(shù)據(jù)庫版本

DB2有眾多的版本,或者是許可證。為了弱化“版本”的概念增強(qiáng)可選擇性,IBM允許客戶不購買他們不需要的特性。示例版本包括Express、Workgroup和Enterprise版本?;贚inux/UNIX/Windows的最復(fù)雜的版本是DB2 Data Warehouse Enterprise Edition,縮寫為DB2 DWE。這個版本的偏重于混合工作負(fù)荷(線上交易處理和數(shù)據(jù)倉庫)和商業(yè)智能的實現(xiàn)。DB2 DWE包括一些商務(wù)智能的特性例如ETL、數(shù)據(jù)發(fā)掘、OLAP加速以及in-line analytics。

DB2 Everyplace

主要用于移動計算。

移動計算的真正力量并不在于移動設(shè)備本身,而是在于能夠利用來自其他來源的數(shù)據(jù)。

DB2 Everyplace 不僅僅是一種移動計算基礎(chǔ)設(shè)施。它是一個完整的環(huán)境,包含了構(gòu)建、部署和支持強(qiáng)大的電子商務(wù)應(yīng)用程序所需的工具。DB2 Everyplace 提供一個“指紋” 引擎(大約200 KB),其中包含所有的安全特性,比如表加密和提供高性能的高級索引技術(shù)。

它可以在當(dāng)今最常見的各種手持設(shè)備上順利地運行(提供多線程支持),比如:Palm OS、Microsoft Windows Mobile Edition、任何基于Windows 的32 位操作系統(tǒng)、Symbian、QNX Neutrino、Java 2 Platform. Micro Edition(J2ME)設(shè)備(比如RIM 的Blackberry pager)、嵌入式Linux 發(fā)布版(比如BlueCat Linux)等等。

DB2 Personal Edition

DB2 Personal Edition(DB2 Personal)是單用戶RDBMS,運行于低價的商用硬件桌面計算機(jī)上。

DB2 Personal 包含DB2 Express 的所有特性,但是有一個例外:遠(yuǎn)程客戶機(jī)無法連接運行這個DB2 版本的數(shù)據(jù)庫。

DB2 Express - C

DB2 Express - C 其實 不算是DB2 系列的一個版本,但是它提供了DB2 Express 的大多數(shù)功能。2006 年1 月,IBM 發(fā)布了這個特殊的DB2 免費版本,可以用于基于Linux 和Windows 的操作系統(tǒng)。

DB2 Express Edition

DB2 Express Edition(DB2 Express)是一種功能全面的支持Web 的客戶機(jī)/服務(wù)器RDBMS。DB2 Express 可以用于基于Windows 和Linux 的工作站。DB2 Express 提供一個低價的入門級服務(wù)器,主要用于小型企業(yè)和部門的計算任務(wù)。

DB2 Workgroup Edition

DB2 Workgroup Edition(DB2 Workgroup)和DB2 Express Edition 功能相同,只是在服務(wù)器上可以安裝的內(nèi)存和價值單元(等于一個服務(wù)器處理器核心的能力)數(shù)量方面有區(qū)別。

DB2 Enterprise Edition

DB2 Enterprise Edition(DB2 Enterprise)是一種功能全面的支持Web 的客戶機(jī)/服務(wù)器RDBMS。它可以用于所有支持的UNIX 版本、Linux 和Windows。DB2 Enterprise 適合作為大型和中型的部門服務(wù)器。DB2 Enterprise 包含DB2 Express 和DB2 Workgroup 的所有功能,還添加了其他功能。

Data Enterprise Developer Edition

Data Enterprise Developer Edition(DEDE)是為應(yīng)用程序開發(fā)人員提供的特殊版本。這個版本提供了幾個信息管理產(chǎn)品,使應(yīng)用程序開發(fā)人員可以對應(yīng)用程序進(jìn)行設(shè)計、構(gòu)建和建立原型,產(chǎn)生的應(yīng)用程序可以部署在任何IBM 信息管理軟件客戶機(jī)或服務(wù)器平臺上。在DB2 9 中,這個軟件包已經(jīng)取消了,由DB2 Express - C 取代。

DB2數(shù)據(jù)庫誕生與發(fā)展

DB2擁有悠久的歷史并且被很多人認(rèn)為是最早使用SQL(同樣最早被IBM開發(fā))的數(shù)據(jù)庫產(chǎn)品。

1968:IBM 在 IBM 360 計算機(jī)上研制成功了 IMS V1,這是第一個也是最著名的和最為典型的層次型數(shù)據(jù)庫管理系統(tǒng)。至今仍然還有企業(yè)在使用呢。

1970:這是數(shù)據(jù)庫歷史上劃時代的一年,IBM公司的研究員E.F.Codd 發(fā)表了業(yè)界第一篇關(guān)于關(guān)系數(shù)據(jù)庫理論的論文"A Relational Model of Data for Large Shared Data Banks",首次提出了關(guān)系模型的概念。這篇論文是計算機(jī)科學(xué)史上最重要的論文之一,奠定了Codd博士"關(guān)系數(shù)據(jù)庫之父"的地位。

1973:IBM研究中心啟動了 System R 項目,研究多用戶與大量數(shù)據(jù)下關(guān)系型數(shù)據(jù)庫的可行性,它為 DB2 的誕生打下了良好基礎(chǔ)。由此取得了一大批對數(shù)據(jù)庫技術(shù)發(fā)展具有關(guān)鍵性作用的成果,該項目于1988年被授予ACM軟件系統(tǒng)獎。

1974:IBM研究員Don Chamberlin 和 Ray Boyce 通過 System R 項目的實踐,發(fā)表了論文"SEQUEL:A Structured English Query Language",提出了 SEQUEL 語言,此即 SQL 語言的原型。

1975:IBM研究員Don Chamberlin 和 Morton Astrahan的論文 "Implentation of a Structured English Query Language",在 SEQUEL 的基礎(chǔ)上 描述了 SQL 語言的第一個實現(xiàn)方案。這也是 System R 項目得出的重大成果之一。

1976:IBM System R 項目組發(fā)表了論文"A System R: Relational Approach to Database Management",描述了一個關(guān)系型數(shù)據(jù)庫的原型。IBM 的研究員Jim Gray 發(fā)表了名為"Granularity of Locks and Degrees of Consistency in a Shared DataBase"的論文,正式定義了數(shù)據(jù)庫事務(wù)的概念和數(shù)據(jù)一致性的機(jī)制。

1977:System R 原型在3個客戶處進(jìn)行了安裝,這 3 個客戶分別是:波音公 司、Pratt & Whitney 公司和 Upjohn 藥業(yè)。這標(biāo)志著 System R 從技術(shù)上已經(jīng)是 一個比較成熟的數(shù)據(jù)庫系統(tǒng),能夠支撐重要的商業(yè)應(yīng)用了。

1979:IBM研究員Pat Selinger在她的論文"Access Path Selection in a Relational Database Management System"中描述了業(yè)界第一個關(guān)系查詢優(yōu)化器。

1980:IBM發(fā)布了 S/38 系統(tǒng),該系統(tǒng)中集成了一個以 System R 為原型的數(shù)據(jù)庫服務(wù)器。為了方便應(yīng)用程序的移植,它的 API 與 S/3、S/32 的 API 一致。

1981:由于發(fā)明了關(guān)系型數(shù)據(jù)庫模型,IBM 的研究員E.F.Codd 接受了ACM 圖靈獎,這是計算機(jī)科學(xué)界的最高榮譽(yù)。Codd 博士也是繼查爾斯.巴赫曼(Charles W. Bachman) 之后,又一位由于在數(shù)據(jù)庫領(lǐng)域做出巨大貢獻(xiàn)而獲此殊榮的計算機(jī)科學(xué)家。

1982:IBMPC 的出現(xiàn)標(biāo)志著 PC 產(chǎn)業(yè)開始孕育發(fā)展。在以后相當(dāng)長的一段時間內(nèi),在各種品牌的個人電腦上標(biāo)記著的"IBM PC Compatible"字樣都見證著 IBM 在 這個領(lǐng)域的輝煌。

1982:IBM發(fā)布了 SQL/DS for VSE and VM 。這是業(yè)界第一個以 SQL 作為接口的商用數(shù)據(jù)庫管理系統(tǒng)。該系統(tǒng)也是基于 System R 原型所設(shè)計的。

1983:IBM發(fā)布了DATABASE 2(DB2)for MVS(內(nèi)部代號為"Eagle")。

1986:System/38 V7 發(fā)布,該系統(tǒng)首次配置了查詢優(yōu)化器,能夠?qū)?yīng)用程序的存取計劃進(jìn)行優(yōu)化。

1987:IBM發(fā)布帶有關(guān)系型數(shù)據(jù)庫能力的 OS/2 V1.0擴(kuò)展版,這是IBM第一次把關(guān)系型數(shù)據(jù)庫處理能力擴(kuò)展到微機(jī)系統(tǒng)。這也是 DB2 for OS/2、Unix and Window 的雛形。

1988:IBM發(fā)布了SQL/400,為集成了關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的AS/400服務(wù)器提供了SQL支持。IDUG(國際DB2用戶組織)組織成立。

1989:IBM定義了 Common SQL 和 IBM 分布式關(guān)系數(shù)據(jù)庫架構(gòu)(DRDA),并在 IBM 所有的關(guān)系數(shù)據(jù)庫管理系統(tǒng)上加以實現(xiàn)。 第一屆 IDUG北美大會在美國芝加哥召開。

DB2數(shù)據(jù)庫走向全球化

1992:第一屆 IDUG歐洲大會在瑞士日內(nèi)瓦召開。這標(biāo)志著 DB2 應(yīng)用的全球化。

1993:

1.IBM發(fā)布了DB2 for OS/2 V1(DB2 for OS/2 可以被簡寫為DB2/2)和 DB2 forRS/6000V1(DB2 for RS/6000 可以被簡寫為DB2/6000),這是 DB2 第 一次在Intel 和Unix 平臺上出現(xiàn)。

2.Louis V. Gerstner 入主 IBM。

1994:

1.DB2 For MVS V4 通過并行 Sysplex 技術(shù)的實現(xiàn)在主機(jī)上引入了分布式計算(數(shù)據(jù)共享)。

2.IBM發(fā)布了運行在 RS/6000 SP2 上的 DB2 并行版 V1,DB2 從此有了能夠適應(yīng)大型數(shù)據(jù)倉庫和復(fù)雜查詢?nèi)蝿?wù)的可擴(kuò)展架構(gòu)。IBM 將 DB2 Common Server 擴(kuò)展到 HP-UX 和 Sun Solaris 上。DB2 開始支持其他公司開發(fā)的 UNIX 平臺。 DB2/400 集成在 OS/400 V3.1中發(fā)布,并且引入了并行機(jī)制、存儲過程和參照完整性等機(jī)制。同時,IBM 宣布在 OS/2 和 AIX 平臺上的 DB2 產(chǎn)品能夠?qū)Χ嗝襟w數(shù)據(jù)和面向?qū)ο髴?yīng)用程序提供支持。

1995:

1.IBM發(fā)布了 DB2 Common Server V2,這是第一個能夠在多個平臺上運行的"對象-關(guān)系型數(shù)據(jù)庫"(ORDB)產(chǎn)品,并能夠?qū)?Web 提供充分支持。DataJoiner for AIX 也誕生在這一年,該產(chǎn)品賦予了 DB2 對異構(gòu)數(shù)據(jù)庫的支持能力。DB2 在 Windows NT 和 SINIX平臺上的第一個版本(DB2 V2)發(fā)布。

2.IBM發(fā)布了在 AIX 和 MVS 平臺上的數(shù)據(jù)挖掘技術(shù),用于管理大文本、圖像、音頻、視頻和指紋信息的擴(kuò)展器(Extender)以及可以對數(shù)據(jù)倉庫進(jìn)行可視化構(gòu)造和管理的Visual Warehouse。

3.IBM發(fā)布了 DB2 WWW Connection V1 for OS/2 and AIX(該產(chǎn)品后來被更名為Net.Data)。該產(chǎn)品可以將數(shù)據(jù)庫中的數(shù)據(jù)快速發(fā)布到 Web。第一屆 IDUG 亞太區(qū)大會在澳大利亞悉尼召開。這年IBM 并購了 Lotus Development Corp。

1996:

1.IBM發(fā)布 DB2 V2.1.2 ,這是第一個真正支持 JAVA 和 JDBC 的數(shù)據(jù)庫產(chǎn)品。

2.DataJoiner 開始支持對非關(guān)系型數(shù)據(jù)庫(比如 IMS 和 VSAM)的存取。

3.IBM發(fā)布了 Intelligent Miner,該產(chǎn)品可以對基于 DB2 的數(shù)據(jù)源實施數(shù)據(jù)挖掘。

4.IBM并購 Tivoli。 IBM 將 DB2 更名為 DB2 Universal Database,這是第一個能夠?qū)Χ嗝襟w和 Web 進(jìn)行支持的RDBMS。該系統(tǒng)具有很好的伸縮性,可以從桌面系統(tǒng)擴(kuò)展到大型企業(yè),適應(yīng)單處理器、 SMP 和 MPP 計算環(huán)境,并可以運行在所有主流操作系統(tǒng)和硬件平臺上。 DB2 V5 是以前的兩個產(chǎn)品的合并:DB2 Common Server V 2.1.2 和 DB2 并行版 1.2。

5.IBM發(fā)布了數(shù)字圖書館產(chǎn)品,這是一個多媒體資產(chǎn)管理產(chǎn)品,也是 IBM Content Manager 的前身。

6.DB2 Magzine 第一期發(fā)布,DB2 有了自己專門的技術(shù)刊物。

1997:

1.IBM發(fā)布了可以支持 Web 的 DB2 for OS/390 V5,這是當(dāng)時唯一能夠支持64, 000個并發(fā)用戶和百 TB 級別的數(shù)據(jù)庫產(chǎn)品。

2.IBM發(fā)布了DB2 UDB for UNIX、Windows and OS/2,該產(chǎn)品支持 ROLLUP 和 CUBE 函數(shù),對聯(lián)機(jī)分析處理(OLAP)具有重要意義。

3.IDUG 第一次技術(shù)論壇在加拿大多倫多召開。

4.IBM發(fā)布了用于企業(yè)級內(nèi)容管理的 EDMSuite,該產(chǎn)品包含了用于管理計算機(jī)生成報表的 OnDemand 和 管理圖像的 ImagePlus VisualInfo。

5.IBM基于 RS/6000 SP 架構(gòu)的超級計算機(jī)"深藍(lán)"在國際象棋的 6 番棋對抗中戰(zhàn)勝了世界棋王卡斯帕羅夫。

1998:

1.IBM發(fā)布了 DB2 OLAP Server,這是一個基于 DB2 的完整的 OLAP Solution。這個產(chǎn)品是和 Arbor Software(Hyperion的前身)合作開發(fā)的。

2.IBM發(fā)布了 DB2 Data Links 技術(shù),該技術(shù)可使 DB2 對外部文件進(jìn)行管理。

3.DB2的 shared-nothing集群技術(shù)擴(kuò)展到 Windows 和 Solaris 平臺。

4.IBM發(fā)布了 DB2 Spatial Extender,這是與ESRI公司在DataJoiner基礎(chǔ) 上聯(lián)合開發(fā)的,該產(chǎn)品賦予了DB2 對地理信息數(shù)據(jù)的存取能力。

5.IBM發(fā)布了 ContentConnect,該產(chǎn)品是 Enterprise Information Portal(EIP)的前身。

6.DB2 對 SCO UnixWare 平臺提供支持。

7.DB2 UDB V5.2 增加了對 SQLJ、Java 存儲過程和用戶自定義函數(shù)的支持。

8.IBM發(fā)布 DB2 UDB for AS/400,使 AS/400 成為充分支持電子商務(wù)的機(jī) 型。

1999:

1/IBM為了對移動計算提供支持,發(fā)布了DB2 UDB 衛(wèi)星版和DB2 Everywhere(這是一個適用于手持設(shè)備的微型關(guān)系數(shù)據(jù)庫管理系統(tǒng),后稱為DB2 Everyplace)。

2/IBM發(fā)布了 Enterprise Information Portal,該產(chǎn)品可以跨數(shù)字圖書 館和 EDMSuite 提供一個統(tǒng)一的聯(lián)合檢索功能。

3/DB2增加了能夠識別 XML 語言的文本檢索功能,從而引入了 XML 支 持,并啟動了DB2 XML Extender 的 beta 計劃。

4/IBM發(fā)布了 Intel 平臺上的 DB2 UDB for Linux。

5/IBM 研究機(jī)構(gòu)將 DB2 的聯(lián)邦(federation)功能和 Garlic 技術(shù)(Garlic的目標(biāo)是使能大規(guī)模多媒體信息系統(tǒng),集成到生命科學(xué)解決方案DiscoveryLink 中

2000:

1/IBM發(fā)布了 DB2 XML Extender,成為在業(yè)界第一個為數(shù)據(jù)庫提供內(nèi)置 XML 支持的廠商。

2/IBM將 Visual Warehouse 集成到 DB2 中,為DB2 提供了內(nèi)置的數(shù)據(jù)倉庫管理功能。

3/DB2對Linux 的支持進(jìn)一步增強(qiáng),能夠支持基于 Intel 的 Linux集群、 發(fā)布了可以運行在主機(jī)上的 DB2 UDB for Linux和可以運行在嵌入式Linux上的 DB2 Everyplace。

4/DB2開始支持 NUMA-Q 平臺,可以運行在該平臺上的類 UNIX操作系統(tǒng)DYNIX/PTX 上。

5/DB2通過 Net.Search Extender 提供了 in-memory 高速文本檢索功能。

6/IBM啟動了數(shù)據(jù)庫管理工具業(yè)務(wù),起初著重于為主機(jī)上的 IMS 和 DB2 提供高效管理工具,最終這項業(yè)務(wù)擴(kuò)展到 UNIX、Linux 和 Windows 平臺。 Informix數(shù)據(jù)庫產(chǎn)品也在支持之列。

7/IBM開始通過在DB2中集成 DataJoiner 來提供數(shù)據(jù)聯(lián)邦(federation)功能 。

8/IBM發(fā)布了用于管理數(shù)字資產(chǎn)的Content Manager。IBM 數(shù)字圖書館和 EDMSuite 產(chǎn)品都被包含在一個單一的架構(gòu)中來提供多媒體資產(chǎn)管理和企業(yè)內(nèi) 容管理。荷蘭國家圖書館、梵蒂岡圖書館都是最早的用戶。

9/DB2在主機(jī)上銷售出了它的第10000個許可證。

2001:

1/IBM以 10 億美金收購了 Informix 的數(shù)據(jù)庫業(yè)務(wù),這次收購擴(kuò)大了IBM 的分布式數(shù)據(jù)庫業(yè)務(wù)。

2/DB2 OLAP Server中增添了數(shù)據(jù)挖掘功能。

3/IBM發(fā)布了第一個能夠支持多種平臺的 DB2 工具。

4/DB2提供了基于 SOAP 的 Web 服務(wù)的支持。DB2 XML Extender和存儲過程可以使DB2成為 Web 服務(wù)的提供者。

5/IBM科學(xué)家在納米碳管晶體管技術(shù)領(lǐng)域取得突破。IBM 用納米碳管制造出了世界上第一批納米晶體管--由直徑 10 個原子大小的碳原子組成的小圓柱結(jié) 構(gòu),比當(dāng)今基于硅的晶體管小 500 倍。

6/DB2拓寬了其數(shù)據(jù)聯(lián)邦(federation)的能力,可以對WebSphere MQ消息隊列和生命科學(xué)領(lǐng)域特定格式的文件提供支持。

7/IBM發(fā)布了 DB2 UDB for OS/390。

2002:

1/IBM發(fā)布了 Xperanto,這是一個基于標(biāo)準(zhǔn)的信息集成中間件的演示版, 可以用來優(yōu)化對分散數(shù)據(jù)源的存取。這個演示版本使用了XML、Xquery、Web 服 務(wù)、數(shù)據(jù)聯(lián)邦(federation)和全文檢索等先進(jìn)技術(shù)。

2/IBM宣布計劃收購 Rational Software Corp,從而使得 IBM軟件能夠 支持從設(shè)計、開發(fā)、部署到管理和維護(hù)的完整過程。

3/DB2通過基于 SOAP 的 Web 服務(wù)擴(kuò)展了數(shù)據(jù)聯(lián)邦(federation)的能力。并可以作為 Web 服務(wù)的使用者出現(xiàn)在 Web 服務(wù)架構(gòu)中。

4/DB2 OLAP Server中添加了hybrid(多維和關(guān)系)分析能力。

5/作為IBM 自主運算策略的一部分,SMART(自我管理和資源調(diào)節(jié))技術(shù) 在 DB2 UDB V8.1 中首次正式應(yīng)用。

6/IBM并購 Tarian Sotware,從而加強(qiáng)了Content Manager 中記錄管理組 件的功能。

2003:

1/IBM將數(shù)據(jù)管理產(chǎn)品統(tǒng)一更名為信息管理產(chǎn)品,旨在改變很多用戶對于 DB2 家族產(chǎn)品只能完成單一的數(shù)據(jù)管理的印象,強(qiáng)調(diào)了 DB2 家族在信息的處理與集成方面的能力。

2/DYNIX/ptxDB2 發(fā)布了 DB2 Information Integrator(該產(chǎn)品由以 前的 DB2 DataJoiner和 Enterprise Information Portal演化而來),該款軟件旨在幫助客戶即時訪問、集成、管理和分析存儲于企業(yè)內(nèi)外任何平臺上的各類信息。

2004:IBM DB2 在TPC 的兩項測試中屢次刷新該測試的新紀(jì)錄,在計算領(lǐng) 域的歷史上樹立了新的里程碑。其中在TPC-C 的測試中,它創(chuàng)造了計算速度領(lǐng)域新的世界記錄,徹底粉碎了在該測試中每分鐘三百萬次交易的極限。

2005:經(jīng)過長達(dá)5年的開發(fā),IBM DB2 9將傳統(tǒng)的高性能、易用性與自描述、靈活的XML相結(jié)合,轉(zhuǎn)變成為交互式、充滿活力的數(shù)據(jù)服務(wù)器。

2006:IBM發(fā)布DB2 9,將數(shù)據(jù)庫領(lǐng)域帶入XML時代。IT建設(shè)業(yè)已進(jìn)入SOA(Service-Oriented Architecture)時代。實現(xiàn)SOA,其核心難點是順暢解決不同應(yīng)用間的數(shù)據(jù)交換問題。XML以其可擴(kuò)展性、 與平臺無關(guān)性和層次結(jié)構(gòu)等特性,成為構(gòu)建SOA時不同應(yīng)用間進(jìn)行數(shù)據(jù)交換的主流語言。而如何存儲和管理幾何量級的XML數(shù)據(jù)、直接支持原生XML文檔成為SOA構(gòu)建效率和質(zhì)量的關(guān)鍵。在這這種情況下,IBM推出了全面支持Original XML的DB2 9,使XML數(shù)據(jù)的存儲問題迎刃而解,開創(chuàng)了一個新的XML數(shù)據(jù)庫時代。同年1月30日,IBM發(fā)布了一個DB2免費版本DB2Express-C。

DB2數(shù)據(jù)庫產(chǎn)品組件和功能

DB2 Engine

DB2 Engine 是整個數(shù)據(jù)庫系統(tǒng)的核心,提供了 DB2 的基本功能。 DB2 引擎類似汽車的發(fā)動機(jī),負(fù)責(zé)管理和控制對數(shù)據(jù)的存??;負(fù)責(zé)生成程序包(存儲存取計劃的數(shù)據(jù)庫對象);提供事務(wù)的管理; 保障數(shù)據(jù)的完整性和數(shù)據(jù)保護(hù); 提供應(yīng)用程序并發(fā)控制。 數(shù)據(jù)庫引擎(DB2Engine)設(shè)計的完善與否,決定了數(shù)據(jù)庫系統(tǒng)是否穩(wěn)定和高效。 DB2 Engine 是所有數(shù)據(jù)庫中最強(qiáng)大的數(shù)據(jù)庫引擎。

DB2 客戶機(jī)

DB2 V9 大大簡化了將應(yīng)用程序連接到 DB2 數(shù)據(jù)庫所需的基礎(chǔ)設(shè)施的部署。 DB2 V9

提供以下客戶機(jī):

DB2 V9 Runtime Client (DB2 RTCL)DB2 V9 Client

Java Common Client (JCC)

DB2 V9 Client Lite

還有 通信支持(Communication Support),DB2 Relational Connect, DB2 Data Joiner, DB2 擴(kuò)展器(DB2 Extender) 等部分,有些部分不是必須的。

DB2數(shù)據(jù)庫復(fù)制遷移

以下方法經(jīng)測試,在環(huán)境IBM x346,3.2G×2,4G,RAID 1,DB2 V8.2.4,Win2000 Adv Server,DMS表空間中,數(shù)據(jù)的load速度在60-100萬條/min左右。

背景:需要更改數(shù)據(jù)庫表空間,或者需要將數(shù)據(jù)庫中所有表的數(shù)據(jù)遷移到一個新的數(shù)據(jù)庫中。

步驟:

1.通過db2控制臺(db2cc)選中源數(shù)據(jù)庫中的所有表,將其導(dǎo)出成DDL腳本;

2.根據(jù)需要對腳本進(jìn)行必要的修改,譬如更改表空間為GATHER;

3.新建數(shù)據(jù)庫,新建DMS表空間:GATHER;

4.將DDL腳本在此數(shù)據(jù)庫中執(zhí)行;

5.編寫代碼查詢源數(shù)據(jù)庫中的所有表,自動生成export腳本;

6.編寫代碼查詢源數(shù)據(jù)庫中的所有表,自動生成import腳本;

7.連接源數(shù)據(jù)庫執(zhí)行export腳本;

8.連接目標(biāo)數(shù)據(jù)庫執(zhí)行import腳本;

附錄1:生成export腳本代碼示例:/**

* 創(chuàng)建導(dǎo)出腳本

* @param conn

* @param creator 表創(chuàng)建者

* @param filePath

*/

public void createExportFile(Connection conn,String creator,String filePath) throws Exception {

DBBase dbBase = new DBBase(conn);

String selectTableSql 2= "select name from sysibm.systables where creator = '" + creator + "' and type='T'";

try {

dbBase.executeQuery(selectTableSql2);

} catch (Exception ex) {

throw ex;

} finally {

dbBase.close();

}

DBResult result = dbBase.getSelectDBResult();

List list = new ArrayList();

while (result.next()) {

String table = result.getString(1);

list.add(table);

}

StringBuffer sb = new StringBuffer();

String enterFlag = " ";

for (int i = 0; i < list.size();i++) {

String tableName = (String)list.get(i);

sb.append("db2 "export to aa" + String.valueOf(i+1)+ ".ixf of ixf select * from " + tableName + """);

sb.append(enterFlag);

}

String str = sb.toString();

FileUtility.saveStringToFile(filePath, str, false);

} 附錄2:生成import腳本代碼示例:/**

* 創(chuàng)建裝載腳本

* @param conn

* @param creator 表創(chuàng)建者

* @param filePath

*/

public void createLoadFile(Connection conn,String creator,String filePath) throws Exception {

DBBase dbBase = new DBBase(conn);

String selectTableSql = "select name from sysibm.systables where creator = '" + creator + "' and type='T'";

try {

dbBase.executeQuery(selectTableSql);

} catch (Exception ex) {

throw ex;

} finally {

dbBase.close();

}

DBResult result = dbBase.getSelectDBResult();

List list = new ArrayList();

while (result.next()) {

String table = result.getString(1);

list.add(table);

}

StringBuffer sb = new StringBuffer();

String enterFlag = " ";

for (int i = 0; i < list.size();i++) {

String tableName = (String)list.get(i);

sb.append("db2 "load from aa" + String.valueOf(i+1)+ ".ixf of ixf into " + tableName + " COPY NO without prompting "");

sb.append(enterFlag);

}

String str = sb.toString();

FileUtility.saveStringToFile(filePath, str, false);

} 附錄3:export腳本示例db2 connect to testdb user test password test

db2 "export to aa1.ixf of ixf select * from table1"

db2 "export to aa2.ixf of ixf select * from table2"

db2 connect reset 附錄4:import腳本示例db2 connect to testdb user test password test

db2 "load from aa1.ixf of ixf replace into table1 COPY NO without prompting "

db2 "load from aa2.ixf of ixf replace into table2 COPY NO without prompting "

db2 connect reset

DB2數(shù)據(jù)庫學(xué)習(xí)路線圖

DB2數(shù)據(jù)庫的相關(guān)介紹

DB2數(shù)據(jù)庫常用命令

1.關(guān)閉db2

db2stop 或db2stop force。

在腳本中一般兩個都寫上,避免使用db2stop force命令,如:

db2stop

db2stop force

2.啟動db2

db2start

3.創(chuàng)建數(shù)據(jù)庫

db2 create db <db name>或db2 create db using codeset GBK territory CN

4.刪除數(shù)據(jù)庫

執(zhí)行此操作要小心。

db2 drop db <db name>

如果不能刪除,斷開所有數(shù)據(jù)庫連接或者重啟db2。

5.斷開數(shù)據(jù)庫連接

db2 force application all

6.連接數(shù)據(jù)庫

db2 connect to <db name> user <username> using <passWord>

7.斷開數(shù)據(jù)庫連接

斷開當(dāng)前數(shù)據(jù)庫連接:

db2 connect reset或者:db2 disconnect current

斷開所有數(shù)據(jù)庫的連接:

db2 disconnect all

8.備份數(shù)據(jù)庫

db2 backup db <db name>

備注:執(zhí)行以上命令之前需要斷開數(shù)據(jù)庫連接

9.恢復(fù)數(shù)據(jù)庫

db2 restore db <source db name>

10.導(dǎo)出數(shù)據(jù)文件

db2move <db name> export

[-sn <模式名稱,一般為db2admin>]

[-tn <表名,多個之間用逗號分隔>]

11.導(dǎo)入數(shù)據(jù)文件

db2move <db name> import

12.列出數(shù)據(jù)庫中所有db

db2 list db directory

13.進(jìn)入db2命令環(huán)境

在“運行”中執(zhí)行:db2cmd

14.獲取db2數(shù)據(jù)庫管理配置環(huán)境信息

db2 get dbm cfg

15.獲取db2某個數(shù)據(jù)庫數(shù)據(jù)庫管理配置環(huán)境信息

db2 get db cfg for <db name>

或者:連接至某個數(shù)據(jù)庫以后執(zhí)行db2 get db cfg。

16.設(shè)置聯(lián)合數(shù)據(jù)庫為可用(默認(rèn)聯(lián)合數(shù)據(jù)庫不可用)

db2 update dbm cfg using federated yes

17.更改db2日志空間的大小

備注:以下命令為了防止db2數(shù)據(jù)庫過份使用硬盤空間而設(shè),僅用于開發(fā)者自己機(jī)器上的db2,如果是服務(wù)器,則參數(shù)需要修改。

db2 UPDATE DB CFG FOR <db name> USING logretain OFF

logPRimary 3 logsecond 2 logfilsiz 25600;

如果頁大小是4KB,則以上命令創(chuàng)建3個100M的日志文件,占用300MB硬盤空間。25600*4KB=102400KB。

18.創(chuàng)建臨時表空間

DB2 CREATE USER TEMPORARY TABLESPACE STMaspACE PAGESIZE 32 K

MANAGED BY DATABASE USING (FILE 'D:\DB2_TAB\STMASPACE.F1' 10000)

EXTENTSIZE 256

19.獲取數(shù)據(jù)庫管理器的快照數(shù)據(jù)

db2 –v get snapshot for dbm

20.顯示進(jìn)行程號

db2 list applications show detail

21.調(diào)查錯誤

sqlcode:產(chǎn)品特定錯誤碼;

sqlstate:DB2系列產(chǎn)品的公共錯誤碼,符合ISO/ANSI 92SQL標(biāo)準(zhǔn)。

調(diào)查sqlcode : db2

調(diào)查sqlstate: db2 ? 08004

22.創(chuàng)建表空間

rem 創(chuàng)建緩沖池空間 8K

db2 connect to gather

db2 CREATE BUFFERPOOL STMABMP IMMEDIATE SIZE 25000 PAGESIZE 8K

rem 創(chuàng)建表空間:STMA

rem 必須確認(rèn)路徑正確

rem D:\DB2Container\Stma

db2 drop tablespace stma

db2 CREATE

REGULAR TABLESPACE STMA PAGESIZE 8 K

MANAGED BY SYSTEM

USING ('D:\DB2Container\Stma' ) EXTENTSIZE 8

OVERHEAD 10.5 PREFETCHSIZE 8 TRANSFERRATE 0.14 BUFFERPOOL

STMABMP

DROPPED TABLE RECOVERY OFF

db2 connect reset

23. 將暫掛的數(shù)據(jù)恢復(fù)到前滾狀態(tài)

db2 ROLLFORWARD DATABASE TESTDB TO END OF LOGS AND COMPLETE NORETRIEVE

24.備份表空間

BACKUP DATABASE YNDC TABLESPACE ( USERSPACE1 )

TO "D:\temp" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING

25.創(chuàng)建db2工具數(shù)據(jù)庫

db2 create tools catalog systools create new database toolsdb

26.如何進(jìn)行增量/差量備份

增量:上一次完整備份至本次備份之間增加的數(shù)據(jù)部分;

差量(delta):上次備份以來(可能是完整備份、增量備份或者差量備份)至本次備份之間增加的數(shù)據(jù)部分;

27.更新所有表的統(tǒng)計信息

db2 -v connect to DB_NAME

db2 -v "select tbname, nleaf, nlevels, stats_timefrom sysibm.sysindexes"

db2 -v reorgchkupdate statistics on table all

db2 -v "select tbname, nleaf, nlevels, stats_timefrom sysibm.sysindexes"

db2 -v terminate

28.對一張表運行統(tǒng)計信息

db2 -v runstatson table TAB_NAMEand indexes all

29.查看是否對數(shù)據(jù)庫執(zhí)行了RUNSTATS

db2 -v "select tbname, nleaf, nlevels,

stats_timefrom sysibm.sysindexes"

30.更改緩沖池的大小,緩沖池中,當(dāng)syscat.bufferpools的npages是-1時,由數(shù)據(jù)庫的配置參數(shù)bufferpage控制緩沖池的大小。

將npages的值更改為-1的命令:

db2 -v connect to DB_NAME

db2 -v select * from syscat.bufferpools

db2 -v alter bufferpoolIBMDEFAULTBP size -1

db2 -v connect reset

db2 -v terminate

更改數(shù)據(jù)庫配置參數(shù)BufferPages的命令如下:

db2 -v update db cfgfor dbnameusing BUFFPAGE bigger_value

db2 -v terminate

31.查看數(shù)據(jù)庫監(jiān)視內(nèi)容列表

db2 -v get monitor switches

32.打開某個數(shù)據(jù)庫監(jiān)視內(nèi)容

db2 -v update monitor switches using bufferpoolon

33.獲取數(shù)據(jù)庫快照

db2 -v get snapshot for all databases > snap.out

db2 -v get snapshot for dbm>> snap.out

db2 -v get snapshot for all bufferpools>> snap.out

db2 -v terminate

34.重置數(shù)據(jù)庫快照

db2 -v reset monitor all

35.計算緩沖池命中率 理想情況下緩沖池命中率在95%以上,計算公式如下:

(1 -((buffer pool data physical reads + buffer pool index physical reads)

/(buffer pool data logical reads + pool index logical reads))) *100%

36.創(chuàng)建db2實例

db2icrt <實例名稱>

37.刪除db2實例

db2idrop <實例名稱>

38.設(shè)置當(dāng)前db2實例

set db2intance=db2

39.顯示db2擁有的實例

db2ilist

40.恢復(fù)離線增量備份數(shù)據(jù)庫的命令

DB2 RESTORE DATABASE YNDC INCREMENTAL AUTOMATIC FROM

D:\backup\autobak\db2 TAKEN AT

41.創(chuàng)建樣本數(shù)據(jù)庫

在unix平臺,使用:

sqllib/bin/db2sampl <path>

在windows,os/2平臺,使用:db2sampl e,e是可選參數(shù),指定將創(chuàng)建數(shù)據(jù)庫的驅(qū)動器;

42.列出數(shù)據(jù)庫中所有的表

db2 list tables

43.列出某個表的數(shù)據(jù)結(jié)構(gòu)

db2 describe table v_ro_role

44.給表增加列

ALTER TABLE STAFF

ADD COLUMN PNHONE VARCHAR(20)

45.數(shù)據(jù)遷移方法1

export腳本示例

db2 connect to testdb user test password test

db2 "export to aa1.ixf of ixf select * from table1"

db2 "export to aa2.ixf of ixf select * from table2"

db2 connect reset

import腳本示例

db2 connect to testdb user test password test

db2 "load from aa1.ixf of ixf replace into table1 COPY NO without prompting "

db2 "load from aa2.ixf of ixf replace into table2 COPY NO without prompting "

db2 connect reset

DB2數(shù)據(jù)庫錯誤處理

DB2計算機(jī)程序一個重要的特征就是錯誤處理。SQL communications area(SQLCA)結(jié)構(gòu)曾一度被專門用于DB2程序在每個SQL語句被執(zhí)行后向應(yīng)用程序返回錯誤信息。在SQLCA block中常見錯誤診斷被體現(xiàn)在SQLCODE中。

SQL返回代碼的值對應(yīng)為:

· 0表示成功執(zhí)行

· 正值表示成功執(zhí)行但是有一個或多個警告。例如+100表示沒有行被發(fā)現(xiàn)。

· 負(fù)值表示出現(xiàn)錯誤。例如-911表示鎖超時(或死鎖),并觸發(fā)撤消程序。

DB2數(shù)據(jù)庫精簡版

DB2 Express-C數(shù)據(jù)庫提供全球范圍的下載,但是并不是所有地方都有寬帶網(wǎng)絡(luò)。因此,IBM發(fā)布了一個基于Windows的DB2 Express-C 9.7.2精簡版。較之完全版,精簡版驚人的縮減了44%。

不同于精簡版,DB2 Express-C(完全版)包括控制中心、全文檢索、配置助手以及第一步向?qū)?。同時完全版的用戶界面還支持非英語語言。但是,如果用戶不需要這些特性,則可以選擇DB2 Express-C(精簡版)進(jìn)行快速下載和簡單安裝。

例如,如果在Windows服務(wù)器上設(shè)置一個用Data Studio來進(jìn)行遠(yuǎn)程管理的DB2數(shù)據(jù)庫,那么DB2 Express-C精簡版就是一個不錯的選擇。

【騰訊云】云服務(wù)器、云數(shù)據(jù)庫、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: