2014年(4)
分类: Oracle
2014-03-03 22:33:37
AIX5.3中,在安装grid软件前执行rootpre.sh会自动打开异步IO服务,在AIX6.1中默认异步IO服务是打开的。推荐的aio_maxreqs值为 64k (65536),检查方法如下:
AIX 6.1
# ioo -o aio_maxreqs
aio_maxreqs = 65536
AIX 5.3
# lsattr -El aio0 -a maxreqs
maxreqs 65536 Maximum number of REQUESTS True
查看当前启动了多少异步IO进程的方法:
# ps -ek|grep -v grep|grep –v posix_aioserver|grep -c aioserver
调整aio_maxservers和aio_minservers为合适的值
原则:
1、 调整maxservers的值为10倍的磁盘数量,但是不要超赤80
2、 在高i/o的时间周期监控AIO的性能情况,如果所有的AIO服务进程都已经启动,那么增大maxservers的值。但是,过多的AIO进程也会增加系统的负载
3、 监控AIO服务进程的使用情况:
# ps -ek|grep -v grep|grep –v posix_aioserver|grep -c aioserver
4、 调整参数
Ioo –po aio_maxservers=80 / ioo –po aio_minservers=40
Oracle推存使用vmo命令去调优虚拟内存管理,参数推荐如下:
命令如下:
vmo -p -o minperm%=3
vmo -p -o maxperm%=90
vmo -p -o maxclient%=90
vmo -p -o lru_file_repage=0
vmo -p -o strict_maxclient=1
vmo -p -o strict_maxperm=0
You must restart the system for these changes to take effect.
# chdev -l sys0 -a maxuproc=16384
sys0 changed
也可以使用:smitty chgsys修改“Maximum number of PROCESSES allowed per user”
修改完成后查看:
# lsattr -El sys0 -a maxuproc
maxuproc 16384 Maximum number of PROCESSES allowed per user True
# chdev -l sys0 -a ncargs=256
sys0 changed
1. 在 /etc/security/limits文件中增加如下行:
default:
fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1
用# /usr/sbin/no -a | more来查看网络参数是否满足下面的要求
l PARAMETER RECOMMENDED VALUE
ipqmaxlen 512
rfc1323 1
sb_max 1500000
tcp_recvspace 65536
tcp_sendspace 65536
udp_recvspace 1351680 这个值应该是udp_sendspace的10倍,但是必须小于sb_max
udp_sendspace 135168 这个值至少应该是4K+(db_block_size*db_multiblock_read_count)的大小
l 修改命令
no -r -o ipqmaxlen=521
no -p -o rfc1323=1
no -p -o sb_max=1500000
no -p -o tcp_recvspace=65536
no -p -o tcp_sendspace=65536
no -p -o udp_recvspace=1351680
no -p -o udp_sendspace=13516
在修改前需要先查看系统设置的兼容性:
# lsattr -El sys0 -a pre520tune
1、输出如:
pre520tune disable Pre-520 tuning compatibility mode True
说明是不兼容方式,这样就可以用上面的方式调整:
2、如果是compatibility模式,则:
# /usr/sbin/no -o parameter_name=value
并且编辑文件/etc/rc.net加入下面内容:
if [ -f /usr/sbin/no ] ; then
/usr/sbin/no -o udp_sendspace=65536
/usr/sbin/no -o udp_recvspace=655360
/usr/sbin/no -o tcp_sendspace=65536
/usr/sbin/no -o tcp_recvspace=65536
/usr/sbin/no -o rfc1323=1
/usr/sbin/no -o sb_max=2*655360
/usr/sbin/no -o ipqmaxlen=512
fi
本次安装我们就规划了一个组,但是规划两个用户,一个用于管理ASM实例,另一个用于管理DB实例。
创建一个组:
dba
创建二个用户:
grid:主要用与安装grid、ASM,管理ASM实例,grid用户主组为dba,属组为:dba。
oracle:要用与安装Clusterware,管理db实例,oracle用户主组为dba,属组为:dba。
# mkgroup -'A' id='1000' adms='root' dba
# mkuser id='1000' pgrp='dba' groups='dba' home='/home/grid' grid
# mkuser id='1100' pgrp='dba' groups='dba' home='/home/oracle' oracle
!注意保持双机用户与组的ID的一致。
1、在两台主机上要保证grid用户具有以下能力:
CAP_NUMA_ATTACH, CAP_BYPASS_RAC_VMM, and CAP_PROPAGATE
查看grid用户能力:
#lsuser -a capabilities grid
增加grid用户能力:
# chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid
2、设置grid用户密码:
#passwd grid
3、在两台主机上最消grid用户shell限制
可以通过smit chuser去修改grid用户限制,或直接修改/etc/security/limits 文件,具体参数如下:
default:
fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1
1、在两台主机上要保证oracle用户具有以下能力:
CAP_NUMA_ATTACH, CAP_BYPASS_RAC_VMM, and CAP_PROPAGATE
查看oracle用户能力:
# lsuser -a capabilities oracle
增加oracle用户能力:
#chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle
2、设置oracle用户密码:
#passwd oracle
3、在两台主机上最消oracle用户shell限制
可以通过smit chuser去修改oracle用户限制,或直接修改/etc/security/limits 文件,具体参数如下:
default:
fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1
在两台主机上最消root用户shell限制,因为CRS进程(crsd)需要以root用户运行。
可以通过smit chuser去修改root用户限制,或直接修改/etc/security/limits 文件,具体参数如下:
default:
fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1
在两台服务器的的grid用户的.profile最后,增加如下内容:
umask 022
export ORACLE_BASE=/u01/app/grid #需手工创建
export ORACLE_HOME=/u01/app/11.2/grid #需手工创建
export ORACLE_SID=+ASM1 #节点2是+ASM2
export NLS_LANG=AMERICAN_AMERICA.UTF8
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export PS1='hostname':'$PWD'"$
在两台服务器的的oracle用户的.profile最后,增加如下内容:
umask 022
export ORACLE_BASE=/u01/app/oracle #需手工创建
export ORACLE_HOME=$ORACLE_BASE/product/11.2
export ORACLE_SID=ytdb1
export ORACLE_UNQNAME=testdb
export NLS_LANG=AMERICAN_AMERICA.UTF8
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export PS1='hostname':'$PWD'"$"
更改root,grid,oracle用户的shell限制,要求如下:
fsize = -1
core = -1
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1
更改命令:smit chuser
mkdir -p /u01/app/grid #grid用户的ORACLE_BASE
mkdir -p /u01/app/11.2/grid #grid用户的ORACLE_HOME
chown -R grid:dba /u01
mkdir -p /u01/app/oracle #oracle用户的ORACLE_BASE
chown -R oracle:dba /u01/app/oracle
chmod -R 755 /u01/
注意:如果grid与orcle安装在同一文件系统下面,如上,在进行权限修改的时候要注意顺序,先进行/u01赋权,再进行/u01/db赋权,否则会被覆盖。
SSH信任关系也可在grid安装时选择自动配置。
注意:Oracle
具体安装方法本处不详述,需要下载openssh、openssl,安装时需先安装openssl,然后再安装openssh。
也可以通过AIX系统光盘,执行smitty install,选择所有ssh包安装。
安装完毕后可以检查:
# lslpp –l | grep ssh
l 修改/etc/ssh/sshd_config
将:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
前面的注释去掉。
l 利用命令:ssh-keygen生成key
全部选择默认的就可以 , 生成的private key和public Key会保存在 ~/.ssh目录下 .
注: 为了后面的访问方便, passphrase一行密码一般设置为空.
l 将2台机器的public key互相传给对方
可以有好几种方法: ftp , rcp , scp都可以 .这里我们通过FTP将两个节点的~/.ssh下的id_rsa、id_rsa.pub两个文件分别拷下来传至对方。由于同名,分别将其更改为id_rsa239、id_rsa239.pub、id_rsa237、id_rsa237.pub,为了区分,后面加上其IP标识。
l 建立authorized_keys文件
由于上面修改了sshd_config文件 , 其中一行为
AuthorizedKeysFile .ssh/authorized_keys
为认证读取文件的位置 .
我们采取默认的方式 , 在~/.ssh下touch一个authorized_keys文件.
touch authorized_keys
将传输过来的对方主机的pub key内容 ,追加到authorized_keys文件上,
Node1(192.168.17.237):
bash-3.00# cat id_rsa239.pub > authorized_keys
node2(192.168.17.239):
# cat id_rsa237.pub > authorized_keys
测试:
ssh 192.168.17.237
ssh 192.168.17.239
第一次登录会出现提示,输入yes后以后就不会了
以下两个节点都执行:
#su – grid
$mkdir –p ~/.ssh
$chmod 700 ~/.ssh
$/usr/bin/ssh-keygen -t rsa
提示输入密码时,保持为空,直接回车即可。
以下只在节点1上执行:
$ touch ~/.ssh/authorized_keys
$ ssh ibmdb1 cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
$ ssh ibmdb2 cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
$ scp ~/.ssh/authorized_keys ibmdb2:.ssh/authorized_keys
以下只在节点2上执行:
$ chmod 600 ~/.ssh/authorized_keys
配置完成后按方法1中测试方法进行测试。
该步骤若不做,在grid安装完成建立ASM时,第二个节点会找不到硬盘,同时加入不了群集。
检测:
lsattr -El hdisk2 | grep reserve_
查看一个即可
设置保持策略:
如果上面查看的结果是reserve_policy
chdev -l hdisk2 -a reserve_policy=no_reserve
chdev -l hdisk3 -a reserve_policy=no_reserve
chdev -l hdisk4 -a reserve_policy=no_reserve
chdev -l hdisk5 -a reserve_policy=no_reserve
chdev -l hdisk6 -a reserve_policy=no_reserve
如果上面查看的结果是reserve_lock
chdev -l hdisk2 -a reserve_lock=no
.。。
chown grid:dba /dev/rhdisk2
chown grid:dba /dev/rhdisk3
chown grid:dba /dev/rhdisk4
chown grid:dba /dev/rhdisk5
chown grid:dba /dev/rhdisk6
chmod 777 /dev/rhdisk2
chmod 777 /dev/rhdisk3
chmod 777 /dev/rhdisk4
chmod 777 /dev/rhdisk5
chmod 777 /dev/rhdisk6
如果出现两边盘符不一致,可使用软连接实现两边盘符的对应关系一致,如:
Ln –s /dev/rhdisk2 /ShareDisk/grid_lun1
..
Ln –s /dev/rhdisk6 /ShareDisk/data_asm1
…
查看LUN,如果已经有了PVID的话,需要进行清除。
chdev -l hdisk2 -a pv=clear
重复同样的操作,清除2-6所有LUN的PVID
Oracle
如果系统配置了NTP服务,CTSS服务会处于观察者模式,配置NTP具体步骤可参考AIX服务配置。