ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle在AIX系统上通过tar包安装,sqlplus报aio错误

oracle在AIX系统上通过tar包安装,sqlplus报aio错误

原创 Linux操作系统 作者:wengtf 时间:2012-04-16 19:07:40 0 删除 编辑

场景1:从别的机器tar  oracle整个软件目录到新的aix系统,启动sqlplus时候:

$ sqlplus / as sysdba
exec(): 0509-036 Cannot load program sqlplus because of the following errors:
        0509-136 Symbol resolution failed for /usr/lib/libc.a[aio_64.o] because:
        0509-136  Symbol kaio_rdwr64 (number 0) is not exported from dependent module /unix.
        0509-136  Symbol listio64 (number 1) is not exported from dependent module /unix.
        0509-136  Symbol acancel64 (number 2) is not exported from dependent module /unix.

原因:原因是AIX操作系统的异步IO没有开启。

解决1chdev -P -l aio0 -a autoconfig='available'
aio0 changed

解决2:(网上记录oracle for aix64bit 的5L貌似没有rootpre.sh,故此操作方法,得找得到这个rootpre.sh)如果当时的oracle安装目录还在(实在不行下以个来用),使用rootpre.sh脚本开启异步IO,会自动启异步IO。

网友的放出来的rootpre.sh脚本,以备情况紧急时之用:

#====================================================================================
#======================= configure Asynchronous I/O =================================
#====================================================================================

#--- function to check the autoconfig value on an AIO device
is_autoconfig_available () {
   DEVICE=${1}
   VALUE=`$LSATTR -E -l ${DEVICE}|${GREP} autoconfig|${AWK} '{print $2}'`
   if [ "${VALUE}" = "available" ]; then
      return 1
   else
      return -1
   fi
}

#--- In AIX 6.1 and newer AIO is already configured and ioo is used,
#---    not chdev to modify AIO configuration
if [ $OSVER -lt 6 ]; then
  log_con "\nConfiguring Asynchronous I/O...."
  AIO=`${LSDEV} -C -t aio|${AWK} '{print $2}'`
  case ${AIO} in
    *Available*) log_con "Asynchronous I/O is already defined"
               is_autoconfig_available "aio0"
               if [ $? -ne 1 ]; then
                  log_con "Setting autoconfig to available for aio0"
                  log_do "${CHDEV} -P -l aio0 -a autoconfig=available"
               fi
               ;;
      *Defined*) log_do "${MKDEV} -l aio0"
               log_do "${CHDEV} -P -l aio0 -a autoconfig=available"
               ;;
            *) log_con "Asynchronous I/O is not installed on this system."
               log_con "You will need to install it, and either configure it yourself using"
               log_con "'smit aio' or rerun the Oracle root installation procedure."
               ;;
  esac

  #--- configure POSIX AIO if AIX 5.2 or greater, we may want to use it
  if [ ${OSVER}${OSREL} -ge 52 ]; then
    log_con "\nConfiguring POSIX Asynchronous I/O...."
    POSIX_AIO=`${LSDEV} -C -t posix_aio|${AWK} '{print $2}'`
    case ${POSIX_AIO} in
      *Available*) log_con "Posix Asynchronous I/O is already defined"
                   is_autoconfig_available "posix_aio0"
                   if [ $? -ne 1 ]; then
                      log_con "Setting autoconfig to available for posix_aio0"
                      log_do "${CHDEV} -P -l posix_aio0 -a autoconfig=available"
                   fi
                   ;;
        *Defined*) log_do "${MKDEV} -l posix_aio0"
                   log_do "${CHDEV} -P -l posix_aio0 -a autoconfig=available"
                   ;;
                *) log_con "Posix Asynchronous I/O is not installed on this system."
                   log_con "You will need to install it, and either configure it yourself using"
                   log_con "'smit aio' or rerun the Oracle root installation procedure."
                   ;;
    esac
  fi
fi



 


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22907091/viewspace-721374/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-04-07

  • 博文量
    62
  • 访问量
    188428