RHEL6.4安装Oracle11gR2RAC的CRS
来源:互联网 发布:语音识别模块 淘宝 编辑:程序博客网 时间:2024/05/18 03:58
ORACLE GRID INSTALL FOR RHEL6.4
硬件环境
华硕A43S
RHEL6.5
QEMU-KVM
节点配置:
内存:3GB
硬盘:40GB
网卡:2
系统:RHEL6.4
存储环境:
内存:256
硬盘:8GB(系统),118GB(共享)
网卡:1
系统:RHEL6.4
系统安装不再描述,笔者此处安装操作系统只最小化安装RHEL6.4不再多余赘述
大概描述一下CRS的基本硬件
共享存储 X 1
集群节点 X 2
下边是HOST信息
#public
192.168.0.20 racst #存储服务器
192.168.0.21 rac1 #255.255.255.0
192.168.0.22 rac2
#private
192.168.10.21 priv1 #255.255.255.0
192.168.10.22 priv2
分区规划(在racst主机对vdb分区如下):
/dev/vdb5 1 4162 2097585 83 Linux 2GB
/dev/vdb6 4163 8324 2097616+ 83 Linux 2GB
/dev/vdb7 8325 12486 2097616+ 83 Linux 2GB
/dev/vdb8 12487 33292 10486192+ 83 Linux 10GB
/dev/vdb9 33293 54098 10486192+ 83 Linux 10GB
/dev/vdb10 54099 74904 10486192+ 83 Linux 10GB
/dev/vdb11 74905 116515 20971912+ 83 Linux 20GB
/dev/vdb12 116516 158126 20971912+ 83 Linux 20GB
/dev/vdb13 158127 199737 20971912+ 83 Linux 20GB
/dev/vdb14 199738 220543 10486192+ 83 Linux 10GB
然后将整个vdb共享出去
下边正式进行集群预安装
关闭selinux
[root@racst ~]# sed -i s/"SELINUX=enforcing"/"SELINUX=disabled"/g /etc/sysconfig/selinux && setenforce 0
关闭iptables
[root@racst ~]# /etc/init.d/iptables stop && chkconfig iptables off
[root@racst ~]# mount /dev/cdrom /media/ #将系统盘挂载media目录下配置yum,以便安装所需的包
[root@racst ~]# cat /etc/yum.repos.d/rhel-source.repo |grep -v ^#|grep -v ^$ #配置repo文件如下即可
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///media
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@RACST ~]# mount /dev/cdrom /media/ #挂载光盘(yum源)
mount: block device /dev/sr0 is write-protected, mounting read-only
A.在racst上配置共享存储和crs的外部服务
1.配置共享存储
安装iscsi服务端
yum -y install iscsi-initiator-utils.x86_64 scsi-target-utils.x86_64
配置iscsi服务端
修改iscsi的配置文件/etc/tgt/targets.conf
在最后边加上如下行:
<target iqn.rac:san.sdb> #iscsi的iqn标识
backing-store /dev/vdb #共享存储为vdb
</target>
最后启动iscsi服务
service tgtd start
然后查看iscsi服务状态和服务情况
[root@RACST ~]# tgtadm --mode target --op show
Target 1: iqn.rac:san.sdb #检测到的iqn
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 118112 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/vdb #共享的块设备路径
Backing store flags:
Account information:
ACL information:
ALL
添加开机启动tgtd服务
chkconfig tgtd on
至此共享存储配置完成
B.在racst上配置DHCP服务器
安装DHCP服务
yum -y install dhcp
配置DHCP服务
编辑DHCP服务的配置文件,在其中加入如下行:
ddns-update-style none;
default-lease-time 259200;
max-lease-time 518400;
option broadcast-address 192.168.0.255; #广播地址
option domain-name-servers 192.168.0.20; #分配给客户端的DNS服务器
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.40 192.168.0.49; #按以上规划40~49的范围
option subnet-mask 255.255.255.0; #子网掩码
option nis-domain "rac.com"; #所在的域
option domain-name "rac.com";
}
然后启动DHCP服务
service dhcpd start
添加开机启动DHCPD
chkconfig dhcpd on
至此DHCP服务配置完成
C.在racst上配置DNS服务
安装dns服务
yum -y install bind-libs bind.x86_64 bind-utils.x86_64 bind-chroot.x86_64
配置bind服务
编辑bind主配置文件/etc/named.conf(注意注释的地方和提示的地方,为需要修改的地方)
options {
listen-on port 53 { any; }; #此处需要设置DNS所监听的本机IP,any是监听所有本机的IP地址
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { 192.168.0.0/24; }; #允许处理来自这段IP的DNS请求
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
################以下都是新添加的内容#################
zone "rac.com" IN { #正向区域解析文件
type master;
file "rac.com.zone"; #此处的文件名省去了路径,应该是/var/named/rac.com.zone,正向解析区域。
allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN { #PTR反向指针文件
type master;
file "0.168.192.aptr"; #此处的文件名省去了路径,应该是/var/named/0.168.192.aptr,PTR方向解析区域。
allow-update { none; };
};
创建并编辑正向解析文件/var/named/rac.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.0.23
AAAA ::1
racst A 192.168.0.20
rac1 A 192.168.0.21
rac2 A 192.168.0.22
cluster IN 1H A 192.168.0.21
IN 1H A 192.168.0.22
IN 1H A 192.168.0.23
创建并编辑PTR反向指针文件/var/named/0.168.192.aptr
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS rac.com.
A 192.168.0.23
AAAA ::1
20 PTR racst.rac.com.
21 PTR rac1.rac.com.
22 PTR rac2.rac.com.
23 PTR cluster.rac.com.
21 PTR cluster.rac.com.
22 PTR cluster.rac.com.
创剪ISC DLV key
rndc-confgen -r /dev/urandom -a
启动named服务
service named start
添加开机启动named服务
chkconfig named on
至此dns服务配置完成
下边进行通用节点配置(每个节点都要配置的)
每个节点先关闭iptables和selinux配置yum源
注意:每个节点的DNS指向DNS服务器
编辑hosts文件添加如下内容:
#public
192.168.0.20 racst #存储服务器
192.168.0.21 rac1 #255.255.255.0
192.168.0.22 rac2
#private
192.168.10.21 priv1 #255.255.255.0
192.168.10.22 priv2
安装依赖包
yum -y install libXp.x86_64 libXp.i686 elfutils-libelf.x86_64 elfutils-libelf-devel.x86_64 compat-db.i686 compat-db.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 openmotif22.i686 openmotif22.x86_64 libaio-devel.i686 libaio-devel.x86_64 control-center.x86_64 make.x86_64 gcc.x86_64 sysstat.x86_64 libaio.i686 gcc-c++.x86_64 compat-libf2c-34.x86_64 compat-libf2c-34.i686 unixODBC.i686 unixODBC.x86_64 unixODBC-devel.i686 unixODBC-devel.x86_64 libgomp.x86_64 compat-libstdc++-33.x86_64 compat-libstdc++-33.i686 glibc.i686 glibc.x86_64 glibc-common.x86_64 glibc-devel.i686 glibc-devel.x86_64 glibc-headers.x86_64 libXmu.i686 libXmu.x86_64 libgcc.i686 libgcc.x86_64 kernel-headers.x86_64 libstdc++.i686 binutils.x86_64 libstdc++.x86_64 compat-libcap1.x86_64 ompat-libcap1.i686 smartmontools iscsi-initiator-utils openssh-clients unzip libaio-0.3.107-10.el6.x86_64
挂载共享存储
iscsiadm --mode discovery -t sendtargets --portal 192.168.0.20 #这个ip指向共享存储服务器,iscsi服务器,发现共享磁盘
service iscsi restart #重启iscsi挂载这个共享磁盘
然后fdisk -l查看已经有了/dev/sda: 118.1 GB这块盘
将共享的分区映射成raw磁盘文件
编辑/etc/udev/rules.d/60-raw.rules文件添加一下内容:
ACTION=="add",KERNEL=="sda5",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add",KERNEL=="sda6",RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add",KERNEL=="sda7",RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add",KERNEL=="sda8",RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add",KERNEL=="sda9",RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add",KERNEL=="sda10",RUN+="/bin/raw /dev/raw/raw6 %N"
ACTION=="add",KERNEL=="sda11",RUN+="/bin/raw /dev/raw/raw7 %N"
ACTION=="add",KERNEL=="sda12",RUN+="/bin/raw /dev/raw/raw8 %N"
ACTION=="add",KERNEL=="sda13",RUN+="/bin/raw /dev/raw/raw9 %N"
ACTION=="add",KERNEL=="sda14",RUN+="/bin/raw /dev/raw/raw10 %N"
KERNEL=="raw1", OWNER=="oracle", GROUP="oinstall", MODE="664"
KERNEL=="raw2", OWNER=="oracle", GROUP="oinstall", MODE="664"
KERNEL=="raw3", OWNER=="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw4", OWNER=="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw5", OWNER=="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw6", OWNER=="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw7", OWNER=="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw8", OWNER=="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw9", OWNER=="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw10", OWNER=="oracle", GROUP="oinstall", MODE="660"
启动UDEV生成raw存储文件
start_udev
用ll查看/dev/raw/raw*可以看到raw1~10已经生成
至此共享存储挂载和配置成功了
创建用户,安装目录和环境变量
创建用户,用一下命令创建oracle用户,dba组和oinstall组,并切换到oracle用户
groupadd -g 1001 dba && groupadd -g 1002 oinstall && useradd -u 1001 -g oinstall -G dba oracle && passwd oracle && id nobody && su - oracle
配置oracle用户的环境变量,编辑oracle用户家目录下的.bash_profile文件添加一下内容:
export GRID_HOME=/grid/11.2.0/crs
export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$GRID_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
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:/lib64:/usr/lib64:/usr/local/lib64
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
退回root用户创建安装目录
mkdir /oracle && mkdir /grid && chown -R oracle.oinstall /oracle /grid && chmod -R 775 /oracle /grid && ll / |egrep "oracle"
配置系统参数
配置验证方式如果是32位系统则添加/lib/security/pam_limits.so到/etc/pam.d/login,64位系统如下:
echo "session required /lib64/security/pam_limits.so" >>/etc/pam.d/login
配置内核参数
cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
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
EOF
配置的内核参数生效
sysctl -p
修改用户打开文件的句柄数
cat >> /etc/security/limits.conf << EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
编辑/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
删除每个节点的ncp的开机启动和重命名ncp服务的配置文件,并保证每个节点的时区一样和时钟相差不太大,以确保CTSS的安装无误
service ntpd stop && mv /etc/ntp.conf /etc/ntp.conf.bak
然后在任意机器上解压grid包,在每个节点上安装rpms/cvuqdisk-1.0.7-1.rpm
至此系统通用的配置已完成
************************************************
注意:以上均属于通用配置(除了racst,在所有节点上),笔者
由于用的是KVM虚拟机,所有笔者先安装了一个节点,让和做完上
述操作后,将虚拟机关机,然后克隆其他一个节点,然后修改IP和
主机名。
************************************************
配置oracle的ssh互信,安装的时候就不必输入oracle用户的密码了,这样一气呵成(笔者的习惯)!
切换到oracle用户下(在每个节点运行)
su - oracle
然后创建的用户配置目录和生存公钥(在每个节点运行)
mkdir ~/.ssh && chmod 700 ~/.ssh && cd ~/.ssh && ssh-keygen -t rsa
收集公钥(在RAC1运行)
ssh rac1 cat ~/.ssh/id_rsa.pub >> authorized_keys #收集rac1的公钥
ssh rac2 cat ~/.ssh/id_rsa.pub >> authorized_keys #收集rac2的公钥
分发公钥集和known_hosts(在RAC1运行),rac1本身就已经有了,所有就不用分发了
scp authorized_keys known_hosts rac2:~/.ssh/
一下操作都在rac1完成
准备安装包
unzip linux.x64_11gR2_grid.zip
chown -R oracle.oinstall grid/
检测安装,接换回oracle用户
./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -fixupdir /tmp
此处检测的有些包,在64位下检测到没有i386的包出错,这个可以忽略,ntp服务没有也可以忽略
安装完成后用root运行脚本,然后自动配置grid的时候出错的可以跳过,完了具体错误具体解决
在运行root脚本的时候ohasd会起不来,这是11gR2众所周知的bug
解决方法
/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
然后安装database软件
然后samca创建数据磁盘组
其他磁盘规划
cvuqdisk CVUQ磁盘组 raw1 raw2 raw3 (安装grid的时候以创建)
redodisk REDDATA磁盘组 raw10 raw4 #存放oracle实例的redo文件 冗余级别normal
arcdisk ARCDATA磁盘组 raw5 raw6 #存放实例的归档日志文件 冗余级别normal
datadisk ORADATA磁盘组 raw7,raw8,raw9 #存放database的数据文件集 冗余级别high
然后mount all磁盘组
退出samca
最后dbca创建实例
所有的数据存放如上以上磁盘规划来部署
sga=200M pga=100M 最大连接数60,我的内存有限,怕创建实例过不去
硬件环境
华硕A43S
RHEL6.5
QEMU-KVM
节点配置:
内存:3GB
硬盘:40GB
网卡:2
系统:RHEL6.4
存储环境:
内存:256
硬盘:8GB(系统),118GB(共享)
网卡:1
系统:RHEL6.4
系统安装不再描述,笔者此处安装操作系统只最小化安装RHEL6.4不再多余赘述
大概描述一下CRS的基本硬件
共享存储 X 1
集群节点 X 2
下边是HOST信息
#public
192.168.0.20 racst #存储服务器
192.168.0.21 rac1 #255.255.255.0
192.168.0.22 rac2
#private
192.168.10.21 priv1 #255.255.255.0
192.168.10.22 priv2
分区规划(在racst主机对vdb分区如下):
/dev/vdb5 1 4162 2097585 83 Linux 2GB
/dev/vdb6 4163 8324 2097616+ 83 Linux 2GB
/dev/vdb7 8325 12486 2097616+ 83 Linux 2GB
/dev/vdb8 12487 33292 10486192+ 83 Linux 10GB
/dev/vdb9 33293 54098 10486192+ 83 Linux 10GB
/dev/vdb10 54099 74904 10486192+ 83 Linux 10GB
/dev/vdb11 74905 116515 20971912+ 83 Linux 20GB
/dev/vdb12 116516 158126 20971912+ 83 Linux 20GB
/dev/vdb13 158127 199737 20971912+ 83 Linux 20GB
/dev/vdb14 199738 220543 10486192+ 83 Linux 10GB
然后将整个vdb共享出去
下边正式进行集群预安装
关闭selinux
[root@racst ~]# sed -i s/"SELINUX=enforcing"/"SELINUX=disabled"/g /etc/sysconfig/selinux && setenforce 0
关闭iptables
[root@racst ~]# /etc/init.d/iptables stop && chkconfig iptables off
[root@racst ~]# mount /dev/cdrom /media/ #将系统盘挂载media目录下配置yum,以便安装所需的包
[root@racst ~]# cat /etc/yum.repos.d/rhel-source.repo |grep -v ^#|grep -v ^$ #配置repo文件如下即可
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///media
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@RACST ~]# mount /dev/cdrom /media/ #挂载光盘(yum源)
mount: block device /dev/sr0 is write-protected, mounting read-only
A.在racst上配置共享存储和crs的外部服务
1.配置共享存储
安装iscsi服务端
yum -y install iscsi-initiator-utils.x86_64 scsi-target-utils.x86_64
配置iscsi服务端
修改iscsi的配置文件/etc/tgt/targets.conf
在最后边加上如下行:
<target iqn.rac:san.sdb> #iscsi的iqn标识
backing-store /dev/vdb #共享存储为vdb
</target>
最后启动iscsi服务
service tgtd start
然后查看iscsi服务状态和服务情况
[root@RACST ~]# tgtadm --mode target --op show
Target 1: iqn.rac:san.sdb #检测到的iqn
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 118112 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/vdb #共享的块设备路径
Backing store flags:
Account information:
ACL information:
ALL
添加开机启动tgtd服务
chkconfig tgtd on
至此共享存储配置完成
B.在racst上配置DHCP服务器
安装DHCP服务
yum -y install dhcp
配置DHCP服务
编辑DHCP服务的配置文件,在其中加入如下行:
ddns-update-style none;
default-lease-time 259200;
max-lease-time 518400;
option broadcast-address 192.168.0.255; #广播地址
option domain-name-servers 192.168.0.20; #分配给客户端的DNS服务器
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.40 192.168.0.49; #按以上规划40~49的范围
option subnet-mask 255.255.255.0; #子网掩码
option nis-domain "rac.com"; #所在的域
option domain-name "rac.com";
}
然后启动DHCP服务
service dhcpd start
添加开机启动DHCPD
chkconfig dhcpd on
至此DHCP服务配置完成
C.在racst上配置DNS服务
安装dns服务
yum -y install bind-libs bind.x86_64 bind-utils.x86_64 bind-chroot.x86_64
配置bind服务
编辑bind主配置文件/etc/named.conf(注意注释的地方和提示的地方,为需要修改的地方)
options {
listen-on port 53 { any; }; #此处需要设置DNS所监听的本机IP,any是监听所有本机的IP地址
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { 192.168.0.0/24; }; #允许处理来自这段IP的DNS请求
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
################以下都是新添加的内容#################
zone "rac.com" IN { #正向区域解析文件
type master;
file "rac.com.zone"; #此处的文件名省去了路径,应该是/var/named/rac.com.zone,正向解析区域。
allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN { #PTR反向指针文件
type master;
file "0.168.192.aptr"; #此处的文件名省去了路径,应该是/var/named/0.168.192.aptr,PTR方向解析区域。
allow-update { none; };
};
创建并编辑正向解析文件/var/named/rac.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.0.23
AAAA ::1
racst A 192.168.0.20
rac1 A 192.168.0.21
rac2 A 192.168.0.22
cluster IN 1H A 192.168.0.21
IN 1H A 192.168.0.22
IN 1H A 192.168.0.23
创建并编辑PTR反向指针文件/var/named/0.168.192.aptr
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS rac.com.
A 192.168.0.23
AAAA ::1
20 PTR racst.rac.com.
21 PTR rac1.rac.com.
22 PTR rac2.rac.com.
23 PTR cluster.rac.com.
21 PTR cluster.rac.com.
22 PTR cluster.rac.com.
创剪ISC DLV key
rndc-confgen -r /dev/urandom -a
启动named服务
service named start
添加开机启动named服务
chkconfig named on
至此dns服务配置完成
下边进行通用节点配置(每个节点都要配置的)
每个节点先关闭iptables和selinux配置yum源
注意:每个节点的DNS指向DNS服务器
编辑hosts文件添加如下内容:
#public
192.168.0.20 racst #存储服务器
192.168.0.21 rac1 #255.255.255.0
192.168.0.22 rac2
#private
192.168.10.21 priv1 #255.255.255.0
192.168.10.22 priv2
安装依赖包
yum -y install libXp.x86_64 libXp.i686 elfutils-libelf.x86_64 elfutils-libelf-devel.x86_64 compat-db.i686 compat-db.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 openmotif22.i686 openmotif22.x86_64 libaio-devel.i686 libaio-devel.x86_64 control-center.x86_64 make.x86_64 gcc.x86_64 sysstat.x86_64 libaio.i686 gcc-c++.x86_64 compat-libf2c-34.x86_64 compat-libf2c-34.i686 unixODBC.i686 unixODBC.x86_64 unixODBC-devel.i686 unixODBC-devel.x86_64 libgomp.x86_64 compat-libstdc++-33.x86_64 compat-libstdc++-33.i686 glibc.i686 glibc.x86_64 glibc-common.x86_64 glibc-devel.i686 glibc-devel.x86_64 glibc-headers.x86_64 libXmu.i686 libXmu.x86_64 libgcc.i686 libgcc.x86_64 kernel-headers.x86_64 libstdc++.i686 binutils.x86_64 libstdc++.x86_64 compat-libcap1.x86_64 ompat-libcap1.i686 smartmontools iscsi-initiator-utils openssh-clients unzip libaio-0.3.107-10.el6.x86_64
挂载共享存储
iscsiadm --mode discovery -t sendtargets --portal 192.168.0.20 #这个ip指向共享存储服务器,iscsi服务器,发现共享磁盘
service iscsi restart #重启iscsi挂载这个共享磁盘
然后fdisk -l查看已经有了/dev/sda: 118.1 GB这块盘
将共享的分区映射成raw磁盘文件
编辑/etc/udev/rules.d/60-raw.rules文件添加一下内容:
ACTION=="add",KERNEL=="sda5",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add",KERNEL=="sda6",RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add",KERNEL=="sda7",RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add",KERNEL=="sda8",RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add",KERNEL=="sda9",RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add",KERNEL=="sda10",RUN+="/bin/raw /dev/raw/raw6 %N"
ACTION=="add",KERNEL=="sda11",RUN+="/bin/raw /dev/raw/raw7 %N"
ACTION=="add",KERNEL=="sda12",RUN+="/bin/raw /dev/raw/raw8 %N"
ACTION=="add",KERNEL=="sda13",RUN+="/bin/raw /dev/raw/raw9 %N"
ACTION=="add",KERNEL=="sda14",RUN+="/bin/raw /dev/raw/raw10 %N"
KERNEL=="raw1", OWNER=="oracle", GROUP="oinstall", MODE="664"
KERNEL=="raw2", OWNER=="oracle", GROUP="oinstall", MODE="664"
KERNEL=="raw3", OWNER=="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw4", OWNER=="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw5", OWNER=="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw6", OWNER=="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw7", OWNER=="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw8", OWNER=="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw9", OWNER=="oracle", GROUP="oinstall", MODE="660"
KERNEL=="raw10", OWNER=="oracle", GROUP="oinstall", MODE="660"
启动UDEV生成raw存储文件
start_udev
用ll查看/dev/raw/raw*可以看到raw1~10已经生成
至此共享存储挂载和配置成功了
创建用户,安装目录和环境变量
创建用户,用一下命令创建oracle用户,dba组和oinstall组,并切换到oracle用户
groupadd -g 1001 dba && groupadd -g 1002 oinstall && useradd -u 1001 -g oinstall -G dba oracle && passwd oracle && id nobody && su - oracle
配置oracle用户的环境变量,编辑oracle用户家目录下的.bash_profile文件添加一下内容:
export ORACLE_BASE=/oracle
export ORACLE_SID=+ASM1
export GRID_HOME=/grid/11.2.0/crs
export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$GRID_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
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:/lib64:/usr/lib64:/usr/local/lib64
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
退回root用户创建安装目录
mkdir /oracle && mkdir /grid && chown -R oracle.oinstall /oracle /grid && chmod -R 775 /oracle /grid && ll / |egrep "oracle"
配置系统参数
配置验证方式如果是32位系统则添加/lib/security/pam_limits.so到/etc/pam.d/login,64位系统如下:
echo "session required /lib64/security/pam_limits.so" >>/etc/pam.d/login
配置内核参数
cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
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
EOF
配置的内核参数生效
sysctl -p
修改用户打开文件的句柄数
cat >> /etc/security/limits.conf << EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
编辑/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
删除每个节点的ncp的开机启动和重命名ncp服务的配置文件,并保证每个节点的时区一样和时钟相差不太大,以确保CTSS的安装无误
service ntpd stop && mv /etc/ntp.conf /etc/ntp.conf.bak
然后在任意机器上解压grid包,在每个节点上安装rpms/cvuqdisk-1.0.7-1.rpm
至此系统通用的配置已完成
************************************************
注意:以上均属于通用配置(除了racst,在所有节点上),笔者
由于用的是KVM虚拟机,所有笔者先安装了一个节点,让和做完上
述操作后,将虚拟机关机,然后克隆其他一个节点,然后修改IP和
主机名。
************************************************
配置oracle的ssh互信,安装的时候就不必输入oracle用户的密码了,这样一气呵成(笔者的习惯)!
切换到oracle用户下(在每个节点运行)
su - oracle
然后创建的用户配置目录和生存公钥(在每个节点运行)
mkdir ~/.ssh && chmod 700 ~/.ssh && cd ~/.ssh && ssh-keygen -t rsa
收集公钥(在RAC1运行)
ssh rac1 cat ~/.ssh/id_rsa.pub >> authorized_keys #收集rac1的公钥
ssh rac2 cat ~/.ssh/id_rsa.pub >> authorized_keys #收集rac2的公钥
分发公钥集和known_hosts(在RAC1运行),rac1本身就已经有了,所有就不用分发了
scp authorized_keys known_hosts rac2:~/.ssh/
一下操作都在rac1完成
准备安装包
unzip linux.x64_11gR2_grid.zip
chown -R oracle.oinstall grid/
检测安装,接换回oracle用户
./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -fixupdir /tmp
此处检测的有些包,在64位下检测到没有i386的包出错,这个可以忽略,ntp服务没有也可以忽略
安装完成后用root运行脚本,然后自动配置grid的时候出错的可以跳过,完了具体错误具体解决
在运行root脚本的时候ohasd会起不来,这是11gR2众所周知的bug
解决方法
/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
然后安装database软件
然后samca创建数据磁盘组
其他磁盘规划
cvuqdisk CVUQ磁盘组 raw1 raw2 raw3 (安装grid的时候以创建)
redodisk REDDATA磁盘组 raw10 raw4 #存放oracle实例的redo文件 冗余级别normal
arcdisk ARCDATA磁盘组 raw5 raw6 #存放实例的归档日志文件 冗余级别normal
datadisk ORADATA磁盘组 raw7,raw8,raw9 #存放database的数据文件集 冗余级别high
然后mount all磁盘组
退出samca
最后dbca创建实例
所有的数据存放如上以上磁盘规划来部署
sga=200M pga=100M 最大连接数60,我的内存有限,怕创建实例过不去
#####################################
本文有笔者原创
作者:john
转载请注明出处
- RHEL6.4安装Oracle11gR2RAC的CRS
- RHEL6.4安装CentOS的yum
- RHEL6 sysbench的安装
- RHEL6.4安装ftp
- RHEL6.4安装varnish
- RHEL6.4安装nginx
- RedHat 4 RAC 安装crs的一个小问题
- RHEL6.4安装配置memcached
- RHEL6.4 xclock安装小记
- RHEL6.4_LAMP--rpm安装
- RHEL6.4下一键安装 Redmine
- rhel6.4 安装 mysql-5.6
- rhel6.4编译安装mariadb
- RHEL6.4编译安装libxcb
- shell编程oracle10g安装在rhel6.4前的准备工作
- 图解 RHEL6.0 的安装过程
- MongoDB在RHEL6.5下的安装
- rhel6.6_oracle11gR2的静默安装
- 选择排序算法
- 收录几张和服务器架构相关的原理图
- LOAD DATA自动增长ID
- 精选PSD素材下载周刊【Goodfav PSD 20130720】
- ERROR org.apache.zookeeper.ClientCnxn: Error while calling watcher
- RHEL6.4安装Oracle11gR2RAC的CRS
- 持续集成 编年史 之 持续集成产品 我们的成果
- ubuntu下更改时间和时区的命令
- Gmail设置两步验证密码后,foxmail收不到gmail邮件
- Tomcat7支持WebSocket
- ORACLE SQL性能优化之二
- 内核配置方式介绍
- Junit测试代码
- poj1847--探索dijkstra可否判最短路存在