Chinaunix首页 | 论坛 | 博客
  • 博客访问: 90990200
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-04-07 07:56:05

  出处:Unix爱好者家园unix-cd.com   

操作系统: AIX 4.3.3 
数据库产品:IBM Informix ClientSDK 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 Password,输入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 显示其帮助 
阅读(597) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~