Chinaunix首页 | 论坛 | 博客
  • 博客访问: 13737
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-03 22:32
文章分类
文章存档

2014年(4)

我的朋友

分类: Oracle

2014-03-03 22:33:37

 

IO

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_maxserversaio_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.

maxuproc(系统最大进程数)和ncargs(系统块大小)参数

# 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

SHELL限制

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_sendspace10倍,但是必须小于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:主要用与安装gridASM,管理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/

注意:如果gridorcle安装在同一文件系统下面,如上,在进行权限修改的时候要注意顺序,先进行/u01赋权,再进行/u01/db赋权,否则会被覆盖。

信任关系设置(可选)

SSH信任关系也可在grid安装时选择自动配置。

注意:Oracle11g R2 gridAIX上自动配置ssh时会报错因为Oracle调用的命令路径和AIX系统上命令实际路径不符,可以修改oracle安装程序的sshsetup.sh脚本,或按照oracle调用路径添加程序软连接,具体路径安装过程中Oracle会提示。

OpenSSH软件;

具体安装方法本处不详述,需要下载opensshopenssl,安装时需先安装openssl,然后再安装openssh

也可以通过AIX系统光盘,执行smitty install,选择所有ssh包安装。

安装完毕后可以检查:

# lslpp –l | grep ssh

grid安装中选择自动配置SSH双机信任关系

1

l         修改/etc/ssh/sshd_config

将:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile      .ssh/authorized_keys

前面的注释去掉。

l         利用命令:ssh-keygen生成key

全部选择默认的就可以 , 生成的private keypublic Key会保存在 ~/.ssh目录下 .

: 为了后面的访问方便, passphrase一行密码一般设置为空.

l         2台机器的public key互相传给对方

可以有好几种方法: ftp , rcp , scp都可以 .这里我们通过FTP将两个节点的~/.ssh下的id_rsaid_rsa.pub两个文件分别拷下来传至对方。由于同名,分别将其更改为id_rsa239id_rsa239.pubid_rsa237id_rsa237.pub,为了区分,后面加上其IP标识。

l         建立authorized_keys文件

由于上面修改了sshd_config文件 , 其中一行为

AuthorizedKeysFile      .ssh/authorized_keys

为认证读取文件的位置 .

我们采取默认的方式 , ~/.sshtouch一个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后以后就不会了

2

以下两个节点都执行:

#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

.。。

 

PV的属主

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

PV的权限

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

PVID

查看LUN,如果已经有了PVID的话,需要进行清除。

chdev -l hdisk2 -a pv=clear

重复同样的操作,清除2-6所有LUNPVID

NTP服务(可选)

Oracle 11g R2提供Cluster Time Synchronization ServiceCTSS)集群时间同步服务,在没有NTP服务时,该功能可以保证所有RAC节点的时间保持一致。ASM可以作为统一的存储把Oracle Cluster RegistryOCR)和Voting disks统一安装在ASM磁盘上,不再需要单独安装集群文件系统了,11g第二版也不再支持裸设备了(之前可以把集群件安装到裸设备上)。还有一个功能SCANSingle Client Access Name)即单客户端访问名称而且该功能包括了Failover故障自动切换功能,在访问集群是只写一个SCAN名称就可以了,不需要象以前要把所有节点的VIP写在应用程序的配置文件里面了,这样就大大方便了客户端程序对RAC系统的访问,但该功能需要DNS服务器的支持。SCAN配置也可以采用hosts文件作解析。

如果系统配置了NTP服务,CTSS服务会处于观察者模式,配置NTP具体步骤可参考AIX服务配置。

阅读(1734) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~