INFORMIX语法.docx
《INFORMIX语法.docx》由会员分享,可在线阅读,更多相关《INFORMIX语法.docx(19页珍藏版)》请在冰豆网上搜索。
INFORMIX语法
目录
1.InformixDynamicServer9.21介绍1
1.1informix数据库服务器的物理组成结构1
1.2术语2
1.2.1CHUNK2
1.2.2PAGE2
1.2.3EXTENTS2
1.2.4TBLSPACE3
1.2.5DBSPACE3
1.2.6ROOTDBSPACE3
1.2.7LOGICALLOG逻辑日志3
1.2.8DATABASE3
2.INFORMIX(forUNIX)安装3
2.1安装前的准备工作:
4
2.2安装时的工作4
2.3安装后的工作4
2.3.1建立物理日志存储空间4
2.3.2建立逻辑日志存储空间5
2.3.3建立用户数据库存储空间5
2.3.4建立索引存储空间5
2.3.5物理日志从根(roodbs)转移到phydbs5
2.3.6逻辑日志从根转移到logdbs5
2.3.7建立用户数据库6
3.INFORMIX维护相关6
3.1启动6
3.2关闭7
3.3INFORMIX监控7
3.3.1系统监控接口(SMI):
7
3.3.2ONSTAT8
3.3.3ONCHECK9
4.INFORMIXSQL简介10
4.1概念10
4.2分类10
4.3主要内容12
4.4主要内容详解13
4.4.1CREATEDATABASE13
4.4.2DATABASE13
4.4.3CLOSEDATABASE13
4.4.4DROPDATABASE13
4.4.5CREATETABLE14
4.4.6ALTERTABLE14
4.4.7RENAMETABLE14
4.4.8DROPTABLE15
4.4.9RENAMECOLUMN15
4.4.10CREATEVIEW15
4.4.11DROPVIEW16
4.4.12CREATEINDEX16
4.4.13ALTERINDEX16
4.4.14CREATESYNONYM17
4.4.15DROPSYNONYM17
4.4.16UPDATESTATISTICS17
1.InformixDynamicServer9.21介绍
DynamicServer是对象数据库管理系统的数据库服务器(ORDBMS)。
它把面向对象和关系结合起来,而它所有能描绘的数据都是通过表的行和列的方式表现的。
除了正常的数据类型如(characterstrings,integers,decimals,anddates),还提供了面向对象的功能而增加新的数据类型,同时还支持扩展的用户定义程序(UDR)的功能,扩展了用户对数据管理的能力。
它具有如下特性:
●Client/server结构
●动态伸缩体系
支持单处理器、多处理器
●高处理性能
动态共享内存管理;RAW磁盘管理;多线程;并发性
●容错性、高可用性
通过备份
●动态系统管理
●安全性
●Y2K兼容性
●审计功能
●分布式数据库查询
●扩展应用功能
UDT;UDR;LARGEOBJ;DATABLADEMODULES
1.1informix数据库服务器的物理组成结构
基本组成结构如图
从图中可以看到在物理上共享内存、磁盘块、进程构成了一个数据库服务器,这只是简单的抽象。
1.2术语
1.2.1CHUNK
定义:
分配给服务器的地址上连续的磁盘空间的一部分(SEG),数据库服务器把一个或多个CHUNK分配给它能支持的逻辑存储空间(DBSPACE,BLOBSPACE,SBSPACE,我们这里只用到了DBSPACE)
●相当于ORACLE的DATAFILE,SYBASE的DEVICE
●每个CHUNK的大小不能超过2G
●通过绝对路径和地址偏移量可以标识一个CHUNK
●可以是RAW设备或一般的文件系统文件
●以K字节为单位分配大小的
1.2.2PAGE
定义:
在CHUNK生成并分配给数据库服务器后,逻辑上又被进一步分成更小的单位:
页,是数据库服务器用来读写数据库的物理单元,它根据操作系统的不同大小也不尽相同,一般来说UNIX是2K,WINDOWSNT4K。
1.2.3EXTENTS
定义:
在地址上连续的一些PAGE所组成,用来存储某个表、索引、分段
它的概念跟ORACLE、SYBASE类似
1.2.4TBLSPACE
定义:
一些EXTENTS逻辑上的集合,包含分配给某个特定表、索引、分段的所有的EXTENTS。
1.2.5DBSPACE
定义:
包含一个或多个CHUNK逻辑存储单元,用以存放关键数据(rootDBSPACE,PHYSICALLOG,LOGICALLOG),我们建立的数据库也是用到了DBSPACES这个逻辑存储空间。
1.2.6ROOTDBSPACE
定义:
是数据库服务器产生的初始化DBSPACE,它包含了保留的页面个内部表,用来描述和跟踪所有的物理和逻辑存储单元。
●是用CREATEDATABADE产生数据库时默认分配的DBSPACE
●是临时表的默认分配空间
1.2.7LOGICALLOG逻辑日志
定义:
记录数据库每个操作的日志,主要是为了在数据库崩溃后最大限度的恢复毁坏的数 据。
Informix OnLine最少有六个逻辑日志,记录依次循环存放。
要定期对其进行备份,备份后的日志仍可使用。
在当全部日志写满而仍未进行备份时,OnLine将停止运转,直到有可用的逻辑日志。
将数据库设为No Log 模式、或逻辑日志备份设备是/dev/null时除外
1.2.8DATABASE
定义:
一个数据库是包含表、索引的逻辑逻辑存储空间。
每个数据库都都包括一个系统目录(CATALOG),用来跟踪数据库的基本信息,包括表、索引、SPL程序、完整性的限制(INTEGRITYCONSTRAINS)。
2.INFORMIX(forUNIX)安装
说明:
该步骤书是在SCOOpenServer(TM)Release5操作系统上参照安装“InformixDynamicServer2000Version9.21.UC2”步骤的基础上整理出来的,在今后的安装过程中遇到其它版本时,安装的步骤可能会有所不同,请及时联系。
2.1安装前的准备工作:
1)确认产品版本号是否符合操作系统的版本
确认的内容(版本号、操作位数)
2)按照硬件厂商提供的信息,确定磁盘分布图,从而确定各个CHUNK文件的分布和大小以及用途
需要说明:
在制定磁盘分布图之前要确认informix产品安装后逻辑、物理日志是否要从根DBSPACE中分离出来,以及各个DBSPACE(这里我们只用到了dbspace存储空间)的分布和大小;同时需要确认的是:
是否这些存储空间需要镜像,是否该硬件设备已经提供了镜像的机制。
存储空间大小规定(暂定):
物理日志---100M逻辑日志---600MTEMPDBS---500MINDEXDBS---?
?
?
USRDBS---?
?
?
2.2安装时的工作
1)建立informix用户及用户组
2)通过介质(光盘、磁带等)安装informix产品
3)通过磁盘分布图划分和初始化各个硬盘分区
4)按照要求调整内核参数,使得informix能够初始化、正常启动
2.3安装后的工作
说明:
在数据库被正确安装并能够正常启动后,这时后所要做的工作有:
建立物理、逻辑日志、用户数据、索引的存储空间;建立数据库;建立逻辑日志;物理日志从根存储空间中移走
前提:
如果使用磁盘的某个分区(可能是RAW设备)作为某个CHUNK文件的设备,而不是采用一般的物理文件(COOKEDFILE),最好使用链接的方式在某个目录中(如/infdbs)建立链接
2.3.1建立物理日志存储空间
onspaces-c-dphydbs-pxxxxx-o0-s100000
其中:
phydbs为名称,xxxxx代表路径
这时系统会出现如下提示“**WARNING**Alevel0archiveofRootDBSpacewillneedtobedone.”的信息。
这时执行ontape-s-L0执行0级别备份
2.3.2建立逻辑日志存储空间
onspaces-c-dlogdbs-pxxxxx-o0-s600000
其中logdbs为名称xxxxx代表路径
这时系统会出现如下提示“**WARNING**Alevel0archiveofRootDBSpacewillneedtobedone.”的信息。
这时执行ontape-s-L0执行0级别备份
2.3.3建立用户数据库存储空间
onspaces-c-dusrdbs-pxxxxx-o0-s2000000
其中:
usrdbs为名称,xxxxx代表路径
这时系统会出现如下提示“**WARNING**Alevel0archiveofRootDBSpacewillneedtobedone.”的信息。
这时执行ontape-s-L0执行0级别备份
说明:
因为目前INFORMIX所能管辖每个CHUNK的大小最大为2G,而用户数据库空间可能要超过2G,因此当给用户数据空间增加空间时请重复使用以下命令onspaces-ausrdbs-pxxxxxx-o0-s2000000
在增加完所有的空间以后执行0级别的备份
2.3.4建立索引存储空间
建立的过程跟建立用户数据存储空间类似。
2.3.5物理日志从根(roodbs)转移到phydbs
有两种方法可以达到此目的:
修改配置文件、onparams命令,这里采用后者
首先执行onmode-s使数据库变成quiescent模式
然后执行onparams-p-s30000-dphybs–y
执行onmode-m使数据库变成正常模式
2.3.6逻辑日志从根转移到logdbs
执行onmode-s使数据库变成quiescent模式
执行onparams-a-dlogdbs-s50000
重复上面的命令10次
执行ontape-s-L0执行0级别备份
执行onstat-l确认当前正在使用日志的位置
执行(可能要重复执行几次)onmode-l使当前正在使用的日志位置从原先的某个位置移动到刚才新建立的第一个逻辑日志文件上。
执行onmode-c使的最后一次checkpoit在刚才移动到的逻辑日志上
从onconfig文件中获得逻辑日志文件数(LOGFILES),通过onstat-l以获得这些日志文件(在roodbs上)逻辑号(logicid),然后执行如下命令onparams-d-lxxxx代表日志文件逻辑号,删除所有数据库在初始化时创建的逻辑日志文件(要重复执行几次)
执行ontape-s-L0执行0级别备份
执行onmode-m使系统恢复正常
2.3.7建立用户数据库
建立数据库的方法有多种,这里通过dbaccess用户界面生成,步骤如下
启动dbaccess选择 Database然后选择Create
在提示行输入数据库的名称
然后选择该数据库所在的dbspace
选择LOG选择NOBUFFERED方式(因为营业系统中间件要通过XA跟INFORMIX相连)然后在提示下选择Y
3.INFORMIX维护相关
3.1启动
以informix用户登陆然后执行如下命令
oninit
注意:
informix启动有如下选项
Usage:
oninit{-[ipsy]}
-iInitializediskspaceandsharedmemory,leaveinon-linemode.
-pDonotreclaimtemporarytables.
-sInitializesharedmemory,leaveinquiescentmode.
-yRespondyestoallprompts
这里要强调的是:
千万不要使用–i选项,因为它是要进行重新初始化硬盘(ROOTDBSPACE)及内存,所有的原先数据将全部丢失。
3.2关闭
要正常关闭时,以informix登陆然后执行如下命令
onmode-ky
onmode也有很多选项,这里只介绍几种
onmode-s使数据库切换到单用户模式
onmode-m使数据库恢复到多用户在线模式,也就是我们所说的正常模式
onmode-l把日志强行切换到下个逻辑日志组
onmode-c对数据库进行检查点CHECKPOINT操作监控ONLINE系统后动
3.3INFORMIX监控
监控的工具工具主要有以下三类:
●系统监控接口(SMI)
●onstat
●oncheck
3.3.1 系统监控接口(SMI):
我们主要通过SQL命令操作online的内部数据库sysmaster中的内部表/结构,来获取有关的维护信息。
Sysmaster是在online初次初始化时,系统自动创建的。
它实际主要存储了一些数据结构,而不是真正的表。
使用SMI有如下限制:
●不能对SMI中的表加锁或使用隔离级别。
●不允许使用insert,delete,update等语句(只读)
●不能使用dbschema,dbexport等命令
●使用select rowid语句将会产生不可预料的结果
主要的SMI表有:
sysdatabases:
online中的数据库信息
systabnames:
某数据库中所有表的信息
syslogs:
逻辑日志信息
sysdbspaces:
数据库信息
syschunks,syslocks等
例1:
显示处于脱机(offline)状态的chunk的序号和所在数据库空间
Select chknum,dbsnum from syschunks where is_offline=1 or misline=1
例2:
显示满chunk的信息
Select chknum,dbsnum from syschunks where nfree=0;
3.3.2 ONSTAT
●列出当前时刻的信息(实际也是读取SMI表)
●不需要磁盘I/O
●不需要锁等系统资源,因此不会影响系统性能
用法:
tbstat [-abcdklmpstuzBDFPRX] [-r seconds] [-o file] [infile]
-a print all info (options:
bcdklmpstu)
-b print buffers(缓冲区)
-c print configuration file(配置文件)
-d print dbspaces and chunks(dbspace和chunk)
-k print locks(锁)
-l print logging(日志)
-m print message log(消息日志)
-p print profile(profile文件)
-s print latches(门闸)
-t print tblspaces(表空间)
-u print users(用户)
-z zero profile counts
-B print all buffers
-D print dbspaces and detailed chunk stats
-F print page flushers(页刷新进程)
-P print profile, including BIGreads
-R print LRU queues(LRU队列)
-X print entire list of sharers and waiters for buffers
-r repeat options every n seconds (default:
5)
-o put shared memory into specified file (default:
tbstat.out)
几个常用的tbstat选项:
onstat -m :
显示消息日志的最后20行.
消息日志的内容包括:
●检查点信息
●读写错误信息
●ONLINE模式转换信息
●长事务
●日志文件满(LOG FILE FULL )
若想显示完整信息,可直接查看日志文件.
onstat -d:
磁盘空间的使用情况,包括DBSPACE和CHUNK的信息
其中的FREE项,显示了该CHUNK的空闲空间大小(Kbytes).
onstat -l :
日志文件情况
●物理、逻辑日志的使用情况
●使用、剩余空间
3.3.3ONCHECK
用来显示磁盘的配置和使用的情况,如:
一个表使用了多少页;保留页面的内容;一个表、索引现在扩展了多少个EXTENT
Usage:
oncheck{-cCheckOption|-pPrintOption}[-y|-n][-q][{database[:
[owner.]table[,fragdbs|#index]]|TBLspacenumber
Oncheck命令的选项有3个种类:
CHECK、REPAIR、DISPLAY。
显示或打印选项(前缀加p)和-c选项是相同的,只不过-p选项显示额外的信息。
-c选项检查一致性并当发现错误时会显示错误信息。
例:
显示空间扩展段EXTENT的使用情况
onchekc-ce
ValidatingextentsforSpace'rootdbs'
ChunkPathnameSizeUsedFree
1/dbs/rootchunk15000041252108748
4.INFORMIXSQL简介
4.1概念
SQL(StructureQueryLanguage)是一种能创建、管理和使用数据库的类似英语的语言。
数据操作是SQL的一个特殊子集,包括:
●数据定义(DDL)
●数据操作(DML)
●游标操作
●动态管理
●数据访问(DCL)
●数据完整性
●查询优化
●存储过程(SPL)
4.2分类
在Informix中的SQL(称为RDSQL)可分为以下几类:
●数据定义语句:
用于创建数据库并定义其结构。
●数据操作语句:
用于数据库中选择、插入、更新或删除数据
●动态管理语句:
用于动态管理运行过程中的资源。
●数据访问语句:
用于确定如何访问数据(DCL语句)
●数据完整性语句:
用于维护数据完整性。
●查询优化信息语句:
用于获取有关查询执行的信息。
●存储过程语句:
用于执行和调试存储过程.
以下图表分类列举了文档中涉及的所有SQL语句和常用数据库数据类型与C的对照表。
1)数据定义语句
2)数据操作语句
3)
数据访问语句
4)数据完整性语句
5)辅助语句
4.3主要内容
主要SQL语句列表
SQL语句列表1
SQL语句列表2
CREATEDATABASE
创建数据库
GRANT
授权命令
DATABASE
选择数据库
REVOKE
收权命令
CLOSEDATABASE
关闭当前数据库
LOCKTABLE
记录级加锁和表级或文件加锁
DROPDATABASE
删除指定数据库
UNLOCKTABLE
取消记录加锁表级或文件加锁
CREATETABLE
创建表
SETLOCKMODE
改变锁定状态
ALTERTABLE
修改表结构
STARTDATABSE
启动事务处理
RENAMETABLE
修改表名
BEGINWORK
开始事务
DROPTABLE
删除表
COMMITWORK
提交(正常结束)事务
RENAMECOLUMN
修改字段名
ROLLBACKWORK
回滚(非正常结束)事务
CREATEVIEW
创建视图
SELECT
查询语句
DROPVIEW
删除视图
INSERT
插入数据
CREATEINDEX
创建索引
DELETE
删除语句
ALTERINDEX
修改索引性质
UPDATE
更新数据语句
DROPINDEX
删除索引
CHECKTABLE
检查索引语句
CREATESYNONYM
创建同义名
REPAIRTABLE
修复索引
DROPSYNONYM
删除同义名
LOAD
将文本数据栽入表中
UPDATESTATISTICS
更新数据库的统计数字
UNLOAD
将表中数据卸为文本
INFO
系统信息查询
4.4主要内容详解
4.4.1CREATEDATABASE
CREATEDATABASEdatabase_name[WITHLOGIN“pathname”]
创建数据库。
database_name:
数据库名称。
“pathname”:
事务处理日志文件。
4.4.2DATABASE
DATABASEdatabse_name[EXCLUSIVE]
选择数据库。
database_name:
数据库名称。
EXCLUSIVE:
独占状态。
存取当前目录和DBPATH中指定的目录下的数据库,事务中处理过程中不要使用此语句。
例:
dtabasecustomerdb;
4.4.3CLOSEDATABASE
关闭当前数据库。
database_name:
数据库名称。
此语句之后,只有下列语句合法:
CREATEDATABASE;DATABASE;DROPDATABSE;ROLLFORWARDDATABASE;
删除数据库前必须使用此语句。
例:
closedatabase;
4.4.4DROPDATABASE
DROPDATABASEdatabase_name
删除指定数据库。
database_name:
数据库名称。
用户是DBA或所有表的拥有者;删除所有文件,但不包括数据库目录;不允许删除当前数据库(须先关闭当前数据库);事务中处理过程中不能使用此语句,通过ROLLBACKWORK也不可将数据库恢复。
例:
dropdatabsecustomerdb;
4.4.5CREATETABLE
CREATE[TEMP]TABLEtable-name(column_namedatatype[NOTNULL],…)[IN“pathname”]
创建表或临时表。
table-name:
表名称。
column_name:
字段名称。