`
fhxi20fhxi
  • 浏览: 14022 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

AIX下RAC巡检文档

 
阅读更多

AIX下RAC巡检文档
2010年06月27日
  现供职于计算机系统集成公司。 主要从事ORACLE数据库架构、迁移、备份、维护服务, UNIX平台小机、pcserver,存储的搭建、维护服务。 也负责提供BE、NBU、TSM等备份软件平台服务。
  
  
  
  
  
  
  
  
  详细内容见我的资源(带图) 1>    查看操作系统(AIX 文件系统是否合理)
  方式: " df -m ,查看所有的文件系统大小 是否>2G"
  结果类似下面:
  $df -m
  Filesystem    MB blocks      Free %Used    Iused %Iused Mounted on
  /dev/hd4        2048.00   1980.01    4%     6837     2% /
  /dev/hd2       10240.00   8068.59   22%    44971     3% /usr
  /dev/hd9var     8192.00   7868.97    4%     7278     1% /var
  /dev/hd3        4096.00   3496.39   15%     1019     1% /tmp
  /dev/hd1       20480.00  15137.79   27%     3713     1% /home
  /proc                 -         -    -         -     -  /proc
  /dev/hd10opt   20480.00  14830.66   28%    33118     1% /opt
  /dev/arch1_lv 207360.00 207320.46    1%        5     1% /arch1
  zzrac2:/arch2 208896.00 208858.72    1%        5     1% /arch2
  解决方案:
  如果不是,需要修改过小的fs
  使用命令smitty chfs->change /show characteristic of an enhanced Journaled File System
  修改对应的文件系统的大小
  2>    查看操作系统是否打齐补丁( oslevel -s  instfix -i )
  方式:"oslevel  s 或 insfix  i |grep ML"
  结果类似下面:
  # oslevel -s 5300-10-02-0943   # instfix -i |grep ML     All filesets for 5.3.0.0_AIX_ML were found.     All filesets for 5300-01_AIX_ML were found.     All filesets for 5300-02_AIX_ML were found.     All filesets for 5300-03_AIX_ML were found.     All filesets for 5300-04_AIX_ML were found.     All filesets for 5300-05_AIX_ML were found.     All filesets for 5300-06_AIX_ML were found.     Not all filesets for 5300-07_AIX_ML were found.     Not all filesets for 5300-08_AIX_ML were found.     Not all filesets for 5300-09_AIX_ML were found.     Not all filesets for 5300-10_AIX_ML were found.   # oslevel -s     5300-06-12-0920 解决方案:
  如果不是,则查看到目前版本需要哪些补丁包,(oslevel  rl 5300-10,并通过smitty installp来升级补丁包)
  oslevel -rl 5300-10
  3>查看操作系统的rootvg 是否做了mirror ("lsvg -l rootvg"),查看LPS 和PPS是不是1对2的关系
  方式:"lsvg -l rootvg"
  类似结果:
  # lsvg -l rootvg
  rootvg:
  LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
  hd5                 boot       1       1       1    closed/syncd  N/A
  hd6                 paging     32      32      1    open/syncd    N/A
  hd8                 jfs2log    1       1       1    open/syncd    N/A
  hd4                 jfs2       8       8       1    open/syncd    /
  hd2                 jfs2       40      40      1    open/syncd    /usr
  hd9var              jfs2       32      32      1    open/syncd    /var
  hd3                 jfs2       16      16      1    open/syncd    /tmp
  hd1                 jfs2       80      80      1    open/syncd    /home
  hd10opt             jfs2       80      80      1    open/syncd    /opt
  lg_dumplv           sysdump    8       8       1    open/syncd    N/A
  解决方法:
  如果不是1对2的关系(比如上面的列子),而主机的本地磁盘有2块以上,则需要做rootvg的 mirror镜像:
  |||||||||||||||||||||||||||||
  将两块系统磁盘做镜像:
  #smitty extendvg            扩展rootvg,将hdisk1加入到rootvg中
  /usr/sbin/extendvg 'rootvg' 'hdisk1'
  按图中所示选择,将hdisk1加入到rootvg中,按回车
  #smitty mirrorvg               对所选择的VG做镜像。
  如上图,将要做镜像的两块硬盘选中,按回车,开始镜像。
  上图所示,镜像成功完成。
  #bosboot  ad hdisk1                         将启动扇区写入hdisk1
  #bootlist  m normal rmt0 cd0 hdisk0 hdisk1         改变启动顺序,将hdisk1加入启动序列。   到此镜像完成,两块硬盘将同时工作,互为镜像。
  ||||||||||||||||||||||||||||||||||||||||||||| 4、查看bootlist是否正常,推荐从硬盘开始引导:
  方式:"# bootlist -m normal  o" 查看是不是包含了镜像的两块本地硬盘
  结果应该类似下面
  # bootlist -m normal -o
  hdisk0 blv=hd5
  hdisk1 blv=hd5
  否则需要修改bootlist:
  修改方式:
  如果和预期不符合,可以通过下面的方式来修改:
  Diag->task selection->display or change Bootlist
  5、查看AIX参数
  原理
  调整AIX上的文件缓存
  在AIX上,可以通过vmtune命令中的MINPERM和MAXPERM参数,调整系统文件缓存来控制内存交换操作,MINPERM和MAXPERM参数的调整应遵照以下的原则:
  当内存中的文件缓存页在MINPERM以下时,内存页交换算法同时交换文件缓存页和程序页(computational pages)。
  当内存中的文件缓存页在MAXPERM以上时,内存页交换算法只交换文件缓存页。
  当内存中的文件缓存页在MINPERM和MAXPERM之间时,内存页交换算法通常只交换文件缓存页,但如果文件缓存页的交换率大于程序页时,程序页也同样被交换。
  MINPERM和MAXPERM参数的缺省值: 
  MINPERM = ((number of memory page) - 1024)*0.2
  MAXPERM = ((number of memory page) - 1024)*0.8 
  可以用以下命令将MINPERM设为5%的内存页,而MAXPERM设为20%的内存页。
  # vmtune -p 5 -P 20  缺省值分别为20%和80%。
  在Oracle数据库应用的环境下,可以将MINPERM和MAXPERM分别设为5%和20%甚至更小,从而使内存更多地被用于Oracle的SGA而不是系统的文件缓存。
  (查看文件系统内存占用的份额规定,如果oracle 采用裸设备方式存储文件,则文件系统内存分配比率建议为内存的5%-10%)
  方式:"nmon"
  结果类似下面:
  nmon 查看内存的属性
  着重关注,Min/Maxperm部分,这一块代表文件系统内存能够占用的部分,建议内存为5(min)-10(max)留给文件系统。
  如果不符合:
  通过下面的命令来修改文件系统内存使用的阈值:
  |||||||||||||||||
  修改内存参数:
  minperm%=2 初始化把内存的2%给文件内存用 1.4G 归档,ftp 会使用
  #vmo -r  -o minperm%=5
  #vmo -r  -o maxclient%=10
  #vmo -r  -o maxperm%=10
  重启后参数才能起作用
  |||||||||||||||||||||
  6、查看pagespace是否符合要求,"lsattr -El mem0" "lsps -a"
  方式:(lsdev  Cc memory ,lssattr  El mem0,lsps -a)
  结果类似下面,可以看到内存的大小为16G,而pagesize为8G
  # 
  # lsdev -Cc memory
  L2cache0 Available  L2 Cache
  mem0     Available  Memory
  # lsattr -El mem0      (物理内存大小)
  goodsize 16384 Amount of usable physical memory in Mbytes False
  size     16384 Total amount of physical memory in Mbytes  False
  如果内存内存的两倍
  # lsps  a (pagesize大小)
  Page Space      Physical Volume   Volume Group    Size %Used Active  Auto  Type
  hd6             hdisk0            rootvg        8192MB     1   yes   yes    lv
  解决方法:
  如果和预期不一样,尝试修改pagesize大小:
  ||||||||||||||||||||||
  修改以上几个参数。
  修改Paging Space空间
  #smitty lvm
  选择 Paging Space
  选择 Change / Show Characteristics of a Paging Space
  选择 hd6
  在NUMBER of additional logical partitions输入:60
  将Paging Space空间扩展为8GB
  检查页面空间大小
  # lsps -a
  Page Space      Physical Volume   Volume Group    Size %Used Active  Auto  Type
  hd6             hdisk0            rootvg         8192MB     1   yes   yes    lv
  同样方式修改另一台主机的系统参数。
  ||||||||||||||||||||||||||| 查看CPU 参数,相关信息是否匹配   "prtconf"
  方式:"prtconf"
  类似结果如下:
  # prtconf
  System Model: IBM,8204-E8A
  Machine Serial Number: *****
  Processor Type: PowerPC_POWER6 (power 芯片类型,为power6)
  Processor Implementation Mode: POWER 6 
  Processor Version: PV_6_Compat
  Number Of Processors: 4  (CPU  core 个数 4个,即2个双核的物理CPU)
  Processor Clock Speed: 3503 MHz (CPU 主频 3.5G)
  CPU Type: 64-bit 
  Kernel Type: 64-bit (内核版本 64位)
  LPAR Info: 1 zzrac1
  Memory Size: 16384 MB(内存大小16G)
  Good Memory Size: 16384 MB
  Platform Firmware level: EL350_049
  Firmware Version: IBM,EL350_049
  Console Login: enable
  Auto Restart: true
  Full Core: false
  Network Information
  Host Name: zzrac1
  IP Address: 10.220.97.51
  Sub Netmask: 255.255.255.0
  Gateway: 10.220.97.254
  Name Server: 
  Domain Name: 
  Paging Space Information
  Total Paging Space: 8192MB
  Percent Used: 1%
  Volume Groups Information
  ================================================== ============================ 
  rootvg:
  PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
  hdisk0            active            546         248         79..00..00..60..109
  ================================================== ============================ 
  0516-010 : Volume group must be varied on; use varyonvg command.
  ================================================== ============================ 
  0516-010 : Volume group must be varied on; use varyonvg command.
  ================================================== ============================ 
  arch1vg:
  PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
  hdisk5            active            812         1           00..00..00..00..01
  ================================================== ============================ 
  INSTALLED RESOURCE LIST
  The following resources are installed on the machine.
  +/- = Added or deleted from Resource List.
  *   = Diagnostic support not available.
  解决方法:
  如何和产品不符,咨询厂家实际情况并修复问题(更换内存?CPU?)
  查看是否属于夏时制(不要是夏时制)[确认tz那行对应的不是TZ=1而是TZ=BEIST-8]
  方法:"more /etc/environment"
  类似结果:
  # more /etc/environment
  # @(#)18       
  1.25  src/bos/etc/environment/environment, cmdsh, bos53A, a2004_
  35B6 8/23/04 04:13:11
  # IBM_PROLOG_BEGIN_TAG 
  # This is an automatically generated prolog. 
  #  
  # bos53A src/bos/etc/environment/environment 1.25 
  #  
  # Licensed Materials - Property of IBM 
  #  
  # (C) COPYRIGHT International Business Machines Corp. 1989,1994 
  # All Rights Reserved 
  #  
  # US Government Users Restricted Rights - Use, duplication or 
  # disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 
  #  
  # IBM_PROLOG_END_TAG 
  #
  # COMPONENT_NAME: (CMDSH) Shell related commands 
  #
  # ORIGINS: 27
  #
  # (C) COPYRIGHT International Business Machines Corp. 1989, 1994
  # All Rights Reserved
  # Licensed Materials - Property of IBM
  #
  # US Government Users Restricted Rights - Use, duplication or
  # disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  #
  ################################################## ##############
  # System wide environment file.  This file should only contain
  #     1.  comment lines which have a # in the first column,
  #     2.  blank lines, and
  #     3.  Lines in the form name=value.
  #
  # WARNING: This file is only for establishing environment variables.
  #          Execution of commands from this file or any lines other
  #          than specified above may cause failure of the initialization 
  #          process.
  #
  # Searching the current directory last is usually a BIG time saver.
  # If /usr/ucb is at the beginning of the PATH the BSD version of commands will
  # be found. 
  #
  PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11 :/sbin:/usr/java14/jre/bin:/us
  r/java14/bin
  TZ=1
  LANG=en_US
  LOCPATH=/usr/lib/nls/loc
  NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L /%N.cat
  LC__FASTMSG=true
  # ODM routines use ODMDIR to determine which objects to operate on
  # the default is /etc/objrepos - this is where the device objects
  # reside, which are required for hardware configuration
  ODMDIR=/etc/objrepos
  TERM=vt100
  # 解决方法:
  ||||||||||||||||||
  若时区不是"BEIST-8",则通过smitty chtz 改时区(改完时区之后需要重启才能生效)
  Smitty chtz->Use DAYLIGHT SAVINGS TIME?(选择no)-> CUT (Coordinated Universal Time) Time Zone  (选择"(BEIST-8)   Peoples Rep. China        (CUT +8)")        
  |||||||||||||||||||
  检查rac两节点是否时间同步,用"date "命令查看(首先确认时区要一致)
  结论,若不同步,通过smitty date改时间
  数据库版本检查,是否为最新:  检查数据库版本和crs的版本是否打到最新(10.2.0.5):
  方法:
  "sqlplus -version", 查看software版本
  "crsctl query crs softwareversion"  查看crs版本
  类似结果
  $ sqlplus -version
  SQL*Plus: Release 10.2.0.5.0   Production
  # crsctl query crs softwareversion
  CRS software version on node [zzrac1] is [10.2.0.5.0]
  解决方案:
  ||||||||||||||
  如果补丁集较低,建议升级补丁:
  1>、应用备份数据
  2>、升级rac crs 
  3>、升级oracle software
  4>、升级库版本
  5>、编译无效的对象
  ||||||||||||||||
  (数据文件如果采用裸设备的方式)检查是否数据库文件关闭了自动扩展(建议关闭自动扩展)(用toad上去观察)
  方案:使用toad检查问价系统状态
  类似结果:
  解决方案:
  关闭相应的数据文件的自动扩展:
  ALTER DATABASE TEMPFILE '/dev/rrac_temp_2G' AUTOEXTEND OFF;
  检查数据库文件是否已经和lv大小相近似(建议扩充文件系统,接近到可扩充的最大文件)
  方法:使用toad检查
  类似结果
  解决方案:(rac_temp_2G对应了8个pp)
  # lsvg -l oraclevg
  oraclevg:
  LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
  rac_ocr_raw_1G      raw        4       4       1    open/syncd    N/A
  rac_vote_raw_1G     raw        4       4       1    open/syncd    N/A
  rac_system_2G       raw        8       8       1    open/syncd    N/A
  rac_sysaux_2G       raw        8       8       1    open/syncd    N/A
  rac_undotbs1_2G     raw        8       8       1    open/syncd    N/A
  rac_undotbs2_2G     raw        8       8       1    open/syncd    N/A
  rac_temp_2G         raw        8       8       1    open/syncd    N/A
  rac_users_2G        raw        8       8       1    open/syncd    N/A
  rac_redo11_4G       raw        16      16      1    open/syncd    N/A
  rac_redo12_4G       raw        16      16      1    open/syncd    N/A
  rac_redo31_4G       raw        16      16      1    open/syncd    N/A
  rac_redo32_4G       raw        16      16      1    open/syncd    N/A
  rac_redo21_4G       raw        16      16      1    open/syncd    N/A
  rac_redo22_4G       raw        16      16      1    open/syncd    N/A
  rac_redo41_4G       raw        16      16      1    open/syncd    N/A
  rac_redo42_4G       raw        16      16      1    open/syncd    N/A
  rac_con1_512m       raw        2       2       1    open/syncd    N/A
  rac_con2_512m       raw        2       2       1    open/syncd    N/A
  rac_con3_512m       raw        2       2       1    open/syncd    N/A
  rac_spfile_512m     raw        2       2       1    closed/syncd  N/A
  查看pp大小(1个pp大小为256M)
  # lsvg oraclevg
  VOLUME GROUP:       oraclevg                 VG IDENTIFIER:  00c976b500004c00000001296240e915
  VG STATE:           active                   PP SIZE:        256 megabyte(s)
  VG PERMISSION:      read/write               TOTAL PPs:      6143 (1572608 megabytes)
  MAX LVs:            256                      FREE PPs:       5951 (1523456 megabytes)
  LVs:                20                       USED PPs:       192 (49152 megabytes)
  OPEN LVs:           19                       QUORUM:         2 (Enabled)
  TOTAL PVs:          1                        VG DESCRIPTORS: 2
  STALE PVs:          0                        STALE PPs:      0
  ACTIVE PVs:         1                        AUTO ON:        no
  Concurrent:         Enhanced-Capable         Auto-Concurrent: Disabled
  VG Mode:            Concurrent                               
  Node ID:            1                        Active Nodes:       
  MAX PPs per VG:     28448                                     
  MAX PPs per PV:     7112                     MAX PVs:        4
  LTG size (Dynamic): 1024 kilobyte(s)         AUTO SYNC:      no
  HOT SPARE:          no                       BB POLICY:      relocatable 
  #
  所以rac_temp_2G 可以扩展到2G(8*256M)
  如果没有扩展到适应大小,用下面命令:(确认lv大小)
  ALTERDATABASETEMPFILE'/dev/rrac_temp_2G'RESIZE2000M;
  |||||||||||||||||||
  查看rac两个节点是否做了时间同步:
  方式:
  1>"lssrc -ls xntpd"
  2>查看同步的时间间隔(poll)
  # xntpdc -c peers
  具体命令
  主节点情况:
  # lssrc -ls xntpd
  Program name:    /usr/sbin/xntpd 
  Version:         3 
  Leap indicator:  00 (No leap second today.) 
  Sys peer:        127.127.1.0 
  Sys stratum:     4 
  Sys precision:   -18 
  Debug/Tracing:   DISABLED 
  Root distance:   0.000000 
  Root dispersion: 0.010010 
  Reference ID:    127.127.1.0 
  Reference time:  cfd147ba.95c06000  Sun, Jun 27 2010 11:44:58.584 
  Broadcast delay: 0.003906 (sec) 
  Auth delay:      0.000122 (sec) 
  System flags:    pll monitor filegen  
  System uptime:   2980 (sec) 
  Clock stability: 0.000000 (sec) 
  Clock frequency: 0.000000 (sec) 
  Peer: 127.127.1.0 
  flags: (configured)(refclock)(sys peer) 
  stratum:  3, version: 3 
  our mode: client, his mode: server 
  Subsystem         Group            PID          Status 
  xntpd            tcpip            127370       active
  次节点的情况
  :
  # lssrc -ls xntpd
  Program name:    /usr/sbin/xntpd 
  Version:         3 
  Leap indicator:  00 (No leap second today.) 
  Sys peer:        zzrac1 
  Sys stratum:     5 
  Sys precision:   -18 
  Debug/Tracing:   DISABLED 
  Root distance:   0.000305 
  Root dispersion: 0.010757 
  Reference ID:    10.220.97.51 
  Reference time:  cfd147b0.aeda5000  Sun, Jun 27 2010 11:44:48.683 
  Broadcast delay: 0.003906 (sec) 
  Auth delay:      0.000122 (sec) 
  System flags:    pll monitor filegen  
  System uptime:   2529 (sec) 
  Clock stability: 0.000000 (sec) 
  Clock frequency: 0.000000 (sec) 
  Peer: zzrac1 
  flags: (configured)(sys peer) 
  stratum:  4, version: 3 
  our mode: client, his mode: server 
  Subsystem         Group            PID          Status 
  xntpd            tcpip            180636       active
  解决方案:
  如果问题无法解决,配置时间服务器的过程如下:
  |||||||| AIX配置时间服务器及客户机实战笔记收藏
  xntpd是关于网络时间协议的守护进程,它遵循了因特网时间服务器的通用标准。在启动 xntpd 时, xntpd 会读取 /etc/ntp.conf 配置文件来确定网络中系统时钟服务器,以 ntp 服务器的系统时间为标准,来调整本机的系统时间。
  可以用 ntpq 命令来显示 xntpd 进程的内部变量。使用 ntp 时应注意,xntpd 服务器和 xntpd 客户端的时钟不能相差超过1000秒。若有大于1000秒的偏移,在客户端启动 xntpd 守护进程前,用 data 命令或 ntpdate 命令调整本机的系统时间,使偏移量在1000秒之内。然后启动 xntpd.
  1. 构造一个NTP环境的基本步骤:
  1.1 设置NTP 服务器(以192.168.5.2为例), 其它NTP客户服务器以此服务器的时间为准,与其进行时间同步.
  1.1.1编辑 /etc/ntp.conf 文件, 内容如下:
  ----------------------------
  #broadcastclient
  server 127.127.1.0
  driftfile /etc/ntp.drift
  tracefile /etc/ntp.trace
  ----------------------------
  请注意文件中的 server 127.127.1.0 这一行, 此处的127.127.1.0 是一特殊的地址,表示NTP主服务器是与自身的系统时钟同步.
  1.1.2编辑好 /etc/ntp.conf后, 启动xntpd守护进程
  # startsrc -s xntpd
  也可通过调用smitty , 使 xntpd 在以后重启服务器时能自动启动.
  # smitty xntpd 
  1.1.3 xntpd 状态查询 , 使用 #lssrc -ls xntpd
  刚启动xntpd时, sys peer 为 'insane', 表明xntpd还没有完成同步, . 
  #lssrc -ls xntpd
  Program name: --/usr/sbin/xntpd
  Version: -------3
  Leap indicator: 11 (Leap indicator is insane.) Sys peer: ------no peer, system is insane ...
  等待 6 - 10 分钟后, sys peer 就不再是 'insane' 了.
  #lssrc -ls xntpd
  Program name: --/usr/sbin/xntpd
  Version: -------3
  Leap indicator: 00 (No leap second today.) Sys peer: ------127.127.1.0 ...
  1.2. NTP客户端的设置
  1.2.1编辑 NTP 客户端上的 /etc/ntp.conf文件, 内容如下:
  ----------------------------
  #broadcastclient
  server 192.168.5.2
  driftfile /etc/ntp.、drift
  tracefile /etc/ntp.trace
  ----------------------------
  其中的 server 192.168.5.2 表明, 此客户端与IP地址为 192.168.5.2 的NTP服务器进行时间同步.
  1.2.2在NTP客户端启动xntpd守护进程
  # startsrc -s xntpd
  也可通过调用smitty , 使 xntpd 在以后重启服务器时能自动启动.
  # smitty xntpd 
  1.2.3查询xntpd的状态
  当 system peer 不为 'insane' 时, 表明客户端已与服务器端成功地进行了同步.
  # lssrc -ls xntpd
  Program name: --/usr/sbin/xntpd
  Version: -------3
  Leap indicator: 00 (No leap second today.) Sys peer: ------192.168.5.2 ...
  1.3. NTP客户端查询NTP服务器
  ntp客户端使用 ntpdate 命令来确认是否可用指定的 ntp 服务器进行时间同步。
  命令的结果会显示客户端与服务器的时间偏移。
  #ntpdate -d 192.168.5.2 ... 18 Jan 15:49:57 ntpdate[98462]: adjust time server 192.168.5.2 offset -0.000868 2 sec 若时间间隔大于1000秒,使用ntpdate 进行手工调整, 如:
  #date
  Thu Jan 18 15:52:00 BEIST 2007
  #ntpdate 192.168.5.2
  18 Jan 15:49:57 ntpdate[23832]: step time server 9.185.43.189 offset 23.40260
  7 sec
  #date
  Thu Jan 18 15:52:00 BEIST 2007
  完成上述操作后 ntp 客户端与 ntp 服务器系统时钟完成同步,ntp 客户端得到了新的系统时间。
  查看同步的时间间隔(poll)
  # xntpdc -c peers
  remote           local    st poll reach   delay offset disp
  ================================================== =====================
  *192.168.5.2     192.168.7.1    4 64   377 0.00230 -0.000426 0.00026
  |||||||||||||||| 文件系统的RAC则要查询AIO设置:
  原理:
  异步IO的设置
  操作系统中最常用的I/O模式是同步I/O。在同步中,当发出一个I/O请求之后,应用程序就会阻塞,知道I/O请求得到满足为止。
  异步I/O(AIO)的基本思想是允许众多并发进程同时发起I/O操作,而不用阻塞或等待任何操作完成。在稍后接收到I/O
  操作完成的通知时,进程就可以检索I/O操作的记结果。
  显然,使用异步IO有助于构建在多用户运算模式下速度更快的I/O方式。在异步I/O的支持下,应用系统(如Oracle数据库),可以避免I/O的重叠操作,高效使用CPU资源。
  Oracle数据库在AIX上运行时,完全支持AIO模型。如果能够正确和优化地使用AIO,则会对Oracle系统进行I/O写入操作带来非常正面的影响。它使Oracle在后台完成I/O操作的同时,继续进行计算和处理,大幅度提高性能。
  在AIX 5L中,无论Oracle 数据文件采用的是JFS2文件系统方式存放,或者是采用裸设备方式存放,异步I/O都是支持的。如果Oracle采用裸设备形式存储数据库文件(数据文件、日志文件、控制文件),由于AIX对于AIO的支持已经完全集成在内核中,所以Oracle数据库的I/O操作本身即异步处理,无需做任何调整。
  如果采用JFS2/JFS文件系统,则Oracle数据局库的I/O操作的异步化,必须由aioserver完成---由aioserver控制读写任务从启动到结束的全过程。因此,aioserver的进程数量也就决定了Oracle可同时读写的任务多少。
  所以,在文件系统数据库模式下,调整AIO的参数是非常必要的。调整该参数可以在SMITTY环境下执行。设定后需要重新启动系统。当然也可以通过下面的命令修改AIO逻辑设备的属性来达到同样的目的:
  方法:
  Smitty chaio
  修改方式:
  #chdev -l aio0  -a  maxservers='100'  -a minservers='50'
  原理: hard limits自AIX 4.1版本开始引入。hard limits 应由AIX系统治理员设置,只有security组的成员可以将此值增大,用户本身可以减小此限定值,但是其更改将随着该用户从系统退出而失效。使用下列命令可以查看hard limits的限定值:
  ulimit -Ha
  soft limits 是AIX核心使用的限制进程对系统资源的使用的上限值。此值可由任何人更改,但不能超出hard limits值。这里要注重的是只有security组的成员可使更改永久生效,普通用户的更改在其退出系统后将失效。使用以下命令可以查看soft limits的设置:
  ulimit -a
  下面为系统的soft limits的默认值:
  3.2 4.1-4.3 
  =============== ================= 
  fsize = 2097151 fsize = 2097151 
  core = 2048 core = 2048 
  cpu = 3600 cpu = -1 
  data = 131072 data = 262144 
  rss = 65536 rss = 65536 
  stack = 8192 stack = 65536 
  nofiles = 2000* nofiles=2000 *  
  * 该值(nofiles)只能在AIX 4.3.1 或以后的版本中更改。
  上述定义作为默认值存放在文件 /etc/security/limits 中,在新用户被加进系统后生效。直接更改此文件中的定义值需要将系统重新启动以便使更改生效。将相应值该为"-1" 表示不受 soft limits的限制(unlimited)。
  下面我们将就各字段逐一进行介绍:
  fsize 用户创建的文件大小限制。此定义值(512字节为单位)为该用户可以生成的最大文件的大小。
  core 生成的core文件大小的限制(512字节为单位)。
  cpu 用户进程可用cpu的限定值(以秒为单位)。普通用户只能将此值减小,root可以将此值增大。这里要注重的是进程使用CPU的时间取决于AIX Kernel(核心程序)进程调度算法,该值在此仅做参考。
  data 进程数据段大小的限定值(以字节为单位)。
  stack 进程堆栈段大小的限定值(以字节为单位)。
  rss 进程常驻内存段的限定值(以字节为单位)。AIX核心并不参考此限定。
  nofiles 进程中打开文件的最大数量。此限定在AIX 4.3.1之前的版本中固定为2000。在AIX 4.3.1及其之后的版本中可将此值增大至32767。
  方式:(ulimit  a)
  cat /etc/security/limits
  理想结果:
  cat /etc/security/limits
  # more /etc/security/limits
  * Sizes are in multiples of 512 byte blocks, CPU time is in seconds
  * fsize      - soft file size in blocks
  * core       - soft core file size in blocks
  * cpu        - soft per process CPU time limit in seconds
  * data       - soft data segment size in blocks
  * stack      - soft stack segment size in blocks
  * rss        - soft real memory usage in blocks
  * nofiles    - soft file descriptor limit
  * fsize_hard - hard file size in blocks
  * core_hard  - hard core file size in blocks
  * cpu_hard   - hard per process CPU time limit in seconds
  * data_hard  - hard data segment size in blocks
  * stack_hard - hard stack segment size in blocks
  * rss_hard   - hard real memory usage in blocks
  * nofiles_hard - hard file descriptor limit
  * The following table contains the default hard values if the
  * hard values are not explicitly defined:
  *
  *   Attribute        Value
  *   ==========    ============
  *   fsize_hard    set to fsize
  *   cpu_hard      set to cpu
  *   core_hard         -1
  *   data_hard         -1
  *   stack_hard      8388608 
  *   rss_hard          -1
  *   nofiles_hard      -1
  *
  * NOTE:  A value of -1 implies "unlimited"
  *
  default:         fsize = -1          core = -1          cpu = -1         data = -1          rss = -1          stack = -1         nofiles = -1 root: daemon: bin: sys: adm: uucp: guest: nobody: lpd: esaadmin:         stack = 393216         stack_hard = 393216 oracle:         nofiles = -1           data = -1         rss = -1         stack = -1         fsize = -1 注意,-1是无限制
  解决办法:
  要修改如上限制,可以采用命令如
  chuser data='-1' rss='-1' stack='-1' fsize='-1' nofiles='-1' oracle 原理: 如何对操作系统进行调优,使操作系统支持最大连接数? 
  在solaris下,在安装oracle前必须要调整系统参数,该参数文件位于/etc/下,名为system,里面有一个参数 semsys:seminfo_semmns=1024,这个值是processor的最终控制值,这个参数表示unix系统总共可以分配的进程。当oracle的进程数超过操作系统的限制时,就会出现这样的错误。maximum number of processes(150) exceeded,现在,你可以检查根据你自己的操作系统检查一下看怎样找到该参数。
  AIX操作系统下,smit chgsys 查看Maximum number of PROCESSES allowed per user 
  系统缺省128。如果连接数超过,也会有访问不了oracle的问题.
  方式:
  Smitty chgsys
  结果类似下面:
  Change / Show Characteristics of Operating System
  Type or select values in entry fields.
  Press Enter AFTER making all desired changes.
  [TOP]                                                   [Entry Fields]
  System ID                                           0X80000EBC36D00000
  Partition ID                                        0X80000EBC36D00002
  Maximum number of PROCESSES allowed per user       [10000]                 +#
  Maximum number of pages in block I/O BUFFER CACHE  [20]                    +#
  Maximum Kbytes of real memory allowed for MBUFS    [0]                     +#
  Automatically REBOOT OS after a crash               true                   +
  Continuously maintain DISK I/O history              false                  +
  HIGH water mark for pending write I/Os per file    [33]                    +#
  LOW water mark for pending write I/Os per file     [24]                    +#
  Amount of usable physical memory in Kbytes          16252928
  State of system keylock at boot time                normal
  Enable full CORE dump                               false                  +
  Use pre-430 style CORE dump                         false  
  解决方案
  如果太小,可以修改
  Smitty chgsys-> Maximum number of PROCESSES allowed per user    设置>1500
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics