Informix是由IBM公司开发的关系数据库管理系统(
时态数据库)家族。作为IBM在线事务处理(OLTP)的核心数据服务系统,Informix被视为IBM的旗舰级产品。IBM对其旗下的Informix和
DB2均有长期发展规划,旨在相互借鉴各自的技术优势。2005年初,IBM推出了Informix Dynamic Server(IDS)的第10版。截至2008年5月6日,最新的版本是IDS11(v11.50,代号“Cheetah 2”),在全球范围内同步发售。
历史沿革
1980年
Roger Sippl和Laura King在Cromemco公司工作期间,开发了一个基于ISAM技术的小型关系数据库,作为报表记录器软件的一部分。随后,两人离开Cromemco,专注于开发关系数据库系统(RDS)。他们的首个产品名为马拉松(Marathon),实际上是对之前ISAM作品的16位版本,并在Onyx操作系统上发布。Onyx操作系统是专为早期
Zilog微处理器设计的Unix操作系统。在开发RDS的过程中,他们转向了新兴的
RDBMS市场,并于1981年发布了自己的产品——Informix(INFORMation on unIX)。该产品包含了他们自己的Informer语言,能够将数据从数据库中提取出来,并通过ACE报表记录器向用户提供阅读。此外,它还包括了
表演屏幕格式工具,使用户能够进行交互式查询和编辑数据库中的数据。该产品的最终版本是在1986年的3.30版。
1985年
1985年,Informix引入了一种新的基于
SQL的查询引擎,作为INFORMIX-SQL(或ISQL)1.10版的一部分。该产品还包括了SQL和PERFORM的SQL变量。ISQL与早期的Informix产品的主要区别在于,它将数据库访问代码分离到了一个名为sqlexec的引擎进程中,而非直接嵌入客户端,从而实现了客户端-服务端计算的条件。而底层的基于ISAM的文件存储引擎被称为C-ISAM。
1986年
1986年,Informix已足够强大,能够独立公开募股,并更名为Informix
软件。其产品包括INFORMIX-SQL 2.00版和INFORMIX-4GL 1.00版,两者都包含了数据库引擎和开发工具(为程序员准备的I4GL,以及为普通用户准备的ISQL)。
1988年
1988年,Informix收购了Innovative Software公司,该公司开发了流行的基于DOS和Unix的办公套件SmartWare,以及具有革命性的基于Apple Macintosh平台的电子表格软件WingZ。
1994年
1994年,Informix在办公自动化领域的尝试失败后,将注意力重新聚焦于不断发展的数据库服务器市场。同年,与Sequent
计算机 Systems合作,Informix发布了具有动态可扩展结构(DSA)的6.00版数据库服务器。DSA的重大变化是支持水平和垂直并行功能,并基于一个
多线程核心,适用于当时的对称多处理系统。这两种并行模式使其在扩展性方面处于市场领先地位,无论是OLTP还是
数据 warehousing。Informix Dynamic Server(最初考虑命名为Obsidian,后来命名为Informix OnLine Dynamic Server)的第7版在1994年引起了轰动。当时,对称多处理技术(SMP)系统正开始普及,
unix已成为服务器操作系统的主流。第7版基本上成为领先于竞争对手的一代产品,并在性能评估中屡获佳绩。这一成功的成果使Informix在1997年轻而易举地超越
sybase,成为数据库世界排名第二的公司。
1995年
1995年,Informix收购了IIIustra,IIllustra带来了object-relational数据库(O-R)技术。Informix在其7.x版本的OnLine产品中集成了IIIustra的O-R映射和DataBlades,形成了Informix Universal Server(IUS),也就是第9版。第8版(
xps)和第9版(IUS)都在1996年上市,使Informix成为第一家内置O-R支持的“三大”数据库公司之一(另两家是
Oracle数据库和
sybase)。评论家们对DataBlades给予了高度关注,DataBlades后来变得非常流行,继与IIIustra的合作之后,又出现了新的架构。这促使其他软件供应商感到压力,Oracle在1997年发布了支持时间序列的“嫁接”包,而Sybase则让一家第三方公司为其制作了一个不太具竞争力的附加产品包。
1997年
1997年,Informix在市场上遭遇挫折和公司管理不善,掩盖了其技术上的成功。1997年4月1日,Informix宣布第一季度的收入比预期减少了10亿美元。公司首席执行官Phillip White将这一差距归咎于未能充分关注核心数据库业务,而是过多投资于object-relational技术。随后,大规模的运营亏损和裁员接踵而至。Informix审查了1994年至1996年的利润,发现包括给予合作伙伴的软件许可证在内的大部分利润实际上并未出售给终端用户,这种不规范的做法导致公司财务产生了超过20亿美元的泡沫。即使在White于1997年7月离职后,公司在1998年再次进行了财务审查。
2001年
自2000年起,Informix的历史大事不再局限于技术创新。2000年3月,Informix收购了Ardent
软件,这是一家自身就由多次并购而成的公司。此次收购为Informix增添了两个多维引擎UniVerse和UniData(统称为U2),以及Red Brick面向data warehouse的
SQL引擎、100% Java版本的SQL Cloudscape(后来捆绑在J2EE的参考安装包中)。
IBM接管
2000年7月,Ardent公司的前首席执行官Peter Gyenes成为Informix的首席执行官,并迅速重组Informix,使其更具吸引力,以便被其他公司收购。这一关键决策是将所有数据库引擎技术和应用程序与工具分开。2001年4月,IBM抓住这次重组的机会,提出了
沃尔玛公司提出的建议,从Informix购买了数据库技术、品牌、未来开发计划(内部项目“Arrowhead”)以及与此相关的超过10万名用户群。剩余的生产应用程序和工具的公司更名为Ascential
软件。2005年5月,IBM收购了Ascential,将Informix的资产重新整合到其Information Management Software的投资组合中。
版本发布
Informix Dynamic Server(IDS)11.5代号“Cheetah 2”是一款经过优化的新版本,支持客户利用IBM大型机系统提供的多种
信息管理技能,增强集群服务器环境的业务表现。因此,IDS成为业界首款非大型机级别的数据服务器,无论地理位置远近或与备份数据中心站点间的距离长短,都能为集群数据中心提供低成本持续数据可用性和灾难恢复能力。IBM负责数据管理市场推广的副总裁Inhi Cho表示:“全球各行各业、各种规模的企业都需要不间断的业务交易,以获得竞争优势。新版IDS卓越的速度、灵活性和效率有助于我们的客户在企业发展过程中不断提升整体业务表现并降低成本。”
技术细节
1. 页面大小(Page Size):由系统决定,用户无法更改。
2. 是否做镜像(Mirror):可以选择是否进行镜像处理。
3. 数据备份
盒式录音磁带设备(Tape Dev.):数据备份所用的磁带设备,需要选择好或提前准备好,如使用
HDD文件的话,创建方法同准备硬盘空间。主要参数包括磁带设备路径(可以是硬盘的某个文件,或/dev/null)、磁带块大小(Block Size)及总容量(Total Tape Size)。
4. 日志备份磁带设备(Log Tape Dev.):数据库逻辑日志备份使用的磁带设备。
5. 存储目的地是光盘的blobspace名称(Stage Blob):INFORMIX-OnLine/Optical为存储目的地是光盘的blobs所用的blobspace名称。仅当你使用光盘和INFORMIX-OnLine/Optical时,才有可能使用此参数。
6. 根数据库空间(Root Name):存储OnLine配置的根数据库空间(dbspace),在所有数据库空间中名字唯一。默认是rootdbs,建议沿用此名称。
7. Primary Path: rootdbs的路径,须预先准备好。
8. Root Size: 规定rootdbs的大小。建议不要小于50MB。
9. Root Offset: Root Name 设备的偏移量。对于Primary Path指定的设备是操作系统文件时,必须是0;如果Primary Path是原始设备(
HDD、或可擦写光盘等)可以指定起始位置。
10. 镜像设备或文件的绝对路径(Mirror Path):如果Mirror处选择了Y,此处要求输入镜像设备或文件的绝对路径。
11. 镜像设备的偏移量(Mirror Offset):镜像设备的偏移量。对于Mirror Path指定的设备是操作系统文件时,必须是0;如果Mirror Path是原始设备(硬盘、或可擦写光盘等)可以指定起始位置。
12. 物理日志大小(Phy. Log Size):规定物理日志大小(大于等于200K)。初始化后仍可以调整。
13. 逻辑日志大小(Log. Log Size):规定逻辑日志大小。初始化后不可改变。
14. 最大的逻辑日志个数(Max # of Logical Logs):逻辑日志的最大个数。主要是为在共享内存中为逻辑日志预留空间。
15. 最大的锁数(Max # of Locks):最大的锁数。数据库操作中同时使用的各类锁的总数的上限。
16. 最大的缓冲区个数(Max # of Buffers):最大缓冲区个数。
常用命令
oninit命令
语法:`oninit [-s] [-i] [-p] [-y]`
- `oninit`:将系统从off-line模式变为on-line模式。
- `-s`:将系统从off-line模式变为quiescent模式。
- `-i`:初始化系统。
- `-p`:在共享内存初始化时,不搜索,删除临时表。
- `-y`:对提示自动回答yes。
- `-v`:加入这个选项显示oninit处理过程。
- `--`:键入此命令可以获得使用帮助。
onmode命令
语法:`onmode [-k] [-m] [-s] [-u] [-y]`
- `onmode -k`:执行立即
shutdown,将系统变为off-line模式。
- `onmode -m`:将系统从quiescent模式变为on-line模式。
- `onmode -s`:执行graceful shutdown。
- `onmode -u`:执行immediate shutdwon。
- `onmode -y`:对提示自动回答yes。
- `onmode --`:键入此命令可以获得该命令的联机帮助。
onspaces命令
语法:`onspaces -c [-b] [-d] [-z] [-m] [-o] [-p] [-s] [-t]`
- `-c`:创建blobspace或dbspace。
- `-b blobspace`:blobspace名。
- `-d dbspace`:dbspace名。
- `-g page size`:blobpages大小。
- `-m mirror`:镜像设备设的全路径名和偏移量(KB)。
- `-o offset`:偏移量(KB)。
- `-p pathname`:chunk设备的全路径名。
- `-s size`:dbspace大小(KB)。
- `-t`:创建临时dbspace。
- `onspaces --`:键入此命令可以获得该命令的联机帮助。
onparams命令
语法:`onparams -a -d -p [-d] [-s] [-l]`
- `-a`:新增逻辑日志。
- `-d dbspace`:指定日志存放的dbspace。
- `-s size`:新增逻辑日志的大小(KB)。
- `-d`:删除逻辑日志。
- `-l logid`:指定删除一个逻辑日志。
- `-p`:改变物理日志。
- `-d dbspace`:新物理日志存放的dbspace名。
- `-s size`:物理日志大小(KB)。