Linux下搭建Oracle11g RAC

1、软硬件准备环境

  硬件环境

虚拟机环境:VMware workstations 11

48G内存 虚拟机*2

hostnamerac1,rac2

软件环境

操作系统:Centos 6 .5 64

集群软件GRID11.2.0.1

DatabaseOracle database 11gR2

注意:关闭防火墙、selinux

1.1.1 IP地址规划

IP设定如下:

#Public IP

10.7.8.11  rac1

10.7.8.12  rac2

 #Private IP

192.168.1.123  racpriv1

192.168.1.124  racpriv2

 #Virtual IP

10.7.8.123    racvip1

10.7.8.124    racvip2

 #Scan IP

10.7.8.200  racscan

127.0.0.1      localhost.localdomain localhost

ping检查连通性 除了vip sanip

扫盲:何为SCAN(Single Client Access Name)

定义的一个网络名及IP地址,这样所有客户端均能够通过它访问RAC数据库。通过

SCAN,当集群环境发生变化时,就不需要再修改客户端的配置。SCAN同样允许客户端通

过简易连接串的方式,也能够利用到RAC的负载平衡及故障切换特性。

不管是否使用GNS都需要SCAN。如果使用GNS,那么ORACLE会自动创建SCAN

如果不使用GNS,那就必须在DNS中定义SCAN

我们先配置DNSDNS是什么我就不多说了,这里主要的作用在于引入一个新的特性,11g R2后引入SCAN IP的概念,就是在客户端和数据库之间增加一层虚拟网络服务层,即是SCAN IPSCAP IP Listener。在客户端的tnsnames.ora配置文件中,只需要配置SCAN IP的配置信息即可,客户端通过SCAN IPSCAN IP Listener来访问数据库。同之前各版本的RAC相比,使用SCAN IP的好处就是,当后台RAC数据库添加、删除节点时,客户端配置信息无需修改。可以通过配置DNS服务器或GNS来配置SCAN,我们这里以DNS为例来进行配置。


2、安装oracle 11g所需要的环境包两台机器都要装

      [root@rac1~]# yum -y install compat-libstdc++-33 elfutils-libelf-devel gcc  gcc-c++glibc-devel glibc-headers libaio-devel  libstdc++-devel sysstat  unixODBC unixODBC-devel

3、参数配置
以下操作需在两个节点上进行配置
  [root@rac1 ~]# vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = 8589934592 (8G
内存)
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
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

注意上述参数中,需要根据实际情况修改kernel.shmmax参数的值,可以直接设置为物

理内存大小。
使内核参数生效

[root@rac1 ~]# sysctl -p


[root@rac1 ~]# vi/etc/security/limits.conf 
grid soft nofile 1024
grid hard nofile 65536
grid soft nproc 2047
grid hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384


[root@rac1 ~]# vi/etc/pam.d/login 
session    required     /lib64/security/pam_limits.so


4、添加用户和组以及oracle、grid用户ssh的对等性  以下操作需要两个节点同样进行

   

groupadd-g 1000 oinstall
groupadd -g 1300 dba
groupadd -g 1301 oper
groupadd -g 1201 asmdba
groupadd -g 1200 asmadmin
groupadd -g 1202 asmoper
useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid -s/bin/bash -c "Grid Infrastructure Owner" grid
passwd grid
useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -d /home/oracle -s /bin/bash-c "Oracle Software Owner" oracle
passwd oracle

5、设置互信关系,这里记住oracle和grid用户都要设置互信

su- grid
mkdir ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa

以下操作在一个节点上执行即可

cat~/.ssh/id_rsa.pub>>./.ssh/authorized_keys  --公钥存在authorized_keys文件中,写到本机
cat ~/.ssh/id_dsa.pub>>./.ssh/authorized_keys
ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  --
第二个节点的公钥写到本机
ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
两个节点上分别验证(很重要)
ssh rac1 date
ssh rac2 date
ssh rac1-priv date
ssh rac2-priv date

6、创建目录和授权 

 mkdir-p /u01/app/grid
mkdir -p /u01/app/11.2.0/grid
chown -R grid:oinstall /u01
mkdir -p /u01/app/oracle
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
 

7、环境变量如下操作也需要在两个节点上同样进行,这里需要注意的是grid用户的SIDoracle用户的SID,是不一样的

  [root@rac1~]# su - grid
[grid@rac1 ~]$ less .bash_profile 
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
ORACLE_SID=+ASM1; export ORACLE_SID
JAVA_HOME=/usr/local/java;export JAVA_HOME
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/11.2.0/grid; export ORACLE_HOME
ORACLE_PATH=/u01/app/oracle/common/oracle/sql; export ORACLE_PATH
ORACLE_TERM=xterm;export ORACLE_TERM
NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS";export NLS_DATE_FORMAT
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
export NLS_LANG=american_america.ZHS16GBK
alias sqlplus="rlwrap sqlplus"
umask 022

[grid@rac1~]$ su - oracle
Password: 
[oracle@rac1 ~]$ less .bash_profile 
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
ORACLE_SID=test1; export ORACLE_SID
ORACLE_UNQNAME=test; export ORACLE_UNQNAME
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_PATH=/u01/app/common/oracle/sql; export ORACLE_PATH
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; export NLS_DATE_FORMAT
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRA

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值