半夏微凉

半夏微凉

RAC+DG(4、各节点环境变量设置)

1.关掉防火墙和SElinux

service iptables stop  ##立刻关闭IPV4防火墙

chkconfig iptables off ##永久关闭IPV4防火墙

sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config ##永久关闭SELINUX,修改SELINUX配置文件为关闭,重启后也能生效规则

setenforce 0 ##立刻关闭SElinux

service ip6tables stop  ##立刻关闭IPV6防火墙

chkconfig ip6tables off  ##永久关闭IPV6防火墙

 

2.停止ntp服务

service ntpd status ##查看Linux时间同步服务ntpd的状态

service ntpd stop ##立刻关闭ntpd服务

chkconfig ntpd off ##永久关闭ntpd服务

cp -p /etc/ntp.conf /etc/ntp.conf.bak ##备份ntpd服务的配置文件

rm -rf /etc/ntp.conf ##删除ntpd服务的配置文件

 

3.系统内核参数及相关用户环境变量设置

(1)修改linux内核参数

vi /etc/sysctl.conf

#全部允许使用的共享内存大小,可以设置为内存的 90%/。计算方法内存总数/内存页大小 (cat /proc/meminfo)/ (getconf PAGESIZE) /1024

kernel.shmall = 2097152

 

#shmmax 是单个段允许使用的大小。可以设置为内存的 90%。例如 2G 内存,2*1024*1024*1024*90% = 1932735283,下面设置为0.5G.

kernel.shmmax = 536870912

 

#SHMMNI整个系统的内存segment的总个数 。设置系统级最大共享内存段数量。oracle推荐最小值为4096,可以适当比4096增加一些。

kernel.shmmni = 4096

 

#对应的4个值从左到右分别为SEMMSL、SEMMNS、SEMOPM和SEMMNI,可以使用cat /proc/sys/kernel/sem查看。

#SEMMSL= 设置每个信号灯组中信号灯最大数量,推荐的最小值是250。对于系统中存在大量并发连接的系统,推荐将这个值设置为PROCESSES初始化参数加10

#SEMMNS=设置系统中信号灯的最大数量。操作系统在分配信号灯时不会超过LEAST(SEMMNS,SEMMSL*SEMMNI)。事实上,如果SEMMNS的值超过了SEMMSL*SEMMNI是非法的,因此推荐SEMMNS的值就设置为SEMMSL*SEMMNI。Oracle推荐SEMMNS的设置不小于32000,假如数据库的PROCESSES参数设置为600,则SEMMNS的设置应为:(600+10)*142

#SEMOPM参数:设置每次系统调用可以同时执行的最大信号灯操作的数量。由于一个信号灯组最多拥有SEMMSL个信号灯,因此有推荐将SEMOPM设置为SEMMSL的值。Oracle验证的10.2和11.1的SEMOPM的配置为100。

#SEMMNI= 设置系统中信号灯组的最大数量。Oracle10g和11g的推荐值为142。

kernel.sem = 250 32000 100 128

 

#在系统中全局设置内存转储功能

fs.suid_dumpable = 1

 

#fs.aio-max-nr 参数,指的是系统同时可以拥有的的异步IO请求数目,数据库是在机房意外断电的情况下突然关闭的,关闭的一瞬间有大量的事务正在运行,所以重新启动的时候必然有大量的回滚与已提交但没有写入到数据文件的数据要开始写入,这时候的IO量是非常大的,由于启用了异步IO,此时大量的上下文切换达到了操作系统设定的最大值,oracle可能会停止响应,oracle推荐设置为1M以上(1024*1024).

#/proc/sys/fs/aio-nr 文件提供了系统范围异步 I/O 请求现在的数目。

#/proc/sys/fs/aio-max-nr 文件是当前系统所允许的并发请求的最大个数

fs.aio-max-nr = 1048576

 

 

#file-max是设置系统所有进程一共可以打开的文件数量 。如果得到大量使用完文件句柄的错误信息,应该增加这个值。

#/proc/sys/fs/file-nr 记录系统中fd的使用情况,已分配文件句柄的数目,已使用文件句柄的数目,文件句柄的最大数目

fs.file-max = 6815744

 

#表示TCP/UDP协议允许使用的本地端口号(向外连接的端口范围)

net.ipv4.ip_local_port_range = 9000 65500

 

#rmem_default指定了接收套接字缓冲区大小的缺省值(以字节为单位,如下面参数设置为4M)

#rmem_max指定了接收套接字缓冲区大小的最大值(以字节为单位)

#wmem_default 指定了发送套接字缓冲区大小的缺省值(以字节为单位)

#wmem_max指定了发送套接字缓冲区大小的最大值(以字节为单位)

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

 

------------------------------------------------------------------------

kernel.shmall = 471859

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.suid_dumpable = 1

fs.aio-max-nr = 1048576

fs.file-max = 6815744

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586

--------------------------------------------------------------------------

配置完后运行下面命令使配置生效:

sysctl -p

 

如有bridge报错,执行下面操作加载相关bridge模块:

modprobe bridge    

lsmod|grep bridge  

 

(2)修改用户shell限制,修改/etc/security/limits.conf文件,增加内容如下:

vi /etc/security/limits.conf

# oracle和grid用户shell限制

#格式username|@groupname type resource limit

#type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。- 就表明同时设置了 soft 和 hard 的值。

#resource有如下参数:

#core - 限制内核文件的大小

#date - 最大数据大小

#fsize - 最大文件大小

#memlock - 最大锁定内存地址空间

#nofile - 打开文件的最大数目

#rss - 最大持久设置大小

#stack - 最大栈大小

#cpu - 以分钟为单位的最多 CPU 时间

#noproc - 进程的最大数目

#as - 地址空间限制

#maxlogins - 此用户允许登录的最大数目

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 4096

oracle hard nofile 65536

 

(3)修改/etc/pam.d/login文件

vi /etc/pam.d/login

#要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。

session   required    /lib/security/pam_limits.so 

session   required    pam_limits.so

 

(4)更改安装所有者的ulimit设置

vi /etc/profile

#为了修改对当前用户的进程限制,修改环境变量文件

if [ $USER = "oracle" ]||[ $USER = "grid" ]; then

    if [ $SHELL = "/bin/ksh" ]; then 

        ulimit -p 16384 

        ulimit -n 65536 

    else 

        ulimit -u 16384 -n 65536 

     fi

fi

 

(5)用户和组

groupadd -g 1000 oinstall 

groupadd -g 1200 asmadmin 

groupadd -g 1201 asmdba 

groupadd -g 1202 asmoper 

groupadd -g 1300 dba 

groupadd -g 1301 oper 

 

gird

useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid 

passwd grid

oracle:

useradd -u 1101 -g oinstall -G dba,oper,asmdba oracle 

passwd oracle

 

mkdir -p /u01/app/grid 

mkdir -p /u01/app/11.2.0/grid 

mkdir -p /u01/app/oracle 

chown -R oracle:oinstall /u01

chown -R grid:oinstall /u01/app/grid 

chown -R grid:oinstall /u01/app/11.2.0

chmod -R 775 /u01

 

(6)用户环境变量

gird用户:/home/grid/.bash_profile

 

# oracle需要使用的tmp目录,需确保空间大于400M

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=+ASM1

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/11.2.0/grid

 

#ORACLE_TERM指定要与安装程序一起使用的终端定义资源文件。如果未设置ORACLE_TERM,则安装程序将使用UNIX环境变量TERM的值,并搜索等效的ORACLE_TERM资源

export ORACLE_TERM=xterm

 

# NLS_DATE_FORMAT用于设置日期显示格式

export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'

 

#TNS_ADMIN指定监听文件的目录

export TNS_ADMIN=$ORACLE_HOME/network/admin

 

#PATH用于定义Shell的可执行文件的搜索路径

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

 

#设置LD_LIBRARY_PATH,以便程序加载运行时能够自动找到需要的动态链接库

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

 

#告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

 

#设置Oracle的默认编辑器,例:SQL> select count( * ) from dual; SQL> ed

export EDITOR=vi

 

#设置语言环境

export

 

#用于定义语言,地域以及字符集属性。NLS_LANG参数由以下部分组成:NLS_LANG=<Language>_<Territory>.<Clients Characterset>

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

 

#umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码,而chmod设置的是文件权限码。

umask 022

 

source /home/grid/.bash_profile

 

oracle用户:/home/oracle/.bash_profile

export TMP=/tmp 

export TMPDIR=$TMP 

export ORACLE_HOSTNAME=node1.localdomain

export ORACLE_SID=devdb1

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_UNQNAME=devdb

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORACLE_TERM=xterm

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

export EDITOR=vi

export

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'

umask 022

source /home/oracle/.bash_profile

 


评论回复


·