操作系统:
AIX 4.3.3
数据库产品:IBM Informix Cl
IEntSDK 2.70CU1(32位/64位)
IBM Informix Dynamic Server 9.21
系统配置:
数据库
服务器为IBM小型机。
IBM Informix数据库软件安装在机器内置硬盘上,划分出1G的文件系统挂在根文件系统的/informix目录下,每次机器启动时自动将此文件系统自动mount。
确保硬盘有足够剩余空间,至少剩余6G。
1 IBM Informix数据库产品的安装过程
注::
1. 以下安装过程中,在命令行中出现 '$'的为informix用户登录,出现 '# ' 为root用户登录。
2. 确认系统ROOT 的 PP SIZE,执行$lsvg rootvg可以查看到该项参数值。
1.1 设置AIX
Unix 环 境
(5和6步可以不做)
1. 以root 登 录。使 用 AIX 中的系统管理
工具smitty。
2. 建立一个文件系统,该文件系统挂在根目录的informix目录下,不要创建该目录,在创建该文件系统时指明挂在/informix系统自动会创建该目录,文件系统要有1G大小。
#smitty/System Storage Management/File Systems/ Add File Systems/Journaled File System/Add a Journaled File Syste/Add a Standard Journaled File System
选择rootvg
设置SIZE of file system等于1000兆×1024K×2BLOCK=2048000BLOCK
设置MOUNT POINT为/Informix
设置Mount AUTOMATICALLY at system restart?为yes
#mount /informix
3. 创建用户组informix。该组组号必须大于或等于100。
#smitty/Security & Users/Groups/Add a Group
设置Group NAME为informix
4. 创建用户informix。(修改)该用户主目录为/informix,用户组为informix,用户口令为informix(可以任意更改)。其用户号必须大于或等于100。
a.#smitty/Security & Users/Users/Add a User/
设置User NAME为informix
设置Primary GROUP为informix
设置HOME
Directory为/informix
b.设置完之后,退到上级菜单选择Change a User's Pass
Word,输入informix用户名,接着输入用户新密码;
c.退出菜单,将/informix目录的宿主改为informix:informix
chown informix:informix /informix
5. 设置环境变量INFORMIXDIR 和PATH 等:
用informix用户登陆,在文件/Informix/.profile中加入如下环境变量,然后退出用户重新登陆:
INFORMIXDIR=/informix
PATH=$INFORMIXDIR/bin:$PATH
TERMCAP=$INFORMIXDIR/etc/termcap
INFORMIXSERVER=map
ONCONFIG=onconfig.map
export INFORMIXDIR PATH TERMCAP INFORMIXSERVER ONCONFIG
6. 退出用户,再登录,使环境变量生效,可用如下命令来查看:
$env |grep INFORMIXSERVER
1.2 IBM Informix产品安装顺序
INFORMIX 产 品 安 装 顺 序 如 下:
1. 数据库服务器,如IDS 9.21;
2. 客户端开发工具包,如ClientSDK 2.70CU1;
1.3 装入INFORMIX产品并运行安装程序
(注:以下安装一定要用INFORMIX用户登录)
1. IBM INFORMIX Dynamic Server 9.21 产品
(1). 插入IBM INFORMIX Dynamic Server 9.21安装
光盘 (2). 导入IBM INFORMIX Dynamic Server 9.21安装文件:
$ mount /cdrom //假设光驱文件系统是挂在/cdrom目录下
$ cpio -icumdvB < /cdrom/IDS/ids.cpi
也可以通过局域网将ids.cpi传送到/informix目录下,以上两个操作就改成$ cpio -icumdvB < ids.cpi
(3). 运行IBM INFORMIX Dynamic Server 9.21 相应的安装程序:
$ ./installserver
当显示:Enter your serial number (e.g.INF#X999999,) > 时,输入产品标签上的序列号。(AAD#J298231)
当显示:Enter your serial number KEY (uppercase letters only) > 时,输入产品标签上的序列号键值。(HSDJJH)
当显示:Installation of INFORMIX ONLINE complete 时,表明安装完成。
(4). 用root用户执行如下:(修改相关文件的权限)
# ./RUN_AS_ROOT.server
2 IBM Informix数据库产品的配置过程
(实际配置时修改相关的物理设备或目录的名称)
2.1 准备数据库空间
1. INFORMIX 数据库管理系统和应用系统使用AIX Unix文件系统。
2. INFORMIX 数据库数据空间使用AIX Unix 裸设备,不需要建立文件系统,不需要执行mount命令。
* 对于AIX Unix,裸设备为逻辑卷(Logical Volume).
* 所有的裸设备均使用字符式裸设备文件名(/dev下命令"ls -l"输出以c打头的设备名).
* 裸设备所取的名称一定要用给定的名称.
3. 划分原则如下:
数据库的空间可以逻辑分为:数据库系统使用空间和数据库用户使用空间。其中数据库系统使用空间包括Informix root空间(rootdbs)、物理
日志空间(phydbs)、逻辑日志空间(logdbs)和临时表空间(tempdbs)。数据库用户使用空间可以包括数据空间(datadbs)和索引空间(idxdbs)。
为减少并发用户的数据冲突,尽量将系统和用户数据分开。为提高数据处理的并发特点,可以将表数据分片(作用是可以使用到数据库的并发处
理特性、备份恢复的最小单位、提高数据表的最大容量等)。在建立数据dbspace时,可以多建立几个,以利于以后数据表的分片。
4. IBM硬盘划分如下:
硬盘划分:
使用AIX 管理工具smitty lv将共享硬盘划分为下列逻辑卷:
生产数据库部分(限制:chunk的最大容量为2G,因此划分的lv不要超过2G,以下以1G举例)
(1)Informix 根数据卷 320M
裸设备映射系统文件名 空间 裸设备名称
/dev/rrootdbs 320M rootdbs
创建过程:
#smitty/ System Storage Management/ Logical Volume Manage/ Logical Volumes/ Add a Logical Volume
选择rootvg
设置Logical volume NAME为rootdbs
设置Number of LOGICAL PARTITIONS为320/PP(PP为物理分区大小,文档开头有介绍如何查询PP值,一般为4兆,8兆,或32兆)
以下建裸设备过程雷同。
(2)Informix 物理日志卷 448M
裸设备映射系统文件名 空间 裸设备名称
/dev/rphydbs 448M phydbs
(3)Informix 逻辑日志卷 1.28G
裸设备映射系统文件名 空间 裸设备名称
/dev/rlogdbs 1.28GB logdbs
(4)Informix 临时表空间卷 640M
裸设备映射系统文件名 空间 裸设备名称
/dev/rtempdbs 640 tempdbs
(5)应用数据使用空间卷/应用索引使用空间卷2.56G(可以根据数据量的大小,建立多几个数据空间卷)
裸设备映射系统文件名 空间 裸设备名称
/dev/rmapdbs1 1.28GB mapdbs1
/dev/rmapdbs2 1.28GB mapdbs2
5. 设置数据设备文件的权限并配置网络服务端口:
# chmod 666 /dev/console
# chmod 660 /dev/r*dbs*
# chown informix:informix /dev/r*dbs*
# cd /etc
使用vi编辑工具将下列内容加入到/etc/services文件中:
sql_map 3333/tcp #informix
数据库服务器IP服务名(sql_map)在配置sqlhosts文件中使用。
2.2 修改AIX Unix内核参数
以root登录,修改内核参数
1. 使用AIX 管理工具smitty aio 进入管理状态,修改如下参数:
进入Change / Show Characteristics of Asynchronous I/O
修改STATE to be configured at system restart [available]
2.3 初始化数据库
1. 连接裸设备字符式文件名。
通过ln 命令连接到 /informix/data 目录下相应的文件名:
$ cd
$ mkdir data
$ cd data
$ ln -s /dev/rrootdbs rootdbs
$ ln -s /dev/rphydbs phydbs
$ ln -s /dev/rlogdbs logdbs
$ ln -s /dev/rtempdbs tempdbs
$ ln -s /dev/rmapdbs1 mapdbs1
$ ln -s /dev/rmapdbs2 mapdbs2
2. 修改Informix配置文件onconfig.map:
$ cd etc
$ cp onconfig.std onconfig.map
使用vi 编辑工具按以下建议内容修改onconfig.map中的内容:
ROOTNAME rootdbs
ROOTPATH /informix/data/rootdbs
ROOTSIZE 320000(320M,此大小只是参考,以实际建立的裸设备大小为准)
MSGPATH /informix/online.log
TYPEDEV /dev/null
LTYPEDEV /dev/null
DBSERVERNAME map
NETTYPE soctcp,1,10,CPU
LOCKS 100000 (安照默认即可)
BUFFERS 20000 (安照默认即可)
LOGSMAX 32
3. 修改$INFORMIXDIR/etc/sqlhosts 文件
$ cd
$ cd etc
$ cp sqlhosts.std sqlhosts
$ vi sqlhosts
增加如下内容
#注释
map onsoctcp hostname sql_map
注: 为数据库服务器名,与.profil中定义的要一致。
为虚拟主机名,要与/etc/hosts中的主机名一致。
为数据库服务端口号,要与/etc/services中的数
据库服务端口号一致。
4. 初始化数据库:(危险步骤!!不要对正常的数据库使用以下命令,仅当第一次初始化数据库时使用)
# shutdown -Fr (AIX要重启,用root用户)
$ oninit -ivy (用informix用户)
注:可用onstat - 命令来查看数据库服务启动情况或export TERM=vt100,用dbaccess数据库管理工具来检查。
5. 创建数据库空间:
创建逻辑日志文件、物理日志文件、数据文件及索引文件所用的空间:
1)、使用以下命令行命令:
(注:可用命令onstat -d 查看创建的情况)
$ onspaces -c -d phydbs -p /informix/data/phydbs -o 0 -s 447000 (建立dbspace phydbs)
$ onspaces -c -d logdbs -p /informix/data/logdbs -o 0 -s 1280000 (建立dbspace logdbs)
$ onspaces -c -d tempdbs -t -p /informix/data/tempdbs -o 0 -s 640000 (建立dbspace tempdbs)
$ onspaces -c -d mapdbs -p /informix/data/mapdbs1 -o 0 -s 1280000 (建立dbspace mapdbs)
$ onspaces -a mapdbs -p /informix/data/mapdbs2 -o 0 -s 1280000 (添加chunk 到dbspace mapdbs中)
......
6. 改变逻辑日志和物理日志的位置,大小和个数:
1) 修改数据库状态为单用户维护状态
$ onmode -uy
2) 将物理日志从缺省的rootdbs上移到phydbs上
$ onparams -p -d phydbs -s 190000
3) 在logdbs上划分13个100M的逻辑日志
$ onparams -a -d logdbs -s 100000
将上一条命令执行13次
4) 做系统的0 级备份,将新加的逻辑日志变为可用的状态:
$ ontape -s
5) 将当前的逻辑日志位置从rootdbs上的逻辑日志移到logdbs数据库空间上:
(用onstat -l 来查看移动情况)
$ onmode -l
$ onmode -l
$ onmode -l
强行做一次checkpoint操作:
$ onmode -c
现在可以删除在rootdbs_b上的逻辑日志:
(用onstat -l 查看,直到删除为此,可能有6个)
$ onparams -d -l 1 -y
$ onparams -d -l 2 -y
$ onparams -d -l 3 -y
7. 改变数据库到online状态:
$ onmode -m
8. 做一次整个数据库系统的0级备份:
$ ontape -s
选择0
9. 先关闭INFORMIX服务:
$ onmode -ky
10. 启动系统:
$ oninit
$ dbaccess
(使用之前环境变量TERM是否为vt100,命令export TERM=vt100可设置)
3 IBM Informix数据库产品的维护与管理
3.1 Informix数据库的启动
1. 以Informix 登录,执行启动命令:
$ oninit
启动后,执行命令查看Informix状态:
$ onstat -
应显示数据库版本、状态,启动时间和所占内存。
3.2 Informix 数据库的关闭
1. 以Informix 登 录,执行关闭命令:
$ onmode -ky
3.3 Informix数据库的备份
1. 数据备份
数据备份采用Informix所提供的增量备份方式。数据备份使用磁带机(/dev/rmt/0m)。数据备份规划为:每个星期的星期日作0 级备份,即整
个数据库系统的全备份。星期一到星期六作1级备份,即本星期以来数据 库所作修改的备份。
备份日程安排如下:
星 期: 日 一 二 三 四 五 六
备 份 级 别: 0 1 1 1 1 1 1
当需要进行数据库系统恢复时,从本星期的0 级备份和前一天的1级备份 中进行恢复。详细说明为:如果星期一需要恢复,只需从星期日的0级
备份恢复。如果星期二需要恢复,需要从星期日的0 级备份和星期一的1级备份恢复。依此类推,如果星期六需要恢复,需要从星期日的0 级备
份和星期五的1级备份恢复。如果星期日需要恢复,需要从上星期日的0级备份和星期六的1级备份恢复。
另外,由于应用系统需要,每天的备份需要进行两次,批处理前和批处理后分别各作一次。
数据备份操作命令为:(以informix 登 录)
$ ontape -s
please enter the level of archive to be performed (0,1,or 2)
选 择 0 ( 星 期 日)
选 择 1 ( 星 期 一 , 二 , 三, 四, 五, 六)
数据恢复操作命令为:(以informix 登 录)
$ ontape -r
please mount tape 1 on /dev/rmt/0m and press Return to continue ...
按照提示插入0 级备份带、1 级备份带和逻辑日志备份带。
2. 逻辑日志备份
逻辑日志备份采用连续或自动备份方式。逻辑日志备份固定于AIX机器上的一个窗口(连续备份) 。
连续逻辑日志备份操作命令为:(以informix 登 录)
$ ontape -c
连自动辑日志备份操作命令为:(以informix 登 录)
$ ontape -a
逻辑日志备份分单双日进行。每日作批处理前,在AIX机的窗口上中断当天的逻辑日志备份。然后插入新的逻辑备份磁带,键入命令行执行逻辑备份。
3. onbar 备份
以上的备份方式也可以使用onbar 与第三方的备份软件一起使用,但不可和ontape的备份混合使用。
3.4 常用的系统管理命令
在执行系统管理命令之前,使用env 命令查看当前informix 的环境变量属于营销业务还是测试业务。两者之间使用设置环境变量命令互相转变:
$cd
$. ./setenv
1. dbexport
将数据库以ASCII方式下载。该命令常用于迁移数据库。
如:命令dbexport -o /informix/db_export stores7,将数据库 stores7 下载到/informix/db_export/stores7.exp 目录下。
数据库模式文件存放在/informix/db_export/stores7.exp/stores7.sql 下。
2. dbimport
与dbexport 配合使用,根据dbexport 的输出创建数据库。
如:命令dbimport -c -i /informix/db_export stores7
根据上例中输出结果创建数据库。
3. dbload
将ASCII 文件中的数据传送到数据库中。
4. dbschema
将数据库的模式输出到文件中,可用于重建数据库或表。
5. oncheck
数据一致性检查和索引修复工具。常用选项有:
oncheck -ce 检查Chunks 和extents
oncheck -cd 检查数据行
oncheck -ci 检查索引值
oncheck -cI 检查索引值和rowid
oncheck -cr 检查系统保留页
oncheck -cc 检查系统目录表
6. oninit
启动OnLine
7. onlog
显示系统逻辑日志的内容。常用选项有:
onlog -l 显示已经备份到磁带上的日志信息
8. onmode
改变OnLine 的运行模式,强制检查点动作,切换逻辑日志以及杀死指定的进程。常用选项有:
onmode -k 关闭OnLine
onmode -c 强制检查点动作
onmode -l 切换逻辑日志到下一个逻辑日志文件
onmode -z 杀死指定的进程
onmode -F 释放多余的内存
onmode -a 动态分配内存
9. onparams
改变OnLine 的逻辑日志和物理日志的配置参数。(添加逻辑日志时使用)
10. onspaces
创建、删除和修改dbspace、chunk工具。
11. ontape
进行逻辑日志的备份,改变数据库日志的状态,执行数据恢复。常用选项有:
ontape -a 备份所有已满的逻辑日志
ontape -c 启动连续逻辑日志备份
ontape -s 启动数据备份
ontape -r 启动数据恢复
ontape -s -B | -N | -U 数据库名 改变数据库日志的状态
12. onstat
监视数据库的操作。常用选项有:
onstat --help 显示所有信息help
onstat - 显示数据库状态信息
onstat -l 显示物理日志和逻辑日志信息
onstat -g ses 显示用户线索信息
onstat -g sql 显示sql语句
onstat -k 显示锁信息
onstat -x 显示事物信息
onstat -d 显示数据库空间使用信息
onstat -D 显示CHUNK读写信息
onstat -c 显示配置信息
onstat -m 显示online.log最后20行信息
onstat -p 显示性能信息
onstat -r 周期性重复显示信息
onstat -u 显示用户信息
onstat -z 将所有统计值置为0
onstat -g ath 显示线程
onstat -g seg 显示内存信息
onstat -g rea 显示等待线程
onstat -g act 显示活动线程
onstat -g iof 显示CHUNK读写信息
onstat -g ioq 显示AIO队列信息
onstat -g ntu 显示网络端口读写信息
onstat -g ntd 显示线程读写信息
13. 在x-Windows下可以运行的程序
$ onperf 数据库性能监控
$ ipload Informix最快的load数据工具
$ onpload ipload的命令行方式工具
14. onbar
$ onbar 支持IBM光盘库、磁带库的备份工具
15. Dbaccess
$ dbaccess 最常用的数据库管理(库、表、索引)工具
16. onmonitor
$ onmonitor 菜单界面的Informix数据库管理工具
17. Update statistics 需要定期处理,最好每天都做
对性能最有影响的SQL语句
18. set explain on 打开分析SQL语句性能的开关
19. dbaccessdemo7 建立demo数据库
3.5 数据库导入/导出
Informix数据库在不同配置(如数据库空间大小、名称等)的系统上进行恢复与备份时,使用ontape、onbar等方式备份的数据库可能无法恢复。推荐使用导入dbimport/导出dbexport方式进行备份与恢复。
3.5.1 数据库导出(备份)
$ cd /informix ; mkdir export_db 建立导出目录,已存在则可跳过
$ dbexport db_name -o /informix/export_db 导出数据库db_name
$ tar cvf db_name.tar /informix/export_db 打包export_db目录为db_name.tar
$ compress db_name.tar 压缩为.Z文件
3.5.2 数据库导入(恢复、新建)
$ cd /informix
$ uncompress -c db_name.tar.Z | tar xvf - 解压缩、解包
$ dbimport -d mapdbs_sd -l buffered -i <目录, db_name.exp的父目录> db_name
参数说明:
-d mapdbs_db 指定dbspace为mapdbs_sd,应根据实际修改,注意:必须指定本参数,否则数据库可能会建立在rootdbs。
-l buffered 指定数据库为buffered日志模式
db_name 数据库名,必须与目录db_name.exp匹配
如果需要改变数据库的名称,如改变数据库名db_name为new_db_name则在导入前必须进行如下:
a) 改变文件db_name.exp/db_name.sql为db_name.exp/new_db_name.sql,“.sql”不变 ;
$ cd db_name.exp
$ mv db_name.sql new_db_name.sql
b) 改变目录db_name.exp为new_db_name.exp,“.exp”不变;
$ mv db_name.exp new_db_name.exp
2.3.5.3 修改数据库日志模式
$ ontape -U db_name
如果失败,则可能需要0级备份,可使用如下命令
$ ontape -s -L 0 -U db_name
$ onmonitor
选择Status/Databases可查看状态。
2.3.6 数据库错误码查询方法
Informix的错误码可通过命令finderr查询错误详细信息,该命令在安装目录的bin目录(如/informix/bin)下。
$ finderr 107 查询错误代码107的详细信息
$ finderr 显示其帮助