东西显示奥特曼的游戏下载完毕毕,但是实际上只下载了很小一部分

IDS 计划和安装
此内容是该系列 # 部分中的第 # 部分: Informix Dynamic Server 11.50 基础考试 555 认证准备,第 1 部分https://www.ibm.com/developerworks/cn/views/global/libraryview.jsp?series_title_by=informix+dynamic+server+11.50+基础考试+555+认证准备敬请期待该系列的后续内容。此内容是该系列的一部分:Informix Dynamic Server 11.50 基础考试 555 认证准备,第 1 部分敬请期待该系列的后续内容。
开始之前本教程讲解 IDS 安装的计划。计划包括需要回答的关键问题、在哪里获得关于此产品的信息、它在您机器上的功能以及可能需要的安装前准备工作。计划安装之后,就要实际安装 IDS。本教程讨论每个操作系统上可用的安装选项,然后带领您安装和配置第一个 IDS 实例,最后讨论在配置之后如何启动和停止实例。掌握了这些知识,您应该能够计划、安装和启动 Informix Dynamic Server 实例,然后可以继续学习
的后续教程。您还应该能够回答认证考试第 1 部分中的问题。关于本系列 包含 9 个教程,帮助您准备 IBM Informix Dynamic Server 11.50 基础认证考试 (555)。这个认证考试测试您的 IDS 11.50 初级管理知识,包括基本 SQL (Structured Query Language)、如何安装 IDS 11.50、如何创建数据库和数据库对象、安全性、事务隔离、备份和恢复过程以及数据复制技术和用途。这些教程为准备考试的每个部分提供坚实的基础。但是,您不应该仅仅依靠这些教程准备考试。关于本教程本教程覆盖考试第 1 部分 “Planning and Installing IDS” 中的主题。目标学完本教程之后,您应该能够:解释 IDS 版本之间的差异描述不同的数据库应用程序描述用户设置和控制,包括角色隔离理解 IDS 中可用的数据类型,包括内置类型和可扩展类型解释和执行自己平台上可用的安装方法解释和执行 IDS 实例的配置步骤解释 IDS 实例的不同状态通过执行命令改变 IDS 实例的状态前提条件本教程针对初级数据库管理员 (DBA)。尽管具备一些基本的数据库知识会有帮助,但并不是必需的。系统需求学习本教程并不需要 IDS 的拷贝。但是,如果有 IDS 可用,肯定会得到更大的收获。如果您手头还没有 IDS 的拷贝,可以下载免费试用版(见 )。 计划有许多人影响了我,包括我的父母、高中老师、大学教授、业务指导等等;但是他们实际上都告诉我同一个道理:要想取得成功,就需要制定计划。对于成功的数据库部署,同样如此 — 您需要计划。尽管您可能不情愿花时间制定计划,但是要记住计划在日后会为您节省大量时间。因此,本教程的第一部分讨论计划。在制定计划时,需要问自己一些问题:我需要数据库软件中的哪些功能?我希望连接什么类型的应用程序?会有多少用户?这些用户从哪里连接数据库?我要存储什么类型的数据?数据量有多大?我希望应用程序的响应时间是多少?要使用现有硬件,还是购买新硬件?是由一个人维护数据的所有方面,还是让一个团队分担责任?还可以列出更多问题,但是我们先就此打住。本节的目标并不是深入讨论这些问题,而是促使您思考它们并讨论与它们相关的一些高层主题。 IDS 版本Informix Dynamic Server 提供四个不同的版本:DeveloperExpressWorkgroupEnterpriseIDS 的 Developer Edition 是一个免费产品,只能用于应用程序开发和测试。它包含 Workgroup Edition 的大多数功能,但是没有 IBM 技术支持。它还在处理器数量、内存和存储方面有可伸缩性限制。Express Edition 适用于中小型企业,只能在 Linux 和 Windows 操作系统上运行。它也包含 Workgroup Edition 的大多数功能并有可伸缩性限制。Workgroup Edition 适用于中型企业或作为大企业的部门服务器。它可以在各种 Unix/Linux 操作系统以及 Windows 和 Mac OS X 上运行。Workgroup Edition 增加了额外功能,比如有限的 Enterprise Replication (ER) 和 High-Availability Data Replication (HDR)。Workgroup Edition 也有可伸缩性限制。Enterprise Edition 包含 Workgroup Edition 的所有功能,而且没有可伸缩性限制。Enterprise Edition 包含完整的 HDR 和 ER 功能,还增加了 Continuous Availability Feature、Storage Optimization、LBAC 等功能。 制定计划的首要步骤之一是判断需要用哪个 IDS 版本支持您的业务需求。应用程序类型连接数据库的应用程序通常分为两类: 联机事务处理,即 OLTP决策支持系统,即 DSS,有时候也称为数据仓库您会问,“它们有什么不同?” 我们来看一个示例。OLTPOLTP 型处理的示例是呼叫中心应用程序。当您打电话给信用卡公司(或任何形式的服务台)时,电话那头的服务人员通常会询问某些能够惟一地标识您账户的信息,比如账户号。使用这个账户号搜索数据库,找到只与您相关联的几个记录。可能只有一个记录(可能是您的账户信息),也可能有几十个记录,比如您的账户信息加上最近 15 次交易的信息。无论是哪种情况,这应该是快速的搜索,可以在一两秒或更少时间内返回数据。尽管它可以返回来自多个表的几十个数据行,但是它返回的行只占数据库中行的很小一部分。应用程序可能返回 20 行,这与表中的 2 亿行相比微不足道。我这么说并不是想让您觉得渺小;只是想指出 OLTP 型系统的关键特征:它通过查询返回很少几行它具有非常短的响应时间 — 通常是一两秒或更少它使用惟一标识和索引获取行集它是一个读写型环境支持大量用户OLTP 系统设计为读写系统。信用卡服务台等用户应用程序不但会从数据库中选择数据,还会频繁地更新和插入新数据。DSS 或数据仓库DSS 型查询是报告型的查询。它们是运行时间更长,更深入的查询。继续以上面的信用卡公司为例,公司的 CEO 希望:查明上一个月发生了多少次信用卡交易生成所有拖欠信用卡债务的客户的报告注意,这些查询并不与某一客户相关联。第一个查询可能只使用一个表获取数据(也可能使用几个表),但是为了获得一个月的结果,它必须搜索很大的数据范围,然后对数据进行聚合(计数)以获得最终结果。第二个查询与第一个相似,但是返回更多数据。许多人认为 DSS 型查询都会返回大量数据。但是,事实并非如此。在前面的示例中,第一个查询是 DSS 查询,但是它只返回一行(实际上只有一个总数值)。第二个查询返回大量数据,具体数量取决于拖欠信用卡债务的客户数量。DSS 查询的关键特征包括:长时间运行;可能需要几分钟到几小时资源消耗量更大与查询条件匹配的行很多可能要聚合大量数据(求总和、最小值、最大值、总数等等)因为涉及很大的数据集,需要对表进行连续的扫描DSS 环境更接近只读环境。尽管有时候必须把数据装载到系统中,但是通常采用批量装载,在此之后系统不进行更新,至少不会频繁地更新。因此,不要根据查询返回的数据量判断它的类别,而是应该根据查询本身的关键特征来判断。在设计数据库时使用的数据模型也非常重要。IDS 可以使用三种数据模型:关系数据模型 —— 典型的 OLTP 模型对象-关系数据模型 —— 通过使用 IDS 的可扩展性选项(扩展的数据类型、用户定义例程、用户定义类型、用户定义聚合等等),在关系数据模型中添加对象维数据模型 —— 典型的 DSS 数据模型,支持联机分析处理 (OLAP)尽管在当今的环境中一个数据库不一定是纯粹的 OLTP 或 DSS,但是查明数据库的主要应用程序类型总是有好处的,有助于采用与之相匹配的设计路径。许多数据库有两种类型的应用程序同时连接它们,为了适应这种情况,IDS 提供了可配置的参数,帮助提高在同一数据库上运行的 OLTP 和 DSS 查询的性能。用户计划的另一部分是考虑用户需求。基本问题包括:需要为这个软件建立任何特殊用户或组吗?用户从哪里连接数据库?预计会有多少个用户同时连接数据库?回答这三个问题不仅有助于数据库计划,还有助于确定硬件需求。Unix/Linux 上的 IDS 要求在安装机器上设置 “informix” 用户账户和 “informix” 组。Windows 上的需求要宽松一些,允许使用 “informix” 用户或一个本地系统用户和 “Informix-Admin” 组。在 Windows 上安装时,可以选择要使用的用户账户。在默认情况下,“informix” 用户是 IDS 软件的 “超级用户”。它有权访问所有内容,可以用 IDS 软件做任何事。IDS 11.50 使用外部用户身份验证,这意味着它不在软件内部设置用户,而是依靠其他软件验证用户的身份。这个外部软件可以是运行 IDS 的机器上的操作系统身份验证机制、LDAP、MS Active Directory 或 Pluggable Authentication Module (PAM)。注意:无论采用哪种身份验证方式,都必须记住一点:需要访问数据库的所有用户都必须通过外部身份验证机制设置账户和密码,这样数据库才能对他们进行身份验证并允许他们访问数据。连接的用户账户数量对于制定计划很重要。正如前面提到的,在默认情况下,“informix” 用户是 IDS 系统的 “超级用户”。但是,某些规范要求把管理员权力划分给多个用户,每个用户只具有一部分管理权限。这称为角色隔离。角色隔离是一种权力制衡机制。IDS 角色隔离把管理员权力划分为两类:运行实例的人要执行的管理任务审计实例活动的人要执行的审计任务必须在安装软件时启用角色隔离,启用方法是在启动安装过程之前设置 INF_ROLE_SEP 环境变量,或者在交互式安装过程中启用它。只能通过卸载/重新安装 IDS 软件禁用角色隔离。角色隔离在 Windows 上使用用户账户,在 Unix/Linux 上使用组账户。如果已经启用了角色隔离,安装过程会询问这些用户和组账户的信息。角色隔离把管理员权力划分给三个用户:Database System Administrator (DBSA) —— 控制实例的一般操作Database System Security Office (DBSSO) —— 决定要审计什么Audit Analysis Officer (AAO) —— 监视审计记录还有几个用户虽然不属于角色隔离,但是可能需要为它们制定计划:Database Administrator (DBA) —— 管理实例上的数据库Operating-System Administrator (OSA) —— 满足操作系统需求System Users —— 需要获得数据的任何用户数据类型在制定数据库计划时,应该熟悉可以用来存储数据的数据类型。描述数据在数据库中的存储方式的最简单方法是用电子表格做类比。您很可能使用过或见过某种电子表格程序(例如 Microsoft® Excel®)。电子表格组织为行和列。同一列中的所有数据(垂直数据)通常是相似的,比如都是日期或金额。列标题描述数据的含义。同一行中的所有数据(水平数据)共同描述电子表格表示的一个对象。在下面的示例()中,电子表格描述 XYZ Shoe Store 的客户。每一行描述一个客户的相关信息,每一列描述所有客户的某一概念。对于每个客户,要存储姓名、年龄、鞋码、最后一次从店里买鞋的时间和这次交易中购买的数量。表 1. 数据示例NameAgeShoesizeLast Trans DateLast Trans AmtFred Flintstone2911.53/29/2009$79.35Barney Rubble3191/15/2009$103.75Dino Flintstone71611/26/2008$129.95数据库并不在电子表格中保存数据,而是在表中保存数据。与电子表格一样,表也由行和列组成。在定义表时,指定要保存什么样的列数据和每个列使用的数据类型。数据类型限制列可以包含的数据的类型。如果把列定义为整数数据类型,那么这个列就不能包含字母;它只能包含整数。当应用程序开始在表列中存储数据时,添加表行。每次存储一行数据。表 1 中的示例有 5 列 — 第一列 Name 的数据类型是字符/字符串;Age 是整数;Shoesize 是小数;LastTransDate 是日期;LastTransAmt 是货币值。 既然已经了解了在什么地方使用数据类型,现在看看 IDS 中可用的数据类型。可用的数据类型内置数据类型
BIGINT —— 从 -(263-1) 到 263-1 的整数BIGSERIAL —— 从 -(263-1) 到 263-1 的整数,由服务器自动地递增;有时候作为代理主键BLOB —— 二进制大对象,最大大小为 4TB,用于以原生格式存储对象BOOLEAN —— 't' 或 'f' 值;可以在表达式中测试BYTE —— BLOB 的老版本,理论大小限制为 231 字节,实际限制由磁盘容量决定CHAR(n) —— 存储 n 个字符;如果长度小于 n,那么用空格填充至 n 个字符CHARACTERVARYING(m,r) —— 与 ANSI 兼容的 VARCHARCLOB —— 字符大对象,最大大小为 4TB,用于字符数据DATE —— 日历日期;默认格式为 MM/DD/YYYY;可以通过 DBDATE 环境变量修改格式;指定一个时间点DATETIME —— 日历日期和时间;默认格式为 YYYY-MM-DD HH:MM:SS.FFF;可以通过 DBTIME 环境变量修改格式;指定一个时间点DECIMAL(p,s) —— 小数值,其中的 'p' 是总位数,'s' 是小数点右边的位数。NUMERIC(p,s) —— 与 DECIMAL 相同DOUBLE PRECISION —— 与 FLOAT 相同FLOAT —— 双精度浮点数,最多 17 个有效位IDSSECURITYLABEL —— 只由 Label Based Access Control (LBAC) 使用的 VARCHAR(128)INTEGER —— 从 -(231 -1) 到 231 -1 的整数INT8 —— 从 -(263 -1) 到 263 -1 的整数INTERVAL —— 格式与 DATETIME 相同,但是指定一个时间范围LVARCHAR(m) —— 长度可变的字符字段,最大长度为 m;只使用存储数据所需的空间,而且不超过 m;在使用 UDT 时最大大小限制为 2GB,否则限制为 32KMONEY(p,s) —— 与 DECIMAL 相似,但是用货币字符进行格式化;默认字符是 $ 和 .,但是可以通过 DBMONEY 环境变量修改NCHAR(n) —— 存储固定长度的字符数据,但是包括使用 Global Language Support (GLS) 存储由数据库地区决定的单字节和多字节字符集;还允许使用本地的整理次序NVARCHAR(m,r) —— 与 VARCHAR 相同,但是具有与 NCHAR 相似的特殊性质REAL —— 与 SMALLFLOAT 相同SMALLFLOAT —— 单精度浮点数,大约 9 个有效位SERIAL —— 从 –(231 -1) 到 231-1 的整数,由服务器自动地递增;有时候作为主键SERIAL8 —— 与 SERIAL 相同,但是数值范围为 –(263 -1) 到 263-1SMALLINT —— 从 -32767 到 32767 的整数TEXT —— CLOB 的老版本,最大大小为 2GBVARCHAR(m,r) —— 长度可变的字符字段,最大长度为 m(m 不超过 255),r 是最小保留空间;如果存储的值的长度小于 r,那么用空格填充至 r 个字符;如果存储的值的长度大于 r 但小于 m,那么只使用存储数据所需的空间扩展数据类型复合数据类型
ROWCOLLECTION用户定义数据类型
独特类型(Distinct types)Opaque 类型内置数据类型被认为是原子的,也就是说它们无法分割为更小的块。每个内置数据类型都有独特的性质。清单 1 给出一个使用内置数据类型创建 customer 表的示例(数据来自 ):
清单 1. 使用内置数据类型CREATE TABLE customer
( Name CHAR(55),
Age INTEGER,
Shoesize DECIMAL(3,1),
LastTransDate DATE,
LastTransAmt MONEY(5,2)
);数据类型的可扩展性因为内置数据类型不可能覆盖用户可能希望存储的所有数据的类型,IDS 提供了扩展数据类型的功能,可以把内置数据类型组合在一起,也可以添加新的用户定义数据类型。复合数据类型包含两类:ROW 和 COLLECTION。ROW 数据类型就像是表中的一行,但是把这一整行放在一个列中。因此,它包含多个由内置数据类型组成的部分。它不是原子的。可以为 ROW 数据类型指定名称,也可以不指定。示例:仍然以前面的 XYZ Shoe Store 为例,您希望存储客户的完整姓名 — 名、中间名和姓。不必创建三个列,分别保存这三个部分,而是可以创建一个包含三部分的列。COLLECTION 数据类型实际上包括三种数据类型:SET、MULTISET 和 LIST。COLLECTION 数据类型允许把相同数据类型的数据组一起存储在单一列中。示例:仍然以前面的 XYZ Shoe Store 为例,您希望存储客户喜欢的鞋子品牌。不希望为此创建多个列,因为不知道需要多少个列。一些人只喜欢一个品牌,而有的人喜欢四五个品牌。所有品牌名都只是字符串,所以它们的数据类型相同。对于这种情况,可以创建一个名为 FavBrands 的 SET 类型的列,它存储字符串数据。这个列可以存储客户喜欢的任意数量的品牌。然后,可以使用 SQL 选择在 FavBrands 列中包含 Nike 的所有客户。这里选用 SET 类型是因为 SET 不允许集合中有重复的数据。'Nike','Keds','Nike' 这样的值是没有意义的。MULTISET 和 LIST 都允许重复的数据。COLLECTION 不允许 Null 元素,所以在定义 COLLECTION 时必须指定 NOT NULL 约束。清单 2 给出一个使用 ROW 和 COLLECTION 类型创建 customer 表的示例:清单 2. 使用 ROW 和 COLLECTIONCREATE TABLE customer
( Name ROW( fname CHAR(15), mi CHAR(1), lname CHAR(35)),
Age INTEGER,
Shoesize DECIMAL(3,1),
LastTransDate DATE,
LastTransAmt MONEY(5,2)
FavBrands SET(CHAR(10) NOT NULL)
);修改之后,表数据像下面这样:表 2. 示例使用的数据NameAgeShoesizeLast Trans DateLast Trans AmtFavBrandsFNameMILNameFredFFlintstone2911.53/29/2009$79.35Rockers, NikeBarneyRubble3191/15/2009$103.75TreadwearDinoTFlintstone71611/26/2008$129.95Doggear用户定义类型尽管内置类型和复合类型能够覆盖用户可能希望存储的大多数数据,但是仍然有可能需要新的数据类型。新的应用程序和技术带来新的东西,可能需要新的数据类型。因此,IDS 并不负责决定什么时候应该添加新的数据类型,而是让用户能够在需要时添加新的数据类型。这些数据类型称为用户定义类型(UDT)。用户定义它,告诉 IDS 如何与它交互。这是一个非常棒的功能。如果生活中的所有事情都这么容易,就好了。实际上,这确实不太难;只需完成几个步骤。本教程后面会详细讨论 UDT 和 UDT 的支持函数。这里先简要介绍一下。正如在前面的可用数据类型列表中看到的,第一种 UDT 类型称为独特类型(distinct type)。简单地说,独特类型只是对一个内置数据类型的重新命名。它继承内置类型的基本性质,但是不包括支持函数。 示例:Create distinct type Shoesize as DECIMAL(3,1)因为 shoesize 定义为小数,所以它具有小数类型的存储性质。但是,可以对小数值执行的操作对于 shoesize 值不一定都有意义。例如,把两个 shoesize 相加求出另一个 shoesize 是没有意义的。加函数 (+) 在 IDS 中是一个支持函数。因为 IDS 不知道支持函数对于新定义的独特类型是否有意义,它会自动地在独特类型上禁用所有支持函数。因此,也不能比较 shoesize 值和小数值。值的比较也是支持函数。尽管 shoesize 定义为小数,但是它们是两个不同(独特)的类型,不能相互比较。如果要比较小数值和 shoesize 值,就必须先把其中一个值转换为另一个值的数据类型,然后才能进行比较。 所以您会问,“如果在这个新的 ‘独特’ 数据类型上不支持支持函数,那么它对我还有什么用呢?” 您想对 shoesize 执行一些特殊的操作,比如检查一个 shoesize 是否比另一个大。这是一个不合适的例子,因为这里的 shoesize 是像一般小数值那样的递增值。但是,假设 shoesize 中还要加入 XS、S、M、L、XL 和 XXL 值。必须把 shoesize 由小数类型改为字符类型。但是在这种情况下,如果要比较两个 shoesize 值,就不能再依靠一般的次序(在这里是字母表次序)。如果依靠字母表次序,那么 shoesize 的次序会是 L、M、S、XL、XS、XXL。但是这不对,因为 XS 实际上是最小的。无法依靠 IDS 的内置函数解决这个问题,所以需要一种替代方法。IDS 的替代方法是允许编写外部例程,然后可以在一般的 SQL 中调用它们。因此可以编写一个例程来执行 shoesize 的比较。这些新例程称为用户定义例程 (UDR)。本教程后面会进一步讨论 UDR。 另一种 UDT 称为 OPAQUE 数据类型。顾名思义,opaque 类型是 IDS 完全不了解的新类型。必须向 IDS 描述这个数据类型,这有点像 C 结构。还必须告诉 IDS 其他信息,包括这个结构应该如何保存在磁盘上、如何在磁盘格式和显示格式之间进行转换、如何为它编制索引以及要使用的支持函数。您一定会问,“如果必须做这么多工作,我为什么要使用 IDS,我可以编写自己的应用程序?” 尽管 OPAQUE 数据类型需要做许多工作,但是有很大的回报,因为可以自动地利用所有其他数据库功能。定义了支持函数之后,IDS 就可以在一般 SQL 语句中的任何地方使用它们,就像内置类型一样。因此,可以利用关系数据库管理系统 (RDBMS) 中已有的所有功能,包括事务完整性、备份和恢复、存储、用户功能、与其他数据类型的集成等等。使用 OPAQUE 类型的例子是 GeoSpatial Datablade,它定义了一个 GeoPoint 数据类型,用来存储四维的地理坐标。这个数据类型的支持函数帮助分析距离、接近程度、交汇,提供基于地理位置的其他功能。这些函数可以包含在一般 SQL 语句中,所以字符数据、geopoint 数据和其他数据类型的数据可以出现在同一结果集中。用户定义例程可以用 C、Java 或 Stored Procedure Language (SPL) 编写 UDT 的支持函数。实际上,不仅可以为 UDT 编写支持函数,DBA 还可以创建 UDR 来支持内置数据类型。示例:内置数字数据类型的平均值(AVG)聚合函数(例程)在执行计算时完全忽略 NULL 值。但是,您的数据分析可能需要考虑 NULL 值,所以需要编写一个 AVG 例程,它把 NULL 值转换为零并在计算中包含它们。可以编写一个重载内置 AVG 函数的 UDR,然后对内置数据类型或 UDT 使用这个新例程。注意,在这个示例中,“函数” 和 “例程” 这两个词是同义的。这是因为例程只是一个类别,它包含两个实际元素:函数和过程。因此,在创建例程时,实际上使用 CREATE FUNCTION 或 CREATE PROCEDURE SQL 语句。您会问,“函数和过程有什么区别?” 根据 ANSI 标准定义,函数可以接收值,也可以返回值;而过程可以接收值,但不应该返回任何值。例如,向 SUM 函数传递 2 和 2,它会返回 4。但是,对于更新职员工资的过程,把新的工资值传递给它,它不需要向用户返回任何东西。从 11.50 开始,IDS 不完全符合 ANSI 标准,因为它仍然允许从过程返回值。这是为了保持向后兼容性。在以后编写例程时,一定要牢记 ANSI 标准。datablade在结束对 UDT 和 UDR 的讨论之前,看看另一个概念 datablade。因为我们已经讨论了 UDT 和 UDR 是什么,datablade 概念应该容易理解。datablade 是由于某种原因打包在一起的 UDT 和 UDR。原因往往是它们具有某些共同点,比如都具有某一功能。datablade 的例子是 Geodetic Datablade。Geodetic Datablade 中包含执行地理空间数据存储、获取、索引和各种分析所需的所有 UDT 和 UDR。版本说明假设您需要为计算机买一台新打印机。您会跑到本地的计算机外设商店,挑选一台自己喜欢的打印机,然后带回家。回家之后,您打开包装盒,首先做的就是拿出用户手册,从头到尾读一遍,然后再取出包装盒中的其他东西。对吗?但是实际上,绝大多数人会拿出用户手册,但是把它丢在一边,因为他们太兴奋了,想早点把打印机接到计算机上。外设生产商考虑到了这种现象,为此,他们会在包装盒内最上面放上某种资料 — 可能名为 “Read Me First” 文件,其中说明让打印机开始工作的简易步骤。IDS 也采用这种做法,它把用户指南分为两部分。第一个部分是 README.html 文件,这个文件放在从安装介质解压软件时生成的顶级目录中。README 文件包含非常基本的安装说明,还有其他几个文档文件(称为 “版本说明”)的链接。(本教程的 “” 一节详细讨论安装)。这些版本说明描述新特性、支持的版本、内核参数值、已经废弃的特性和已知问题及其解决方法。如果您从 IDS 的一个版本升级到另一个版本,版本说明对于了解版本之间的差异很有帮助。如果您是安装全新的系统,也可以在版本说明中找到关于这个版本和其他信息来源的信息。如果您得到一个已经安装好的 IDS,仍然可以在安装 IDS 的目录中的一个子目录下找到版本说明。让我们把安装 IDS 的目录称为 INFORMIXDIR。版本说明的位置是 /INFORMIXDIR/release(Unix/Linux)或 C:\INFORMIXDIR\release(Windows)。实际上,它们在这个目录下的一系列本地化目录中。这些本地化目录采用 Global Language Support (GLS) 约定。如果在 Unix/Linux 上安装这个产品的 US English 版本,完整的目录路径是 /INFORMIXDIR/release/en_us/0333。最后两个子目录名取决于您的国家和语言,但是结构是相似的。在最内层的目录中会找到这台机器上安装的所有 IBM Informix 产品的版本说明,包括 HTML 和文本两种格式。地区前一节的最后一部分提到了 Global Language Support (GLS) 的概念。世界上的各个国家并不使用相同的语言、相同的字母表或相同的货币。因此,软件也不应该只使用一种语言。这就引出了本地化问题。“本地化” 过程对产品进行转换以满足特定的文化环境。在本地化过程中,要创建与文化相关联的资源文件,翻译用来生成产品用户界面、消息和错误的文件,设置日期、时间和货币格式。还可以进一步定义地区;它使用本地化的文件,但是还指定编码集(字符映射)和整理次序(词典排序次序)。这种划分允许相同的本地化有多个地区。一个国家可能有多个地区,所有地区说同一种语言,但是每个地区略有差异。在创建数据库时,产品和硬件类型将决定使用的默认地区。这称为 DB_LOCALE。对于在美国购买并安装在 Unix/Linux 上的 IDS 产品,默认的 DB_LOCALE 是 en_us.8859-1(也称为 en_us.819)。如果安装在 Windows 上,默认的 DB_LOCALE 是 en_us.1252。如果想修改 DB_LOCALE,必须在创建数据库时在运行 CREATE DATABASE SQL 语句的会话中设置 DB_LOCALE 环境变量。ISO 8859-1 字符编码针对拉丁字母表,适用于许多国家。尽管 DB_LOCALE 指定数据库的默认地区,但是连接数据库的客户机可以使用不同的地区。客户机的 CLIENT_LOCALE 环境变量指定客户机的地区。要想让数据库和客户机能够交换信息,它们的地区必须是相同或者兼容的(可相互转换)。在为 GLS 存储字符数据时,一定要使用 NCHAR 和 NVARCHAR 数据类型,而不是 CHAR 和 VARCHAR 数据类型。以 “N” 开头的数据类型允许根据 CLIENT_LOCALE 决定排序次序,而不只是根据 DB_LOCALE。客户机可以使用 SET COLLATION SQL 语句在当前会话中动态地修改排序次序。 给出 GLS 地区的示例。因为许多国家使用拉丁字母表,这些国家的许多编码集是兼容的。创建 Shoe store 表(见 )并在其中填充一行之后,我多次运行了下面的 SELECT SQL 语句,但是每次都把 CLIENT_LOCALE 环境变量设置为与 DB_LOCALE 不同但兼容的另一个地区。清单 3. GLS 地区SELECT name.fname, SUBSTR(TO_CHAR(lasttransdate,"%B %d %Y"),1,15), lasttransamt
$ export CLIENT_LOCALE=en_us.8859-1
--(setting for US English)
(expression)
lasttransamt
March 21 2009
$ export CLIENT_LOCALE=nl_nl.8859-1
--(setting for Dutch Netherlands)
(expression)
lasttransamt
maart 21 2009
$ export CLIENT_LOCALE=de_de.ASCII
--(setting for Germany German)
(expression)
lasttransamt
Mrz 21 2009
$ export CLIENT_LOCALE=pt_br.8859-1
--(setting for Brazil Portuguese)
(expression)
lasttransamt
Mar?o 21 2009
(85,43)R$注意,修改 CLIENT_LOCALE 之后,数据格式也发生了变化。(是格式,不是数据本身)。在使用这种方法时,一定要小心,因为尽管日期在任何国家都是日期,但是 85 美元并不等于 85 巴西雷亚尔。另外,所有日期都采用 Month Day Year 格式,这是因为调用了 TO_CHAR 函数并把格式设置为 %B %d %Y。 显示删除 TO_CHAR 函数调用并用指定的 CLIENT_LOCALE 重新运行这个 SQL 语句的输出:清单 4. 输出$ export CLIENT_LOCALE=pt_br.8859-1
(expression)
lasttransamt
(85,43)R$总之,GLS 库让应用程序能够满足数据的文化期望,而不需要修改应用程序。通过使用特殊的数据类型、环境变量和 SQL 语句,GLS 支持动态地调整数据格式和排序次序,从而满足客户机标准。不需要针对可能使用客户机应用程序的每个国家/地区编写不同的版本。小结在本教程的第一部分中,您学习了:连接 RDBMS 系统的两种应用程序类型在 IDS 中如何处理用户身份验证IDS 可用的所有数据类型IDS 通过 UDT 和 UDR 实现的可扩展性IDS “Read-me first” 文件和版本说明GLS 本地化
如果您需要关于数据库计划的更多信息,请看看 IBM Informix Dynamic Server 11.50 Information Center 上的 “Installing IDS” 主题(见 )。安装在为 IDS 制定计划之后,下一步是实际安装产品。IDS 可以在 Unix/Linux、Windows 和 Mac OS X 上运行。可用的安装选择取决于使用的操作系统。Unix/LinuxIDS 的安装通常分为两个步骤:从包介质(CD、磁带或下载文件)解压软件运行安装脚本通常使用 tar –xf 命令从介质中解压软件。产品应该解压到要安装它的目录位置。IDS 产品套件包含多个产品,可以同时安装所有产品,也可以分别安装。运行 ids_install 命令,安装脚本会安装 IDS 服务器以及相同目录中的其他相关产品。installserver 命令只安装 IDS 服务器,忽略其他产品。运行安装脚本需要根权限。作为根用户登录之后,可以以多种方式完成安装:控制台模式(默认):这种模式使用默认的纯文本终端响应安装程序,包括接受许可协议、指定安装位置、指定安装模式、启用角色隔离和初始化演示服务器。回答这些问题并检查汇总信息之后,开始执行安装。 安装模式选项包括典型安装和定制安装。
可定制安装的特性包括:
可扩展性特性GLS备份和恢复实用程序企业复制数据装载实用程序演示服务器初始化会创建、设置和初始化一个 IDS 实例,这个实例基于指定的配置文件或默认配置文件。 初始化命令的示例: install_idsGUI 模式:当在安装命令中指定 –gui 选项时,进入这种模式。GUI 模式与控制台模式相似,但是使用一个 Java 图形界面与安装程序交互。 安装命令的示例: installserver -gui静默模式:这种模式支持非交互式安装。静默模式使用一个 .ini 文件提供响应信息,这些信息在控制台模式和 GUI 模式中是通过键盘或鼠标提供的。IDS 提供两个默认的 .ini 文件,您也可以创建自己的 .ini 文件。在交互式安装期间,在安装命令中指定 -record & filename & 选项,就可以自动地创建 .ini 文件。 示例: installserver -record myresponses.ini要想使用自己创建的 .ini 文件,必须在安装命令中指定 -options & filename & 选项。 示例: install_ids -silent -options myresponses.ini如果使用默认的 .ini 文件(bundle.ini 或 server.ini),必须在安装命令中指定 –acceptlicense=yes 选项;否则,安装不会成功。 示例: installserver -silent -acceptlicense=yes在安装期间还可以指定其他选项,包括:-javahome &javadir&,使用已经安装的 JRE-P installLocation=&installdir&,指定不同的安装目录-log &logfilename&,指定非默认的日志文件名可以在同一个系统上同时存在 IDS 的多个版本。只需把它们安装在不同的目录中即可。环境变量 INFORMIXDIR 指向在启动 IDS 实例时应该使用的产品目录。Windows在 Windows 上,可以以图形模式或静默模式安装 IDS。如果安装介质是下载文件,那么必须按文件类型选用适当的工具,把文件解压为文件夹结构。如果安装介质是 CD,那么可以从 CD 直接启动安装过程。通过运行 Launch.exe 或 setup.exe 启动安装。Launch.exe 启动 GUI 安装过程,这会带领您完成以下步骤:选择要安装的产品接受许可协议选择安装模式(典型或定制)设置 informix 用户账户和密码(如果还没有这个账户的话)选择安装目录确认汇总信息典型或定制安装模式与前面 “Unix/Linux” 小节中描述的相似,但是还支持以下操作:指定本地 ‘informix’ 用户之外的另一个用户账户启用角色隔离创建演示服务器,选择是否初始化启动 Instance Configuration Wizard启动 ClusterIT 实用程序要想在 Windows 上以静默模式执行安装,应该在命令行环境中使用 setup.exe 命令。与 Unix/Linux 环境中一样,静默模式在安装期间使用 .ini 文件提供响应信息。可以使用默认的 server.ini 文件,也可以创建定制的文件。下面的安装命令示例使用默认的 server.ini 文件: setup.exe –s –f1"C:\IIF\server.ini"在安装期间使用定制的 .ini 文件的方法是,在上面的命令中修改 –f1 选项中的文件名。要想根据 GUI 安装期间做出的响应创建定制的 .ini 文件,必须在启动 GUI 安装之前在命令提示上运行命令 setup.exe –r –fl"C:\temp\mysilent.ini"。 当然,可以根据自己的环境修改路径和文件名。安装完成之后,会创建一个新的 .ini 文件,可以在以后的所有静默安装中使用它以提供相同的配置。Windows 安装会在 $INFORMIXDIR%\logs\ 中创建一个日志文件,其中记录所有安装活动。在使用静默安装时,可以通过 –f2"&filename&" 选项修改日志文件位置。Windows 允许使用 –multiple 选项在计算机上安装 IDS 的多个版本。 Mac OS XMac OS X 安装与 Unix/Linux 安装相似。它有 GUI 和无人值守(静默)两种安装方法。执行无人值守安装需要根特权。启动 GUI 安装的方法是打开 iif 包,在出现提示时输入系统管理员密码。安装过程提示指定以下信息:informix 用户账户信息(如果还没有这个账户的话)接受许可协议安装目录要安装的产品安装模式(典型或定制)角色隔离创建演示数据库服务器自动内核调优确认汇总信息与 Unix/Linux 安装过程一样,定制安装模式允许选择要安装的特性。无人值守(静默)安装与 Unix/Linux 上的静默安装相似。在 Mac OS X 上,必须使用 bundle.ini 文件,也可以根据自己的安装需求定制它。 注意:在安装之前,一定要在 .ini 文件中把 –G licenseaccepted=false 改为 true。定制 bundle.ini 文件之后,打开一个终端窗口,进入 iif 文件所在的目录,作为根用户运行以下命令: Installer –pkg iif.11.50.FC#.macosx64.pkg –target /一定要把上面命令中的 # 符号替换为适当的数字。保护安装路径在安装 IDS 11.50 时,可以通过一个选项自动地保护安装路径。保护安装路径会检查安装路径中的目录是否设置了合适的所有者、组和权限。如果在安装时选择不保护安装路径,可以在任何时候手工地设置保护。注意:如果安装路径没有受到保护,IDS 不会初始化。手工保护路径的步骤如下:运行 $INFORMIXDIR/bin/onsecurity –r $INFORMIXDIR 创建一个 shell 脚本。运行 $INFORMIXDIR/tmp/secure.sh 以保护路径。如果通过这个手工过程保护路径,系统管理员可以看到将分配给安装路径中任何目录的权限,可以对路径中不属于 IDS 的任何目录采取适当的措施。 配置安装产品之后,下一步是配置操作系统、运行 IDS 的环境和 IDS 服务器实例本身。在开始配置之前,您应该了解两个术语的定义:IDS 实例 —— 可由一个或多个数据库使用的一组固定的操作系统资源。有时候,实例也被称为数据库服务器或数据库引擎。这组资源包括磁盘空间、处理器和内存。关系数据库 —— 组织成表的数据集合,支持快速的搜索、获取和存储。因此,在阅读本教程余下的内容时,要记住实例、引擎和数据库服务器是同义词。操作系统因为配置 OS 通常是系统管理员 (SA) 的工作,您可能需要 SA 帮助完成这个任务。IDS 附带一个称为机器说明(machine notes)的文件。这个文件位于与版本说明相同的位置(见前面的 “” 小节)。这个文件提供根据安装 IDS 的机器类型设置适当 OS 内核配置参数值的建议。可调整的配置参数直接取决于 OS 生产商。在 Unix/Linux 上,要调整的最重要的内核参数是共享内存、信号量、文件和用户的数量。还可能需要调整内核中的特殊 I/O。清单 5 给出一个针对 HP-UX OS 的机器??明示例:
清单 5. 针对 HP-UX OS 的机器说明On HP-UX, these entries are in /stand/system.
nfile: 5000
semmni: 3000
semmns: 3000
semmnu: 1400
shmmni: 500
shmseg: 500注意:机器说明中提供的值只是根据产品测试推荐的值。如果这些值与内核中已经设置的值差异很大,那么一定要向系统管理员咨询,了解修改这些值会对系统产生什么影响。在 Windows 上,最重要的配置参数是内存。必须在 boot.ini 文件中启用访问超过默认内存地址空间量的内存的功能。通过修改这个值,可以把可访问的内存从大约 2GB 提高到大约 3GB。尽管没有可调参数,但一定要注意,Windows IDS 实例中的所有数据必须存储在 NTFS 分区、物理驱动器或逻辑磁盘分区上。环境IDS 非常依赖运行它的环境。因此,正确地理解和设置环境变量非常重要。IDS 实例有五个主要的环境变量:INFORMIXDIR —— 安装产品的目录位置的完整路径。INFORMIXSERVER —— 启动的实例的名称。PATH(可选) —— 为了方便,其中应该包含 $INFORMIXDIR/bin。ONCONFIG(可选) —— 配置文件名。INFORMIXSQLHOSTS(可选) —— 指向连接信息文件。在这五个环境变量中,只有两个是必需的;另外三个是可选的。本教程详细讨论其原因。设置环境变量的命令和位置直接取决于使用的 OS。 下面是一个使用 Unix 和 Korn shell 的示例: export INFORMIXDIR=/usr/informixWindows 有多个可以设置环境变量的地方,采用的优先次序规则如下:Setnet 32 应用程序中的设置运行应用程序之前命令行上的设置Windows 中用户变量形式的设置Windows 中系统变量形式的设置默认值INFORMIXDIR 环境变量指向安装产品的位置。这很重要,因为该路径包含一些在 IDS 可执行程序中使用的值。如果不设置这个路径,IDS 就不知道在哪里寻找成功运行所需的某些文件。INFORMIXSERVER 环境变量是环境在默认情况下启动的 IDS 实例的名称。这个环境变量对于试图访问 IDS 实例的每个客户机连接都很重要,无论客户机是内部的还是外部的。内部客户机是 IDS 软件附带的实用程序。外部客户机是使用 SQL 访问数据库的任何应用程序。您会问,“IDS 实例应该如何命名?” 这个问题留到后面的 “” 小节中讨论。应该修改 PATH 环境变量,在其中包含 $INFORMIXDIR/bin。尽管这是可选的,但是非常方便。输入 oninit 比不得不输入 /usr/informix/bin/oninit(假设 IDS 产品安装在 /usr/informix)容易得多。ONCONFIG 环境变量设置为 IDS 实例使用的配置文件名。每个实例在任何时候只使用一个配置文件。可以使用另一个配置文件,但是这需要停止软件运行,把 ONCONFIG 环境变量改为另一个文件名,然后重新启动软件。注意:ONCONFIG 环境变量只设置为文件名,不 设置为文件的路径。示例: export ONCONFIG=onconfig.productiononconfig 文件必须 位于 $INFORMIXDIR/etc,所以不需要知道文件位置,只需知道这个目录中要使用的文件。onconfig 文件可以改名为您喜欢的任何名称;但是,标准命名约定是把它命名为 onconfig.something,把其中的 “something” 替换为有意义的单词,比如上面示例中的 “production”。如果愿意的话,也可以使用名为 onconfig 的文件。那么 ONCONFIG 环境变量就变成可选的。ONCONFIG 环境变量只对 DBA 的工作有用(例如启动和停止实例)。一般的 SQL 客户机活动不需要设置 ONCONFIG 环境变量。INFORMIXSQLHOSTS 环境变量设置为用来提供连接信息的文件的完整路径名和文件名。示例: export INFORMIXSQLHOSTS=/work/jbohm/mysqlhosts这个参数是可选的,如果不设置它,IDS 会在 $INFORMIXDIR/etc/sqlhosts 文件中寻找所需的信息。“包括哪些信息?” 后面的 “” 小节讨论这个问题。一定要注意,每个客户机连接(包括内部和外部的)都需要连接信息。因此,每个客户机都要从默认文件或 INFORMIXSQLHOSTS 环境变量指定的文件中获取连接信息。IDS 不只使用上面列出的五个环境变量。实际上,IDS 有 100 多个环境变量,用来控制软件的各个方面。本教程前面提到过两个 — DB_LOCALE 和 CLIENT_LOCALE,它们控制 GLS 设置。请记住,上面列出的五个环境变量是最重要的,其中两个是必需的。SQLHOSTSsqlhosts 文件用来提供连接信息。它对于设置数据库非常重要,因为连接实例的每个客户机(内部或外部)都要使用它。如果设置不正确,所有客户机都无法连接数据库和获取数据。 IDS 可以在客户机本地或远程位置(分布式环境)运行。因此,要想成功地连接 IDS,客户机需要知道 IDS 实例在哪里以及如何访问它。可以把 sqlhosts 文件看作 IDS 的电话簿。一般的电话簿是人的列表,包括姓名、居住的地方(地址)以及如何联系他们(电话号码);同样,sqlhosts 文件是所有可用 IDS 实例的列表,包括实例名称、它们所在的位置(计算机的主机名或 IP 地址)以及发送请求时使用的服务端口。sqlhosts 的服务端口部分指定 IDS 接收来自客户机的 SQL 语句的端口。就像 telnet 在默认情况下使用端口 23,http 使用端口 80,IDS 也要使用某个端口接收请求。IDS 使用的端口号不是标准的,而是由 DBA 在 sqlhosts 文件中配置。sqlhosts文件的一般形式有五列,如表 3 所示:表 3. SQLHOSTS 文件示例DBSERVERNAME 或 DBSERVERALIASESNETTYPEHostname 或 IP addressServiceName 或 port numberOptionsHR_prodonsoctcpbarney1543k=0,...前一节提到,每个 IDS 实例都有一个名称。这个名称在 sqlhosts 文件的第一列中。实例的位置在第三列 hostname 中。IDS 监听 SQL 请求的端口号在第四列中。可以在第二列 NETTYPE 中指定客户机是使用网络协议与 IDS 实例通信,还是使用本地协议。这直接与运行客户机的位置相关,而不是 IDS 实例的位置。如果客户机和服务器在同一台物理机器上运行,那么可以采用以下通信方式之一:共享内存(称为进程间通信,即 ipc)网络接口(套接字或 TLI)本地管道(命名的或无命名的)DRDA(Distributed Relational Database Architecture)但是,如果客户机和服务器在不同的机器上运行,那么必须依靠网络,所以可用的通信方式受到限制。在这种情况下,只能使用:网络接口(套接字或 TLI)DRDA管理员通过 NETTYPE 列指定在连接第一列中指定的实例时客户机应该使用哪种通信路由。第五列 Options 是可选的,可以用它配置各种选项。在上面的示例中,这一列的值包含 k=0。“k” 代表 keep-alive,“0” 表示在使用这个 DBSERVERNAME 连接服务器时禁用这个特性。keep-alive 特性让网络服务定期检查连接的接收端,从而确保它仍然存在。如果接收端没有及时地返回响应,网络服务就认为出问题了,因此中断连接并释放资源。keep-alive 特性在默认情况下是打开的,通常应该打开。表 4 给出另一个示例:表 4. SQLHOSTS 文件示例DBSERVERNAME 或 DBSERVERALIASESNETTYPEHostname 或 IP addressServiceName 或 port numberOptionsHR_prodonsoctcp192.168.12.2341543b=8192Acct_develonipcshmdinodummyvalue对于上面示例中的第一行,如果客户机的 INFORMIXSERVER 环境变量设置为 HR_prod,那么 onsoctcp 让客户机使用 TCP 协议的套接字实现进行网络通信。客户机把所有 SQL 请求发送到 IP 地址为 192.168.12.234 的机器的端口 1543。hostname 字段可以使用机器的 IP 地址,也可以使用主机名,只要能够通过适当的系统调用把主机名解析为 IP 地址即可。选项为 b=8192,这让客户机在与服务器通信时使用 8192 字节的缓冲区大小。默认的连接使用 4096 字节的缓冲区大小。如果客户机的 INFORMIXSERVER 环境变量设置为 Acct_devel,那么 onipcshm 告诉客户机服务器在本地,应该使用称为共享内存连接的特殊机制。IDS 定义和维护的这种特殊机制用于本地连接,能够使用一块全局的 Unix 共享内存连接实例。客户机连接这块共享内存,把它的 SQL 请求写到其中,从其中读取结果集。正如前面提到的,只有当客户机应用程序和 IDS 实例在同一台机器上运行时,才能使用这种机制。 ServiceName 列可以使用端口号或服务名。如果使用服务名,值必须能够根据 /etc/services(Unix/Linux/Mac)或 system32\drivers\etc\services(Windows)文件解析为有效的端口号。配置文件在配置时,常常同时打开 ONCONFIG 文件和 sqlhosts 文件,因为一些字段必须是匹配的。正如前面提到的,每个实例有一个名称,这个名称在 sqlhosts 文件的第一列中使用。实例怎么知道自己的名称呢?这是在 IDS 配置文件中设置的众多参数之一。在安装 IDS 时,在安装路径的 etc 子目录中提供一个名为 onconfig.std 的文件。这个文件应该作为创建实际配置文件的模板。把 nfig.std 文件复制为另一个文件(例如 onconfig.prod)。尽管文件名的 onconfig 部分不是必需的,但这是标准做法。复制文件之后,应该把 ONCONFIG 环境变量设置为指向这个文件。 注意:ONCONFIG 环境变量只是 文件名,不包含文件位置,因为配置文件必须放在 $INFORMIXDIR/etc(在 Windows 上是 %INFORMIXDIR%/etc)中。配置文件看起来有点吓人,其中有超过 180 个配置参数,加上注释长度超过 1100 行。但是,不必担心;利用大量注释,再运用一些经验,就可以理解配置文件。实际上,在超过 180 个配置参数中,只有九个是设置和运行 IDS 实例所需的。其他参数用于性能、可扩展性和特性支持。我们先看看这九个参数,然后讨论几个比较有意思的参数。运行实例所需的九个配置参数是:ROOTNAMEROOTPATHROOTOFFSETROOTSIZEMSGPATHCONSOLEDBSERVERNAMEDBSERVERALIASESSERVERNUM前四个参数处理磁盘空间。不必事前配置实例使用的所有磁盘空间。可以在需要时增加更多磁盘空间;但是,在最初需要有一定量的磁盘空间。配置文件为磁盘空间指定名称 (ROOTNAME)、位置 (ROOTPATH)、启始位置 (ROOTOFFSET) 和大小 (ROOTSIZE)。在第一次启动使用这个配置文件的 IDS 实例时,会对定义的空间进行格式化和初始化。因此,必须确保没有别的程序使用同一磁盘空间。ROOTPATH 可以指向现有的文件或原始设备。 第五个和第六个参数处理日志消息。因为 IDS 实例在后台运行,它需要在某个位置写信息性消息、警告和错误消息。MSGPATH 定义一个文件的路径和文件名,消息会写到这个文件中。如果使用控制台屏幕的话,可以使用 CONSOLE 向控制台屏幕发送特殊消息。因为消息会同时发送到这两个位置,标准做法是把 CONSOLE 发送到 /dev/null。本教程前面提到过第七个和第八个参数。每个 IDS 实例都有一个名称 (DBSERVERNAME);如果需要不同类型的连接,它可以有多个别名 (DBSERVERALIASES)。请这样考虑:假设您出生时起的名字是 Jeffrey,但是您可能还会有其他名字(别名),比如 Jeff。对于不认识您的人,可以使用 Jeffrey 这个名字;但是,您的朋友叫您 Jeff。您听到这两个名字时都会做出反应,但是根据听到的名字不同,反应方式不一样。IDS 也是如此 — 它只能有一个名称,但是可以有许多别名。在 SQLHOSTS 文件中,必须在单独的行上列出名称和每个别名。请记住,SQLHOSTS 文件根据使用的名称或别名(SQLHOSTS 文件中的第一列)告诉客户机如何连接实例。第九个参数 (SERVERNUM) 是一个零到 255 的整数,它对于在相同机器上运行的每个 IDS 实例是惟一。简单地说,它用于帮助生成 UNIX 共享内存所需的一个值。因为在相同机器上可以启动多个 IDS 实例,SERVERNUM 指定的值对于每个实例必须是不同的,从而帮助 IDS 计算出一个提供给 UNIX 的惟一数字。下面简要介绍其他几个有意思的参数:PHYSFILE,帮助确定物理日志的大小LOGFILES 和 LOGSIZE,帮助配置逻辑日志ADMIN_MODE_USERS,指定当实例处于 Administrative 模式时哪些用户可以连接;用户 informix 总是可以连接DBCREATE_PERMISSION,指定可以运行 CREATE DATABASE SQL 语句的用户BUFFERPOOL,配置缓冲区池的大小和调优参数尽管配置文件很大,但是把它分解成片段有助于您理解它。请记住,设置和运行 IDS 实例并不需要了解配置文件中的所有参数。注意:除了少数例外情况,只在启动时读取 onconfig 文件;对 onconfig 文件直接做的任何修改要到停止并重新启动实例之后才会生效。可以通过 onmode 命令动态地修改一些 onconfig 参数(本教程后面讨论这个命令)。配置反射注意:既然已经学习了配置的三个部分 — 环境变量、sqlhosts 文件和 onconfig 文件,我们来谈谈这三个部分如何相互配合,让客户机连接能够正常工作。下面是一个示例:环境变量: INFORMIXSERVER=HR_ProdSQLHOSTS 文件:表 5. SQLHOSTS 文件示例DBSERVERNAME 或 DBSERVERALIASESNETTYPEHostname 或 IP addressServiceName 或 port numberOptionsHR_prodonsoctcpbarney1543HR_Develonipcshmbarneydummyplaceholderonconfig 文件: DBSERVERNAME
HR_ProdDBSERVERALIASES
HR_Devel注意,这三个部分中都有相同的 “名称” (HR_Prod)。onconfig 文件告诉实例它的名称是什么。sqlhosts 文件指出在哪里可以找到使用这个名称的实例。客户机通过环境变量指定它要访问的实例。因此,当客户机开始运行时,它获取 INFORMIXSERVER 环境变量的值,在 sqlhosts 文件中搜索它,找到 SQL 请求应该发送到的目标位置,然后发送请求。在另一端,DBA 在 onconfig 文件中指定实例的名称,当实例启动时,它在 sqlhosts 文件中搜索自己,查明它应该对哪个服务名(端口号)监听请求。启动在结束本教程之前,我想确认您掌握了如何完成配置和运行 IDS。到目前为止完成的工作包括:为安装制定计划根据计划,安装需要的产品配置产品的实例,设置环境、sqlhosts 文件和 onconfig 文件确保 ROOTPATH 指向的磁盘空间存在现在该做最后的工作了。本节讨论如何启动和停止 IDS 实例。oninitIDS 实例仅仅是一组由数据库使用的 OS 资源,需要有办法在必要时分配和释放这些资源。使用的工具是 oninit 和 onmode 命令。尽管这些命令在 Windows 上也是有效的,但是因为 IDS 实例作为服务运行,更好的方法是启动和停止服务,或使用 starts 命令帮助启动服务。在讨论这个软件的启动之前,我们先考虑另外一个问题。IDS 实例可以处于几个状态。表 6 列出一些状态和它们的含义:表 6. IDS 状态状态说明Offline实例停止;软件没有在运行。Fast-Recovery实例正在启动,正在从停止状态进入一个一致的状态。Quiescent实例已经启动,但是用户不能连接;不能运行 SQL。Administrative实例已经启动;只有 Admin 用户可以连接并运行 SQL。也称为 single-user 模式。On-Line正常运行状态;所有用户都可以连接并运行 SQL。Shutting-down实例正在停止;用户不能连接;不能运行 SQL。oninit 命令只用于启动实例。请把实例想成汽车。在发动汽车时,需要转动车钥匙;如果汽车处于熄火之外的任何状态,转动车钥匙只能制造点噪音。IDS 实例也是如此。oninit 命令只能在实例处于停止(offline)状态时使用。如果实例处于任何其他状态,那么执行 oninit 命令完全没作用。这么做没有什么害处,但是也没有什么好处。oninit 命令提供一些选项,见表 7:表 7.
oninit 选项选项说明-i初始化磁盘空间。这有点像硬盘格式化,只应该在第一次启动实例时使用。-y对所有问题自动地回答 “yes”。-j以 Administrative 模式启动实例。也称为 single-user 模式。-v“详细” 模式;在启动时向 stdout 输出更多消息。-s以 quiescent 模式启动实例。还有一些用于特殊特性的选项。onmodeonmode 命令用于停止实例和其他许多工作。onmode 命令可以改变实例的状态、动态地修改 onconfig 文件中的一些参数、增加和释放内存、配置 B-tree 扫描器、配置 HDR 和 Mach11 特性、实施检查点等。本教程只讨论其中两个主题:改变实例的状态和动态地修改 onconfig 文件参数。在使用 onmode 命令改变实例的状态时,使用以下选项:表 8.
onmode 选项选项说明-m让实例从 single-user 或 quiescent 状态转到 on-line 状态。-s执行平稳 关机,让实例从 single-user 或 on-line 状态转到 quiescent 状态。-j只对非管理员用户执行立即 关机,让实例从 quiescent 或 on-line 状态转到 single-user 状态。-u执行立即 关机,让实例从 single-user 或 on-line 状态转到 quiescent 状态。-k执行立即 关机,让实例从任何其他状态转到 off-line 状态。-y对所有问题自动地回答 “yes”。正如上表中的斜体字 所示,IDS 有两种关机形式:平稳(graceful) 关机和立即 关机。 平稳关机不允许任何新连接,但是允许当前连接的用户继续操作,直到他们自己断开连接。当最后一个用户断开连接时,实例变成 onmode 命令选项指定的状态。立即关机停止数据库上的所有活动,立即让实例转为 onmode 命令选项指定的状态。 给出运行 oninit 和 onmode 命令的示例。在每个命令之间,运行 onstat - 显示实例的状态。消息 “Shared memory not initialized for INFORMIXSERVER 'xxx'” 意味着这个实例没有运行。图 1. 使用 oninit 和 onmode 命令onmode -wf/-wm正如前面提到的,onmode 命令也可以用于其他操作,包括动态地修改一些 onconfig 参数。这需要使用 onmode –wf 和 onmode –wm 命令。“f” 代表文件,“m” 代表内存。因此,onmode –wf 命令修改内存中的当前设置并修改 onconfig 文件中的值。onmode –wm 命令只修改内存中的当前设置。注意:从 IDS 11.50 开始,只能动态地修改一部分 onconfig 参数。语法是 onmode –wf &onconfig parameter&=&value& 或 onmode –wm
&onconfig parameter&=&value&。示例: onmode -wf AUTO_CKPTS=0onmode -wm RESIDENT=1如果试图修改 onmode –wf/wm 命令不支持的值,会看到下面的错误: “Configuration Parameter to be changed is not valid or not supported with this option.”结束语本教程讨论了许多主题,包括制定计划、安装、配置、启动和停止软件。尽管内容似乎很多,但是不必担心。实际上,经过一段时间的实践之后,您会觉得这些内容非常容易掌握。请记住,为数据库安装和设置制定计划在日后可以为您节省大量时间,避免大量修改工作。一定要根据预期的应用程序类型(了解预期的用户数量和他们从哪里连接)、数据类型和数据数量设计数据库模型。决定哪个 IDS 版本能够满足自己的需要之后,可以安装产品并开始配置实例。设置和运行实例并不需要了解可用的每个配置参数(实际上只需要 10 个左右)。一定要通过设置 onconfig 文件、sqlhosts 文件和客户机环境,正确地设置连接。一定要记住,访问数据库的所有程序都是客户机;DBA 也使用客户机连接实例。DBA 只是做的工作与一般 SQL 用户不一样,但是仍然使用客户机连接实例。完成最初的配置之后,可以使用 oninit 和 onmode 命令启动和停止实例。onmode 命令还可以用于动态地配置实例。您已经了解了开始使用 IDS 所需的一些基础知识, 中的下一个教程帮助您继续了解 Informix Dynamic Server。
相关主题 您可以参阅本文在 developerWorks 全球站点上的 。:寻找提高 Informix 技能所需的参考资料。:寻找关于 IDS 所有方面的参考资料,包括计划、安装、配置、管理、调优、监视等等。:了解获得技能或通过认证所需的课程。:通过在线手册或 IDS Information Center 了解更多 IDS 相关信息。:寻找使用 IDS 系列产品和特性所需的信息。:下载 Informix Dynamic Server Express Edition 的试用版,开始试用 IDS。:下载 Informix Dynamic Server Enterprise 或 Developer Edition 的免费试用版。:学习关于 Information Management 的更多知识。在这里可以找到技术文档、how-to 文章、培训、下载、产品信息等等。随时关注 developerWorks 和。
中在线试用这些来自 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 的应用程序开发工具和中间件产品。
添加或订阅评论,请先或。
有新评论时提醒我
static.content.url=http://www.ibm.com/developerworks/js/artrating/SITE_ID=10Zone=Information ManagementArticleID=427982ArticleTitle=Informix Dynamic Server 11.50 基础考试 555 认证准备,第 1 部分: IDS 计划和安装publish-date=

我要回帖

更多关于 恐龙游戏下载完毕 的文章

 

随机推荐