INFORMIX FAQ(3)
如何判断数据库性能变差是由于网络的原因?
很多性能的问题是由于网络引起的,包括网络硬件故障和网络设置的问题。要确认是否存在网络方面的问题,可以在服务器上执行以下几个命令:
arp -a
netstat -r
如果这执行这两个命令后的输出不正常,就可以判定网络存在问题。当arp -a 命令的输出发生暂停,并且显示一个IP地址,你就可以找到故障发生的节点(这并不能说明这个节点本身有问题)。当netstat -r的输出发生暂停,可能存在路由方面的问题,如果需要,可以用“snoop”命令来进行进一步的检查,直到找到问题的根源。
如何启动KAIO(异步IO)
KAIO (Kernel Asyncronous I/O) 是informix7.x的一个特征,大多数的平台都支持这种特征,
假设:
1)你的平台支持这个功能(检查$INFORMIXDIR/release版本中的内容看看是否你的平台支持KAIO)
2)你使用的是裸分区
以下是一些UNIX系统启动KAIO的步骤:
HP-UX:
1.关闭online
2.安装特殊的设备驱动程序
进入SAM ; kernel cfg; drivers; select asyncdsk; actions; add driver to kernel; create a new kernel; move kernel into place and continue shutdown [reboot] now...
3.创建特殊的异步设备文件
mknod /dev/async c 101 1
4.临时设置KAIO环境变量。这个变量需要在启动脚本中进行设置:
export KAIOON=1
5.启动online
6.检查KAIO线索
使用命令onstat -g ath
AIX 4.1.5
/usr/sbin/mkdev -l aio0
你必须在每次系统启动的时候作这些工作,或者将其放在/etc/inittab文件中:
kaio:2:wait:/usr/sbin/mkdev -l aio0
如何使用onbar对一个dbspace进行在线的热恢复
export ARCHIVE_TEST=true
使用onstat -d 来选择一个你想要将其标记为down的chunk,并且找到其对应的dbspace名
onmode -o 'chunk number'; - 对每个被标记为down状态的chunk执行这个操作
onmode -O :让down掉的dbspaces不会堵塞checkpoints的发生,-回答‘YES’会将发生I/O错误的 dbspaces变为不可用状态,并且要求从归档数据中恢复这个dbspace。
onbar -r 'dbspace name'
哪些查询只能使用单线索(不能并行化)?
如何加速排序和创建索引的速度?
对于大的排序操作象创建索引和更新统计信息,将环境变量PSORT_DBTEMP 尽可能的设置为较大的值(最少为3,记住这个最小值可能会限制排序数据的大小)。同时,,设置PSORT_NPROCS 为一个20到40之间的一个值也会加快排序的速度,只要你可以为一个任务分配足够多的资源。这样作可能会为你节约15或者20分钟的排序时间。
可以将ontape输出到一个磁盘的文件中吗?
informix"支持"将ontape输出到一个文件中。
然而,因为ontape默认是输出到磁带设备上,并且所有的动作都是以此为基础的。你有“责任”做所有的这些事情来满足程序的需求。(如模拟一个压缩操作,当磁带满的时候换带。处理倒带操作,逻辑日志的输出和溢出等等)你可以在互联网上的informix 用户组站点(http://www.iiug.org)上找到一些shell 脚本可以用来来模拟以上的功能。
输出文件的大小的能够到达多大而不会出错,这个大小高度依赖操作系统和ontape的版本。在Informix Dynamic Server versions 7.2以前的版本,ontape支持的文件不能超过2GB。在7.2以上的版本中,这个限制来自操作系统,一般还是2GB,编写写一个程序,当磁盘文件的大小快要到达2GB的时候就交换到另外一个文件,让ontape认为是正在换带,这并不是特别难。当然,挑战来自为这些文件作标记,并且让它们在ontape进行数据恢复的时候能够以正确的顺序来读取这些文件。
如果是“关键”的系统,你必须要“彻底”测试归档和恢复功能是否能够正常进行。并且保存好磁盘的规划信息,详细做好文档记录,让除你之外的其它人根据这些文档就可以处理灾难发生时候的数据恢复。