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

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-04-08 16:07:54

作者:Neo  出处: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
    
    
   【发表回复】【查看论坛原帖】【添加到收藏夹】【关闭】 
   --------------------------------------------------------------------------------
    geniiking 回复于:2004-06-14 16:22:02 
   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中的数 
   据库服务端口号一致。
    
   --------------------------------------------------------------------------------
    geniiking 回复于:2004-06-14 16:23:54 
   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可设置)
    
   --------------------------------------------------------------------------------
    geniiking 回复于:2004-06-14 16:24:39 
   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 显示其帮助 
阅读(947) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~