informix多实例
informix入门基础学习教程
informix入门基础学习教程Informix是一个关系型数据库管理系统(RDBMS),是IBM公司开发的一种数据库管理系统。
它具有高效、可靠、安全的特点,被广泛应用于企业级应用程序中。
本文将介绍Informix的基础知识和学习教程。
一、Informix的概述Informix是一种面向企业级应用的数据库管理系统,它提供了高性能、可扩展、可靠的数据存储和处理能力。
Informix支持多种操作系统平台,包括Windows、Linux、Unix等。
它的特点包括事务处理、并发控制、数据安全等。
二、安装和配置Informix2. 配置Informix服务器,设置数据库存储路径、内存大小等参数。
3.创建数据库实例,设置数据库名称、用户名和密码等信息。
三、Informix的基本概念1. 数据库:Informix中的数据库是一组相关表的集合,用于存储和管理数据。
2.表:表是数据库中的基本组成单元,用于存储数据。
每个表包含多个列,每个列定义了一种数据类型。
3.列:列是表中的一个字段,用于存储特定类型的数据。
4.行:行是表中的一条记录,包含了一组相关的数据。
5.索引:索引是对表中一列或多列的值进行排序的数据结构,用于提高查询性能。
6.视图:视图是一个虚拟的表,它是基于一个或多个表的查询结果。
视图可以简化复杂的查询操作。
四、基本操作1.创建数据库:使用CREATEDATABASE语句创建一个新的数据库。
2.创建表:使用CREATETABLE语句创建一个新的表,并定义表中的列和其数据类型。
3.插入数据:使用INSERTINTO语句将数据插入到表中。
4.查询数据:使用SELECT语句从表中检索数据。
5.更新数据:使用UPDATE语句修改表中的数据。
6.删除数据:使用DELETEFROM语句从表中删除数据。
7.创建索引:使用CREATEINDEX语句在表上创建索引,以提高查询性能。
8.创建视图:使用CREATEVIEW语句创建一个新的视图。
Informix数据库基本操作和常用配置
在控制台输入dbaccess,进入informix管理界面,界面的菜单就不一一解释了,选择database-create输入数据库名,以test为例,回车,dbspace选择test,回车,这一步完了用方向键移到exit选项上,退回到上级菜单,选择Create-new-database,回车即可。完成后一直exit退出管理界面,输入ontape -s -B test修改数据库test日志模式为bufferedlogging,这一步是必须的,否则数据库不支持事务,完成后即可以使用该数据库。Linux下数据库的创建和windows下的一样。简单说一下informix数据库中的四种日志模式:
1、DirtyRead(脏读)隔离
DirtyRead是最简单的隔离级,类同于无隔离级当进程在读数据据时并不对所读的数据上锁,也不管其他进程上没上锁或在做什么。
2、CommittedRead(提交后读)隔离
当进程请求CommittedRead隔离级时,OnLine保证进程得到的数据不是数据库未提交的数据即此时没有其他进程在对这些数据做修改。
U代表Unbufferd(无缓冲日志模式)
B代表bufferd(缓冲日志模式)
A代表Ansi(不常用,不能和其它日志模式转化)
还有一种是N(Nolog)(无日志模式)
各个日志模式之间用ontape -s -代码(U,B,N,A)来进行转换,但转换之前需要修改onconfig文件中的TapeDev和Ltapedev两个参数,指向/dev/null,以免在数据库模式转换的时候进行长时间的0级备份,这两个参数具体含义会在后面说到。
还有一种提高并行性的设置,使用Set Isolation to Committed Read Last Committed语句,为SET ISOLATION TO COMMITTED READ语句引入新的LAST COMMITTED关键字选项,可减少尝试读取表时发生锁定冲突的风险。采用该语句,当用户读取正在被其他用户修改的数据时不在处于锁等待状态,而是可以读取修改前最近落实版本的数据值。这样,由于不会产生锁等待,应用程序效率会显著提高,而且,由于是读取修改前最近落实版本的数据值,也不会产生读取幻象数据(phantom data)的问题,同时,也会大大减少产生死锁的现象。它只支持“行”级别锁定,它不支持以下这些表:正在被DataBlade模块(DataBlade模块是一种标准的软件模块,它可以被插入到数据库中,用以扩展其能力,使用户可以使用任何想要的数据来做任何想做的事情。用户可以融合和匹配来自第三方和Informix的DataBlade模块,或者编写自己的DataBlade模块来创建革新化的商务应用。每个DataBlade模块都包含某一特定领域数据管理的专业知识,可以简单地插入到数据库中,既可以单独使用,又可以与其他DataBlade模块一起使用。有了这种灵活性,用户就可以扩充其DBMS,来解决现在以及将来的特殊数据管理问题。)访问的表、列中具有集合数据类型的表、使用虚拟表界面创建的表、具有页面级别锁定的表、具有专用表级别锁定的表或无事务记录的数据库中的表。在跨服务器的分布式查询中,如果发出查询的会话的隔离级别具有有效的LAST COMMITTED隔离级别,但一个或多个参与操作的数据库不支持该LAST COMMITTED功能,那么整个事务符合发出该事务的会话的“已落实读”或“脏读”隔离级别,而不启用LAST COMMITTED选项。
Informix安装全攻略
Dump Shared Memory改为N
(7)新建一个Dbቤተ መጻሕፍቲ ባይዱpace
onmonitor->Dbspaces->Create
名称、大小自定,Mirror、Temp都为N,路径/u1/cookfile/infx01
输入/opt/Informix 安装路径
若在安装过程中出现:
etc/brand: error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory
o options
为指定连接提供额外的灵活性。
(5)编辑.profile文件
su - informix
vi .profile
添加内容如下:
INFORMIXDIR=/u1/informix;export INFORMIXDIR
INFORMIXSERVER=test_on;export INFORMIXSERVER
解决:
修改配置文件onconfig中的服务器标识号(默认为0),只要是唯一就可以了,不能过太。在多实例安装中常出现此问题。例如
SERVERNUM 49 # Unique id corresponding to a Dynamic Server instance
nettype最后三个字母按如下方式表示特定的IPC机制或通讯协议。
shm 共享内存通讯
str 数据流管道通讯
(最新)informix SQL汇总(包括效率分析)(精品文档)
informix SQL汇总每个数据库管理系统(DBMS)都有其自己的数据处理语言(DML),但所有DML都基于一种语言SQL语言——结构化查询语言(SQL),其发音为“sequel”或“S-Q-L”。
目前SQL的前身是E.F.Codd博士70年代发明的。
第一个实现是在76年,称为sequel。
而SQL首先被采用是在IBM的System R项目中。
86年10月由ANSI确定为正式的关系查询语言标准。
ISO在对其修改后在90年制定为国际工业标准。
无论进行何种数据库学习,SQL语言都是必学内容。
在我国数据库语言SQL标准(GB12991)中规定了两个数据库语言的语法与语义:模式定义语言(SQL-DDL),描述SQL数据库的结构与完整性的约束;数据操纵语言(SQL-DML),描述操作数据库的执行语句在本文章中涉及以上两个中的主要部分,(为叙述方便,以下对其统称为SQL),由于SQL 在嵌入C时表现略有不同,所以下面均以非嵌入时的SQL进行。
另外本文章也不是SQL的入门教材,阅读者应学习并实际用SQL操作过某种数据库。
如果你系统学习过数据库理论,又能熟练操作INFORMIX关系数据库,甚至从事过有关数据库程序的设计,还那么作者在此恭喜你了。
如果你尚未系统学习过数据库理论,并对INFORMIX数据库了解甚少,建议你先阅读有关的文档。
informix SQL汇总【主要SQL语句详解】CREATE DATABASE database_name [WITH LOG IN “pathname”]创建数据库。
database_name:数据库名称。
“pathname”:事务处理日志文件。
创建一database_name.dbs目录,存取权限由GRANT设定,无日志文件就不能使用BEGIN WORK等事务语句(可用START DATABASE语句来改变)。
可选定当前数据库的日志文件。
如:select dirpath form systables where tabtype = “L”;例:create databse customerdb with log in “/usr/john/log/customer.log”;DATABASE databse-name [EXCLUSIVE]选择数据库。
INFORMIX分片与表空间
INFORMIX分片与表空间最近遇到informix分片的问题,所以查资料了解了下这方面的东西。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------表tab1有c1,c2,c3这3个字段,同时数据库有dbspc1,dbspc2,dbspc3这3个数据库空间,想将tab1的字段c1,c2,c3分别存储到数据库空间dbspc1,dbspc2,dbspc3,informix怎样实现?想让表tab1的分段依据表tab2的c1字段的值,用informix该怎么做?tab1的分段依据本表的字段c3的值,如c3>0 and c3 <=100 in dbspc1, c3 >100 and c3<200 in dbspc2;现在有一条记录c3=50,按分段原则,该记录存储在dbspc1;现在将该记录的c3更新为150时,该记录的存储位置会变为dbspc2吗?一个表的数据由一个或多个segment,segment又由若干extent组成。
一行记录下的数据一般都是存放在一个extent里面,一个extent只能存放于一个chunk里面,又怎么会可能分布于不同表空间中?至于分片表,不同的行分布到不同的segment中,不同的行也就可以分布到不同的表空间上。
现在有一条记录c3=50,按分段原则,该记录存储在dbspc1;现在将该记录的c3更新为150时,该记录的存储位置会根据分段原则改变,变为dbspc2。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------“数据分片”允许在表一级对数据存储进行控制。
Informix数据库-长事务解析
Informix数据库“长事务”分析解析要理解什么是“长事务”,还要从“事务”本身及数据库的逻辑日志工作原理谈起。
所谓“事务”(transaction),是一个完整的不可分割的数据处理单元。
该单元中所有的数据处理操作要么全部处理成功,要么因其中任意一个操作的失败而完全回滚至整个事务处理前状态。
为了保证事务的完整性,Informix 数据库通过逻辑日志(logical log) 来记录所有的事务操作及其处理的数据。
逻辑日志的作用之一在于对数据所发生的变化进行记录以满足可能的回滚需要。
Informix 数据库服务器把逻辑日志分成多个相互分离的磁盘空间,每个磁盘空间称为一个逻辑日志文件。
由于逻辑日志文件的大小和个数由参数指定,整个逻辑日志的空间是相对固定的,并不能无限制的增长。
所以对于逻辑日志文件的使用是循环进行的。
Informix 数据库服务器按数字顺序依次填充空闲的(即状态为free 或available)的逻辑日志文件。
当第一个逻辑日志文件变满时,接着开始填充下一个逻辑日志文件,直到填充完最后一个逻辑日志文件。
这时,数据库服务器回到第一个逻辑日志文件,试图将其内容释放,以循环使用( 如图1)。
图1. 循环使用的逻辑日志释放已经使用过的逻辑日志,需要具备很多条件。
其中之一就是该日志不能包含仍然活动的( 即还没有提交) 的事务。
因为活动的事务随时存在需要回滚的可能性,如果在事务还没有提交时,包含该事务记录的日志由于被释放重用,原来的事务操作记录被覆盖,当事务由于各种原因需要回滚时,回滚所需的记录就会缺失,从而导致无法保证事务的原子性和完整性。
那么,当数据库服务器需要循环使用某个逻辑日志文件,而该文件又包含有还没有提交的事务时,数据库系统就将被挂起(hang), 处于一种停滞状态,任何对数据库的更新操作都无法继续,从而影响系统的正常处理工作( 如图2)。
图 2. 长事务导致系统挂起为了防止这种现象的发生,我们把占用整个逻辑日志空间在一定比例以上的事务,就叫做“长事务”。
informix数据库的操作和维护
INFORMIX数据库的常用管理命令约定✧命令行中,<>括起来的内容不是实际要键入的内容,而是要键入的内容的说明。
✧命令行中,[]括起来的内容表示是可选项。
✧命令行中,a | b表示a或b选其中之一,为消除二义性,有时也用{a | b }表示。
✧命令行尾的\表示由于排版的限制一行写不下换到下一行,实际输入时可以不换行。
✧/* */括起来的斜体字表示注释。
1.简介INFORMIX-OnLine Dynamic Server(以下简称OnLine)提供了一个字符窗口界面的集成管理工具onmonitor,通过它可以完成除了数据备份外的大部分常用管理任务。
同时,OnLine还提供了一整套命令行管理工具,常用的有以下这些:命令功能oninit 启动OnLineonmode 改变模式和共享内存onstat 通过共享内存结构监视OnLine的操作状态oncheck 检查、修复、显示OnLine的磁盘结构ondblog 改变database的log方式onparams 修改逻辑和物理日志的配置参数onspaces 修改blobspace和dbspace的配置ontape 数据库备份和恢复工具onarchive 比ontape功能更强的备份和恢复工具dbexport 将整个database备份成文本文件格式dbimport 用文本文件格式的database备份重建databasedbschema 显示数据库、表的结构dbaccess 字符窗口界面的交互式SQL命令执行环境严格来说,最后四个命令不属于管理工具,但是因为在进行数据库管理时经常用到,所以也在此列出。
2.权限在Informix中,用户root和informix拥有最高的权限,可以执行所有的管理命令,可以查看所有database中的数据。
其次是属于informix组的用户,它们可以执行数据库server的启动和关闭等重要的管理命令。
其它不在informix组中的用户权限最低,只能执行一般的管理命令。
informix基本操作详
informix基本操作详oninit应用程序用于改变系统的运营模式。
informix数据库有六种模式:1:off_line:不运行状态2:Quiescent:静模式。
在此模式下用户不能连接到数据库,但是可用onstat 等命令查询数据库信息。
主要用于对系统进行底层维护操作。
3:on_line:运行状态4:read-only:只读模式5:recovery:恢复模式。
是一种临时状态,存在于从离线模式到静模式之间。
6:shutdown:关闭模式。
是一种临时状态,存在于从在线模式到静模式或者离线模式之间。
oninit -ipsvy-i :初始化数据库,包括磁盘空间,该参数只在安装完成之后做一次。
只会保留onconfig文件配置的初始化信息,其它全部消失。
-p:当数据库不正常宕机后,数据库中会保留临时表,这些表会占据一定的磁盘空间,一般在重启数据库的时候,数据库会自动删除临时表数据的,如果加上这个参数,则会继续保留这些数据。
-s:数据库启动至静模式,做维护工作,不受其它用户的干扰-v:正常启动数据库,并显示启动的过程信息-y:关闭交互式提示,自动选择yes。
-j:启动informix进入单用户状态。
(informix 11 之后版本)onmod e 应用程序提供以下功能:1:改变online的工作模式2:强制生成检查点3:立即改变该会话过程中online共享内存的驻留空间4:转换逻辑日志文件5:撤销online的数据库服务进程6:撤销online的事物只有注册为root或informix的用户才能执行onmode参数:-a :increase shared memory segment size。
增加共享内存大小-BC [1|2] :change server large chunk mode。
支持大chunk 模式-c [block|unblock] :do checkpoint Block or Unblock。
(效率管理)informix SQL汇总(包括效率分析)
informix SQL汇总每个数据库管理系统(DBMS)都有其自己的数据处理语言(DML),但所有DML都基于一种语言SQL语言——结构化查询语言(SQL),其发音为“sequel”或“S-Q-L”。
目前SQL的前身是E.F.Codd博士70年代发明的。
第一个实现是在76年,称为sequel。
而SQL首先被采用是在IBM的System R项目中。
86年10月由ANSI确定为正式的关系查询语言标准。
ISO在对其修改后在90年制定为国际工业标准。
无论进行何种数据库学习,SQL语言都是必学内容。
在我国数据库语言SQL标准(GB12991)中规定了两个数据库语言的语法与语义:模式定义语言(SQL-DDL),描述SQL数据库的结构与完整性的约束;数据操纵语言(SQL-DML),描述操作数据库的执行语句在本文章中涉及以上两个中的主要部分,(为叙述方便,以下对其统称为SQL),由于SQL 在嵌入C时表现略有不同,所以下面均以非嵌入时的SQL进行。
另外本文章也不是SQL的入门教材,阅读者应学习并实际用SQL操作过某种数据库。
如果你系统学习过数据库理论,又能熟练操作INFORMIX关系数据库,甚至从事过有关数据库程序的设计,还那么作者在此恭喜你了。
如果你尚未系统学习过数据库理论,并对INFORMIX数据库了解甚少,建议你先阅读有关的文档。
informix SQL汇总【主要SQL语句详解】CREATE DATABASE database_name [WITH LOG IN “pathname”]创建数据库。
database_name:数据库名称。
“pathname”:事务处理日志文件。
创建一database_name.dbs目录,存取权限由GRANT设定,无日志文件就不能使用BEGIN WORK等事务语句(可用START DATABASE语句来改变)。
可选定当前数据库的日志文件。
如:select dirpath form systables where tabtype = “L”;例:create databse customerdb with log in “/usr/john/log/customer.log”;DATABASE databse-name [EXCLUSIVE]选择数据库。
Informix11.5 for Windows实例创建
Informix for Windows实例创建一、创建实例系统当前用户确保已切换到Informix用户,通过使用“Server Instance Manager”来创建实例。
1.按照“开始”->“程序”->“IBM Informix Dynamic Server 11.50”下运行“Server Instance Manager”程序,得到如下界面。
选择“Typical”单击“create new”按钮创建一个新的实例(这里有一个默认的实例ol_uds_1150_1)。
2.出现如下图所示界面,修改Server Number数为一个0~255内独一无二的值,即如果曾经创建一个实例且该实例使用1为Server Number,则其他实例便不能再使用1了。
这里使用1作为Server Number。
设定完后点击“下一步”按钮。
3.出现如下图所示界面,修改Dynamic Server Name为一个实例的名称,这里使用默认名称。
设定完成后点击“下一步”按钮4.出现如下图所示界面,修改服务名称和端口号为独一无二的值。
并单击“下一步”按钮。
这里需要注意的是对于所设的端口号需要特别记住,因为许多用于数据库连接的客户端软件都需要使用该端口号。
也可以通过查找C:\Windows\System32\drivers\etc\services文件来找到每个实例所对应的端口。
ServiceName可命名为:InformixService。
5.出现如下图所示界面,在密码栏里输入Informix用户的密码并单击“下一步”按钮。
6.出现如下图所示界面,直接单击“完成”按钮。
7.经过一系列配置以后,系统将会显示如下图所示界面,再点击“yes”来初始化实例,并等待初始化完成结束。
二、数据库创建(1)在开始->程序->IBM Informix Dynamic Server 11.50,找到刚刚创建成功的实例图标,点击该图标。
informix数据库操作实例
查看数据库实例名:dbaccess,然后选择database,在选择select,数据库名@符号后面的即为数据库实例名新建数据库:1、使用dbaccess进入informix交互环境2、选择Database,回车3、选择Create,回车4、输入数据库名:uniacctr,回车5、选择Dbspace(表空间),回车6、选择跟局数据数据库bureaudb一样的表空间,回车7、选择Log ,回车8、选择Log,回车(选择日志模式,其他不支持事务)9、选择Exit,回车10、选择Create-new-database ,回车。
此时数据库应该已经建立。
查看某个数据库的表空间:1、使用dbaccess进入informix交互环境2、选择Database,回车3、选择Select,回车4、选择局数据数据库bureaudb,回车5、选择Info,回车6、选择dBSpace,回车图中rootdbs位置显示的即是表空间关键字: dbschema工具:1)导出数据库中所有的表结构到文件db.sql$>dbschema -d your_database -t all db.sql2)导出数据库中所有的存储过程到文件db.sql$>dbschema -d your_database -f all db.sql3)导出数据库中的所有对象(包含表,存储过程,触发器。
)到文件db.sql $>dbschema -d your_database db.sql4)导出数据库中一个表的结构到文件db.sql$>dbschema -d your_database_name -t your_table_name db.sql5)导出一个存储过程定义到文件db.sql$>dbschema -d your_database_name -f your_procedure_name db.sql6)如果导出更多的表的信息(EXTENT...)$>dbschema -d your_database_name -ss db.sql7)导出数据库中对用户或角色的授权信息$>dbschema -d your_database_name -p all$>dbschema -d your_database_name -r all8)导出数据库中的同义词$>dbschema -d your_database_name -s all导出数据库表结构:dbschema -d database > database.sqldbschema -t tablename >tablename.sql-d表示导出整个数据库的表结构,-t表示导出某一个数据表的表结构。
Informix+Dynamic+Server+11.50+的+HDR+环境搭建最佳实践
Informix Dynamic Server 11.50 的HDR 环境搭建最佳实践作者:袁红涛, 软件工程师, IBM简介: Informix Dynamic Server(IDS)的 HDR 技术就是一种成熟的内置在 IDS 数据库引擎中的容灾恢复技术,它通过两个远程结点的实时双机备份,把逻辑日志从主服务器中传输到辅助服务器,使得两台服务器的状态时刻保持一致,从而提供快速的灾难恢复能力。
本文以一个 HDR 配置实例为基础,详细描述了在 IDS 11.5 环境下搭建 HDR 高可用性环境的步骤、技术细节以及需要注意的问题,相信一定会对读者有所帮助。
发布日期: 2010 年 3 月 04 日级别:初级平均分(共6 个评分)概述随着 IDS 在电信、银行、保险等各行业应用的发展,IDS 数据库灾备系统尤其是异地灾备系统的建设显得越发重要。
大家知道,HDR 技术是非常方便、高效、实用的异地容灾备份系统解决方案。
因而,我们这里将针对 IDS 的使用者,详细介绍 IDS 11.5 中的 HDR 技术,从搭建 HDR 实例讲起,包括一些常见的服务器状态转移场景、典型的 HDR 灾难恢复以及 11.5 相比 9.4 的 HDR 新功能等。
本文包含了我们对 IDS 11.5 HDR 相关官方文档的解读,也是我们搭建实际 HDR 环境最佳实践的总结报告。
回页首IDS 11.5 中 HDR 的完整功能介绍在 11.5 中 HDR 的功能已经相当完善,这里做一个简要介绍:∙灾难发生时应用程序可以在等待一个超时时间以后,自动平滑过渡到可用的辅助服务器,不需要人工干预,大大提高了应用程序的可用性,避免的更多的经济损失。
∙辅助服务器不仅可进行读操作还可以完成写操作(update/delete/insert),大大提高了硬件的利用率。
∙提供了新的连接管理器(Connection Manager) 组件,用于提供服务器集群中状态的自动转换协调、静态的负载平衡、动态的负载平衡。
informix表空间相关资料整理
onspaces -a workdbs -p /dev/rdsk/0s2 -o 100000 -s 100000
Informix入门之---空间管理
说起数据库就不能不说数据库的存储,说存储就不能不说数据库对空间的管理。这里我们主要谈的是IDS对空间的管理的相关问题。
onspaces -c -d temp01 -t -p {informixdir}/dbs/temp01 -o 0 -s 500000 【临时表空间,一般为4个,大小为500M,注意到创建临时表空间命令中多了 -t 】
onspaces -c -d temp02 -t -p {informixdir}/dbs/temp02 -o 0 -s 500000
chmod 660 phydbs logdbs appdbs temp01 temp02 temp03 temp04
执行创建表空间的命令:
onspaces -c -d dbs -p {informixdir}/dbs/phydbs -o 0 -s 500000 【一般为300M。此处创建500M】
informix表空间规划命令整理
初始化informix数据库: oninit -ivy
此时,数据库是空的,什么都没。
我们需要规划数据库空间,创建相应的物理表空间,逻辑表空间,临时表空间。
首先在dbs目录下创建相应的文件并给予权限:
touch phydbs logdbs appdbs temp01 temp02 temp03 temp04
dbspace?:是一个逻辑上的概念,实际上是由一个或多个chunk组合而成,因 此,每个dbspace?至少包含一个chunk来存储数据。?
informix 聚合函数
informix 聚合函数Informix聚合函数Informix是一种关系型数据库管理系统(RDBMS),它提供了丰富的聚合函数来处理数据库中的数据。
聚合函数用于计算或汇总一组值的结果。
在本文中,我们将详细介绍Informix中的聚合函数及其用法。
聚合函数用于合并和分析数据,以便生成单个结果。
这些函数可以用于从数据库中检索出特定数据或计算数据的总和、平均值、最大值、最小值等。
Informix提供了多种聚合函数,包括SUM、AVG、COUNT、MIN和MAX等。
1. SUM函数SUM函数用于计算一组数值的总和。
它可以应用于整数、浮点数和数值列。
以下是SUM函数的基本语法:sqlSELECT SUM(column_name)FROM table_name;例如,我们有一张名为"orders"的订单表,其中有一个"amount"列,我们想要计算所有订单金额的总和:sqlSELECT SUM(amount)FROM orders;2. AVG函数AVG函数用于计算一组数值的平均值。
它可以应用于整数、浮点数和数值列。
以下是AVG函数的基本语法:sqlSELECT AVG(column_name)FROM table_name;例如,我们有一个名为"products"的产品表,其中有一个"price"列,我们想要计算所有产品价格的平均值:sqlSELECT AVG(price)FROM products;3. COUNT函数COUNT函数用于计算一组值的数量。
它可以应用于任何数据类型。
以下是COUNT函数的基本语法:sqlSELECT COUNT(column_name)FROM table_name;例如,我们有一张名为"customers"的客户表,我们想要计算总共有多少个客户:sqlSELECT COUNT(*)FROM customers;4. MIN函数MIN函数用于查找一组值中的最小值。
informix调用存储过程返回多列的方法
informix调用存储过程返回多列的方法在Informix数据库中,要调用存储过程并返回多列数据,可以使用以下方法:方法一:使用SELECT语句在存储过程中返回结果集。
您可以在存储过程中定义一个或多个游标来返回多列数据。
这样,您可以在存储过程中执行SELECT语句,将结果放入游标中,然后在调用存储过程的代码中检索并处理这些结果。
以下是一个示例:```sqlCREATE PROCEDURE myProcedure()RETURNING INT, VARCHAR(50);DEFINE p_id INT;DEFINE p_name VARCHAR(50);-- 执行SELECT语句并将结果存入游标DECLARE cur CURSOR FOR SELECT id, name FROM myTable;OPEN cur;-- 使用FETCH语句获取游标中的数据FETCH cur INTO p_id, p_name;WHILE SQLCODE = 0 DO-- 在此处处理获取到的数据-- ...-- 获取下一行数据FETCH cur INTO p_id, p_name;END WHILE;-- 关闭游标CLOSE cur;END PROCEDURE;```您可以在调用存储过程时使用"INTO"子句来捕获游标返回的值,如下所示:```sqlDEFINE p_id INT;DEFINE p_name VARCHAR(50);-- 调用存储过程并将结果存入变量EXECUTE PROCEDURE myProcedure() INTO p_id, p_name;-- 在此处可以使用变量p_id和p_name进行处理-- ...```方法二:使用OUT参数返回多列数据。
您可以在存储过程中定义一个或多个OUT参数,并在存储过程内部对这些参数进行赋值。
然后在调用存储过程的代码中,可以获取这些参数的值并进行处理。
informix的数据类型和举例
informix的数据类型和举例一. 内建的数据类型1. 数字相关1)INTEGER整型,范围为:-2147483647-21474836482)SMALLINT短整型,-32767-327673)BIGINT4)SERIAL、SERIAL8、BIGSERIAL这三种类型都会自动产生数据,并且用户可选择是否提供初始值.不同之处在于:SERIAL类型的数据占用4个字节的存储空间;SERIAL8类型的数据一般情况下占用10个字节的存储空间(在Extended Parallel Serv er中占用8个字节的存储空间);BIGSERIAL类型的数据占用8个字节的存储空间。
eg1. 创建一个表route_rule,它的主键rule_id是属于SERIAL自增类型的,参考建表语句如下:create table route_rule(rule_id serial not null,rule varchar(128) not null,action varchar(32) not null,route_arg varchar(32),primary key (rule_id) constraint PK_ROUTE_RULE);eg2. 如何查询serial型字段的当前值?5)DECIMAL(p,s)其中p是整个数据的有效位,s是小数点后位数,1<p<32,s可以为0。
不指定时默认为1 6位。
eg1:在如下实例中,创建了human_task_exp表,其中probability为双精度类型:create table human_task_exp(serviceid VARCHAR(30) not null,seconds INTEGER default0not null,probability DECIMAL(16,14) default0))6)FLOAT、SMALLFLOAT这两种类型的数据使用于不要求精度而要求量值的场合,如科学计算,FLOAT双精度数,通常占8个字节,有16位十进制有效位,而smallint为单精度数,占4字节,8位十进制有效位。
INFORMIX多用户关系数据库应用实例
INFORMIX多用户关系数据库应用实例
王敬农;郭磊
【期刊名称】《计算机时代》
【年(卷),期】1991(000)001
【总页数】5页(P5-8,26)
【作者】王敬农;郭磊
【作者单位】不详;不详
【正文语种】中文
【中图分类】TP311.13
【相关文献】
1.在INFORMIX.4GL关系数据库语言环境下实现表格的灵活打印 [J], 王余星
2.应用c语言管理informix关系数据库的基本方法 [J], 刘昌斌
3.单用户foxBASE数据库与XENIX系统多用户INFORMIX—SQL数据库的相互转换 [J], 刘昌斌
4.快刀斩乱麻——就Informix公司的数据刀片技术谈建立灵活的关系数据库 [J], 石岩
RMIX多用户环境下修改数据库数据的策略 [J], 胡旋
因版权原因,仅展示原文概要,查看原文内容请购买。
Informix数据仓库解决方案数据库-电脑资料
Informix数据仓库解决方案数据库-电脑资料(2)确定系统体系结构从实施的角度来看,设计数据仓库系统体系结构有多种方式:构造部门级的数据集市DataMart直接构造企业级的数据仓库DataWarehouse系统先建立部门级数据集市,然后发展成企业级数据仓库系统(3)确定数据源列出向数据仓库提供数据的数据源清单。
源数据的复杂性、规模、完整性对建立数据仓库的影响比其它因素要大。
要格外注意哪些数据源的数据类型、粒度和内容是兼容的。
(4)容量规划除了体系结构之外,硬件和软件资源对数据仓库也至关重要。
作为需求定义的一部分,估计数据仓库将要存储的数据量以及将对数据进行的处理很重要。
(5)技术评价在选择软件和硬件平台时,最好听取专家的建议,尤其是对与您相似的环境有经验的专家。
InformixDecisionFrontier数据仓库实现套件,为用户提供了快速、集成、完整的数据仓库实现工具。
2.逻辑模型设计逻辑模型设计主要是指数据仓库数据的逻辑表现形式。
从最终应用的功能和性能的角度来看,数据仓库的数据模型也许是整个项目最重要的方面。
为数据仓库和数据集市定义数据模型是一项复杂的工作,需要领域专家的参与。
3.物理模型设计在进行物理模型设计时,主要是将数据仓库的逻辑模型转换为在数据库中的物理表结构。
在物理模型设计时,可以采用ERWin等辅助设计工具。
Informix采用ROLAP方式,数据仓库数据的存储主要采用InformixIDS(InformixDynamicServer)数据库,电脑资料4.数据抽取、清洗、集成、装载等数据抽取是数据仓库建立中的一个非常重要的步骤。
它负责将分布在用户业务系统中的数据进行抽取、清洗、集成。
(1)定义数据载入和维护策略(2)数据抽取/清洗/转换/装载Informix提供了一系列工具访问存储在异构数据库中的业务系统数据。
Informix还提供了数据复制产品,这样,系统会通过同步或异步方式自动将符合规则的数据定时进行传递,保证数据的完整性、一致性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SERVERNUM 0 # Unique id corresponding to a OnLine instance
多个实例的SERVERNUM必须是不同的。
除此以外,onconfig文件中还有很多参数要针对第二实例修改的
========================================================
DBSERVERALIASES scp_onlineinst1_net # List of alternate dbservernames(修改)
NETTYPE # Configure poll thread(s) for nettype
第三个实例,你就看着办
2.在/etc/inet/services中添加端口,要不同于第一个实例的端口
如:sqlexec2 9876#instance2's protocol port
3.在第二个实例的onconfig文件中,指定Root Dbspace的路径;
ROOTPATH /diskarray/informix/linkdata/sys/rootdbs_chk_2g_01
ROOTNAME rootdbs # Root dbspace name
ROOTPATH /dev/rinst1rootdbs # Path for device containing root dbspace(实例要有自己的数据空间)
ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
CONSOLE /dev/console # System console message path
ALARMPROGRAM /opt/informix/etc/log_full.sh # Alarm program path
SYSALARMPROGRAM /opt/informix/etc/evidence.sh # System Alarm program path
setenv PATH ${INFORMIXDIR}/bin:${PATH}
setenv INFORMIXSERVER scp_online1_net #指定一个不同的INFORMIXSERVER
setenv ONCONFIG onconfig.inst1 #指定inst1自己的onconfig文件,在/opt/informix/etc下制作onconfig.inst1
TBLSPACE_STATS 1
# System Configuration
SERVERNUM 4 # Unique id corresponding to a Dynamic Server instance(使用一个没有用过的servernum)
DBSERVERNAME scp_onlineinst1 # Name of default database server(修改)
去该路径下创建Root Dbspace的chunk,
cd /diskarray/informix/linkdata/sys
touch rootdbs_chk_2g_01
chmod 660 *
初始化Informix
4.在实例2的环境变量文件中添加
如:setenv INFORMIXSQLHOSTS $INFORMMIXDIR/etc/sqlhosts2
如何运行多套Informix实例
=====================================
1.创建第二个实例的环境变量文件;
2.创建第二个实例的服务端口;
3.创建第二个实例的onconfig文件;
4.创建第二个实例的sqlhost文件;
使用第二个实例时,先执行第二个实例的环境变量文件,再操作
3.关于“创建第二个实例的onconfig文件; ”
数据库没有初始化前,只要为Root dbspace创建文件或符号连接(使用裸设备时),改权限,再在onconfig中修改ROOTPATH ,最后执行oninit -i,IDS就启动了;
onspaces是在IDS启动之后才使用的
3.修改onconfig文件时:
1.新建用户,这个用户必须属于informix组
useradd -g informix -d /opt/inst1 -s /usr/bin/csh -m inst1
2.在infoinst1的自家目录/opt/inst1下创建.cshrc文件
vi .cshrc
setenv INFORMIXDIR /opt/informix
5.修改/etc/services文件,增加以下内容
sqlexecinst1 9004/tcp
sqlexecinst1_net 9005/tcp
6.启动新实例
在inst1用户下
oninit -ivy
7.分配数据空间,移出日志空间,与做一套时一样,不再啰嗦
DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env.
RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)
mklv -y'inst1tempdbs' -t'raw' datavg 8
3.修改/opt/informix/etc/onconfig.inst1文件
把原来informix实例的onconfig文件复制过来,主要做以下几处修改
# Root Dbspace Configuration
再创建$INFORMMIXDIR/etc/sqlhosts2,配置第二个实例的sqlhosts2
-------------------------------------------------------
1.如果你不使用第二个实例的环境变量文件,你可以认为在服务器上不存在第二个实例;
如果要完整删除第二个实例的文件,删除前面提及的1、3、4和第二个实例用到的chunk文件就好了;
3.创建裸设备
mklv -y'inst1rootdbs' -t'raw' datavg 2
mklv -y'inst1logdbs' -t'raw' datavg 8
mklv -y'inst1phydbs' -t'raw' datavg 8
mklv -y'inst1workdbs' -t'raw' datavg 16
ROOTSIZE 250000 # Size of root dbspace (Kbytes)
# Diagnostics
MSGPATH /opt/informix/onlineinst1.log # System message log file path(修改日志文件路径,使不与原先的冲突)
4.修改/opt/informix/etc/sqlhosts文件,增加以下内容
scp_onlineinst1 onipcshm aix2 sqlexecinst1
scp_onlineinst1_net onsoctcp aix2 sqlexecinst1_net