千家信息网

10G ORACLE RAC 搭建实战之环境配置

发表于:2024-09-27 作者:千家信息网编辑
千家信息网最后更新 2024年09月27日,一. 用户创建各个节点用户名和用户组必须一样,并创建oracle安装目录以及clustercrs目录[root@rac1]#groupadd -g 500 dba[root@rac1]#groupad
千家信息网最后更新 2024年09月27日10G ORACLE RAC 搭建实战之环境配置

. 用户创建

各个节点用户名和用户组必须一样,并创建oracle安装目录以及clustercrs目录

[root@rac1]#groupadd -g 500 dba

[root@rac1]#groupadd -g 501 oinstall

[root@rac1]#useradd -u 500 -g oinstall -G dba oracle

[root@rac1]#passwd oracle

Changing passwordfor user oracle.

New UNIX password:

BAD PASSWORD: itis based on a dictionary word

Retype new UNIXpassword:

passwd: allauthentication tokens updated successfully.

[root@rac1]# chmod-R 755 /home/oracle

(注意:该步骤涉及ssh等价性配置)

[root@rac1]# mkdir-p /oraapp/oracle/10g/db_1

[root@rac1]# mkdir-p /oraapp/oracle/10g/db_1

[root@rac1]# mkdir-p /oraapp/oracle/10g/crs

[root@rac1]# chown-R oracle:oinstall /oraapp

[root@rac1]# chmod-R 755 /oraapp

. IP分配及hosts文件配置

hostname

saprac1

saprac2

公共ipeth3

133.160.130.18

133.160.130.19

虚拟ipeth0

192.168.1.18

192.168.1.19

私有ipeth5

10.10.10.18

10.10.10.19

ORACLE_SID

xgxrac1

xgxrac2

Hosts文件配置(两个节点一样)

[oracle@rac1 ~]$cat /etc/hosts

# Do not removethe following line, or various programs

# that requirenetwork functionality will fail.

127.0.0.1 localhost.localdomain localhost

::1 localhost6.localdomain6 localhost6

133.160.130.18 rac1

133.160.130.19 rac2

192.168.1.18 rac1_vip

192.168.1.19 rac2_vip

10.10.10.18 rac1_priv

10.10.10.19 rac2_priv

三、系统参数调整

修改下列文件:

1.添加以下内容到/etc/security/limits.conf

# vi/etc/security/limits.conf
#oracle limits

oracle softnproc 2047

oracle hardnproc 16384

oracle softnofile 1024

oracle hardnofile 65536

2添加以下内容到/etc/pam.d/login
# vi /etc/pam.d/login

session required pam_limits.so

3.添加以下内容到/etc/profile
# vi /etc/profile
if [ $USER = "oracle" ]; then

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

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

4.修改系统内核参数

# vi /etc/sysctl.conf

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax =53687091200 (内存分配为>PGA+SGA

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 1024 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max= 1048576

修改好内核参数后,执行如下命令使新的设置生效
# /sbin/sysctl -p

系统版本信息修改(安装完后改回

编辑/etc/redhat-release文件替换现在的版本信息(Red Hat Enterprise Linux Server release 3(Tikanga)


. 修改环境变量

在各个节点上依次修改,注意SID, ORACLE_BASEORACLE_HOME

[oracle@rac1 ~]$vi ~/.bash_profile

export PATH

unset USERNAME

alias ll="ls-la"

exportORACLE_BASE=/oraapp/oracle/10g

export ORACLE_HOME=$ORACLE_BASE/db_1

exportORA_CRS_HOME=$ORACLE_BASE/crs

exportORACLE_SID=sapora1

exportPATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin

exportPATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

exportSPFILE_PATH=$ORACLE_HOME/dbs

exportTNS_ADMIN=$ORACLE_HOME/network/admin

exportORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

exportLD_LIBRARY_PATH=$ORACLE_HOME/lib

exportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

exportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

exportCLASSPATH=$ORACLE_HOME/JRE

exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib

exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

exportTHREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

exportLIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib

exportORACLE_TERM=xterm

exportLC_CTYPE=en_US.AL16UTF16

exportNLS_LANG=AMERICAN_AMERICA.US7ASCII

~

~

~

~

".bash_profile"39L, 1244C written

使更改立即生效

[oracle@rac1 ~]$source ~/.bash_profile

. 开发包检查

yum -y install compat-libstdc++ libaio libXp compat-dbopenmotif22 binutils control-center gcc gcc-c++ glibc glibc-common gnome-libslibstdc++ libstdc++-devel make pdksh sysstat xscreensaver setarch glibc-develsetarch-2* make-3* glibc-2* libaio-0* compat-libstdc++-33-3* compat-gcc-34-3*compat-gcc-34-c++-3* gcc-4* libXp-1* openmotif-2* compat-db-4* openmotif-2*

六. RAW绑定

所谓裸设备(裸分区、原始分区),就是没有被格式化、不被操作系统通过文件系统来读取的字符设备。裸设备避免了再经过Unix操作系统这一层,数据直接从DiskOracle进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。裸设备应该由root来创建裸设备,然后再分配给Oracle用户以供使用。同时还要把它归入Oracle用户所在的那个组里边(通常都是DBA)。

裸设备和非裸设备的表面差异是一个就是新出厂的磁盘,没有任何操作;一个就是fdisk格式化了的新磁盘

在aix上LV就是裸设备,但是在linux上需要单独创建;为防止重启后配置丢失,将绑定设置写到 /etc/sysconfig/rawdevices文件中

1.编辑/etc/sysconfig/rawdevices 添加裸设备对应lv

[root@rac1 ~]# vi/etc/sysconfig/rawdevices

# raw devicebindings

# format:

#

# example:/dev/raw/raw1 /dev/sda1

# /dev/raw/raw2 8 5

/dev/raw/raw1 /dev/mapper/oravg01-lvol0

/dev/raw/raw2 /dev/mapper/oravg01-lvol1

/dev/raw/raw3 /dev/mapper/oravg01-lvol2

/dev/raw/raw4 /dev/mapper/oravg01-lvol3

/dev/raw/raw5 /dev/mapper/oravg01-lvol4

/dev/raw/raw6 /dev/mapper/oravg01-lvol5

/dev/raw/raw7 /dev/mapper/oravg01-lvol6

/dev/raw/raw8 /dev/mapper/oravg01-lvol7

/dev/raw/raw9 /dev/mapper/oravg01-lvol8

/dev/raw/raw10 /dev/mapper/oravg01-lvol9

/dev/raw/raw11 /dev/mapper/oravg01-lvol10

/dev/raw/raw12 /dev/mapper/oravg01-lvol11

/dev/raw/raw13 /dev/mapper/oravg01-lvol12

/dev/raw/raw14 /dev/mapper/oravg01-lvol13

/dev/raw/raw15 /dev/mapper/oravg01-lvol14

/dev/raw/raw16 /dev/mapper/oravg01-lvol15

/dev/raw/raw17 /dev/mapper/oravg01-lvol16

/dev/raw/raw18 /dev/mapper/oravg01-lvol17

/dev/raw/raw19 /dev/mapper/oravg01-lvol18

/dev/raw/raw20 /dev/mapper/oravg01-lvol19

/dev/raw/raw21 /dev/mapper/oravg01-lvol20

/dev/raw/raw22 /dev/mapper/oravg01-lvol21

/dev/raw/raw23 /dev/mapper/oravg01-lvol22

/dev/raw/raw24 /dev/mapper/oravg01-lvol23

/dev/raw/raw25 /dev/mapper/oravg01-lvol24

/dev/raw/raw26 /dev/mapper/oravg01-lvol25

/dev/raw/raw27 /dev/mapper/oravg01-lvol26

/dev/raw/raw28 /dev/mapper/oravg01-lvol27

/dev/raw/raw29 /dev/mapper/oravg01-lvol28

/dev/raw/raw30 /dev/mapper/oravg01-lvol29

/dev/raw/raw31 /dev/mapper/oravg01-lvol30

/dev/raw/raw32 /dev/mapper/oravg01-lvol31

/dev/raw/raw33 /dev/mapper/oravg01-lvol32

/dev/raw/raw34 /dev/mapper/oravg01-lvol33

/dev/raw/raw35 /dev/mapper/oravg01-lvol34

/dev/raw/raw36 /dev/mapper/oravg01-lvol35

2.执行 /etc/init.d/rawdevices restart 使配置文件中的裸设备生效.

(3)执行 /sbin/chkconfig rawdevices on 保证机器启动的时候裸设备能够加载。(查看是否启动 chkconfig --list|grep raw)

(4)将裸设备授权给oracle 用户,更改裸设备的属主

第一种方法:修改/etc/udev/permissions.d/50-udev.permissions文件
将/etc/udev/permissions.d/50-udev.permissions的113行
从raw/*:root:disk:0660
修改为raw/*:oracle:oinstall:0660

这个的意思是修改裸设备的默认属主为oracle:oinstall,默认的mode是0660
这样在每次重启创建裸设备的时候,默认的属主就为oracle:oinstall。

#刷新裸设备(这样系统在下次启动时,会重新建立需要的raw设备名)

[root@myhost raw]# start_udev启动 udev: [ 确定][root@myhost raw]#init 6

第二种方法:先执行 chown oracle:oinstall/dev/raw/raw*

编辑启动配置文件 /etc/rc.local 添加 chown oracle:oinstall/dev/raw/raw*

[root@rac2 etc]# vi /etc/rc.local

#!/bin/sh

#

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don't

# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

#change raw owner

chown oracle:oinstall /dev/raw/raw*

重启系统,查看裸设备是否存在。

(5)切换到另外一个节点上,由于所有卷组都处于未激活状态,激活卷组: vgchange -ay oravgX,之后重复上述操作。

. NTP服务配置

  1. 1. 服务端(133.160.130.18

由于不能联网,不对上层时间服务进行修改,只修改连接限制;编辑/etc/ntp.conf

修改 restrict default kod nomodify notrap nopeernoquery

restrictdefault nomodify

重启ntp服务:service ntpd restart

设置开机启动:chkconfig ntpd on

  1. 2. 客户端(133.160.130.19

添加任务,每5分钟执行一次

echo '*/5 * * * * root ntpdate133.160.130.18'>> /etc/crontab

. hangcheck-timer模块配置

1.查看模块位置

[root@rac1 ~]#find /lib/modules/ -name "hangcheck"

[root@rac1 ~]#find /lib/modules/ -name "hangcheck-timer.ko"

/lib/modules/2.6.18-398.el5/kernel/drivers/char/hangcheck-timer.ko

2.配置系统启动时自动加载模块,添加以下内容

[root@rac1 ~]#modprobe hangcheck-timer

[root@rac1 ~]# vi/etc/rc.d/rc.local

modprobehangcheck-timer

3.配置 hangcheck-timer参数,添加以下内容

[root@rac1~]# vi /etc/modprobe.conf

optionshangcheck-timer hangcheck_tick=30 hangcheck_margin=180

4.确认模块加载成功

[root@rac1 ~]#grep Hangcheck /var/log/messages |tail -2

Mar 27 10:45:55localhost kernel: Hangcheck: starting hangcheck timer 0.9.0 (tick is 180seconds, margin is 60 seconds).

Mar 27 10:45:55localhost kernel: Hangcheck: Using monotonic_clock().

九.配置ssh等价

注意:

1.这一步是以oracle用户来操作的,需在配置hosts文件后再进行

2.必须保证每个节点上Oracle用户的UID和DBA组的GID相同

3.因为安装rac是在其中一个节点安装,然后oracle会自动复制到其它节点。最后的测试一定要不输入密码就能显示日期,不然安装一定失败!

1. 在配置用户等价的每个节点上执行

[oracle@rac01 ~]$ cd $HOME

[oracle@rac01 ~]$ mkdir .ssh

[oracle@rac01 ~]$ chmod 700 .ssh

[oracle@rac01 ~]$ cd .ssh

[oracle@rac01 .ssh]$ pwd

/home/oracle/.ssh

[oracle@rac01 .ssh]$ ssh-keygen -t rsa (连敲三次回车,不要输入)

[oracle@rac01 .ssh]$ ssh-keygen -t dsa (连敲三次回车,不要输入)

[oracle@rac01 .ssh]$ cat *.pub > authorized_keys

[oracle@rac01 .ssh]$ chmod 644 authorized_keys

2.将第一个节点上的authorized_keys拷贝到第二个节点

[oracle@rac01 .ssh]$ scp authorized_keys oracle@192.168.0.2:/home/oracle/.ssh/keys_ser01

3.将第二个节点与第一个节点合并后的authorized_keys在拷回第一个节点

[oracle@rac02 .ssh]$ cat keys_ser01 >>authorized_keys

[oracle@rac02.ssh]$ scp authorized_keys oracle@192.168.0.1:/home/oracle/.ssh/

4.测试ssh登陆另一个节点,无需输入密码

ssh rac1 date

ssh rac1-privdate

ssh rac2 date

ssh rac2-privdate

这一步一定要测试成功才能进行后面的安装!


0