数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
如何在Hp的主机打开异步IO

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

一、说说异步IO(Aio)
   在Hp-ux中,当采用同步IO的方式时,这就意味着在下一次写IO进行之前,前一次IO必须返回"成功写完成"的信息,可以看到同步IO方式在IO负荷比较大的系统存在着性能的瓶颈。而采用异步IO方式时,在写请求发出之后操作系统会立即反回给应用一个写成功的信息,余下的事就由操作系统完成了。在Hp-ux中使用Oracle、Sybase这些数据库时,为减少IO的瓶颈、提高库的性能,建议打开异步IO,Hp在这方面相对Aix来说相对麻烦一些。

二、Hp-ux方面打开Aio需要做的设置
1、Hp-ux使用Aio的补丁要求
 a、Hp-ux 11.00的补丁要求为:
   PHKL_22126: s700_800 VM,async,hyperfabric
 b、HP-UX 11i的补丁要求为:
   PHKL_25212 vm preemption point, mlock/async_io
   PHKL_25506 asyncio driver patch
   使用swlist -l product检查一下有无如上的补丁,如没有联系Hp的supporter将其打上。
2、创建aio的字符设备
 a、建立aio字符设备
   #/sbin/mknod /dev/async c 101 0x0
 b、调整设备的属主,这个例中假定用户为oracle,组为dba
   #chown oracle:dba /dev/async
 c、调整设备的权限位
   #chmod 660 /dev/async
3、Hp-ux要要调整的内核参数
  调整内核参数据需要使用root用户
  a、把asyncdsk置为in
    sam-> Kernel Configuration -> Drivers->asyncdsk调整为in
  b、调整max_async_ports参数
    这个参数限定的是同时使用/dev/async设备的最大进程数,对于Oracle这个参数应大于等于init<sid>.ora中的processes+后台的进程数,对于sybase它所标识的是最大的工作进程数。当max_async_ports的值达到时,其余的进程将采用同步IO的方式。
  c、调整set aio_max_ops参数
    这个参数所限定的是在任意一个时间点排队的Aio操作的最大的数目,一般保持默认值就可以,可以用glance监测一下。
  d、调整fs_async参数
   这个参数表明的是对文件系统的写是否采用Aio的方式,设定fs_async=0指定对于文件系统写不用Aio,设定fs_async=1则指定使用aio的方式,Oracle不建议将这个什设置为1
4、其它方面设置
  重中之重的一点是一定要为oracle用户的组(一般为dba)设定MLOCK的权限,否则在数据库启动会报错或在库运行时会出现莫名其妙的数据库hang的现象,我简单说一下。
  a、涉及到两个命令getprivgrp用于检查组有什么权限,setprivgrp用于设定组的权限,举个例子大家就明白了
   eg1:检查dba组是否有MLOCK的权限
     root#getprivgrp dba
   eg2:设定dba组的MLOCK的权限
     roolt#setprivgrp dba MLOCK
  b、也可以把设定加入配置文件中,这样在下次启动时就自动生效了。
   在/etc/privgroup中加入如下的一行:
    dba MLOCK   
   如果privgroup不存在,可以编辑一个。

三、数据库方面使用Aio要要做的设置
1、oracle方面
 a. 7.3.0以前的版本   :不需要配置init<sid>.ora中的参数
 b. 7.3.X             :在init<sid>.ora中设定use_async_io = TRUE
 c. 8.X 及以后的版本  :在init<sid>.ora中设定disk_asynch_io = TRUE
2、sybase方面
  默认就是打开aio的。

四、其它
1、检查一下aio是否生效了
  #fuser /dev/async
  有进程列出来说明aio已经生效了。
2、我的hp11.00+oracle8.1.6.0.0的环境启用aio时而不时的会出现坏块的问题(ora-01578),请大家注意,但在hp11i的系统与Oracle8i,9i配  合中没出现过这个问题。




相关文章

相关软件