Oracle 11g R2(11.2.0.4.0)+udev搭建RAC

准备工作:

硬件配置要求

1 . 确定操作系统平台,64bit or 32bit。
查看系统平台

# uname -m

2 . 安装GI至少 1.5gb内存;安装GI和RAC数据库至少2.5GB内存
查看物理内存大小:

# grep MemTotal /proc/meminfo

3 . 置换区跟内存之间的关系 如下:

查看swap大小:
这里写图片描述

# grep SwapTotal /proc/meminfo

or

# free

4 . 1GB /tmp临时空间
查看临时空间大小:

# df -k /tmp

如果发现/tmp空间小于1G,设置TEMP和TMPDIR环境变量来指定这个文件系统上的临时目录。

Bourne, Bash, or Korn shell:

$ TEMP=/mount_point/tmp
$ TMPDIR=/mount_point/tmp
$ export TEMP TMPDIR

C shell:

% setenv TEMP /mount_point/tmp
% setenv TMPDIR /mount_point/tmp

5 . 至少4.5GB磁盘空间,用于安装GI软件。
6 . x86 Linux系统,至少4G磁盘空间,用于安装rac数据库软件。
7 . x86_64 Linux系统,至少4.6GB磁盘空间,用于安装rac数据库软件。

网络配置要求

1 . 至少2张网卡,一个公网一个私网
2 . 公网和私网网口名字在各个节点必须一致
3 . 公网必须支持TCP/IP传输协议。
4 . 私网必须支持UDP传输协议和TCP/IP传输协议(至少1GB速率)。

修改主机名(node1,node2都需要配置)

[root@node1 ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node1.localdomain
GATEWAY=10.37.2.1

IP配置

[root@slave2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
UUID=684a1a37-17ff-4450-965a-22f1c5ff7594
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=00:0C:29:BE:F6:A5
IPADDR=192.168.52.170
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
IP规划(node1,node2都需要配置)

如果使用/etc/hosts解析scan的话,需要在/etc/hosts中指定scan名和对应的VIP地址(scan vip与scan名一对一)。
如果使用DNS解析scan的话(最多可以指定3个scan vip对应同一个scan 名字),需要在集群每个节点的/etc/resolv.conf中配置对应的DNS解析服务器。
oracle也支持GNS(Grid Naming Service)解析,但是必须在同一个网段才能解析,不建议采用这个方式。

使用GNS(Grid Naming Service)解析方式:
这里写图片描述
使用DNS解析方式(推荐方式):
这里写图片描述

这里演示使用本地hosts解析方式:

[root@slave2 ~]# vi /etc/hosts
#127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
#node1
10.37.2.170     node1.localdomain       node1
192.168.52.170  node1-pri.localdomain   node1-pri
10.37.2.174     node1-vip.localdomain   node1-vip

#node2
10.37.2.171     node2.localdomain       node2
192.168.52.171  node2-pri.localdomain   node2-pri
10.37.2.173     node2-vip.localdomain   node2-vip

#sacn-ip
10.37.2.175     rac-scan.localdomain    rac-scan

配置内核参数(node1,node2都需要配置)

[root@node1 ~]# echo ' 
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
'>> /etc/sysctl.conf 
用户资源配置

1 . 为了提升性能,需要在grid,oracle用户环境变量设置资源限制

[root@node1 ~]# echo '
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536
oracle              soft    stack   10240

grid                soft    nproc   2047
grid                hard    nproc   16384
grid                soft    nofile  1024
grid                hard    nofile  65536
grid                soft    stack   10240
' >> /etc/security/limits.conf

创建用户(node1,node2都需要配置)

# /usr/sbin/groupadd -g 1000 oinstall
# /usr/sbin/groupadd -g 1100 asmadmin
# /usr/sbin/groupadd -g 1200 dba
# /usr/sbin/groupadd -g 1201 oper
# /usr/sbin/groupadd -g 1300 asmdba
# /usr/sbin/groupadd -g 1301 asmoper

useradd -u 5001 -g oinstall -G dba,asmdba,oper -d /home/oracle oracle
useradd -u 5002 -g oinstall -G dba,asmdba,asmadmin,asmoper,asmdba -d /home/grid grid
[root@node1 ~]# passwd grid
[root@node1 ~]# passwd oracle

看到这里是不是有懵,需要设置这么多组,关于用户组的具备分工和权限这里简单说明一下:
oinstall : 这个组是GI何数据库软件用者组。
数据库组:
1 .OSDBA用户组(一般是dba)
安装oracle数据库软件必须要创建这个用户组,这个用户组定义操作系统用户拥有数据库管理员权限(sysdba权限)。在asm实例,如果没有创建osdba,osoper和osasm组,那么osdba组成员必须有sysoper和sysasm权限,这个组在Oracle代码示例中被称为dba。如果您不指定一个单独的组作为OSASM组,那么您定义的OSDBA组也默认为OSASM组。
要指定除了默认的dba组之外的组名称,则必须选择高级安装类型来安装软件。
OSDBA组的成员以前被授予了Oracle ASM实例的SYSASM特权,可以安装和卸载磁盘组。如果不同的操作系统组被指定为OSDBA和OSASM组,则在11gr2被移除。如果同一个组用于OSDBA和OSASM,则保留。
2 . Oracle 数据库OSOPER组(一般都是oper)
这是个可选组。如果您想要一个独立的操作系统用户组拥有部分数据库管理权限,则可以使用osoper。osdba用户默认具有osoper所有的权限。
要使用OSOPER组创建一个比默认dba组更少的权限的数据库管理员组,那么您必须选择高级安装类型来安装软件。
ASM组:
SYSASM是一种新的系统特权,可以将Oracle ASM存储管理特权从SYSDBA分离出来。在ASM 11gr2(11.2),数据库OSDBA组成员没有授予SYSASM权限。
3 . ASM组(一般是asmadmin)
这是一个必需的组。创建一个单独的组作为管理Oracle ASM和Oracle数据库。如oracle文档所述,操作系统组成员被授于一个称为OSASM组的权限,在oracle代码实例则称为asmadmin。
OSASM组成员可以通过操作系统认证以SYSASM角色使用sql命令去连接asm实例。sysasm角色可以管理磁盘组,但是不能访问RDMS。
4 . ASM 数据库管理组(ASM的OSDBA权限,一般是asmdba)
ASM数据库管理组成员可以从oracle asm读写文件。安装GI和数据库软件必须在这个组里面,另外所有需要访问ASM的OSDBA成员也需要在这个组里面。可以启动/关闭实例,挂载/卸载 ASM磁盘组。
5 . ASM操作组(ASM的OSOPER权限,一般是asmoper)
这是个可选组。oracle asm部分管理权限,如:启动关闭asm实例。OSASM组成员默认具有asmoper的所有权限。
asmoper组成员权限比asmadmin权限小,这个组只有在高级安装才有。
如果您想有OSOPER,那么GI必须是这个组的成员。

设置用户环境变量(node1,node2都需要配置)

shell配置

确定当前shell环境

$ echo $SHELL

Bash shell (bash):

$ vi .bash_profile

Bourne shell (sh) or Korn shell (ksh):

$ vi .profile

C shell (csh or tcsh):

% vi .login

2 . 每个节点执行:

 echo 'session required pam_limits.so ' >>/etc/pam.d/login

3 . 配置shell变量 ,包括oracel,grid用户
For the Bourne, Bash, or Korn shell, add lines similar to the following to the /etc/profile file (or the file on SUSE systems)/etc/profile.local

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
        umask 022
fi

For the C shell (csh or tcsh), on Red Hat, OEL, or Asianux, add the following lines to the /etc/csh.login file. On SUSE systems add the lines to /etc/csh.login.local:

if ( $USER == "oracle" || $USER == "grid" ) then
        limit maxproc 16384
        limit descriptors 65536
endif

4 .

oracle用户

[root@node1 ~]# vi /home/oracle/.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

export PATH
export PS1="[\u@\H\$]"
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=node1.localdomain
export ORACLE_SID=jhdb1
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 LANG=en_US
export NLS_LANG=american_america.AL32UTF8
export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'
umask 022

grid用户

[root@node1 ~]# vi /home/grid/.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

export PATH
export PS1="[\u@\H\$]"
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
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'
export TNS_ADMIN=$ORACLE_HOME/network/admin
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 LANG=en_US
export NLS_LANG=american_america.AL32UTF8
umask 022

启用用户默认shell环境变量:
Bash shell:

$ . ./.bash_profile

Bourne, Bash, or Korn shell:

$ . ./.profile

C shell:

% source ./.login
提示

PS1有那些配置,或者说PS1里头都能配置些命令提示符的什么东西:

    \d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
    \H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
    \h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
    \t :显示时间为24小时格式,如:HH:MM:SS
    \T :显示时间为12小时格式
    \A :显示时间为24小时格式:HH:MM
    \u :当前用户的账号名称
    \v :BASH的版本信息
    \w :完整的工作目录名称。家目录会以 ~代替
    \W :利用basename取得工作目录名称,所以只会列出最后一个目录
    \# :下达的第几个命令
    \$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

设置目录权限(node1,node2都需要配置)

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

配置ssh对等性(node1,node2都需要配置)

[oracle@node2$]ssh-keygen -t rsa
[oracle@node2$]ssh-keygen -t dsa
[oracle@node2$]cat ~/.ssh/*.pub >>~/.ssh/aythorized_keys
[oracle@node2$]su - grid
[grid@node2$]ssh-keygen -t rsa
[grid@node2$]ssh-keygen -t dsa
[grid@node2$]cat ~/.ssh/*.pub >>~/.ssh/authorized_keys

[grid@node2$]scp ~/.ssh/authorized_keys  node1:/home/grid/.ssh/keys

[oracle@node1$]ssh-keygen -t rsa
[oracle@node1$]ssh-keygen -t dsa
[oracle@node1$]cat ~/.ssh/*.pub >>~/.ssh/aythorized_keys
[oracle@node1$]su - grid
[grid@node1$]ssh-keygen -t rsa
[grid@node1$]ssh-keygen -t dsa
[grid@node1$]cat ~/.ssh/*.pub >>~/.ssh/authorized_keys  
[grid@node1$]cat ~/.ssh/keys >>~/.ssh/authorized_keys  
[grid@node1$]scp ~/.ssh/authorized_keys node2:/home/grid/.ssh/authorized_keys 
[oracle@node1$]ssh node1.localdomain date 
[oracle@node1$]ssh node1 date 
[oracle@node1$]ssh node1-pri date 
[oracle@node1$]ssh node1-pri.localdomain date 
[oracle@node1$]ssh node2.localdomain date 
[oracle@node1$]ssh node2 date 
[oracle@node1$]ssh node2-pri date 
[oracle@node1$]ssh node2-pri.localdomain date
##如果没有scp这个命令,就要‘ yum -y install openssh-clients.x86_64’

在做了ssh对等性之后,修改oracle,grid用户系统密码和修改/etc/hosts ip地址,对等性仍然有效。

DNS配置(可选性配置):

对于使用/etc/hosts做IP解析就不需要配置dns/gns。
如果配置有多个scan-ip 最好还是配置上dns,多个sacn-ip绑定同一个域名,用户通过scan-ip域名来连接数据库。

1.软件包:
bind-9.3.6-4.Pl.el5_4.2.x86_64.rpm
bind-chroot-9.3.6-4.Pl.el5_4.2.x86_64.rpm
caching-nameserver-9.3.6-4.Pl.el5_4.2.x86_64.rpm

2.配置/var/named/chroot/etc/named.conf文件
由拷贝而来
cp -p named.caching-nameserver.conf named.conf
把 127.0.0.1 改成 “ any; ”允许所有的ip去访问
3.配置ZONE文件
修改/var/named/chroot/etc/named.rfrc1912.zons文件
主要目的是为了能正确解析SCAN-IP,
正向zone文件

zone "localdomain" IN {
        type master; 
        file "localdomain.zone";
        allow-update { none; };
};

# scan
192.168.56.140       rac.scan.localdomain         rac-scan

反向zone文件

zone "56.168.192.in-addr.arpa" IN{
    type master;
    file "56.168.192.in-addr.arpa";
    allow-update { none; };
};

配置正反向解析数据库文件:
/var/named/chroot/var/named
正向解析数据库文件 localdomain.zone
rac-scan IN A 192.168.56.140

反向解析数据库文件 cp -p named.local 56.168.192.in-addr.arpa
140 IN PTR rac-scan.localdomain.

启动DNS服务器 /etc/init.d/named start

校验
rac1:
配置 /etc/resolv.conf
search localdomain
nameserver 192.168.56.120

rac2:
配置 /etc/resolv.conf
search localdomain
nameserver 192.168.56.120

验证 nslookup rac-scan、nslookup rac-scan.localdomain nslookup 10.37.4.173

centos 6 DNS配置:

1:yum -y install bind-chroot.x86_64 bind.x86_64
2: vi /etc/named.conf
把 127.0.0.1 、localhost 改成 any

反向解析

zone "4.37.10.in-addr.arpa" IN {    
       type master;
       file "4.37.10.in-addr.arpa.zone";
       allow-update { none; };
};

正向解析

zone "localdomain" IN {
        type master;
      
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值