首页编程informix安装 Informix常用命令

informix安装 Informix常用命令

编程之家2023-11-03117次浏览

今天给各位分享informix安装的知识,其中也会对Informix常用命令进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

informix安装 Informix常用命令

.net vs怎么连接Informix数据库

在使用 ADO.NET驱动程序之前,应该确保该驱动程序已安装并能正确运行。该驱动程序的当前版本可以使用 Informix Client Software Developer's Kit(SDK) 2.90来安装。与以前的 2.81版本不同,此 SDK版本包括默认的 ADO.NET驱动程序。SDK的安装程序也会警告您有关事项。它并不真正在您的计算机上查找.NET框架的安装,只是警告您必须在安装 SDK之前安装好.NET框架。如果您已经安装了 2.81 SDK,那么最好先卸载它。这两个版本无法共存。还要认识到的一点是,在将 2.90 ADO.NET驱动程序添加到 Visual Studio Projects中时,它会不正确地报告它自己是版本 2.81。

2.9版本是在 2.81版本之上的一次重要升级。它包括一个新的 IfxDataAdapter向导、IPv6支持和一些用于 Informix数据类型(IfxDateTime、IfxDecimal、IfxBlob和 IfxClob)的新类。该文档更为完善,内容总量是以前的两倍。

要点:IBM Informix ADO.NET驱动程序并不仅仅包含在安装目录下的/bin目录下的 IBM.Data.Informix.dll文件中。显然,它使用了由 SDK安装的其他客户端代码。这意味着您必须在所有将使用 ADO.NET驱动程序的机器上安装 Informix Client SDK。您不能只在您的发行版中包括 IBM.Data.Informix.dll。这对一些应用程序而言可能是一个严重的限制。您还需要仔细检查 SDK安装程序(SetNet32),以定义 Informix数据源。

在将 ADO.NET驱动程序用于连接之前,还必须运行一个叫做 cdotnet.sql的存储过程。这个存储过程位于 SDK安装的/etc目录中。这类似于设置 OLEDB驱动程序的过程,尽管这个过程更短一些。这个过程记录在 User's Guide中。(请参阅下面的参考资料部分。)

在完成安装之后,检查一下驱动程序,确保建立了连接。要在 Visual Studio项目中使用 ADO.NET驱动程序,则必须确保已将一个引用添加到客户端 SDK安装的/bin目录中找到的 IBM.Data.Informix.dll中。正确的using语句是:using IBM.Data.Informix。以下是一个演示如何获得到数据库的连接的简单方法:

清单1.到Informix数据库的连接

informix安装 Informix常用命令

publicvoidMakeConnection(){stringConnectionString="Host="+HOST+";"+"Service="+SERVICENUM+";"+"Server="+SERVER+";"+"Database="+DATABASE+";"+"Userid="+USER+";"+"Password="+PASSWORD+";";//CanaddotherDBparametersherelikeDELIMIDENT,DB_LOCALEetc//FulllistinClientSDK's.NetProviderReferenceGuidep3:13IfxConnectionconn=newIfxConnection();conn.ConnectionString=ConnectionString;try{conn.Open();Console.WriteLine("Madeconnection!");Console.ReadLine();}catch(IfxExceptionex){Console.WriteLine("Problemwithconnectionattempt:"+ex.Message);}}

示例代码中包括一个用于此功能的BasicConnection类。如您所见,ConnectionString只是一个用于连接的分号分隔的参数列表。Open()方法打开了到数据库的连接,如果连接失败,则抛出一个IfxException。IfxException.Message属性通常提供关于失败原因的合理数量的详细信息

基本命令

一旦建立了连接,就可以开始对数据库执行命令。要做到这一点,需要使用IfxCommand对象。IfxCommand的构造函数接收一个字符串(SQL命令文本)和一个IfxConnection作为参数。IfxCommand对象有一系列的Execute方法,以便对数据库执行命令。要清除连接,可以使用IfxConnection.Close()方法。以下是执行某个不返回结果集的简单命令的例子。该命令可能是 insert、update或 delete。

清单2.执行insert、update或delete命令

IfxCommandcmd;cmd=newIfxCommand("insertintotestvalues(1,2,'ABC')",conn);cmd.CommandTimeout=200;//secondstowaitforcommandtofinishtry{introws=cmd.ExecuteNonQuery();}catch(IfxExceptionex){Console.WriteLine("Error"+ex.Message);}

ExecuteNonQuery以整数形式返回受命令影响的行数。您还可以构建参数化语句和查询,后面部分将对它们进行研究。注意IfxCommand的CommandTimeout属性。默认超时时间是 30秒,尽管在文档中没有对此进行说明。除非更改此属性,否则运行 30秒后,命令就会超时,并且将抛出一个异常。

下一个例子是执行一条 select语句,并处理由数据库服务器返回的结果集。对于快速的、只向前通过结果的游标,可以使用由ExecuteReader方法返回的IfxDataReader。不过,每个IfxConnection只可以有一个打开的IfxDataReader。(这是一条 ADO.NET限制,不是 Informix ADO.NET驱动程序的特定限制。)

informix安装 Informix常用命令

清单3.迭代通过IfxDataReader

IfxCommandcmd=newIfxCommand("select*fromtest",bconn.conn);try{IfxDataReaderdr=cmd.ExecuteReader();while(dr.Read()){inta=dr.GetInt32(0);intb=Convert.ToInt32(dr["b"]);stringc=(String)dr[2];}dr.Close();}catch(IfxExceptionex){Console.WriteLine("Error"+ex.Message);}

每一列都被作为一般的 Object类型进行检索。正如代码所演示的,存在一些将列 Objects转换为正确数据类型的方法。您可以使用IfxDataReader的GetXxx方法。对于每种数据类型,几乎都有相应的方法。GetXxx方法将列数目作为一个参数。可以使用IfxDataReader的索引,通过列的名称来访问列。如果可能的话,.NET框架的Convert函数可以将这些 Objects转换为正确的类型。最后,可以根据列编号为这些列建立索引,并直接强制转换结果(对于某些类型)。

下一个例子将展示如何调用需要一个参数值的存储过程。

清单4.执行带有一个参数的存储过程

IfxCommandcmd=newIfxCommand("test_proc",conn);cmd.CommandType=CommandType.StoredProcedure;//fromSystem.Datacmd.Parameters.Add("in_parameter",2);//manywaystocreatethesetry{cmd.ExecuteScalar();}catch(IfxExceptionifxe){Console.WriteLine("Error"+ifxe.Message);}

对于此IfxCommand,必须将CommandType设置为来自System.Data中的CommandType枚举的StoredProcedure值。为了创建参数,可以使用IfxCommand的Parameters.Add方法。IfxCommands.Parameters是一个集合,因此您可以添加您所需数量的参数。您可以使用任意IfxParameter()构造函数来创建参数,或者可以像上面这样简化参数的创建。不过要注意的是,每个IfxParameter都与一个特定的IfxCommand相关。您不能先创建IfxParameters,然后在多个IfxCommand对象中使用它们。ExecuteScalar()方法现在只返回 1。这一示例没有从存储过程返回任何东西。

要构建一个不执行存储过程的参数化 SQL语句,需要将问号作为占位符插入CommandText中。例如:

清单5.参数化查询

IfxCommandinsCmd=newIfxCommand("insertintoclientstest"+"(clientcode,clientacctname,primarycontact,primaddrcode,"+"initialamt,createdate)values(0,?,?,?,?,TODAY)",conn);

按照IfxParameter对象在命令文本中的顺序,将这些对象添加到IfxCommand的Parameters集合中。在下面的扩展示例中的最终强类型化DataSets中,将进一步演示此技术。

强类型数据集

ADO.NET包括一个叫做DataSet的专用数据库对象。它是一个内存数据库。DataSet由一个或多个(由一些DataRow对象的)DataTable对象组成。DataTable可以通过主键和外键相关联。可以对数据设置一些约束。DataSet也与实际的数据存储断开连接,可以通过一个或多个DataAdapter(每个DataTable一个)来填充它,然后在内存中保存这些数据和所有更改。稍后,DataAdapter可以将这些更改提交回数据存储。

基本的DataSet不是强类型的。它不知道数据库的实际行和列是什么。因此编译器没有检查这些列名称。直到运行的时候,列名称中的任何错误才会显现出来。此外,当开发者记不清列名是"itemcode"还是"itemid"的时候,他会发现基本的 DataSet在这方面毫无帮助。

一个强类型的DataSet可以解决这些问题。而一个普通的DataRow却无法取代它,因为普通的DataRow只有一个(例如)作为OrderDetailDataTable一部分的OrderDetailDataRow。您可以将这些列作为OrderDetailDataRow的实际属性(row.ItemCode)进行引用。用这种方式,可以提高 IntelliSense的生产率。表名称和列名称在属性编辑器中也会变得有效,从而增强诸如数据绑定之类的设计人员级工具。

那么,怎样构建这个提高生产率的强类型DataSet呢?要花费如此多的时间或精力来构建一个您还没有体验到任何净生产效率的东西吗?Informix ADO.NET驱动程序可能没有其他一些驱动程序那么复杂。Microsoft的SQLDataAdapter(用于 SQL Server)包括一个 Generate DataSet向导。而IfxDataAdapter没有这样的向导。不过,您可以构建一些工具来帮助您,也可以使用一些已在.NET框架中构建的工具。最后,您将拥有封装所有数据库交互的强类型DataSet的一个子代。

.NET框架包括一个 XSD编译器(xsd.exe),它可以从某个经过特殊格式化的.xsd文件中生成一个强类型DataSet。但是,谁想键入一串 XML呢?幸运的是,DataSet对象包括一个叫做WriteXmlSchema()的方法。此方法允许您使用非类型化的DataSet为强类型DataSet创建 XSD文件。让我们来看一下如何做到这一点。以下是一个示例表:

清单6.Clientstest表

CREATETABLEclientstest(clientcodeSERIALnotnull,clientacctnameCHAR(60)notnull,primarycontactCHAR(30)notnull,primaddrcodeCHAR(10),createdateDATE,initialamtDECIMAL(18,0));

以下是用于此表的单表DataSet:

清单7.定义DataSet

DS=newDataSet("dsClients");//maintabledefinitionDataTablemainTable=newDataTable("clients");DataColumnCollectioncols=mainTable.Columns;DataColumncolumn=cols.Add("clientcode",typeof(Int32));column.AllowDBNull=false;cols.Add("clientacctname",typeof(String)).MaxLength=60;cols.Add("primarycontact",typeof(String)).MaxLength=30;cols.Add("primaddrcode",typeof(String)).MaxLength=10;cols.Add("initialamt",typeof(Decimal));cols.Add("createdate",typeof(System.DateTime));//primarykeymainTable.PrimaryKey=newDataColumn[]{cols["clientcode"]};//addtabletoDataSetDS.Tables.Add(mainTable);//WriteschematofileDS.WriteXmlSchema("dsClients.xsd");

在这个定义中,可以在数据上设置类型和限制条件。还可以设置列名称。这些名称不必与数据库的列名称匹配。观察本文下载部分中的代码文件,以查看得到的 dsClients.xsd文件。

为了使生成 XSD文件(或者在发生更改后重新生成它)变得更容易,可以为这些DataSetBuilders构建一个框架。(完成此任务所需的所有代码都包含在下面部分。)在想用该框架确定要构建哪些 Builders时,可以使用反射来动态确定某一 Builders是否是DataSetBuilder。让我们从编写IBuildable接口开始。它定义了DataSetBuilder必须实现的属性和方法。

清单8.IBuildable接口

publicinterfaceIBuildable{stringFileName{get;set;}stringFilePath{get;set;}LoggerLog{get;set;}DataSetDS{get;set;}voidBuildXSD();voidCompileXSD(stringoutputDirectory);}

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 数据库所用jdbc驱动版本

打开DbVisualizer软件,点击"Tools"菜单,选择"Connection wizard"选项,进入配置窗口"New Connection Wizard"

在"New Connection Wizard"窗口中,输入一个连接名称,可随意取名,之后点击"Next"

在"Select Database Driver"驱动选择步骤中选择Informix驱动,前提是在DbVisualizer安装目录下的lib目录有ifxjdbc.jar驱动包,没有可在网上下载。点击"Next"

在主设置界面设置数据库信息。从上至下依次为:

Database Userid数据库连接名,必须设置

Database Passwoed数据库连接密码,必须设置

Database Server数据库服务器IP,必须设置

Database Port数据库服务器端口,必须设置

Database数据库名,必须设置

Database Server数据库实例名,必须设置

在上一步的设置窗口中,点击"Ping Server"按钮,测试是否能ping通数据库服务器,测试通过则点击"Finish"完成按钮,失败则检查配置情况

6

配置通过后,在主界面的右侧则会显示出配置的连接,右键选择"Connect"则可连接到配置的数据库

感谢您花时间阅读本文!我们希望通过对informix安装的问题进行探讨,为您提供了一些有用的见解和解决方案。如果您需要更多帮助或者有其他疑问,请不要犹豫与我们联系。

dos攻击工具 dos攻击工具有哪些(局域网内)医疗网站建设(医疗网站建设的注意事项有哪些)