Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2086643
  • 博文数量: 909
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 12260
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-06 20:50
文章分类

全部博文(909)

文章存档

2008年(909)

我的朋友

分类:

2008-05-06 21:01:44

一起学习
一、 INFORMIX数据库系统的组成

  我们公司在开发推广应用软件时, 选用INFORMIX-ONLINE和INFORMIX-SQL为数据库系统的开发、使用和维护平台。
  其中INFORMIX-ONLINE共有7张3.5英寸的软盘, INFORMIX-SQL共有4张3.5英寸的软盘, 均为cpio的文件格式。

二、INFORMIX数据库系统的安装
1. 建立INFORMIX数据库系统用户

在安装INFORMIX数据库系统前, 应先建立INFORMIX数据库系统的用户, 其用户名为informix, 用户组为informix。
Informix用户的建立步骤如下:
1) 以超级用户root注册;
2) 输入如下命令:
      #sysadmsh
  3)一次选择如下菜单:
     Accounts—User—Create
4)系统出现输入画面时,依此输入(或选择)如下内容:
   Username      后输入:informix    
   Comment      后不输入
   Modify defaults?  选择yes 
5)系统出现另一个画面是,依此输入(或选择)如下内容:
    Login group  时选择Specify 后输入:informix
     如果系统中没有informix用户组,系统会提示:
     Do you wish to create it?: 选择 yes
     Group ID: 选择 Default
   系统出现一个提示框,里面有两个用户组:group 和informix
   将光标停在group上面,输入一个空格,再打回车。
    Login shell  选择:Default
    Home directory 选择:Default、Create home
    User ID number 选择:Default
    Type of user  选择:Default
   6)系统提示:
    Are you sure you wish to create this new user account?
    Please choose one of: 选择:Yes
7)当系统提示:
   Press to continue:时,输入回车键。
   接着系统提示:
    Assign first password :选择:Now
    Force change at first login: 选择 No
  然后,在提示:
   Setting password for user:informix
   Password change is forced for informix.
        Choose password
   You can choose whether you pick a password,
   Of have the system create one for you.
1. Pick a password
2. Prounceable password will be generated for you
     Enter choice (default is 1): 直接输入回车
     Please enter new password:

     New password : 输入新口令
     Re-enter password: 重新输入新口令
   
     Press to continue:输入回车键

   8)退出实用程序sysadmsh,则新用户informix就已经按照要求建立起来了。

2. 安装INFORMIX-SQL

   1)注册进超级用户root, 执行下面的命令将当前目录转移到informix用户下面:

#cd /usr/informix
 
   2)然后将INFORMIX-SQL系统的卷1盘插入计算机的A驱动器中, 并执行下面的命令, 将INFORMIX-SQL系统的文件拷贝到计算机中:

  #cpio –icvdumBI/dev/rfd0135ds18

   3)在屏幕上出现下面的提示时,插入下一张软盘后,输入回车:

Change to part ## and press RETURN key.[q]
  当最后一张软盘安装完成后, 系统退回到#提示符的状态。
4)文件拷贝完毕后, 在#号提示符后面输入下面的命令, 执行INFORMIX-SQL系统的安装程序.

  #./installsql

    有时是执行下列命令
 
  #./installsqlrt

   当出现下面的提示时, 按回车键继续进行安装:

  Press Enter to continue
  or the interrupt key(usually CTRL-C or DEL)to abort
  

  之后系统要求输入INFORMIX-SQL产品的序列号和活动码:

  Enter your serial number(e.g.INF#X999999)
  AAA#X000000    {在此处输入SQL的序列号}
  Enter your serial number key(uppercase letters only)
  AAA#X000000    {在此处输入SQL的活动码}

  当出现下面的提示时, 按回车键继续进行安装:

  Press Enter to continue
  or the interrupt key(usually CTRL-C or DEL)to abort
  

   5)安装程序设置完系统文件的权限并对相关文件进行初始化完毕后, 结束INFORMIX-SQL系统的安装工作。



3. 安装INFORMIX-ONLINE

  INFORMIX-ONLINE系统的安装工作与INFORMIX-SQL系统的安装工作基本一致。
  1)注册进超级用户root, 执行下面的命令将当前目录转移到informix用户下面:

#cd /usr/informix
 
   2)然后将INFORMIX-ONLINE系统的卷1盘插入计算机的A驱动器中, 并执行下面的命令, 将INFORMIX-ONLINE系统的文件拷贝到计算机中:

  #cpio –icvdumBI/dev/rfd0135ds18

   3)在屏幕上出现下面的提示时,插入下一张软盘后,输入回车:

Change to part ## and press RETURN key.[q]
  当最后一张软盘安装完成后, 系统退回到#提示符的状态。
4)文件拷贝完毕后, 在#号提示符后面输入下面的命令, 执行INFORMIX-SQL系统的安装程序.

  #./installonline

   当出现下面的提示时, 按回车键继续进行安装:

  Press Enter to continue
  or the interrupt key(usually CTRL-C or DEL)to abort
  

之后系统要求输入INFORMIX-ONLINE产品的序列号和活动码:

  Enter your serial number(e.g.INF#X999999)
  AAA#X000000    {在此处输入ONLINE的序列号}
  Enter your serial number key(uppercase letters only)
  AAA#X000000    {在此处输入ONLINE的活动码}

  当出现下面的提示时, 按回车键继续进行安装:

  Press Enter to continue
  or the interrupt key(usually CTRL-C or DEL)to abort
  

   5)安装程序设置完系统文件的权限并对相关文件进行初始化完毕后, 结束INFORMIX-ONLINE系统的安装工作。

三、INFORMIX数据库参数调整
1、为INFORMIX数据库产品设置环境变量:
  1)在/.profile文件中,增加下面的指令,为root用户增加操作INFORMIX数据库的环境变量:
INFORMIXDIR=/usr/informix
PATH=$PATH:/usr/informix/bin
DBDATE=Y4MD/
  export INFORMIXDIR PATH DBDATE

  2)在/etc/profile文件中,增加下面的指令,为root以外的用户增加操作INFORMIX数据库的环境变量。
INFORMIXDIR=/usr/informix
PATH=$PATH:/usr/informix/bin
DBDATE=Y4MD/
  export INFORMIXDIR PATH DBDATE

2、修改UNIX系统的核心参数
1)以超级用户root注册,依次执行如下命令:
#cd /usr/informix/release
#more ONLINE_5.0
然后记录如下参数及后面的值:
SHMMAX:1048576
SHMMIN:1
SHMMNI:32
SEMMNI:256
SEMMNS:256
SEMMSL:60
   2)修改UNIX系统核心参数
   #cd /etc/conf/cf.d
   #cp mtune mtune.bak
   #vi mtune
   {此文件格式如下:
   …
   *Shared Memory Parameters
   SHMMAX 1048576 131072 80530637
 SHMMIN 1 1 1
 …
   其中:第一列为UNIX系统参数名,第二列为此参数当前值,第三列为此参数最小值,第四列为此参数最大值。}
   然后根据上面记录下来的数据依此检查每个参数,如果:
A. 所记录的系统参数名存在;
B. 所记录的系统参数值在最小值和最大值之间
则用记录下来的参数值取代此参数的当前值。反之,不修改此参数。
3) 重新连接核心,使新的核心参数生效
依次执行命令:
#init 1  {重连核心要在单用户下进行}
系统提示:

输入root口令(如果没有口令则输入)进入单用户。
#cd /usr/etc/conf/cf.d
#./link_unix
系统提示:
Do you want this kernel to boot by default?(y/n) 输入:y
Do you want the kernel environment rebuilt?(y/n) 输入:y
#reboot

3、修改设备权限
以超级用户注册,依此执行如下命令:
#cd /dev
  # chown informix *dbs*
  # chgrp informix *dbs*
  # chmode 660 *dbs*

4、INORMIX-ONLINE 数据空间初始化:
1) 以用户informix注册;
2) 执行如下命令对数据库空间和共享内存参数进行调整:
$ tbmonitor
选择菜单依此为:
 Parameters—Initialize
需要修改的参数为:
 Sys.Log File [/usr/informix/onlne.log        ]
   System Msgs. [/usr/informix/online/msg        ]
   Tape Dev.   [/dev/null               ]
   Log Tape Dev. [/dev/null               ]
   Root Size   [######      ]
   Primaty Path [/dev/rdbspace  ]
   {Root Size 是在安装UNIX操作系统时预留的数据库空间,它的计算如下:
    A.以root注册,使用命令:
     #divvy
    B.记录下Name 为dbspace分区的First Block 和 Last Block
    例如某dbspace空间的First Block值为:750001
              Last Block值为:1253436
    计算Root Size的值<=Last Block – First Block 1
    所以,以上面的数据为例,Root Size<=1253436-750001 1
                     =503436}
4)按Esc键,退出当前菜单,系统自动进入Shared-Memory,再按Esc键退出进行数据库空间初始化。
5)选择Exit菜单退出实用程序tbmonitor,依此执行如下命令,完成对数据库的初始化设置:
$tbmode –ky
$tbinit

5、增加开机自引导程序
  系统启动后,为了使数据库能够正常工作,在对数据库操作之前,必须使用命令tbinit对数据库进行共享空间的初始化。通常可以将对INFORMIX数据库系统共享内存的初始化工作放到UNIX的启动程序中,一般在/etc/rc2.d目录下增加起动程序S90tbinit,完成INFORMIX数据库系统的初始化工作。S90tbinit文件的内容为:
     echo "INFORMIX-ONLINE:tbinit…"
     /usr/Informix/bin/tbinit
     if [ $? -eq 0 ]
     then
      echo "okay!"
     else
      echo "fail!"
    fi
  编辑完此文件后,在执行如下命令为此文件增加可执行权限:
  #chmod x S90tbinit
6、增加关机自引导文件
 为了数据的安全,我们在关机之前,应该使用tbmode命令将数据库共享空间关闭。为方便起见,我们一般在/etc/rc0.d目录下增加一个文件:K01tbmode。文件的内容可以如下:
     echo "INFORMIX-ONLINE:tbmode…"
     /usr/informix/bin/tbmode -ky
     if [ $? -eq 0 ]
     then
      echo "okay!"
     else
      echo "fail!"
    fi
  编辑完此文件后,在执行如下命令为此文件增加可执行权限:
  #chmod x K01tbmode

四、INFORMIX数据库常用命令
1、 tbinit
用于初始化数据库共享内存。每次开机后都必须执行此命令。为了简化操作,我们经常将它放在/etc/rc2.d目录下的一个自引导文件中,让系统进入多用户时自动来执行此文件。
例如:当以应用软件注册时,系统提示:
DBERR –529/C-ISAM –123 [Open Database]
使用finderr查529错误,提示:
-529  Cannot attach to shared memory. {不能使用共享内存}
这时,你可以使用tbinit命令将数据库共享内存进行初始化后,系统就恢复正常了。
2、 tbmode –ky
用于关闭数据库共享内存。为了数据的安全,每次关机前都必须执行此命令。为了简化操作,我们经常将它放在/etc/rc0.d目录下的一个自引导文件中,让系统进入多用户时自动来执行此文件。
3、 finderr
用来查询数据库的错误。当系统出现数据库错误时,系统处了给你简单的出错提示外,还给出一个错误号。你可以使用此命令对这种错误进行深入的分析,然后针对不同的错误进行相应的处理。
例如:当你在超级用户root下对储蓄数据库bankstar进行操作时,系统提示:
387: No connect permission.
111: ISAM error: no record found.
意思是:当你对此数据库操作时,系统出现编号为387的错误,错误的原因是:没有connect权限。
具体原因接下来解释:
对数据库的读写需要被赋予CONNECT权限。这个权限需要一个具有数据库管理权限的人来赋予。
对于这种情况,我们可以使用informix用户,通过使用程序dbaccess中的Query-Language来进行,所使用的SQL语句如下:
grant connect to root
4、 dbexport
这个命令用来卸载数据库。我们在对软件中的某些重要的数据进行修改时,为了防止万一的情况出现,我们在改动之前应该对数据库进行备份。这种备份又分两种情况:
A、通过软件菜单进行备份 {间接调用INFORMIX数据库命令}
B、使用INFORMIX数据库命令
常用命令的格式如下:
dbexport databasename –o diretory
其中:databasename 是将要卸载的数据库的名称,例如在我们的软件中:
          储蓄应用软件对应的数据库名为bankstar
          对公会计脱机版软件对应的数据库名为single
          储蓄事后监督软件对应的数据库名为shjd
   diretory是将要卸载的数据库数据存放的目录。
注意:A、存放数据的目录一定存在,且下载数据库的用户对此目录有可写权限;
   B、下载的数据库一定存在,且该用户有可读权限;
   C、保证下载的当前目录下不存在dbexport.out文件或此文件存在,但该用户对该文件有可写权限。
5、 dbimport
加载数据库数据,将卸载下来的数据加载到数据空间中。此命令用于恢复用dbexport卸载下来的数据。命令格式为:
dbimport database –i diretory
其中:database、diretory的含义同dbexport命令的解释。
使用此命令时,请注意:
A、 当前数据库空间中不存与database同名的数据库;
B、 diretory可以是相对路径,也可以是绝对路径;
C、保证下载的当前目录下不存在dbimport.out文件或此文件存在,但该用户对该文件有可写权限。
D、 环境变量设置正确,需要的环境边量主要有:
DBDATE=Y4MD/
INFORMIXDIR=/usr/informix
PATH=…:/usr/informix/bin…
等。{如果不正确,请检查一下你的/.profile和/etc/profile中的设置是否正确。
五、INFORMIX数据库实用程序介绍
1、 dbaccess
用来输入、执行SQL查询语句或者将查询结果输出;选择、生成、删除数据库;生成、修改、删除或者查询数据库中表的各种信息等。
下面详细介绍各个菜单及其功能:
Query-Language使用数据库的结构化查询语言对数据库进行操作
New    允许输入一组新的语句作当前语句
Run    执行当前的语句
Modify  修改当前语句
Use-editor 允许用户使用系统编辑程序vi对当前语句进行编辑
Output   将执行当前语句的结果进行输出
  Printer   将查询结果输出到打印机
  New-file   将查询结果输出到一个新文件
  Append-file 将查询结果追加的一个存在的文件中
  To-pipe   将查询结果送到其它程序的标准输入中
  Exit     退出Output菜单
Choose  允许用户选择当前目录下原来存在的以.sql为后缀的SQL语句
Save    存放当前语句到某一SQL文件。其后缀为.sql
Info    显示当前数据库中某个表的信息
Drop    从数据库中删除某个SQL文件
Exit    退出Query-Language菜单
Database  用来选择、生成或删除一个数据库
Select  设置某数据库为当前工作数据库
Create  创建新数据库并使其成为当前工作数据库
Drop   从系统中删除某数据库
Exit   退出数据库Database菜单,返回到上级菜单
  Table   用来生成、修改或删除一个数据库中的表
    Create  生成一个新表
    Alter   修改一个已经存在的表的结构
    Info   查询一个已经存在的表的信息
    Drop   删除一个已经存在的表
    Exit   退出Table才菜单
2、 isqlrf(有的系统为:isql)
Form 可以执行、创建、修改、编译屏幕格式或删除已存在的屏幕格式
  Run   执行某一已经存在的屏幕格式
Modify  修改指定的已经存在的屏幕格式
Generate 为指定的表创建一个缺省的屏幕格式
Compile 编译一个制定的屏幕格式
New   创建特定的用户屏幕格式
Drop   删除某已经存在的格式文件
Exit   退出Form菜单
  Report 可以执行、建立、修改、编译、或删除报表
Run   执行某一报表
Modify  修改指定的报表
Generate 为某一个表建立一个缺省的报表
New   建立一个用户指定的报表
Compile 编译指定的报表
Drop   删除一个指定的已经存在的报表
Exit   退出Report菜单
  Query-Language  详见实用程序说明:dbaccess
  User-menu 可以执行、建立或修改用户建立的菜单
Run    执行当前数据库的用户菜单
Modify  允许用户建立或修改用户菜单
Exit   退出User-menu菜单
  Database 详见实用程序说明:dbaccess
  Table   详见实用程序说明:dbaccess
  Exit   退出实用程序isqlrf(或isql)
 
六、常用SQL语句
使用SQL语句的基本步骤是:
A、 在提示符#或$后面键入dbaccess
B、 选择菜单Query-Language
C、 选择需要查询的数据库
D、 选择菜单New
E、 输入你的SQL语句
F、 按Esc键退出
G、 选择菜单Run执行你的SQL语句
1、 查询语句
在数据库中查询动作的完成主要由select语句完成,其语法结构为:
select select-list
  from table-name
  [where condition]
其中:select-list 是要从选中的表中提取的字段名列表,如果全部取出,可以用*代替
   table-name  是想要查询的表名
   condition  是查询的条件,将所有满足此条件的记录列出;
         如果省略,则查询所有记录(以下条件语句功能相同)
例如:
   1)查询储蓄数据库中所有的操作员的信息
  select * from czy
   2)查询储蓄数据库中所号为“0000000”的操作员的所有信息
     select * from czy where cxsh=”0000000”
   3)查询储蓄数据库中所有在1998/11/07开户的活期帐户的帐号、姓名和余额
   select zh,hm,jce from hzb where khrq=”1998/11/07”
2、 修改语句
用来完成对数据库中的数据进行修改的工作。=其语法结构为:
update table-name
 set column-name=expression
 [where condition]
  其含义是将表 table-name中满足条件condition的记录的字段column-name的值修改为expression
 例如:
  1)对公会计在后台操作时,一不小心修改了后台所号(应该是“999999999”),再次注册时,系统提示“无此代码”。
 update cszd set dwdh=”9999999” where dwdh=”7777777”
3、 删除语句
用来删除数据库中作废的数据。其语法结构为:
delete from table-name
 where condition
含义是:删除表table-name中满足条件condition的所有记录
例如:
1) 删除储蓄数据库中“1998/11/07”的所有流水帐
delete from lsz where rq=”1998/11/07”
2) 删除储蓄所号为“0000001”、操作员代号为“0001”的记录
delete from czy where cxsh=”0000001” and dh=”00001”
4、 赋权语句
数据库的操作权限分为三级connect、resoure、dba,三种权限依次加大。
对表的操作权限分为:alter、delete、index、insert、execute、select、update、references、 all等。
权限赋予某用户的语法结构为:
grant db-privilege to user-list
  含义是:将对库的权限db-privilege赋予用户user-list
grant tab-privilege on table-name to user-list
  含义是:将对表table-name的权限tab-privilege赋予用户user-list
权限从某用户收回的语法结构为:
revoke tab-privilege on table-name from user-list
  含义是:收回用户user-list对表table-name操作权限tab-privilege
revoke db-privilege from user-list
   含义是:收回用户user-list对数据库的操作权限db-privilege
例如:
1) 储蓄安装完后,超级用户root要想查询数据库,系统提示:
387: No connect permission.
111: ISAM error: no record found.
原因 就是root对bankstar数据库没有connect权限
我们可以使用下面的语句赋予root权限
grant connect to root
  2)现在我们要收回root对会计数据库的dba权限,语句如下:
  revoke dba from root
5、 下载语句
用于将表中的数据下载成文本文件,多用于一些共用参数。其语法格式为:
unload to “pathname” select-statement
其含义是:将通过 select语句查询出来的结果输出到文件pathname中去。
例如:我们将在甲所对公会计中已经定义好的科目下载成文本文件,存放到”/tmp/kmzd”文件中
  unload to “/tmp/kmzd” select * from kmzd
6、 上载语句
用于将已经下载成文本文件的数据加载到数据库中的相应的表中,其语法结构为:
load from “pathname” insert into table-name
  其含义是:将文本文件pathname中的数据加载到表table-name中去。
 例如:我们将上面从甲所下载来的数据通过软盘带到乙所,然后将其加载到乙所的kmzd中
   load from “/tmp/kmzd” insert into kmzd 下载本文示例代码


INFORMIX数据库系统安装手册INFORMIX数据库系统安装手册INFORMIX数据库系统安装手册INFORMIX数据库系统安装手册INFORMIX数据库系统安装手册INFORMIX数据库系统安装手册INFORMIX数据库系统安装手册INFORMIX数据库系统安装手册INFORMIX数据库系统安装手册INFORMIX数据库系统安装手册INFORMIX数据库系统安装手册INFORMIX数据库系统安装手册
阅读(812) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~