精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● 数据库技术>>INFORMIX 产品>>Informix Dynamix Server技术白皮书 IV

主题:Informix Dynamix Server技术白皮书 IV
发信人: garyjan()
整理人: chedong(2000-05-05 18:22:21), 站内信件
ANSI SQL92入门级标准
        Informix 动态服务器是第一个在UNIX 操作系统上获得由美国国家标准
技术 研究所颁发的 SQL92 入门级证书的关系数据库管理系统。最新的 NIST 验
证表 明 Informix 动态服务器与政府的SQL RDBMS联邦信息处理标准(FIPS)第
127-2号兼容。FIPS 127-2符合由美国国家标准研究所(ANSI)对SQL92入门级标
准 设置的说明规范 。
        INFORMIX RDBMS服务器的最新版本将采用中级的和完全的ANSI SQL标 准
特性,并在SQL 3标准制定完全之后,符合SQL 3标准。
全球语言支持
        INFORMIX的全球语言支持(GLS)的实现符合 GLS第四级说明规范,允 
许多字节字符的编码标准。通过提供GLS支持,Informix动态服务器可以按照产 
品使用国所要求的规则的格式,校验字符串,打印日期,和接受货币输入,不 必
区分INFORMIX软件本地版本。另外,对数据库应用,GLS 提供世界范围内 的支持
,因此应用程序只需维护相同的功能,并可以在不同的语言间移植。
内置客户机/服务器软件包
         在 Informix 动态服务器中,已自动内置分布式,客户机/服务器网络
互连产 品 ,保证任何使用  INFORMIX 7.X  版本连接类库的应用程序采用客户
/服务器 运行模式。因此在异种客户机/服务器网络中无需购买任何附加的网络产
品以运行 Informix 动态服务器。
       在一个事务中,Informix 动态服务器可在几个不同的计算机系统中进行
读、 连接和修改数据表操作。INFORMIX 具有业界领先的优化方法,它保证多点
修 改可快速处理, 同时两阶段提交恢复过程保证了数据表修改的一致性,即使
是 在系统损坏的情况下。
多点读、连接和修改操作
        在一个事务中,Informix动态服务器能够在几个不同的计算机系统进行
读、 联接和修改数据表操作,这种能力对于需要在多点数据库中共享数据库的用
户 是至关重要的。      因为用户经常需要修改几个分布式数据库间的数据一致
性, Informix 动态服务器还提供在一个事务中多点修改的功能。
       如果在多点修改中系统失败, 分布式数据库产品应该提供特殊的恢复过
程 ,将失败的系统修复到原先状态,使其信息与其它数据库服务器一致。分布式
 数据库产品还应该快速实现多点事务处理,不必花费过多的 CPU 和网络资源,
 因为大多数事务用于时间关键的业务中,因此浪费时间意味着降低效益。
        在一个事务中,Informix动态服务器能够使用户发出多点更新操作,它
采用 透明的两阶段提交协议以协调分布式数据库的修改, 通过自动恢复过程处
理系 统失败,并且通过假定中断优化功能确保 更快处理性能。
两阶段提交协议
        在多点修改中,两阶段提交协议确保数据库一致性,并在提交前和提交
阶 段进行协调。当用户首先联接Informix动态服务器系统时,对于涉及多点修改
的 所有后加入的数据库服务器,该系统成为协调者。
         协调者接到用户 "COMMIT WORK" 语句,在确定事务中没有SQL 语句需
 执行时,向参加的数据库服务器发出信息,请求准备提交事务,开始了两阶段 
提交协议中预提交阶段。
        如果任何一个参加服务器回答不能准备提交,或者根本没有回答,协调
服 务器退出事务并请求其它数据库服务器回滚该事务部分。如果所有的参加数据
 库服务器送回正确响应,协调服务器将请求它们提交事务。对事务回滚或者提 
交的决定是两阶段提交协议中提交阶段的开始。
两阶段提交恢复
        在两阶段提交协议完成之前, 如果任何一个数据库服务器失败,分布式
数 据库产品应该能恢复系统并保证数据的一致性, 该数据由其它数据库服务器
管 理。某些关系数据库管理系统需要开发人 员编写应用的恢复过程。
         Informix动态服务器比其它 RDBMS提供一个更为简单的解决方案,在失
败 的数据库服务器上,它自动回滚未提交的事务并提交已完成的事务。而且Info
rmix动态服务器跟踪检查每一事务的状态,并提供两种不同的恢复过程:一种针
对 协调服务器的失败,另一种针对参加服务器的失败。
         如果协调服务器失败,  它检测到一个全局事务正在处理,  就会重新
开始 这个处理。 然后协调服务器与参加数据库服务器联系获得它们事务部分的
状态 。如果它们的状态是"可以提交", 协调服务器将发送信息通知它们提交
那部 分事务。
        同样地,一个参加服务器失败, 它会提示重做,因为它正处于一个多点
修 改事务当中。 然后参加服务器与协调服务器联络以确定事务状态,只有当参
加 服务器将它们那部分事务提交后,协调服务器才从内存中去掉该事务。
        如果其中一个参加服务器在事务提交前失败, 事务仍保留在协调服务器
内 存中,并由协调服务器 告之事务状态使失败者将其那部分事务提交。
        如果协调服务器不能提供事务状态, 参加服务器认为事务已取消并将它
那 部分事务回滚。
假定失败优化
        为保证多点修改期间执行效率,Informix动态服务器使用了假定失败优
化, 该优化在需要保证最少的分布式服务器之间信息交换量, 和最少的 I/O 磁
盘操 作时被广泛采用 。
        这种方法, 在提高了数据库运行效率又保证数据一致性的同时,排除了
两 步工作。 第一步就是当协调服务器启动一个提交进程时同步写磁盘。在处理
其 它任何任务之前, 同步写要求系统处于等待状态,直到确信数据已被安全地
写 入磁盘中,这种严格确保数据的作法耗费了相当多的CPU时间 。
        假定失败优化只有当协调服务器从参加服务器接到"可以提交"和 "已
提 交"信息后才申请同步写操作。 协调服务器就只需记录要提交的信息即可,
那 些未记录或未知的事务状态总会使参加服务器回滚对应的事务。 第二个省去
的 步骤是协调服务器需要了解参加服务器回滚情况, 因为只有提交了的事务才
会 记录到磁盘上,理由同上。
区域透明
        应灵活地配置网络和数据库以防止由于计算机环境的变化迫使用户重写
应 用程序。Informix动态服务器具有当表被移到不同的系统上时,通过同名可扩
充 的能力不需修改应用程序,这样就从数据库配置上将应用隔离开。用户同样受
 益, 因为 Informix 动态服务器无论用户在何地使用扩展同义名时, 均可被连
到 正确的计算机系统上 ,用户也不必去记住他要存取的数据是在哪个系统上了

本地自治
        对于大多数商业事务来说保证信息的连续性是至关重要的。一些分布式
产 品依赖一个中心数据库服务器管理系统目录,这个中心服务器存贮着分布式数
 据库的信息,一旦出错就会导致整个系统 无法使用。
        Informix动态服务器提供了一个本地自治的功能来消除对一个单一中心
服务 器的依赖性,对Informix动态服务器而言,所有远程数据库的操作是彼此独
立的 ,自己管理自己的系统目录,避免那种依赖性所带来的问题。
消除死锁
        用户不能无限制地等待还未被其它用户释放的他们所需的数据,而一些
分 布式数据库系统在死锁发生时,在防止浪费CPU时间和计算资源的方面几乎什
 么也没做。Informix动态服务器消除死锁的特性恰好满足于此,它通过设定用户
 等待锁的最长时间解决了这个问题。
多线索用户
         通过INFORMIX 扩展SQL (ESQL)功能,用户仍可使用他们所熟知的第
 三代语言(象C,COBOL)进行开发。 ESQL 可嵌入式库函数使用户可以开发出 并
发连接服务器的多线索客户端的应用,这样就充分利用了 DSA的多线索特性 。

         此外,ESQL  库函数在运行期可动态连接和共享,降低了执行应用时所
占 的内存空间。ESQL包含 TP/XA 功能,通过事务管理与Informix动态服务器联
接 以支持全局事务( 这些事务可能来自于不同厂商的多个数据库或多个数据库
管 理系统)。Informix是第一家支持兼容X/Open XA标准事务管理的基于标准界
面 的RDBMS.
支持Enterprise Gateway
        在当今复杂变幻的商业竞争中,能迅速提供信息对于商业决策是非常关
键 的。今天的技术已经使得用户的数据一旦存入主机,就可传到各种不同的平台
 和操作系统中,包括那些专用的、开放的、 关系型和非关系型的数据库。为了
 给Informix动态服务器的用户们提供能从异构的数据库服务器上读取数据的工具
 ,INFORMIX 公司推出了 INFORMIX Enterprise Gatway,通过该产品,用户可 
拥有在 Oracle, Sybase 或 IMS  上的数据,而且 INFORMIX - Enterprise Gat
eway With  DRDA 可使用户直接存 取 IBM OB2 数据库,用户在使用时无需考虑
那些 数据在哪个服务器上。
开放式数据库互连(ODBC)
         Informix 动态服务器通过INFORMIX - Call Level Interface (CLI) 
支持微软公 司的 ODBC, 从而支持所有的 ODBC 应用开发接口。  数据类型和 
SQL 语句。 INFORMIX - CLI 也提供了 TP/XA 功能。用户通过客户机/服务器环
境即可使 用各种基于 ODBC 的财务、存货管理和用户跟踪等应用程序。
INFORMIX- 动态服务器技术规格说明
一、INFORMIX-动态服务器的资源消费
主存需求
INFORMIX动态服务器主进程(Oninit) 3.6M字节
驻留共享内存(即数据、逻辑和物理日志缓冲区) 1M字节至1G字节
    (页面大小为2K字节)
虚拟共享内存(即用户栈和堆):
每个连接的最小量 35K字节
建议每个对话的平均量 250K字节
                                           (依应用而异)
磁盘需求
每个INFORMIX动态服务器所需的磁盘空间 22M字节

二、INFORMIX-动态服务器的限制
表级参数(基于2K字节页面大小)
每个关系的最大片段数 2047
每个片段的最大行数 4.278x109
每个片段的最大数据页面数           16.775x106
片段的最大规模(不包括BLOB)   33.822x109字节
表的最大规模          64x102字节
行的最大长度          32767字节
每个表的最大列数 32767
特殊列(变长字符和BLOB列)的最大数目 231
每个表的最大索引数 77
每个索引的最大列数 16
任一个索引码的最大规模 255
字段容量
字符串字段最大规模 32767
变长字符串字段最大规模 255字节
引用字符串最大规模 256字节
TEXT或BYTE字段最大规模 2G字节
存取容量
每个INFORMIX动态服务器系统定义的数据库的最大数目 21x106
每个INFORMIX动态服务器系统定义的表的最大数目 477x106
每个数据库和表活动的用户线索的最大数目 ~33000
每个INFORMIX动态服务器系统的打开表的最大数目 32000
每个连接运算打开表的最大数目     最大打开开表数减     去当前
打开表数
每个INFORMIX动态服务器系统锁的最大数目 8x106
每个INFORMIX动态服务器系统数据缓冲区的最大数目         512000
每台计算机上INFORMIX动态服务器系统的最大数目 255
可访问的远程结点的最大数目 依机器而定
递归同义词映象的最大数目 16
用户封锁表的最大数目 32
每个用户的最大游标数 依机器而定
页面清除器的最大数目 32
打开的BLOB的最大数目 最大打开表数减去 当前打开表数
B--树的最大层数 20
一个逻辑日志文件的最大规模 1x106页
逻辑日志文件的最大数目 32767
数据库空间的最大数目 2047

三、 INFORMIX-动态服务器的缺省值
表锁方式 页面
初始区间大小 16K字节
下一个区间大小 16K字节
只读隔离级别(W/数据库事务) 提交后读
只读隔离级别(MODE ANSI数据库) 可重复读

假设表上没有索引.
假设没有索引,且行的大小恰为2016字节.(最大的行大小为每页1个slot
)
假设没有索引,且为1个区间,若大于1个区间,则该值会更小.
假设表上有一个区间,且每个关键码只包含一个部分.
依赖于可用的系统资源。


--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.99.12.234]

[关闭][返回]