informix?informix是什么数据库
本篇文章给大家谈谈informix,以及informix是什么数据库对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
Informix是什么意思,Informix是什么意思
关于Informix的意思
美国InfomixSoftware公司研制的关系型数据库管理系统。Informix有Informix-SE和Informix-Online两种版本。Informix-SE适用于UNIX和WindowsNT平台,是为中小规模的应用而设计的;Informix-Online在UNIX操作系统下运行,可以提供多线程服务器,支持对称多处理器,适用于大型应用。 Informix可以提供面向屏幕的数据输入询问及面向设计的询问语言报告生成器。数据定义包括定义关系、撤销关系、定义索引和重新定义索引等。Informix不仅可以建立数据库,还可以方便地重构数据库,系统的保护措施十分健全,不仅能使数据得到保护而不被权限外的用户存取,且能重新建立丢失了的文件及恢复被破坏了的数据。其文件的大小不受磁盘空间的限制,域的大小和记录的长度均可达2K。采用加下标顺序访问法,Informix与COBOL软件兼容,并支持C语言程序。 Informix可移植性强、兼容性好,在很多微型计算机和小型机上得到应用,尤其适用于中小型企业的人事、仓储及财务管理。
Informix常用命令
常用命令oninit
将系统从off-line模式变为on-line模式oninit-iy
(初始化数据库,删除所有dbspace和chunk)oninit-s(
脱机-->静态)onmode-ky offlineonmode-s graceful shutdown-->quiescent(联机到静态,让用户处理完成)
onmode-u
immediate shutdown-->quiescent(联机到静态,所有用户立即终止)
onmode-m
quiescent--->onlineonmode-z sid删除某session onmode-l将当前正在使用的逻辑日志下移onmode-c
强制执行检查点操作即onmonitor->force ckpt onstat-查看服务器状态onstat-d查看dbspace和chunk情况onstat-l
查看逻辑日志onstat-F查看写入磁盘的页刷新和类型情况,从共享内存缓冲区向磁盘写入页面有三种方式(fg:前台写 LRU:队列写 chunk:块写)onstat-R
打印LRU队列onstat-p显示系统的基本I/O与性能配置文件onstat-c查看onconfig文件onstat-m查看消息日志onstat-f
查看受DATASKIP影响的dbspaceonstat-x查看事务onstat-k
显示所有活动的锁onstat-g sub_option运行多线索选项
onstat-g ses/sql onstat-r<value>每隔<value>秒后重复选项 onstat-g act
显示系统中所有的活动线索 onstat-g ath-r 2每隔两秒显示系统中所有的活动的线索 onstat-i交互方式>sql>sql sidipcs
查看共享内存情况ipcrm
删除某个共享内存ipcrm-m id ipcrm-s id
Ontape命令:
1)零级(一级或二级)备份$>ontape-s$>ontape-s-L 0$>ontape-s-L 1$>ontape-s-L
2自动备份逻辑日志文件$>ontape-a
3)连续逻辑日志备份(日志文件写满一个,online系统自动备份一个,你可以插盘磁带到磁带机上,让IDS自动备份。
要占用磁带机)$>ontape-c
4)备份恢复(对应零级备份或一级备份或二级备份)$>ontape-r(详细过程见ontape恢复文挡)
5)备份恢复几个DBSPACE(一定要存在逻辑日志备份,否则物理恢复完后,还是不能用)$>ontape-r-D dbs1 dbs2。。。
6)配置HDR时使用的物理恢复$>ontape-p
7)修改数据库日志模式$>ontape-s-B db_name修改为buffer_log即缓冲日志模式$>ontape-s-U db_name
修改为unbuffer_log即非缓冲日志模式$>ontape-s-N db_name
修改为无日志模式数据库不含日志,即不支持事务,对数据库的任何修改都不会记录到逻辑日志中去$>ontape-s-A db_name
修改为ansi logging模式,从个模式无法改到其它模式,因此一般不要用该项。oncheck命令 oncheck-pe
extendoncheck-ceoncheck-cr reserved pagesoncheck-cd TBLspace data rows including bitmaponcheck-ci
table indexes databases对逻辑日志的操作:以informix用户登录,$ onmode-uy(由Online切换到Quiescent状态,所有用户立即中止)
onmode-m(切换到Online)$ onparams-a-d logdbs-s 100000其中logdbs为dbspaces名,-s 100000表示增加了100M空间。
再连续执行4遍上述命令,这样新的逻辑日志空间总共为500M,可以用 onstat-l查看逻辑日志情况,接下来就要删除前面3个旧逻辑日志,
删除前做一个0级备份# ontape-s-L 0执行该命令做0级备份,建议:如果允许可以每天在业务系统结束工作
后做一次0级备份,做完备份后管理好备份磁带,做好标记。$ onparams-d-l logid
logid为逻辑日志id号,可以用onstat-l查看,然后就可根据id号删除3个旧逻辑日志。
将当前正在使用的逻辑日志下移$onmode-l三、DBSPACE及数据库导入导出1.增加一个新的dbspace:(datadbs,15M,偏移为0)
onspaces-c-d datadbs-p/home/informix/datadbs-o 0-s 150002.
在datadbs这一个dbspace中增加一个chunk:(datadbs_chunk1)onspaces-a datadbs-p/home/informix/datadbs_chunk1-o 0-s 150003.将上述chunk删除onspaces-d datadbs-p/home/informix/datadbs_chunk1-o 0 4.删除dbspace(仅当要删除的dbspace空间没有数据时才可删除)onspace-d datadbs导出数据库:用dbexport工具将数据卸成文本,并装载到其它服务器上。(1)卸载文本的步骤如下:用informix用户注册 dbexport cleardb-o WORKDIR-ss当系统提示dbexport completed!数据卸载完毕。其中:-ss确保数据库的建库信息或建表信息被保留如日志模式、初始extent尺寸、lock mode、表所在dbspace等。-o指定存放卸载数据的目录数据存放在目录cleardb.exp目录下,其中包含cleardb.sql和形如*.unl的文件,
提示信息存放在dbexport.out文件中。
(2)装载文本的步骤如下:用informix用户注册确保数据库处于On_Line状态,服务器上没有同名数据库。
dbimport cleardb-i WORKDIR当系统dbimport completed!提示数据装载完毕。其中:-i
指定从何处装载。如何在不破坏库本身信息情况下(如行级锁等)将数据库卸载到磁带设备,并装载在其它服务器上?1)
p;卸载的步骤如下:用DBA用户注册将存放数据的磁带插入磁带机,确认磁带及磁带机完好可用。
dbexport cleardb-t/dev/rmt/0m-b 512k-s 2048000k-ss当系统提示dbexport completed!数据卸载完毕。其中:-ss确保数据库
的建库信息或建表信息被保留如日志模式,初始extent尺寸,lockmode,表所在dbspace-t磁带设备/dev/rmt/0m-s
磁带容量2G-b块大小512KB提示信息存放在dbexport.out文件中2)装载的步骤如下:
用DBA用户注册将存放卸载数据的磁带放在磁带机上,确认磁带机正常,确认数据库系统处于On_Line状态,
服务器上没有同名数据库。
$ dbimport cleardb-t/dev/rmt/0m-b 512k-s 2048000k当系统dbimport completed提示数据装载完毕!提示信息存放在dbimport.out文件中。
重建表格:1) dbschema-d dbname-t tabname-ss tabname.sql/*将表格结构放进tabname.sql*/编辑此文件并在create table
语句末尾增加新的区域长度暂时将生成表格索引的tabname.sql部分标为说明语句,即在索引句前后加上“{}”,
例如:{ create index xl on customer(last_name); create index x2 on customer(cust_nbr);}
最好在后面生成索引,因为这样表格能快速装入,索引能在连续磁盘空间生成,使其更加有效。
2)锁定表格lock table tabname in exclusive mode;
3)用SQL UNLOAD将表格卸载到磁盘或磁带中unload to file_or_tape_path select* from tabnameunload to"/usr/data/unload/customer.unl" select* from customer;
检查表中的行数(用SQL中的Table/Info命令),验证卸载是否成功。比较这个数与装入完成后SQL显示的消息。用此验证file_or_tape_path中的行数:wc-l file_or_tape_path
4)删除表格
5)用dbacess生产表格并运行tabname.sql。这时不要生成索引
6)用SQL的LOAD FROM或用 dbload重新装入表格load from file_or_tape_path insert into tabname;load form"/usr/data/unload/customer.unl" insert into customer;
对于日志数据库,上面的装入语句可能产生长事务或“to many lock”错误。
这时建议用dbload之类的实用程序将数据插入表中。dbload的-n选项强制在插入一定行后进行commit work(建议选1000行)。
检查表中的行数(用SQL中的Table/Info命令),验证装入是否成功。7)如要生产索引,运行第一步中标为说明语句的tabname.sql部分。
8)更新表格统计信息 update statistics on tabname;
语法 oninit [-s] [-i] [-p] [-y]
oninit将系统从off-line模式变为on-line模式
oninit-s将系统从off-line模式变为quiescent模式
oninit-i初始化系统
oninit-p在共享内
存初始化时,不搜索,删除临时表
oninit-y对提示自动回答yes
oninit-v加入这个选项显示oninit处理过程
oninit--键入此命令可以获得使用帮助
oninit命令用来改变系统的运行模式。其中-i选项用于初始化系统的root dbspace。注意,root-dbspace一旦被初始化,则等于整个数据库系统被初始化。
如果用户希望在计算机启动时自动自动启动动态服务器系统,请在系统初启文件(在许多UNIX系统中为/etc/rc)中加入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命令同样用于改变动态服务器的运行模式。除了上述选项外,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 sizedbspace大小(KB)
-t创建临时dbspace
onspaces命令用于创建数据空间、临时空间和存储blob数据的空间(blobspace)。键入onspaces--可以获得该命令的联机帮助。
利用onstat-D或onstat-d可以看到系统中的关于数据空间的重要信息。包括:chunk的状态、空闲、每一chunk读写的次数。
系统中可能包括的多个系统空间,特别当进行数据分片后,我们建议用户最好能利用命令行来创建数据空间。
可以利用如下命令创建数据空间:
onspaces-c-d datadbs1-o 0-p/dev/rrvol3-s 60000
可以用如下的方式创建临时数据空间:
onspaces-c-d tempdbs1-t-o 0-p/dev/rrvol5-s 80000
在系统中,临时数据空间非常重要,通常情况下,应将多个临时数据空间分布在独立的物理设备上。
利用onspaces命令删除数据空间
增加或删除chunks
语法: onspaces-a-d [-m] [-o] [-p]
-a spacename为dbspace新增chunk
-m pathname镜像设备的全路径名和偏移量(KB)
-o offset主设备的偏移量(KB)
P>
-p pathname chunk设备的全路径名
-s sizechunk大小
-d spacename删除chunk
-o offset chunk设备的偏移量(KB)
onspaces不仅能创建数据空间还能删除数据空间、临时数据空间或存储blob数据的空间。在删除数据空间时,必须首先保证它是无用的,即该数据空间上无数据库或表。
如需删除数据空间,请键入如下命令:onspaces-d dbspace_name/blobspace_name
数据空间最初由一个chunk(first chunk)构成,一旦其空间用尽,用户必须追加chunk为了提高系统性能,用户在为数据空间分配chunk时需要计算以保证它的大小能适应未来的需要,否则在追加chunk的时候,它与先前的chunk在物理上不一定相邻,导致增加读取数据的时间。关于如何计算空间需求将在以后章节中阐述。利用 onspaces命令可以对数据空间增加或者删除chunk,除此之外,利用该命令还可以完成如下任务:启动镜像、中止镜像或改变chunk的状态。
例如可以用如下命令为数据空间增加chunk:
onspaces-a-d datadbs1-0 60002-p/dev/rrvol3-s 60000
再如可以用如下方式从数据空间中删除chunk:
onspaces-d datadbs1-o 60002-p/dev/rrvol3-s 60000
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)
系统在初始化时自动地在root dbspace中创建逻辑日志和物理日志。在DBMS系统中,尤其在OLTP环境下,数据库的操作非常频繁,日志中必须记录大量的信息,所以用户最好能将多个日志文件分布在不同的设备上。有一种非常简单的方法:即按所需大小创建逻辑日志,同时创建一个较小的物理日志,系统初始化完毕后,再将物理日志移至其它设备。关于如何确定所需的物理日志的大小,将在以后的章节详述。利用onstat-l命令可以看出系统中所有新增的逻辑日志被标识为A。这些逻辑日志只有在系统进行归档后才会真正被使用。为了激活这些逻辑日志有一种简单的方法:执行一次"伪"归档。具体步骤如下:将参数TAPEDEV设置为/dev/null然后运行一次ontape-s。也可以执行onbar-F命令。由于伪归档并不真正归档系统信息,所以千万要适时地对系统进行真正的归档操作。
只有在逻辑日志真正无用时才能将其删除。利用onstat-l可以看出所有的空闲日志被标记为F。如果逻辑日志中包含事务回滚或快速恢复所需的信息,该逻辑日志是不能被删除的。利用onstat-l命令可以看出接受当前事务的日志被标记为C。如果逻辑日志包括最后一个检查点记录,它也是不能被删除的,只有当检查点记录被写入下一个日志忠并且上一个日志被备份后,该日志才能被删除。利用onstat-l命令可以看出包含最后一个检查点记录的日志被标记为L。用户可以利用
onmode-c命令强制写检查点记录直至最后一个检查点记录被写入所要求的日志为止。
onstat工具
显示动态服务器共享内存中的信息
涉及少量磁盘I/O操作
将对系统性能的影响极小
提供关于系统有价值得信息
命令行交互式监控系统
在本章中将讲解onstat的各种重要选项,请熟悉它们的使用
onstat命令是一种非常有用的系统实时监控工具。该命令直接从共享内存的数据结构中读取信息,报告当时的系统状况。通常onstat命令不会进行磁盘I/O操作,也不会对系统资源加锁,所以它对系统性能的影响减少到最小。简言之,onstat是informix提供的一种交互式的系统监控工具。
onstat的一些常用选项:
onstat--列出所有选项
onstat-i设置进入交互模式
onstat-显示运行模式和数据库引擎状态
onstat-g sub_option运行多线索选项
onstat-r每隔秒后重复选项
onstat-g act显示系统中所有的活动线索
onstat-g ath-r 2每隔两秒显示系统中所有的活动的线索
系统监控界面
sysmaster数据库在系统初始化时自动创建
数据库中包括指向系统共享内存结构数据字典信息
提供瞬时的系统性能和状态信息
提供SQL界面了解数据字典信息
允许管理员将系统管理工作自动化
用于执行重复性的监控任务
系统监控界面(system Monitoring Interface--SMI)是一种基于SQL的系统工具,
用户通过SMI可以非常方便地获取系统信息。系统在初始化时,自动地在root dbapace创建sysmaster系统数据库。
每一系统包括一个sysmaster数据库,该数据库中的大部分表为虚表,是指向共享内存中数据结构的指针。利用SMI可以自动监控系统,特别是在执行重复任务时。
sysmaster数据库是只读的,即不允许对其进行INSERT UPDATE,或DELETE操作。所有用户都拥有对该数据库的查询权限。
在系统初始化后,用户一定要注意检查sysmaster数据库是否建立成功。创建sysmaster数据库的信息都保存在消息日志文件中(online.log)请注意由于所有的DDL语句都将被记录在日志中,
所以一定要在日志文件中留出足够的空间以保证创建sysmaster所需。
sysmaster数据库模式记录在$INFORMIXDIR/etc/sysmaster.sql文件中。
oncheck命令
检查动态服务器磁盘上的数据结构
定位并修补损坏的索引和数据
有磁盘I/O操作
一些操作在处理时将在表上加锁
oncheck命令用于修复磁盘上损坏的索引和数据页,该命令也可用于检查并打印系统的数据结构。在使用oncheck时一定要当心,因为改命令的某些选项会对表加共享锁,例如:oncheck-pt
>
为防止对系统的损坏,系统会对所有共享内存中的数据进行一次一致性检查。一旦发现数据页出现一致性错误或发现索引错误,系统将把问题和可能的解决方案(利用oncheck)写入消息日志文件,并返回isam错误代码105。
如果发现一致性错误信息,用户应该立即关闭系统并按消息日志文件中的提示运行oncheck。如果oncheck运行失败,则应尝试卸出表再重新装入;如果是索引得问题,则应先删除索引再重建之。如果所有这些步骤都失败了,只有根据原有的系统归档备份来恢复系统。
下面的命令可以提供extend信息:
oncheck-pe
在onstat–l中,flag位表示了逻辑日志的状态,
A表示新加了还不能使用的日志
F表示空闲的可以使用的日志,一般是在0级备份之后才有这样的状态
U表示已经使用的逻辑日志
L表示当前的日志文件包含一个检查点
C表示正在使用当前的日志文件
B表示已经备份的日志文件
informix是什么数据库
Informix在1980年成立,目的是为Unix等开放操作系统提供专业的关系型数据库产品。公司的名称Informix便是取自Information和Unix的结合。
Informix第一个真正支持SQL语言的关系数据库产品是InformixSE(StandardEngine)。InformixSE的特点是简单、轻便、适应性强。它的装机量非常之大,尤其是在当时的微机Unix环境下,成为主要的数据库产品。它也是第一个被移植到Linux上的商业数据库产品。
在90年代初,联机事务处理成为关系数据库越来越主要的应用,同时,Client/Server结构日渐兴起。为了满足基于Client/Server环境下联机事务处理的需要,Informix在其数据库产品中引入了Client/Server的概念,将应用对数据库的请求与数据库对请求的处理分割开来,推出了Informix-OnLine,OnLine的一个特点是数据的管理的重大改变,即数据表不再是单个的文件,而是数据库空间和逻辑设备。逻辑设备不仅可以建立在文件系统之上,还可以是硬盘的分区和裸设备。由此提高了数据的安全性。
1993年,为了克服多进程系统性能的局限性,Informix使用多线程机制重新改写数据库核心,次年初,Informix推出了采用被称为"动态可伸缩结构"(DSA)的InformixDynamicServer。除了应用线程机制以外,Informix在数据库核心中引入了虚处理器的概念,每个虚处理器就是一个Informix数据库服务器进程。在DynamicServer中,多条线程可以在虚处理器缓冲池中并行执行,而每个虚处理机又被实际的多处理机调度执行。更重要的是:为了执行高效性和多功能的调谐,Informix将虚处理器根据不同的处理任务进行了分类。每一类被优化以完成一种特定的功能。
到90年代后期,随着Internet的兴起,电子文档、图片、视频、空间信息、Internet/Web等应用潮水般涌入IT行业,而关系数据库所管理的数据类型仍停留在数字、字符串、日期等六七十年代的水平上,其处理能力便显得力不从心了。1992年,著名的数据库学者、Ingres的创始人加州大学伯克利分校的MichaelStonebraker教授提出对象关系数据库模型,从而找到了一条解决问题的有效途径。
1995年,Stonebraker及其研发组织的加入了Informix,使之在数据库发展方向上有了一个新的突破:1996年Informix推出了通用数据选件(Universal Data Option)。这是一个对象关系模型的数据库服务器;它与其他厂商中间件的解决方案不同,从关系数据库服务器内部的各个环节对数据库进行面向对象的扩充;将关系数据库的各种机制抽象化、通用化。UniversalDataOption采用了DynamicServer的所有底层技术,如DSA结构和并行处理,同时允许用户在数据库中建立复杂的数据类型及用户自定义的数据类型,同时可对这些数据类型定义各种操作和运算以实现对象的封装。在定义操作和运算时可以采用数据库过程语言、C语言,它们经注册后成为服务器的一部分。
1999年,Informix进一步将Universal Data Option进行了优化,为用户自定义数据类型和操作过程提供了完整的工具环境。同时在传统事务处理的性能超过了以往的Dynamic Server。新的数据库核心便被命名为IDS.2000。它的目标定位于下世纪基于Internet的复杂数据库应用。
事实上,Internet的普及从Web开始。Web应用以简便和图文并茂见长。但充斥整个系统的HTML文件又将我们不知不觉地带回了文件系统的时代。采用数据库管理Internet信息遇到的第一个挑战就是复杂信息的管理问题,Internet的出现将"数据"的概念在实际应用中扩大了。为此,自1995年起,Informix便着手进行新一代数据库系统的设计。作为专业的数据库厂商,Informix首先针对Internet应用中数据类型的多样化,采用对象技术对关系数据库体系进行了扩展。与众不同之处在于,Informix并非将新的数据类型写死在数据库核心中,而是将数据库系统中各个环节充分地抽象化,使用户有能力定义和描述自己需要管理的数据类型,将可管理的数据类型扩展到无限,同时适应了未来应用发展的需要。这就是Informix今年新推出的数据库服务器--InformixDynamicServer.2000(简称IDS.2000)。
在IDS.2000中,Informix的另一重大贡献在于抽象化数据库的访问方法(索引机制和查询优化)并将其中接口开放。这样,用户便可以自己定义对复杂对象的全新的索引机制,并融入整个数据库服务器。在IDS.2000中,所有用户自定义的数据类型、操作、索引机制都将被系统与其内置的类型、操作和索引机制同等对待。IDS.2000将所有数据库操作纳入标准数据库SQL的范畴,在形式上与传统关系数据库完全兼容,但适应了"数据"概念拓展的需求,成为真正的通用数据库。Informix在IDS.2000之上增加了一系列核心扩展模块,构成了面向Internet的多功能数据库服务器Informix Internet Foundation.2000。
INFORMIX主要产品分为三大部分:
数据库服务器(数据库核心)
应用开发工具
网络数据库互联产品
数据库服务器有两种,作用都是提供数据操作和管理:
SE:完全基于UNIX操作系统,主要针对非多媒体的较少用户数的应用
ONLINE:针对大量用户的联机事务处理和多媒体应用环境
应用开发工具是用以开发应用程序必要的环境和工具,主要也有两个系列:
4GL:INFORMIX传统的基于字符界面的开发工具,该系列的主要产品有五个,他们是I-SQL、4GL RDS、4GL C COMPILER、4GL ID和ESQL/C;
NewEra:INFORMIX最新提供的具有事件驱动能力、面向对象的基于各种图形界面的开发工具。
INFORMIX的网络数据库互联产品:提供给用户基于多种工业标准的应用程序接口,通过它可以和其它遵守这些工业标准的数据库联接。
OK,关于informix和informix是什么数据库的内容到此结束了,希望对大家有所帮助。