版本
DB2有眾多的版本,或者是許可證。為了弱化“版本”的概念增強可選擇性,IBM允許客戶不購買他們不需要的特性。示例版本包括Express、Workgroup和Enterprise版本?;贚inux/UNIX/Windows的最復雜的版本是DB2 Data Warehouse Enterprise Edition,縮寫為DB2 DWE。這個版本的偏重于混合工作負荷(線上交易處理和數據倉庫)和商業(yè)智能的實現。DB2 DWE包括一些商務智能的特性例如ETL、數據發(fā)掘、OLAP加速以及in-line analytics。
DB2 Everyplace
主要用于移動計算。
移動計算的真正力量并不在于移動設備本身,而是在于能夠利用來自其他來源的數據。
DB2 Everyplace 不僅僅是一種移動計算基礎設施。它是一個完整的環(huán)境,包含了構建、部署和支持強大的電子商務應用程序所需的工具。DB2 Everyplace 提供一個“指紋” 引擎(大約200 KB),其中包含所有的安全特性,比如表加密和提供高性能的高級索引技術。
它可以在當今最常見的各種手持設備上順利地運行(提供多線程支持),比如:Palm OS、Microsoft Windows Mobile Edition、任何基于Windows 的32 位操作系統(tǒng)、Symbian、QNX Neutrino、Java 2 Platform. Micro Edition(J2ME)設備(比如RIM 的Blackberry pager)、嵌入式Linux 發(fā)布版(比如BlueCat Linux)等等。
DB2 Personal Edition
DB2 Personal Edition(DB2 Personal)是單用戶RDBMS,運行于低價的商用硬件桌面計算機上。
DB2 Personal 包含DB2 Express 的所有特性,但是有一個例外:遠程客戶機無法連接運行這個DB2 版本的數據庫。
DB2 Express - C
DB2 Express - C 其實 不算是DB2 系列的一個版本,但是它提供了DB2 Express 的大多數功能。2006 年1 月,IBM 發(fā)布了這個特殊的DB2 免費版本,可以用于基于Linux 和Windows 的操作系統(tǒng)。
DB2 Express Edition
DB2 Express Edition(DB2 Express)是一種功能全面的支持Web 的客戶機/服務器RDBMS。DB2 Express 可以用于基于Windows 和Linux 的工作站。DB2 Express 提供一個低價的入門級服務器,主要用于小型企業(yè)和部門的計算任務。
DB2 Workgroup Edition
DB2 Workgroup Edition(DB2 Workgroup)和DB2 Express Edition 功能相同,只是在服務器上可以安裝的內存和價值單元(等于一個服務器處理器核心的能力)數量方面有區(qū)別。
DB2 Enterprise Edition
DB2 Enterprise Edition(DB2 Enterprise)是一種功能全面的支持Web 的客戶機/服務器RDBMS。它可以用于所有支持的UNIX 版本、Linux 和Windows。DB2 Enterprise 適合作為大型和中型的部門服務器。DB2 Enterprise 包含DB2 Express 和DB2 Workgroup 的所有功能,還添加了其他功能。
Data Enterprise Developer Edition
Data Enterprise Developer Edition(DEDE)是為應用程序開發(fā)人員提供的特殊版本。這個版本提供了幾個信息管理產品,使應用程序開發(fā)人員可以對應用程序進行設計、構建和建立原型,產生的應用程序可以部署在任何IBM 信息管理軟件客戶機或服務器平臺上。在DB2 9 中,這個軟件包已經取消了,由DB2 Express - C 取代。
歷史
誕生與發(fā)展
DB2擁有悠久的歷史并且被很多人認為是最早使用SQL(同樣最早被IBM開發(fā))的數據庫產品。
1968:IBM 在 IBM 360 計算機上研制成功了 IMS V1,這是第一個也是最著名的和最為典型的層次型數據庫管理系統(tǒng)。至今仍然還有企業(yè)在使用呢。
1970:這是數據庫歷史上劃時代的一年,IBM公司的研究員E.F.Codd 發(fā)表了業(yè)界第一篇關于關系數據庫理論的論文"A Relational Model of Data for Large Shared Data Banks",首次提出了關系模型的概念。這篇論文是計算機科學史上最重要的論文之一,奠定了Codd博士"關系數據庫之父"的地位。
1973:IBM研究中心啟動了 System R 項目,研究多用戶與大量數據下關系型數據庫的可行性,它為 DB2 的誕生打下了良好基礎。由此取得了一大批對數據庫技術發(fā)展具有關鍵性作用的成果,該項目于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 的基礎上 描述了 SQL 語言的第一個實現方案。這也是 System R 項目得出的重大成果之一。
1976:IBM System R 項目組發(fā)表了論文"A System R: Relational Approach to Database Management",描述了一個關系型數據庫的原型。IBM 的研究員Jim Gray 發(fā)表了名為"Granularity of Locks and Degrees of Consistency in a Shared DataBase"的論文,正式定義了數據庫事務的概念和數據一致性的機制。
1977:System R 原型在3個客戶處進行了安裝,這 3 個客戶分別是:波音公 司、Pratt & Whitney 公司和 Upjohn 藥業(yè)。這標志著 System R 從技術上已經是 一個比較成熟的數據庫系統(tǒng),能夠支撐重要的商業(yè)應用了。
1979:IBM研究員Pat Selinger在她的論文"Access Path Selection in a Relational Database Management System"中描述了業(yè)界第一個關系查詢優(yōu)化器。
1980:IBM發(fā)布了 S/38 系統(tǒng),該系統(tǒng)中集成了一個以 System R 為原型的數據庫服務器。為了方便應用程序的移植,它的 API 與 S/3、S/32 的 API 一致。
1981:由于發(fā)明了關系型數據庫模型,IBM 的研究員E.F.Codd 接受了ACM 圖靈獎,這是計算機科學界的最高榮譽。Codd 博士也是繼查爾斯.巴赫曼(Charles W. Bachman) 之后,又一位由于在數據庫領域做出巨大貢獻而獲此殊榮的計算機科學家。
1982:IBMPC 的出現標志著 PC 產業(yè)開始孕育發(fā)展。在以后相當長的一段時間內,在各種品牌的個人電腦上標記著的"IBM PC Compatible"字樣都見證著 IBM 在 這個領域的輝煌。
1982:IBM發(fā)布了 SQL/DS for VSE and VM 。這是業(yè)界第一個以 SQL 作為接口的商用數據庫管理系統(tǒng)。該系統(tǒng)也是基于 System R 原型所設計的。
1983:IBM發(fā)布了DATABASE 2(DB2)for MVS(內部代號為"Eagle")。
1986:System/38 V7 發(fā)布,該系統(tǒng)首次配置了查詢優(yōu)化器,能夠對應用程序的存取計劃進行優(yōu)化。
1987:IBM發(fā)布帶有關系型數據庫能力的 OS/2 V1.0擴展版,這是IBM第一次把關系型數據庫處理能力擴展到微機系統(tǒng)。這也是 DB2 for OS/2、Unix and Window 的雛形。
1988:IBM發(fā)布了SQL/400,為集成了關系型數據庫管理系統(tǒng)的AS/400服務器提供了SQL支持。IDUG(國際DB2用戶組織)組織成立。
1989:IBM定義了 Common SQL 和 IBM 分布式關系數據庫架構(DRDA),并在 IBM 所有的關系數據庫管理系統(tǒng)上加以實現。 第一屆 IDUG北美大會在美國芝加哥召開。
走向全球化
1992:第一屆 IDUG歐洲大會在瑞士日內瓦召開。這標志著 DB2 應用的全球化。
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 平臺上出現。
2.Louis V. Gerstner 入主 IBM。
1994:
1.DB2 For MVS V4 通過并行 Sysplex 技術的實現在主機上引入了分布式計算(數據共享)。
2.IBM發(fā)布了運行在 RS/6000 SP2 上的 DB2 并行版 V1,DB2 從此有了能夠適應大型數據倉庫和復雜查詢任務的可擴展架構。IBM 將 DB2 Common Server 擴展到 HP-UX 和 Sun Solaris 上。DB2 開始支持其他公司開發(fā)的 UNIX 平臺。 DB2/400 集成在 OS/400 V3.1中發(fā)布,并且引入了并行機制、存儲過程和參照完整性等機制。同時,IBM 宣布在 OS/2 和 AIX 平臺上的 DB2 產品能夠對多媒體數據和面向對象應用程序提供支持。
1995:
1.IBM發(fā)布了 DB2 Common Server V2,這是第一個能夠在多個平臺上運行的"對象-關系型數據庫"(ORDB)產品,并能夠對 Web 提供充分支持。DataJoiner for AIX 也誕生在這一年,該產品賦予了 DB2 對異構數據庫的支持能力。DB2 在 Windows NT 和 SINIX平臺上的第一個版本(DB2 V2)發(fā)布。
2.IBM發(fā)布了在 AIX 和 MVS 平臺上的數據挖掘技術,用于管理大文本、圖像、音頻、視頻和指紋信息的擴展器(Extender)以及可以對數據倉庫進行可視化構造和管理的Visual Warehouse。
3.IBM發(fā)布了 DB2 WWW Connection V1 for OS/2 and AIX(該產品后來被更名為Net.Data)。該產品可以將數據庫中的數據快速發(fā)布到 Web。第一屆 IDUG 亞太區(qū)大會在澳大利亞悉尼召開。這年IBM 并購了 Lotus Development Corp。
1996:
1.IBM發(fā)布 DB2 V2.1.2 ,這是第一個真正支持 JAVA 和 JDBC 的數據庫產品。
2.DataJoiner 開始支持對非關系型數據庫(比如 IMS 和 VSAM)的存取。
3.IBM發(fā)布了 Intelligent Miner,該產品可以對基于 DB2 的數據源實施數據挖掘。
4.IBM并購 Tivoli。 IBM 將 DB2 更名為 DB2 Universal Database,這是第一個能夠對多媒體和 Web 進行支持的RDBMS。該系統(tǒng)具有很好的伸縮性,可以從桌面系統(tǒng)擴展到大型企業(yè),適應單處理器、 SMP 和 MPP 計算環(huán)境,并可以運行在所有主流操作系統(tǒng)和硬件平臺上。 DB2 V5 是以前的兩個產品的合并:DB2 Common Server V 2.1.2 和 DB2 并行版 1.2。
5.IBM發(fā)布了數字圖書館產品,這是一個多媒體資產管理產品,也是 IBM Content Manager 的前身。
6.DB2 Magzine 第一期發(fā)布,DB2 有了自己專門的技術刊物。
1997:
1.IBM發(fā)布了可以支持 Web 的 DB2 for OS/390 V5,這是當時唯一能夠支持64, 000個并發(fā)用戶和百 TB 級別的數據庫產品。
2.IBM發(fā)布了DB2 UDB for UNIX、Windows and OS/2,該產品支持 ROLLUP 和 CUBE 函數,對聯機分析處理(OLAP)具有重要意義。
3.IDUG 第一次技術論壇在加拿大多倫多召開。
4.IBM發(fā)布了用于企業(yè)級內容管理的 EDMSuite,該產品包含了用于管理計算機生成報表的 OnDemand 和 管理圖像的 ImagePlus VisualInfo。
5.IBM基于 RS/6000 SP 架構的超級計算機"深藍"在國際象棋的 6 番棋對抗中戰(zhàn)勝了世界棋王卡斯帕羅夫。
1998:
1.IBM發(fā)布了 DB2 OLAP Server,這是一個基于 DB2 的完整的 OLAP Solution。這個產品是和 Arbor Software(Hyperion的前身)合作開發(fā)的。
2.IBM發(fā)布了 DB2 Data Links 技術,該技術可使 DB2 對外部文件進行管理。
3.DB2的 shared-nothing集群技術擴展到 Windows 和 Solaris 平臺。
4.IBM發(fā)布了 DB2 Spatial Extender,這是與ESRI公司在DataJoiner基礎 上聯合開發(fā)的,該產品賦予了DB2 對地理信息數據的存取能力。
5.IBM發(fā)布了 ContentConnect,該產品是 Enterprise Information Portal(EIP)的前身。
6.DB2 對 SCO UnixWare 平臺提供支持。
7.DB2 UDB V5.2 增加了對 SQLJ、Java 存儲過程和用戶自定義函數的支持。
8.IBM發(fā)布 DB2 UDB for AS/400,使 AS/400 成為充分支持電子商務的機 型。
1999:
1/IBM為了對移動計算提供支持,發(fā)布了DB2 UDB 衛(wèi)星版和DB2 Everywhere(這是一個適用于手持設備的微型關系數據庫管理系統(tǒng),后稱為DB2 Everyplace)。
2/IBM發(fā)布了 Enterprise Information Portal,該產品可以跨數字圖書 館和 EDMSuite 提供一個統(tǒng)一的聯合檢索功能。
3/DB2增加了能夠識別 XML 語言的文本檢索功能,從而引入了 XML 支 持,并啟動了DB2 XML Extender 的 beta 計劃。
4/IBM發(fā)布了 Intel 平臺上的 DB2 UDB for Linux。
5/IBM 研究機構將 DB2 的聯邦(federation)功能和 Garlic 技術(Garlic的目標是使能大規(guī)模多媒體信息系統(tǒng),集成到生命科學解決方案DiscoveryLink 中
2000:
1/IBM發(fā)布了 DB2 XML Extender,成為在業(yè)界第一個為數據庫提供內置 XML 支持的廠商。
2/IBM將 Visual Warehouse 集成到 DB2 中,為DB2 提供了內置的數據倉庫管理功能。
3/DB2對Linux 的支持進一步增強,能夠支持基于 Intel 的 Linux集群、 發(fā)布了可以運行在主機上的 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啟動了數據庫管理工具業(yè)務,起初著重于為主機上的 IMS 和 DB2 提供高效管理工具,最終這項業(yè)務擴展到 UNIX、Linux 和 Windows 平臺。 Informix數據庫產品也在支持之列。
7/IBM開始通過在DB2中集成 DataJoiner 來提供數據聯邦(federation)功能 。
8/IBM發(fā)布了用于管理數字資產的Content Manager。IBM 數字圖書館和 EDMSuite 產品都被包含在一個單一的架構中來提供多媒體資產管理和企業(yè)內 容管理。荷蘭國家圖書館、梵蒂岡圖書館都是最早的用戶。
9/DB2在主機上銷售出了它的第10000個許可證。
2001:
1/IBM以 10 億美金收購了 Informix 的數據庫業(yè)務,這次收購擴大了IBM 的分布式數據庫業(yè)務。
2/DB2 OLAP Server中增添了數據挖掘功能。
3/IBM發(fā)布了第一個能夠支持多種平臺的 DB2 工具。
4/DB2提供了基于 SOAP 的 Web 服務的支持。DB2 XML Extender和存儲過程可以使DB2成為 Web 服務的提供者。
5/IBM科學家在納米碳管晶體管技術領域取得突破。IBM 用納米碳管制造出了世界上第一批納米晶體管--由直徑 10 個原子大小的碳原子組成的小圓柱結 構,比當今基于硅的晶體管小 500 倍。
6/DB2拓寬了其數據聯邦(federation)的能力,可以對WebSphere MQ消息隊列和生命科學領域特定格式的文件提供支持。
7/IBM發(fā)布了 DB2 UDB for OS/390。
2002:
1/IBM發(fā)布了 Xperanto,這是一個基于標準的信息集成中間件的演示版, 可以用來優(yōu)化對分散數據源的存取。這個演示版本使用了XML、Xquery、Web 服 務、數據聯邦(federation)和全文檢索等先進技術。
2/IBM宣布計劃收購 Rational Software Corp,從而使得 IBM軟件能夠 支持從設計、開發(fā)、部署到管理和維護的完整過程。
3/DB2通過基于 SOAP 的 Web 服務擴展了數據聯邦(federation)的能力。并可以作為 Web 服務的使用者出現在 Web 服務架構中。
4/DB2 OLAP Server中添加了hybrid(多維和關系)分析能力。
5/作為IBM 自主運算策略的一部分,SMART(自我管理和資源調節(jié))技術 在 DB2 UDB V8.1 中首次正式應用。
6/IBM并購 Tarian Sotware,從而加強了Content Manager 中記錄管理組 件的功能。
2003:
1/IBM將數據管理產品統(tǒng)一更名為信息管理產品,旨在改變很多用戶對于 DB2 家族產品只能完成單一的數據管理的印象,強調了 DB2 家族在信息的處理與集成方面的能力。
2/DYNIX/ptxDB2 發(fā)布了 DB2 Information Integrator(該產品由以 前的 DB2 DataJoiner和 Enterprise Information Portal演化而來),該款軟件旨在幫助客戶即時訪問、集成、管理和分析存儲于企業(yè)內外任何平臺上的各類信息。
2004:IBM DB2 在TPC 的兩項測試中屢次刷新該測試的新紀錄,在計算領 域的歷史上樹立了新的里程碑。其中在TPC-C 的測試中,它創(chuàng)造了計算速度領域新的世界記錄,徹底粉碎了在該測試中每分鐘三百萬次交易的極限。
2005:經過長達5年的開發(fā),IBM DB2 9將傳統(tǒng)的高性能、易用性與自描述、靈活的XML相結合,轉變成為交互式、充滿活力的數據服務器。
2006:IBM發(fā)布DB2 9,將數據庫領域帶入XML時代。IT建設業(yè)已進入SOA(Service-Oriented Architecture)時代。實現SOA,其核心難點是順暢解決不同應用間的數據交換問題。XML以其可擴展性、 與平臺無關性和層次結構等特性,成為構建SOA時不同應用間進行數據交換的主流語言。而如何存儲和管理幾何量級的XML數據、直接支持原生XML文檔成為SOA構建效率和質量的關鍵。在這這種情況下,IBM推出了全面支持Original XML的DB2 9,使XML數據的存儲問題迎刃而解,開創(chuàng)了一個新的XML數據庫時代。同年1月30日,IBM發(fā)布了一個DB2免費版本DB2Express-C。
DB2 產品組件和功能
DB2 數據庫的產品組件如圖
DB2 Engine
DB2 Engine 是整個數據庫系統(tǒng)的核心,提供了 DB2 的基本功能。 DB2 引擎類似汽車的發(fā)動機,負責管理和控制對數據的存??;負責生成程序包(存儲存取計劃的數據庫對象);提供事務的管理; 保障數據的完整性和數據保護; 提供應用程序并發(fā)控制。 數據庫引擎(DB2Engine)設計的完善與否,決定了數據庫系統(tǒng)是否穩(wěn)定和高效。 DB2 Engine 是所有數據庫中最強大的數據庫引擎。
DB2 客戶機
DB2 V9 大大簡化了將應用程序連接到 DB2 數據庫所需的基礎設施的部署。 DB2 V9
提供以下客戶機:
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 擴展器(DB2 Extender) 等部分,有些部分不是必須的。
復制遷移
以下方法經測試,在環(huán)境IBM x346,3.2G×2,4G,RAID 1,DB2 V8.2.4,Win2000 Adv Server,DMS表空間中,數據的load速度在60-100萬條/min左右。
背景:需要更改數據庫表空間,或者需要將數據庫中所有表的數據遷移到一個新的數據庫中。
步驟:
1.通過db2控制臺(db2cc)選中源數據庫中的所有表,將其導出成DDL腳本;
2.根據需要對腳本進行必要的修改,譬如更改表空間為GATHER;
3.新建數據庫,新建DMS表空間:GATHER;
4.將DDL腳本在此數據庫中執(zhí)行;
5.編寫代碼查詢源數據庫中的所有表,自動生成export腳本;
6.編寫代碼查詢源數據庫中的所有表,自動生成import腳本;
7.連接源數據庫執(zhí)行export腳本;
8.連接目標數據庫執(zhí)行import腳本;
附錄1:生成export腳本代碼示例:/**
* 創(chuàng)建導出腳本* @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
原理
學習路線圖
常用命令
1.關閉db2
db2stop 或db2stop force。
在腳本中一般兩個都寫上,避免使用db2stop force命令,如:
db2stop
db2stop force
2.啟動db2
db2start
3.創(chuàng)建數據庫
db2 create db 或db2 create db using codeset GBK territory CN
4.刪除數據庫
執(zhí)行此操作要小心。
db2 drop db
如果不能刪除,斷開所有數據庫連接或者重啟db2。
5.斷開數據庫連接
db2 force application all
6.連接數據庫
db2 connect to user using
7.斷開數據庫連接
斷開當前數據庫連接:
db2 connect reset或者:db2 disconnect current
斷開所有數據庫的連接:
db2 disconnect all
8.備份數據庫
db2 backup db
備注:執(zhí)行以上命令之前需要斷開數據庫連接
9.恢復數據庫
db2 restore db
10.導出數據文件
db2move export
[-sn <模式名稱,一般為db2admin>]
[-tn <表名,多個之間用逗號分隔>]
11.導入數據文件
db2move import
12.列出數據庫中所有db
db2 list db directory
13.進入db2命令環(huán)境
在“運行”中執(zhí)行:db2cmd
14.獲取db2數據庫管理配置環(huán)境信息
db2 get dbm cfg
15.獲取db2某個數據庫數據庫管理配置環(huán)境信息
db2 get db cfg for
或者:連接至某個數據庫以后執(zhí)行db2 get db cfg。
16.設置聯合數據庫為可用(默認聯合數據庫不可用)
db2 update dbm cfg using federated yes
17.更改db2日志空間的大小
備注:以下命令為了防止db2數據庫過份使用硬盤空間而設,僅用于開發(fā)者自己機器上的db2,如果是服務器,則參數需要修改。
db2 UPDATE DB CFG FOR 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.獲取數據庫管理器的快照數據
db2 –v get snapshot for dbm
20.顯示進行程號
db2 list applications show detail
21.調查錯誤
sqlcode:產品特定錯誤碼;
sqlstate:DB2系列產品的公共錯誤碼,符合ISO/ANSI 92SQL標準。
調查sqlcode : db2
調查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 必須確認路徑正確
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. 將暫掛的數據恢復到前滾狀態(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工具數據庫
db2 create tools catalog systools create new database toolsdb
26.如何進行增量/差量備份
增量:上一次完整備份至本次備份之間增加的數據部分;
差量(delta):上次備份以來(可能是完整備份、增量備份或者差量備份)至本次備份之間增加的數據部分;
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.查看是否對數據庫執(zhí)行了RUNSTATS
db2 -v "select tbname, nleaf, nlevels,
stats_timefrom sysibm.sysindexes"
30.更改緩沖池的大小,緩沖池中,當syscat.bufferpools的npages是-1時,由數據庫的配置參數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
更改數據庫配置參數BufferPages的命令如下:
db2 -v update db cfgfor dbnameusing BUFFPAGE bigger_value
db2 -v terminate
31.查看數據庫監(jiān)視內容列表
db2 -v get monitor switches
32.打開某個數據庫監(jiān)視內容
db2 -v update monitor switches using bufferpoolon
33.獲取數據庫快照
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.重置數據庫快照
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.設置當前db2實例
set db2intance=db2
39.顯示db2擁有的實例
db2ilist
40.恢復離線增量備份數據庫的命令
DB2 RESTORE DATABASE YNDC INCREMENTAL AUTOMATIC FROM
D:\backup\autobak\db2 TAKEN AT
41.創(chuàng)建樣本數據庫
在unix平臺,使用:
sqllib/bin/db2sampl
在windows,os/2平臺,使用:db2sampl e,e是可選參數,指定將創(chuàng)建數據庫的驅動器;
42.列出數據庫中所有的表
db2 list tables
43.列出某個表的數據結構
db2 describe table v_ro_role
44.給表增加列
ALTER TABLE STAFF
ADD COLUMN PNHONE VARCHAR(20)
45.數據遷移方法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 withou