linux下搭建rac11g详解

来源:互联网 发布:java 继承 编辑:程序博客网 时间:2024/06/14 16:37

操作系统:redhat-rhel-server-5.5-x86_64;

数据库版本:oracle11gR2;

平台:vbox虚拟机;

河北网络发票数据迁移模拟环境:fpdb1(172.17.32.180),fpdb2(172.17.32.181);

此文档不涉及操作系统的安装。

 

一、网络配置:(以下内容以fpdb1为例子)

#Public IP
#/etc/sysconfig/network-scripts/ifcfg-eth0

#(必须大写)

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NETMASK=255.255.0.0
IPADDR=172.17.32.180(fpdb2必须改的)
GATEWAY=172.17.0.1
TYPE=Ethernet


#Private IP
#/etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
HOTPLUG=no
TYPE=Ethernet
IPADDR=10.10.0.2(fpdb2必须改的)
NETMASK=255.255.255.0
GATEWAY=10.10.0.1

#/etc/hosts(fpdb2不用改的)
#Public IP
172.17.32.180   fpdb1
172.17.32.181   fpdb2

#Private IP
10.10.0.2       fpdb1-priv
10.10.0.3       fpdb2-priv

#Virtual IP
172.17.32.182   fpdb1-vip
172.17.32.183   fpdb2-vip

#Scan IP
172.17.32.184   scan-ip
###-------------以上内容两个节点中都需要做

二、修改hostname(两个节点都需要修改)

1:#hostname fpdb1(即时生效,不然又要重启系统)
2:修改/etc/sysconfig/network中的hostname (永久修改)
3:修改/etc/hosts文件

三、新建组与用户并创建相关目录(两个节点)

/usr/sbin/groupadd -g 501 oinstall                                 
/usr/sbin/groupadd -g 502 dba                                      
/usr/sbin/groupadd -g 504 asmadmin                                 
/usr/sbin/groupadd -g 506 asmdba                                   
/usr/sbin/groupadd -g 507 asmoper                                  
/usr/sbin/useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper grid
/usr/sbin/useradd -u 502 -g oinstall -G dba,asmdba oracle

创建用户密码:
passwd oracle
oracle
passwd grid
oracle

/usr/sbin/groupadd -g 501 oinstall                                 
/usr/sbin/groupadd -g 502 dba                                      
/usr/sbin/groupadd -g 504 asmadmin                                 
/usr/sbin/groupadd -g 506 asmdba                                   
/usr/sbin/groupadd -g 507 asmoper                                  
/usr/sbin/useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper grid
/usr/sbin/useradd -u 502 -g oinstall -G dba,asmdba oracle

创建用户密码:
passwd oracle
oracle
passwd grid
oracle


四、修改环境变量与系统参数

#在/etc/sysctl.conf 下添加如下行:
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=1048576
#执行:
#/sbin/sysctl –p

#编辑/etc/security/limits.conf文件添加如下行:
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 1024
oracle hard nofile 65536

#编辑/etc/pam.d/login文件添加如下行:
session required pam_limits.so

#编辑/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
umask 022
fi

#两个节点的grid用户的 .bash_profile文件
#fpdb1
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/11.2.0/grid
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=+ASM1;
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export DISPLAY=172.17.32.171:0.0
umask 022
######################
#fpdb2
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/11.2.0/grid
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=+ASM2;
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export DISPLAY=172.17.32.171:0.0
umask 022


#两个节点的oracle用户的 .bash_profile文件
#fpdb1
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=hdwkxt1
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 NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
umask 022
######################
#fpdb2
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=hdwkxt2
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 NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
umask 022

五、配置ntp时间同步服务(以fpdb1作为时间服务器)
配置NTP服务器之前,确认服务器已装好NTP包 
[root@tip01 ~]# rpm -qa  | grep ntp 
ntp-4.2.2p1-9.el5_4.1 
chkfontpath-1.10.1-1.1 


编辑fpdb1节点的配置文件
# vi /etc/ntp.conf
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery

restrict 127.0.0.1
restrict -6 ::1
server  127.127.1.0     #local clock
fudge   127.127.1.0 stratum 11
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys

编辑fpdb2节点ntp.conf文件
# vi /etc/ntp.conf
server fpdb1
restrict fpdb1 mask 255.255.255.255 nomodify notrap noquery

分别在fpdb1,fpdb2上修改NTPD参数文件
#vi /etc/sysconfig/ntpd
#添加 -x 参数
SYNC_HWCLOCK=yes
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
#RAC安装时需要检测的-x参

在两个节点上执行 chkconfig ntpd on 使得ntp服务开机启动
[root@fpdb1 ~]# service ntpd restart 
关闭 ntpd:[确定] 
ntpd: 同步时间服务器:[失败] 
启动 ntpd:[确定]

查看ntp状态 
[root@fpdb1 ~]# ntpstat  
synchronised to local net at stratum 11  
   time correct to within 11 ms 
   polling server every 1024 s

在fpdb2节点启动ntp服务  
[root@fpdb2 ~]# service ntpd start 
ntpd: 同步时间服务器:[确定] 
同步硬件时钟到系统时钟 [确定] 
启动 ntpd:[确定]

在节点fpdb2 上执行ntpq -p就可以看到结果。

六、rpm包的安装与检查
在两个节点上执行一下命令就可以看到还需要安装哪些包。
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \
>compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
sysstat \
unixODBC \
unixODBC-devel

此外我的系统一下三个包没有检测出来但是在安装的时候报错,需要安装以下三个包sysstat-7.0.2-3.el5.x86_64.rpm,unixODBC-devel-2.2.11-7.1.i386.rpm,libaio-devel-0.3.106-5.i386.rpm。

七、ssh互信配置
在两个节点上的两个用户(grid和oracle)下分别执行下面的操作
su - grid
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa

su - oracle
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa

在一个节点上的两个用户(grid和oracle)下分别执行下面的操作
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  # -----两个节点都做
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys  # -----两个节点都做
ssh fpdb2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh fpdb2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys fpdb2:~/.ssh/authorized_keys
互信建立完成后进行检查。

两个节点的两个用户(grid和oracle)都要进行ssh自己的和另一个节点的公有和私有ip,把密码都保存上,不然ssh检查不通过
ssh fpdb1 date
ssh fpdb1-priv date
ssh fpdb2 date
ssh fpdb2-priv date

八、存储配置
使用 fdisk /dev/sd* 进行分区之后给分区相应的权限
#(两个节点)
chown grid:asmadmin /dev/sdb1
chown grid:asmadmin /dev/sdc1
chown grid:asmadmin /dev/sdd1
chown grid:asmadmin /dev/sde1
chown grid:asmadmin /dev/sdf1
#(两个节点)
chmod 660 /dev/sdb1
chmod 660 /dev/sdc1
chmod 660 /dev/sdd1
chmod 660 /dev/sde1
chmod 660 /dev/sdf1


安装ASM (两个节点)
[root@grid02 asm]# ls
oracleasm-2.6.18-308.el5-2.0.5-1.el5.i686.rpm oracleasmlib-2.0.4-1.el5.i386.rpm oracleasm-support-2.1.7-1.el5.i386.rpm
[root@grid02 asm]# rpm -ivh oracleasm-support-2.1.7-1.el5.i386.rpm
warning: oracleasm-support-2.1.7-1.el5.i386.rpm:Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing... ########################################### [100%]
1:oracleasm-support ########################################### [100%]
[root@grid02 asm]# rpm -ivh oracleasm-2.6.18-308.el5-2.0.5-1.el5.i686.rpm
warning:oracleasm-2.6.18-308.el5-2.0.5-1.el5.i686.rpm: Header V3 DSA signature: NOKEY,key ID 1e5e0159
Preparing... ########################################### [100%]
1:oracleasm-2.6.18-308.el###########################################[100%]
[root@grid02 asm]# rpm -ivh oracleasmlib-2.0.4-1.el5.i386.rpm
warning: oracleasmlib-2.0.4-1.el5.i386.rpm: HeaderV3 DSA signature: NOKEY, key ID 1e5e0159
Preparing... ###########################################[100%]
1:oracleasmlib ########################################### [100%]

配置ASMLib (两个节点)
[root@grid01 grid]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
 
This will configure the on-boot properties of theOracle ASM library
driver. Thefollowing questions will determine whether the driver is
loaded on boot and what permissions it willhave. The current values
will be shown in brackets ('[]'). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.
 
Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration:done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]

建立ASM磁盘(一个节点fpdb1)
/usr/sbin/oracleasm   createdisk   OCR_VOTE1   /dev/sdb1 
/usr/sbin/oracleasm   createdisk   OCR_VOTE2   /dev/sdc1
/usr/sbin/oracleasm   createdisk   OCR_VOTE3   /dev/sdd1 
/usr/sbin/oracleasm   createdisk   ASM_DATA1   /dev/sde1  
/usr/sbin/oracleasm   createdisk   ASM_DATA2   /dev/sdf1

另一节点执行发现磁盘
[root@grid02 ~]# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks: [ OK ]
[root@grid02 ~]# /etc/init.d/oracleasm listdisks
ARC001
DATA001
FRA001
OCR_VOTE1
OCR_VOTE2
OCR_VOTE3

九、验证安装前的检查,使用grid用户:
#如果检查后提示需要执行脚本则执行。
./runcluvfy.sh stage -pre crsinst -n fpdb1,fpdb2 -fixup -verbose
./runcluvfy.sh  stage -post hwos -n fpdb1,fpdb2 -verbose
执行安装grid(如果你使用了xmanager,则使用grid用户执行 export DISPLAY=172.17.32.24:0,(此处的iP为我笔记本ip),xhost +)
完成之后执行root脚本,在两个节点按次序依次执行。

十、asmca创建数据磁盘组
十一、安装数据库软件
十二、创建数据库实例。

----------------未完待续,具体安装图解等心情好了之后在上图吧,很关键的,觉得不错就点个赞吧。

原创粉丝点击