[size=medium] IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。 DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。 它以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。
DB2是IBM出口的一系列关系型数据库管理系统,分别在不同的操作系统平台上服务。虽然DB2产品是基于UNIX的系统和个人计算机操作系统,在基于UNIX系统和微软在windows系统下的Access方面,DB2追寻了ORACLE的数据库产品。
除了它可以提供主流的OS/390和VM操作系统,以及中等规模的AS/400系统之外,IBM还提供了跨平台(包括基于UNIX的LINUX,HP-UX,Sun Solaris,以及SCO UnixWare;还有用于个人电脑的OS/2操作系统,以及微软的Windows 2000和其早期的系统)的DB2产品。DB2数据库可以通过使用微软的开放数据库连接(ODBC)接口,Java数据库连接(JDBC)接口,或者CORBA接口代理被任何的应用程序访问。
7月14日,IBM全球同步发布了一款具有划时代意义的数据库产品——DB2 9(“DB2”是IBM数据库产品系列的名称)。而这款新品最大特点即是率先实现了可扩展标记语言(XML)和关系数据间的无缝交互,而无需考虑数据的格式、平台或位置。
DB2的前世今生和未来:
对于每个最终站在奖台上泪水盈面的奥运冠军来说,为此刻他或她也许已经付出了5年甚至10年的艰苦努力。相比这些人类的冠军们,这个世界还有另外一种意义上的冠军,它们虽没有泪水,却依然在历史上留下了非凡的轨迹—DB2就是这类冠军中的一员。这个数据库领域里当之无愧的冠军,已用了足足25年来描绘它的轨迹。
纪念IBM DB2的诞生
IBM DB2已经25周岁拉!DB2回顾与展望
[编辑本段]DB2的历史
1968:IBM 在 IBM 360 计算机上研制成功了 IMS V1,这是第一个也是最著名的和最为典型的层次型数据库管理系统。至今仍然还有企业在使用呢。
1970:这是数据库历史上划时代的一年,IBM公司的研究员E.F.Codd 发表了业界第一篇关于关系数据库理论的论文"A Relational Model of Data for Large Shared Data Banks",首次提出了关系模型的概念。这篇论文是计算机科学史上最重要的论文之一,奠定了Codd博士"关系数据库之父"的地位。
1973:IBM研究中心启动了 System R 项目,研究多用户与大量数据下关系型数据库的可行性,它为 DB2 的诞生打下了良好基础。由此取得了一大批对数据库技术发展具有关键性作用的成果,该项目于1988年被授予ACM 软件系统奖。
1974:IBM研究员 Don Chamberlin 和 Ray Boyce 通过 System R 项目的实践,发表了论文"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 项目组发表了论文"A System R: Relational Approach to Database Management",描述了一个关系型数据库的原型。IBM 的研究员 Jim Gray 发表了名为"Granularity of Locks and Degrees of Consistency in a Shared DataBase"的论文,正式定义了数据库事务的概念和数据一致性的机制。
1977:System R 原型在3个客户处进行了安装,这 3 个客户分别是:波音公 司、Pratt & Whitney 公司和 Upjohn 药业。这标志着 System R 从技术上已经是 一个比较成熟的数据库系统,能够支撑重要的商业应用了。
1979:IBM研究员 Pat Selinger在她的论文"Access Path Selection in a Relational Database Management System"中描述了业界第一个关系查询优化器。
1980:IBM发布了 S/38 系统,该系统中集成了一个以 System R 为原型的数据库服务器。为了方便应用程序的移植,它的 API 与 S/3、S/32 的 API 一致。
1981:由于发明了关系型数据库模型,IBM 的研究员 E.F.Codd 接受了ACM 图灵奖,这是计算机科学界的最高荣誉。Codd 博士也是继查尔斯.巴赫曼(Charles W. Bachman) 之后,又一位由于在数据库领域做出巨大贡献而获此殊荣的计算机科学家。
1982:IBMPC 的出现标志着 PC 产业开始孕育发展。在以后相当长的一段时间内,在各种品牌的个人电脑上标记着的"IBM PC Compatible"字样都见证着 IBM 在 这个领域的辉煌。
1982:IBM发布了 SQL/DS for VSE and VM 。这是业界第一个以 SQL 作为接口的商用数据库管理系统。该系统也是基于 System R 原型所设计的。
1983:IBM发布了DATABASE 2(DB2)for MVS(内部代号为"Eagle")。
1986:System/38 V7 发布,该系统首次配置了查询优化器,能够对应用程序的存取计划进行优化。
1987:IBM发布带有关系型数据库能力的 OS/2 V1.0扩展版,这是IBM第一次把关系型数据库处理能力扩展到微机系统。这也是 DB2 for OS/2、Unix and Window 的雏形。
1988:IBM发布了SQL/400,为集成了关系型数据库管理系统的AS/400服务器提供了SQL支持。IDUG(国际DB2用户组织)组织成立。
1989:IBM定义了 Common SQL 和 IBM 分布式关系数据库架构(DRDA),并在 IBM 所有的关系数据库管理系统上加以实现。 第一届 IDUG 北美大会在美国芝加哥召开。
1992:第一届 IDUG 欧洲大会在瑞士日内瓦召开。这标志着 DB2 应用的全球化。
1993:
1.IBM发布了DB2 for OS/2 V1(DB2 for OS/2 可以被简写为DB2/2)和 DB2 for RS/6000 V1(DB2 for RS/6000 可以被简写为DB2/6000),这是 DB2 第 一次在Intel 和Unix 平台上出现。
2.Louis V. Gerstner 入主 IBM。
1994:
1.DB2 For MVS V4 通过并行 Sysplex 技术的实现在主机上引入了分布式计算(数据共享)。
2.IBM发布了运行在 RS/6000 SP2 上的 DB2 并行版 V1,DB2 从此有了能够适应大型数据仓库和复杂查询任务的可扩展架构。IBM 将 DB2 Common Server 扩展到 HP-UX 和 Sun Solaris 上。DB2 开始支持其他公司开发的 UNIX 平台。 DB2/400 集成在 OS/400 V3.1中发布,并且引入了并行机制、存储过程和参照完整性等机制。同时,IBM 宣布在 OS/2 和 AIX 平台上的 DB2 产品能够对多媒体数据和面向对象应用程序提供支持。
1995:
1.IBM发布了 DB2 Common Server V2,这是第一个能够在多个平台上运行的"对象-关系型数据库"(ORDB)产品,并能够对 Web 提供充分支持。DataJoiner for AIX 也诞生在这一年,该产品赋予了 DB2 对异构数据库的支持能力。DB2 在 Windows NT 和 SINIX(参见http://en.wikipedia.org/wiki/SINIX) 平台上的第一个版本(DB2 V2)发布。
2.IBM发布了在 AIX 和 MVS 平台上的数据挖掘技术,用于管理大文本、 图像、音频、视频和指纹信息的扩展器(Extender)以及可以对数据仓库进行可视化构造和管理的Visual Warehouse。
3.IBM发布了 DB2 WWW Connection V1 for OS/2 and AIX(该产品后来被更名为Net.Data)。该产品可以将数据库中的数据快速发布到 Web。第一届 IDUG 亚太区大会在澳大利亚悉尼召开。这年IBM 并购了 Lotus Development Corp。
1996:
1.IBM发布 DB2 V2.1.2 ,这是第一个真正支持 JAVA 和 JDBC 的数据库产品。
2.DataJoiner 开始支持对非关系型数据库(比如 IMS 和 VSAM)的存取。
3.IBM发布了 Intelligent Miner,该产品可以对基于 DB2 的数据源实施数据挖掘。
4.IBM并购 Tivoli。 IBM 将 DB2 更名为 DB2 Universal Database,这是第一个能够对多媒体和 Web 进行支持的RDBMS。该系统具有很好的伸缩性,可以从桌面系统扩展到大型企业,适应单处理器、 SMP 和 MPP 计算环境,并可以运行在所有主流操作系统和硬件平台上。 DB2 V5 是以前的两个产品的合并:DB2 Common Server V 2.1.2 和 DB2 并行版 1.2。
5.IBM发布了数字图书馆产品,这是一个多媒体资产管理产品,也是 IBM Content Manager 的前身。
6.DB2 Magzine 第一期发布,DB2 有了自己专门的技术刊物。
1997:
1.IBM发布了可以支持 Web 的 DB2 for OS/390 V5,这是当时唯一能够支持64, 000个并发用户和百 TB 级别的数据库产品。
2.IBM发布了DB2 UDB for UNIX、Windows and OS/2,该产品支持 ROLLUP 和 CUBE 函数,对联机分析处理(OLAP)具有重要意义。
3.IDUG 第一次技术论坛在加拿大多伦多召开。
4.IBM发布了用于企业级内容管理的 EDMSuite,该产品包含了用于管理计算机生成报表的 OnDemand 和 管理图像的 ImagePlus VisualInfo。
5.IBM基于 RS/6000 SP 架构的超级计算机"深蓝"在国际象棋的 6 番棋对抗中战胜了世界棋王卡斯帕罗夫。
1998:
1.IBM发布了 DB2 OLAP Server,这是一个基于 DB2 的完整的 OLAP Solution。这个产品是和 Arbor Software(Hyperion的前身)合作开发的。
2.IBM发布了 DB2 Data Links 技术,该技术可使 DB2 对外部文件进行管理。
3.DB2的 shared-noting 集群技术扩展到 Windows 和 Solaris 平台。
4.IBM发布了 DB2 Spatial Extender,这是与ESRI公司在DataJoiner基础 上联合开发的,该产品赋予了DB2 对地理信息数据的存取能力。
5.IBM发布了 ContentConnect,该产品是 Enterprise Information Portal(EIP)的前身。
6.DB2 对 SCO UnixWare 平台提供支持。
7.DB2 UDB V5.2 增加了对 SQLJ、Java 存储过程和用户自定义函数的支持。
8.IBM发布 DB2 UDB for AS/400,使 AS/400 成为充分支持电子商务的机 型。
1999:
1/IBM为了对移动计算提供支持,发布了DB2 UDB 卫星版和DB2 Everywhere(这是一个适用于手持设备的微型关系数据库管理系统,现在的版本被 称为DB2 Everyplace)。
2/IBM发布了 Enterprise Information Portal,该产品可以跨数字图书 馆和 EDMSuite 提供一个统一的联合检索功能。
3/DB2增加了能够识别 XML 语言的文本检索功能,从而引入了 XML 支 持,并启动了DB2 XML Extender 的 beta 计划。
4/IBM发布了 Intel 平台上的 DB2 UDB for Linux。
5/IBM 研究机构将 DB2 的联邦(federation)功能和 Garlic 技术(Garlic的目标是使能大规模多媒体信息系统,参见http://www.almaden.ibm.com/cs/garlic/和http://www.almaden.ibm.com/cs/garlic/garlicteam.html)集成到生命科学解决方案DiscoveryLink 中
2000:
1/IBM发布了 DB2 XML Extender,成为在业界第一个为数据库提供内置 XML 支持的厂商。
2/IBM将 Visual Warehouse 集成到 DB2 中,为DB2 提供了内置的数据仓库管理功能。
3/DB2对Linux 的支持进一步增强,能够支持基于 Intel 的 Linux 集群、 发布了可以运行在主机上的 DB2 UDB for Linux和可以运行在嵌入式Linux上的 DB2 Everyplace。
4/DB2开始支持 NUMA-Q 平台,可以运行在该平台上的类 UNIX 操作系统 DYNIX/PTX 上。
5/DB2通过 Net.Search Extender 提供了 in-memory 高速文本检索功能。
6/IBM启动了数据库管理工具业务,起初着重于为主机上的 IMS 和 DB2 提供高效管理工具,最终这项业务扩展到 UNIX、Linux 和 Windows 平台。 Informix 数据库产品也在支持之列。
7/IBM开始通过在DB2中集成 DataJoiner 来提供数据联邦(federation)功能
8/IBM发布了用于管理数字资产的Content Manager。IBM 数字图书馆和 EDMSuite 产品现在都被包含在一个单一的架构中来提供多媒体资产管理和企业内 容管理。荷兰国家图书馆、梵蒂冈图书馆都是最早的用户。
9/DB2在主机上销售出了它的第10000个许可证。
2001:
1/IBM以 10 亿美金收购了 Informix 的数据库业务,这次收购扩大了IBM 的分布式数据库业务。
2/DB2 OLAP Server中增添了数据挖掘功能。
3/IBM发布了第一个能够支持多种平台的 DB2 工具。
4/DB2提供了基于 SOAP 的 Web 服务的支持。DB2 XML Extender和存储过程可以使DB2成为 Web 服务的提供者。
5/IBM科学家在纳米碳管晶体管技术领域取得突破。IBM 用纳米碳管制造出了世界上第一批纳米晶体管--由直径 10 个原子大小的碳原子组成的小圆柱结 构,比当今基于硅的晶体管小 500 倍。
6/DB2拓宽了其数据联邦(federation)的能力,可以对WebSphere MQ 消息队列和生命科学领域特定格式的文件提供支持。
7/IBM发布了 DB2 UDB for OS/390.
2002:
1/IBM发布了 Xperanto,这是一个基于标准的信息集成中间件的演示版, 可以用来优化对分散数据源的存取。这个演示版本使用了XML、Xquery、Web 服 务、数据联邦(federation)和全文检索等先进技术。
2/IBM宣布计划收购 Rational Software Corp,从而使得 IBM 软件能够 支持从设计、开发、部署到管理和维护的完整过程。
3/DB2通过基于 SOAP 的 Web 服务扩展了数据联邦(federation)的能力。并可以作为 Web 服务的使用者出现在 Web 服务架构中。
4/DB2 OLAP Server中添加了hybrid(多维和关系)分析能力。
5/作为IBM 自主运算策略的一部分,SMART(自我管理和资源调节)技术 在 DB2 UDB V8.1 中首次正式应用。
6/IBM并购 Tarian Sotware,从而加强了Content Manager 中记录管理组 件的功能。
2003:
1/IBM将数据管理产品统一更名为信息管理产品,旨在改变很多用户对于 DB2 家族产品只能完成单一的数据管理的印象,强调了 DB2 家族在信息的处理与集成方面的能力。
2/DYNIX/ptxDB2 发布了 DB2 Information Integrator(该产品由以 前的 DB2 DataJoiner和 Enterprise Information Portal演化而来),该款软件旨在帮助客户即时访问、集成、管理和分析存储于企业内外任何平台上的各类信息。
2004:IBM DB2 在最近TPC 的两项测试中屡次刷新该测试的新纪录,在计算领 域的历史上树立了新的里程碑。其中在TPC-C 的测试中,它创造了计算速度领域新的世界记录,彻底粉碎了在该测试中每分钟三百万次交易的极限。
2005:经过长达5年的开发,IBM DB2 9将传统的高性能、易用性与自描述、灵活的XML相结合,转变成为交互式、充满活力的数据服务器。
2006:IBM发布DB2 9,将数据库领域带入XML时代。IT建设业已进入SOA(Service-Oriented Architecture)时代。实现SOA,其核心难点是顺畅解决不同应用间的数据交换问题。XML以其可扩展性、 与平台无关性和层次结构等特性,成为构建SOA时不同应用间进行数据交换的主流语言。而如何存储和管理几何量级的XML数据、直接支持原生XML文档成为SOA构建效率和质量的关键。在这这种情况下,IBM推出了全面支持Original XML的DB2 9,使XML数据的存储问题迎刃而解,开创了一个新的XML 数据库时代。同年1月30日,IBM发布了一个DB2免费版本DB2Express-C。这是对最近公布的Oracle免费版本10g以及微软免费版本SQLServer的回应。和Oracle以及微软的免费版本不同,Express-C,它不限制用户数量以及数据库的大小。DB2 Express-C8.2版本和9.1版本对运行服务器的硬件有所限制,而DB2 Express-C9.5却可以在Windows以及Linux的任何大小的机器上运行,只是数据库引擎最多只能使用2个CPU内核和2GB的内存。2007年IBM提供了一个为期一年的服务支持产品叫做Fixed TermLicense(FTL),对每一台服务器只要你每年付3000美元,将会得到Express-C一年的电话技术支持。购买FTL后DB2Express-C引擎可以被允许用于高达4核的CPU以及4GB的内存。没有购买FTL的DB2Express-C用户也可以在免费公开论坛上得到IBM技术人员和其他DB2用户的技术支持和帮助。
[编辑本段]DB2的数据复制与迁移方法
以下方法经测试,在环境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脚本在此数据库中执行; 5.编写代码查询源数据库中的所有表,自动生成export脚本; 6.编写代码查询源数据库中的所有表,自动生成import脚本; 7.连接源数据库执行export脚本; 8.连接目标数据库执行import脚本; 附录1:生成export脚本代码示例:/**
* 创建导出脚本
* @param conn
* @param creator 表创建者
* @param filePath
*/
public void createExportFile(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 "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脚本代码示例:/**
* 创建装载脚本
* @param conn
* @param creator 表创建者
* @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[/size]
DB2是IBM出口的一系列关系型数据库管理系统,分别在不同的操作系统平台上服务。虽然DB2产品是基于UNIX的系统和个人计算机操作系统,在基于UNIX系统和微软在windows系统下的Access方面,DB2追寻了ORACLE的数据库产品。
除了它可以提供主流的OS/390和VM操作系统,以及中等规模的AS/400系统之外,IBM还提供了跨平台(包括基于UNIX的LINUX,HP-UX,Sun Solaris,以及SCO UnixWare;还有用于个人电脑的OS/2操作系统,以及微软的Windows 2000和其早期的系统)的DB2产品。DB2数据库可以通过使用微软的开放数据库连接(ODBC)接口,Java数据库连接(JDBC)接口,或者CORBA接口代理被任何的应用程序访问。
7月14日,IBM全球同步发布了一款具有划时代意义的数据库产品——DB2 9(“DB2”是IBM数据库产品系列的名称)。而这款新品最大特点即是率先实现了可扩展标记语言(XML)和关系数据间的无缝交互,而无需考虑数据的格式、平台或位置。
DB2的前世今生和未来:
对于每个最终站在奖台上泪水盈面的奥运冠军来说,为此刻他或她也许已经付出了5年甚至10年的艰苦努力。相比这些人类的冠军们,这个世界还有另外一种意义上的冠军,它们虽没有泪水,却依然在历史上留下了非凡的轨迹—DB2就是这类冠军中的一员。这个数据库领域里当之无愧的冠军,已用了足足25年来描绘它的轨迹。
纪念IBM DB2的诞生
IBM DB2已经25周岁拉!DB2回顾与展望
[编辑本段]DB2的历史
1968:IBM 在 IBM 360 计算机上研制成功了 IMS V1,这是第一个也是最著名的和最为典型的层次型数据库管理系统。至今仍然还有企业在使用呢。
1970:这是数据库历史上划时代的一年,IBM公司的研究员E.F.Codd 发表了业界第一篇关于关系数据库理论的论文"A Relational Model of Data for Large Shared Data Banks",首次提出了关系模型的概念。这篇论文是计算机科学史上最重要的论文之一,奠定了Codd博士"关系数据库之父"的地位。
1973:IBM研究中心启动了 System R 项目,研究多用户与大量数据下关系型数据库的可行性,它为 DB2 的诞生打下了良好基础。由此取得了一大批对数据库技术发展具有关键性作用的成果,该项目于1988年被授予ACM 软件系统奖。
1974:IBM研究员 Don Chamberlin 和 Ray Boyce 通过 System R 项目的实践,发表了论文"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 项目组发表了论文"A System R: Relational Approach to Database Management",描述了一个关系型数据库的原型。IBM 的研究员 Jim Gray 发表了名为"Granularity of Locks and Degrees of Consistency in a Shared DataBase"的论文,正式定义了数据库事务的概念和数据一致性的机制。
1977:System R 原型在3个客户处进行了安装,这 3 个客户分别是:波音公 司、Pratt & Whitney 公司和 Upjohn 药业。这标志着 System R 从技术上已经是 一个比较成熟的数据库系统,能够支撑重要的商业应用了。
1979:IBM研究员 Pat Selinger在她的论文"Access Path Selection in a Relational Database Management System"中描述了业界第一个关系查询优化器。
1980:IBM发布了 S/38 系统,该系统中集成了一个以 System R 为原型的数据库服务器。为了方便应用程序的移植,它的 API 与 S/3、S/32 的 API 一致。
1981:由于发明了关系型数据库模型,IBM 的研究员 E.F.Codd 接受了ACM 图灵奖,这是计算机科学界的最高荣誉。Codd 博士也是继查尔斯.巴赫曼(Charles W. Bachman) 之后,又一位由于在数据库领域做出巨大贡献而获此殊荣的计算机科学家。
1982:IBMPC 的出现标志着 PC 产业开始孕育发展。在以后相当长的一段时间内,在各种品牌的个人电脑上标记着的"IBM PC Compatible"字样都见证着 IBM 在 这个领域的辉煌。
1982:IBM发布了 SQL/DS for VSE and VM 。这是业界第一个以 SQL 作为接口的商用数据库管理系统。该系统也是基于 System R 原型所设计的。
1983:IBM发布了DATABASE 2(DB2)for MVS(内部代号为"Eagle")。
1986:System/38 V7 发布,该系统首次配置了查询优化器,能够对应用程序的存取计划进行优化。
1987:IBM发布带有关系型数据库能力的 OS/2 V1.0扩展版,这是IBM第一次把关系型数据库处理能力扩展到微机系统。这也是 DB2 for OS/2、Unix and Window 的雏形。
1988:IBM发布了SQL/400,为集成了关系型数据库管理系统的AS/400服务器提供了SQL支持。IDUG(国际DB2用户组织)组织成立。
1989:IBM定义了 Common SQL 和 IBM 分布式关系数据库架构(DRDA),并在 IBM 所有的关系数据库管理系统上加以实现。 第一届 IDUG 北美大会在美国芝加哥召开。
1992:第一届 IDUG 欧洲大会在瑞士日内瓦召开。这标志着 DB2 应用的全球化。
1993:
1.IBM发布了DB2 for OS/2 V1(DB2 for OS/2 可以被简写为DB2/2)和 DB2 for RS/6000 V1(DB2 for RS/6000 可以被简写为DB2/6000),这是 DB2 第 一次在Intel 和Unix 平台上出现。
2.Louis V. Gerstner 入主 IBM。
1994:
1.DB2 For MVS V4 通过并行 Sysplex 技术的实现在主机上引入了分布式计算(数据共享)。
2.IBM发布了运行在 RS/6000 SP2 上的 DB2 并行版 V1,DB2 从此有了能够适应大型数据仓库和复杂查询任务的可扩展架构。IBM 将 DB2 Common Server 扩展到 HP-UX 和 Sun Solaris 上。DB2 开始支持其他公司开发的 UNIX 平台。 DB2/400 集成在 OS/400 V3.1中发布,并且引入了并行机制、存储过程和参照完整性等机制。同时,IBM 宣布在 OS/2 和 AIX 平台上的 DB2 产品能够对多媒体数据和面向对象应用程序提供支持。
1995:
1.IBM发布了 DB2 Common Server V2,这是第一个能够在多个平台上运行的"对象-关系型数据库"(ORDB)产品,并能够对 Web 提供充分支持。DataJoiner for AIX 也诞生在这一年,该产品赋予了 DB2 对异构数据库的支持能力。DB2 在 Windows NT 和 SINIX(参见http://en.wikipedia.org/wiki/SINIX) 平台上的第一个版本(DB2 V2)发布。
2.IBM发布了在 AIX 和 MVS 平台上的数据挖掘技术,用于管理大文本、 图像、音频、视频和指纹信息的扩展器(Extender)以及可以对数据仓库进行可视化构造和管理的Visual Warehouse。
3.IBM发布了 DB2 WWW Connection V1 for OS/2 and AIX(该产品后来被更名为Net.Data)。该产品可以将数据库中的数据快速发布到 Web。第一届 IDUG 亚太区大会在澳大利亚悉尼召开。这年IBM 并购了 Lotus Development Corp。
1996:
1.IBM发布 DB2 V2.1.2 ,这是第一个真正支持 JAVA 和 JDBC 的数据库产品。
2.DataJoiner 开始支持对非关系型数据库(比如 IMS 和 VSAM)的存取。
3.IBM发布了 Intelligent Miner,该产品可以对基于 DB2 的数据源实施数据挖掘。
4.IBM并购 Tivoli。 IBM 将 DB2 更名为 DB2 Universal Database,这是第一个能够对多媒体和 Web 进行支持的RDBMS。该系统具有很好的伸缩性,可以从桌面系统扩展到大型企业,适应单处理器、 SMP 和 MPP 计算环境,并可以运行在所有主流操作系统和硬件平台上。 DB2 V5 是以前的两个产品的合并:DB2 Common Server V 2.1.2 和 DB2 并行版 1.2。
5.IBM发布了数字图书馆产品,这是一个多媒体资产管理产品,也是 IBM Content Manager 的前身。
6.DB2 Magzine 第一期发布,DB2 有了自己专门的技术刊物。
1997:
1.IBM发布了可以支持 Web 的 DB2 for OS/390 V5,这是当时唯一能够支持64, 000个并发用户和百 TB 级别的数据库产品。
2.IBM发布了DB2 UDB for UNIX、Windows and OS/2,该产品支持 ROLLUP 和 CUBE 函数,对联机分析处理(OLAP)具有重要意义。
3.IDUG 第一次技术论坛在加拿大多伦多召开。
4.IBM发布了用于企业级内容管理的 EDMSuite,该产品包含了用于管理计算机生成报表的 OnDemand 和 管理图像的 ImagePlus VisualInfo。
5.IBM基于 RS/6000 SP 架构的超级计算机"深蓝"在国际象棋的 6 番棋对抗中战胜了世界棋王卡斯帕罗夫。
1998:
1.IBM发布了 DB2 OLAP Server,这是一个基于 DB2 的完整的 OLAP Solution。这个产品是和 Arbor Software(Hyperion的前身)合作开发的。
2.IBM发布了 DB2 Data Links 技术,该技术可使 DB2 对外部文件进行管理。
3.DB2的 shared-noting 集群技术扩展到 Windows 和 Solaris 平台。
4.IBM发布了 DB2 Spatial Extender,这是与ESRI公司在DataJoiner基础 上联合开发的,该产品赋予了DB2 对地理信息数据的存取能力。
5.IBM发布了 ContentConnect,该产品是 Enterprise Information Portal(EIP)的前身。
6.DB2 对 SCO UnixWare 平台提供支持。
7.DB2 UDB V5.2 增加了对 SQLJ、Java 存储过程和用户自定义函数的支持。
8.IBM发布 DB2 UDB for AS/400,使 AS/400 成为充分支持电子商务的机 型。
1999:
1/IBM为了对移动计算提供支持,发布了DB2 UDB 卫星版和DB2 Everywhere(这是一个适用于手持设备的微型关系数据库管理系统,现在的版本被 称为DB2 Everyplace)。
2/IBM发布了 Enterprise Information Portal,该产品可以跨数字图书 馆和 EDMSuite 提供一个统一的联合检索功能。
3/DB2增加了能够识别 XML 语言的文本检索功能,从而引入了 XML 支 持,并启动了DB2 XML Extender 的 beta 计划。
4/IBM发布了 Intel 平台上的 DB2 UDB for Linux。
5/IBM 研究机构将 DB2 的联邦(federation)功能和 Garlic 技术(Garlic的目标是使能大规模多媒体信息系统,参见http://www.almaden.ibm.com/cs/garlic/和http://www.almaden.ibm.com/cs/garlic/garlicteam.html)集成到生命科学解决方案DiscoveryLink 中
2000:
1/IBM发布了 DB2 XML Extender,成为在业界第一个为数据库提供内置 XML 支持的厂商。
2/IBM将 Visual Warehouse 集成到 DB2 中,为DB2 提供了内置的数据仓库管理功能。
3/DB2对Linux 的支持进一步增强,能够支持基于 Intel 的 Linux 集群、 发布了可以运行在主机上的 DB2 UDB for Linux和可以运行在嵌入式Linux上的 DB2 Everyplace。
4/DB2开始支持 NUMA-Q 平台,可以运行在该平台上的类 UNIX 操作系统 DYNIX/PTX 上。
5/DB2通过 Net.Search Extender 提供了 in-memory 高速文本检索功能。
6/IBM启动了数据库管理工具业务,起初着重于为主机上的 IMS 和 DB2 提供高效管理工具,最终这项业务扩展到 UNIX、Linux 和 Windows 平台。 Informix 数据库产品也在支持之列。
7/IBM开始通过在DB2中集成 DataJoiner 来提供数据联邦(federation)功能
8/IBM发布了用于管理数字资产的Content Manager。IBM 数字图书馆和 EDMSuite 产品现在都被包含在一个单一的架构中来提供多媒体资产管理和企业内 容管理。荷兰国家图书馆、梵蒂冈图书馆都是最早的用户。
9/DB2在主机上销售出了它的第10000个许可证。
2001:
1/IBM以 10 亿美金收购了 Informix 的数据库业务,这次收购扩大了IBM 的分布式数据库业务。
2/DB2 OLAP Server中增添了数据挖掘功能。
3/IBM发布了第一个能够支持多种平台的 DB2 工具。
4/DB2提供了基于 SOAP 的 Web 服务的支持。DB2 XML Extender和存储过程可以使DB2成为 Web 服务的提供者。
5/IBM科学家在纳米碳管晶体管技术领域取得突破。IBM 用纳米碳管制造出了世界上第一批纳米晶体管--由直径 10 个原子大小的碳原子组成的小圆柱结 构,比当今基于硅的晶体管小 500 倍。
6/DB2拓宽了其数据联邦(federation)的能力,可以对WebSphere MQ 消息队列和生命科学领域特定格式的文件提供支持。
7/IBM发布了 DB2 UDB for OS/390.
2002:
1/IBM发布了 Xperanto,这是一个基于标准的信息集成中间件的演示版, 可以用来优化对分散数据源的存取。这个演示版本使用了XML、Xquery、Web 服 务、数据联邦(federation)和全文检索等先进技术。
2/IBM宣布计划收购 Rational Software Corp,从而使得 IBM 软件能够 支持从设计、开发、部署到管理和维护的完整过程。
3/DB2通过基于 SOAP 的 Web 服务扩展了数据联邦(federation)的能力。并可以作为 Web 服务的使用者出现在 Web 服务架构中。
4/DB2 OLAP Server中添加了hybrid(多维和关系)分析能力。
5/作为IBM 自主运算策略的一部分,SMART(自我管理和资源调节)技术 在 DB2 UDB V8.1 中首次正式应用。
6/IBM并购 Tarian Sotware,从而加强了Content Manager 中记录管理组 件的功能。
2003:
1/IBM将数据管理产品统一更名为信息管理产品,旨在改变很多用户对于 DB2 家族产品只能完成单一的数据管理的印象,强调了 DB2 家族在信息的处理与集成方面的能力。
2/DYNIX/ptxDB2 发布了 DB2 Information Integrator(该产品由以 前的 DB2 DataJoiner和 Enterprise Information Portal演化而来),该款软件旨在帮助客户即时访问、集成、管理和分析存储于企业内外任何平台上的各类信息。
2004:IBM DB2 在最近TPC 的两项测试中屡次刷新该测试的新纪录,在计算领 域的历史上树立了新的里程碑。其中在TPC-C 的测试中,它创造了计算速度领域新的世界记录,彻底粉碎了在该测试中每分钟三百万次交易的极限。
2005:经过长达5年的开发,IBM DB2 9将传统的高性能、易用性与自描述、灵活的XML相结合,转变成为交互式、充满活力的数据服务器。
2006:IBM发布DB2 9,将数据库领域带入XML时代。IT建设业已进入SOA(Service-Oriented Architecture)时代。实现SOA,其核心难点是顺畅解决不同应用间的数据交换问题。XML以其可扩展性、 与平台无关性和层次结构等特性,成为构建SOA时不同应用间进行数据交换的主流语言。而如何存储和管理几何量级的XML数据、直接支持原生XML文档成为SOA构建效率和质量的关键。在这这种情况下,IBM推出了全面支持Original XML的DB2 9,使XML数据的存储问题迎刃而解,开创了一个新的XML 数据库时代。同年1月30日,IBM发布了一个DB2免费版本DB2Express-C。这是对最近公布的Oracle免费版本10g以及微软免费版本SQLServer的回应。和Oracle以及微软的免费版本不同,Express-C,它不限制用户数量以及数据库的大小。DB2 Express-C8.2版本和9.1版本对运行服务器的硬件有所限制,而DB2 Express-C9.5却可以在Windows以及Linux的任何大小的机器上运行,只是数据库引擎最多只能使用2个CPU内核和2GB的内存。2007年IBM提供了一个为期一年的服务支持产品叫做Fixed TermLicense(FTL),对每一台服务器只要你每年付3000美元,将会得到Express-C一年的电话技术支持。购买FTL后DB2Express-C引擎可以被允许用于高达4核的CPU以及4GB的内存。没有购买FTL的DB2Express-C用户也可以在免费公开论坛上得到IBM技术人员和其他DB2用户的技术支持和帮助。
[编辑本段]DB2的数据复制与迁移方法
以下方法经测试,在环境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脚本在此数据库中执行; 5.编写代码查询源数据库中的所有表,自动生成export脚本; 6.编写代码查询源数据库中的所有表,自动生成import脚本; 7.连接源数据库执行export脚本; 8.连接目标数据库执行import脚本; 附录1:生成export脚本代码示例:/**
* 创建导出脚本
* @param conn
* @param creator 表创建者
* @param filePath
*/
public void createExportFile(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 "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脚本代码示例:/**
* 创建装载脚本
* @param conn
* @param creator 表创建者
* @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[/size]