AIX基础知识:系统资源控制器(System Resource Controller)
要理解SRC(System Resource Controller),首先需要介绍另外两个概念:子系统(Subsystem)和子服务器(Subserver)。Subsystem是一组相关可独立控制的进程或者程序的集合,而Subserver则就是其中的某一个进程或者程序,一组相关功能的Subsystem则属于一个Group。SRC则是用来控制Subsystem或者Subserver的一个后台守护进程。对于各个Subsystem的启动,停止或者查看状态都提供了统一的接口,有点类似于windows里的net start/net stop命令来控制windows的服务的意思。SRC可以控制本地或者远程系统。
SRC的守护进程是/etc/sbin/srcmstr,通过/etc/inittab随系统自动启动。
NinGoo:/>#ps -ef | grep srcmstr
root 82706 1 0 Nov 20 – 0:00 /usr/sbin/srcmstr
root 2999112 2847112 0 23:19:01 pts/0 0:00 grep srcmstr
NinGoo:/>#grep srcmstr /etc/inittab
srcmstr:23456789:respawn:/usr/sbin/srcmstr # System Resource Controller
启动一个Subsystem或者Subserver使用startsrc命令,如果要启动的Subserver所属的Subsystem没有启动,则在启动Subserver前会先启动对应的Subsystem。
启动Subsystem
startsrc [ -a Argument] [ -e Environment] [ -h Host] { -s Subsystem | -g Group}
启动Subserver
startsrc [ -h Host] -t Type [ -o Object] [ -p SubsystemPID]
AIX 5L errpt错误报告
在AIX中,errpt用于报告系统软硬件相关的错误日志信息
先来看一个实际的输出,不带参数简单列出所有的错误
#errpt
IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION
A2205861 1214144307 P S SYSPROC Excessive interrupt disablement time
F3931284 1213234807 I H ent1 ETHERNET NETWORK RECOVERY MODE
EC0BCCD4 1213234807 T H ent1 ETHERNET DOWN
F3931284 1213234807 I H ent1 ETHERNET NETWORK RECOVERY MODE
EC0BCCD4 1213233607 T H ent1 ETHERNET DOWN
0873CF9F 1212141207 T S pts/1 TTYHOG OVER-RUN
0873CF9F 1212141207 T S pts/1 TTYHOG OVER-RUN
…
AIX下遭遇TNS-12531
上周做HACMP的时候,由于修改了/etc/hosts中的内容,将原来的IP变成了HA的service IP,后面的名字也就从原来的hostname改成了hostname_SVC,也就是/etc/hosts中没有了IP和hostname的对应记录,然后启动监听的时候发现监听无法起来,一直挂起在那里:
$lsnrctl start
LSNRCTL for IBM/AIX RISC System/6000: Version 9.2.0.6.0 – Production on 24-NOV-2007 17:45:25
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
Starting /u01/oracle/product/9.2/bin/tnslsnr: please wait…
TNSLSNR for IBM/AIX RISC System/6000: Version 9.2.0.6.0 – Production
System parameter file is /u01/oracle/product/9.2/network/admin/listener.ora
Log messages written to /u01/oracle/product/9.2/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.168.168)(PORT=1521)))Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
查看 /u01/oracle/product/9.2/network/log/listener.log,发现全是TNS-12531错误,并且在不停的增加中:
TNS-12531: TNS:cannot allocate memory
24-NOV-2007 17:53:10 * 12531
TNS-12531: TNS:cannot allocate memory
24-NOV-2007 17:53:10 * 12531
TNS-12531: TNS:cannot allocate memory
24-NOV-2007 17:53:10 * 12531
TNS-12531: TNS:cannot allocate memory
24-NOV-2007 17:53:10 * 12531
TNS-12531: TNS:cannot allocate memory
开玩笑,系统已经切换到备库,怎么可能连起监听的内存都没有了,显然不是内存不足的问题。后来还是piner想起以前也出现过相同的状况,就是/etc/hosts中缺乏hostname的记录引起的,果然一加上就正常了。注意到listener.ora中用的是IP,不是hostname。
今天又测试了一把,在AIX5.3和Oracle9206中该问题是可以重现的,在Redhat Linux Enterprise 4中没有问题。查metalink,Note:219206.1上说Unix平台都有这个问题,另外还有一个可能的原因就是oracle用户没有权限读取/etc/hosts文件。有其他平台如HP-UX,Solaris的朋友可以帮忙测试一下^_^
AIX 5L网卡管理与配置
Piner写过一篇文章介绍AIX中网卡的管理和配置,这里想补充一些相关的信息。本文中所有试验都基于AIX 5.3。
AIX中查看系统中的网卡设备
#lsdev -Cc adapter | grep ent
ent0 Available 00-08 10/100/1000 Base-TX PCI-X Adapter (14106902)
ent1 Available 07-08 2-Port 10/100/1000 Base-TX PCI-X Adapter (14108902)
ent2 Available 07-09 2-Port 10/100/1000 Base-TX PCI-X Adapter (14108902)
ent3 Available 0B-08 10/100/1000 Base-TX PCI-X Adapter (14106902)
ent4 Available EtherChannel / IEEE 802.3ad Link Aggregation
从上面可以看出,系统中共有四块网卡(ent0~ent3,而ent4是由多块网卡绑定出来的虚拟网卡EtherChannel,关于网卡绑定,请参考piner的另一篇文章。
