11g R2集群部署

好久不见. 提交于 2019-12-31 16:54:45

安装环境准备

I.服务器硬盘空间要求
/tmp目录大小至少:1GB
安装Grid Infrastracture所需空间:6.6GB
安装Oracle Database所需空间:4GB
此外安装过程中分析、收集、跟踪文件所需空间:10GB
建议总共至少30GB,放心!(此处不包含ASM或NFS的空间需求)

II.服务器内存要求

内存大小:至少2.5GB
Swap大小:
当内存为2.5GB-16GB时,Swap需要大于等于系统内存。
当内存大于16GB时,Swap等于16GB即可。

共享磁盘 重要!非常重要!请仔细阅读这段话! 用于创建ASM磁盘用的盘,需要通过网络共享到4个计算节点,可以采用iscsi服务的方式把存储节点的磁盘映射到计算节点 本文的教程不涵盖iSCSI教程,也就是说如果你不会映射磁盘到计算节点,那就别往下看了,因为asm磁盘管理方式有high冗余和normal冗余 即使你在搭建的过程不创建存放数据用的asm磁盘组,但是vote仲裁机制必须建立 如果asm采用high冗余那么voting盘最低需要5块磁盘,如果是normal冗余,voting盘最低需要3块磁盘

iscsi配置磁盘映射

搭建iscsi服务

二十一、配置server提供一个iSCSI共享服务
安包
yum -y install targetcli*
分区
fdisk /dev/sda
partprobe /dev/sda
创建iqn
targetcli

cd /backstores/block 
create iscsi_store /dev/sda3

cd /iscsi
create iqn.2014-09.com.example:server

cd /iscsi/iqn.2014-09.com.example:server/tpg1/acls
create iqn.2014-09.com.example:desktop

cd /iscsi/iqn.2014-09.com.example:server/tpg1/luns
create /backstores/block/iscsi_store

cd /iscsi/iqn.2014-09.com.example:server/tpg1/portals
create 172.16.30.130

重启服务
systemctl restart target
systemctl enable target
设置防火墙
firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.16.30.0/24 port port=3260 protocol=tcp accept' --per
firewall-cmd --rel


二十二、配置desktop使其能连接在server上提供的iSCSI
安装包
yum -y install iscsi-initiator-utils.i686
修改配置文件
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2014-09.com.example:desktop
重启服务
systemctl enable iscsid
systemctl restart iscsid
发现节点
iscsiadm -m discovery -t sendtargets -p 172.16.30.130
iscsiadm -m node -T iqn.2014-09.com.example:server -l

配置udev绑定

安装udev设备管理器(rac_udev建立磁盘方式安装grid)
yum install -y udev
查看磁盘串号
-----------------------------------------------------------------------------------------------------------------
for disk in `ls /dev/sd*`
                  do
                    echo $disk
                    /usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=$disk
                  done   \\回车
-----------------------------------------------------------------------------------------------------------------
 /dev/sda
/dev/sda1
/dev/sda2
/dev/sdb
/dev/sdb1
/dev/sdc
14f504e46494c45527763443337452d557347312d514f3049
/dev/sdd
14f504e46494c4552715837527a472d78444f522d6e6b5774
/dev/sde
14f504e46494c45523045727559352d706674422d43666c59
/dev/sdf
14f504e46494c455262664b78684c2d51796e512d30464179
/dev/sdg
14f504e46494c45526c36533367792d6a6265712d45705648
/dev/sdh
14f504e46494c45524159783651312d4a4554742d4f74776f
在两个 Oracle RAC 节点:
映射关联磁盘
#vim /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c45527763443337452d557347312d514f3049", SYMLINK+="asm_ocr_1_1",  OWNER="grid",  GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c4552715837527a472d78444f522d6e6b5774", SYMLINK+="asm_ocr_1_2",  OWNER="grid",  GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c45523045727559352d706674422d43666c59", SYMLINK+="asm_data_1_1",  OWNER="grid",  GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c455262664b78684c2d51796e512d30464179", SYMLINK+="asm_data_1_2",  OWNER="grid",  GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c45526c36533367792d6a6265712d45705648", SYMLINK+="asm_fra_1_1",  OWNER="grid",  GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c45524159783651312d4a4554742d4f74776f", SYMLINK+="asm_fra_1_2",  OWNER="grid",  GROUP="asmadmin", MODE="0660"
加载rules文件(rac_udev建立磁盘方式安装grid)
udevadm control --reload-rules
udevadm trigger
11、查看关联路径情况
#ls -l /dev/asm*
lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_data_1_1 -> sdf
lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_data_1_2 -> sdg
lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_fra_1_1 -> sdh
lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_fra_1_2 -> sdi
lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_ocr_1_1 -> sdc
lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_ocr_1_2 -> sdd
lrwxrwxrwx. 1 root root 3 1月   8 14:00 /dev/asm_ocr_1_3 -> sde

安装相关的开发者工具

#yum -y install glibc \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
sysstat \
unixODBC \
unixODBC-devel \
pdksh \
compat-libcap1 \
compat-libstdc++-33 \
elfutils-libelf-devel \
gcc \
gcc-c++ \
smartmontools \
pdksh \
compat-libstdc \
cvuqdisk

一个小的报错,因为是redhat7以上的系统才有,如果不做这步,下面还有一个打补丁的方法

1.RHEL 7 安装oracle rac 11.2.0.4执行root.sh报错ohasd failed to start
报错原因:
因为RHEL 7使用systemd而不是initd运行进程和重启进程,而root.sh通过传统的initd运行ohasd进程。
解决方法:
在RHEL 7中ohasd需要被设置为一个服务,在运行脚本root.sh之前。
以root用户创建服务文件

touch /usr/lib/systemd/system/ohas.service
chmod 777 /usr/lib/systemd/system/ohas.service

2.将以下内容添加到新创建的ohas.service文件中

#vim /usr/lib/systemd/system/ohas.service
[Unit]
Description=Oracle High Availability Services
After=syslog.target

[Service]
ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple
Restart=always

[Install]
WantedBy=multi-user.target

3.以root用户运行下面的命令

systemctl daemon-reload
systemctl enable ohas.service
systemctl start ohas.service

4.查看运行状态

systemctl status ohas.service

安装步骤

一、创建用户和组

/usr/sbin/groupadd -g 1000 oinstall
/usr/sbin/groupadd -g 1020 asmadmin
/usr/sbin/groupadd -g 1021 asmdba
/usr/sbin/groupadd -g 1022 asmoper
/usr/sbin/groupadd -g 1031 dba
/usr/sbin/groupadd -g 1032 oper
useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
useradd -u 1101 -g oinstall -G dba,asmdba,oper oracle

二、创建安装rac的目录

目录要求:


所有节点执行一下命令,创建安装目录和更改目录权限:

mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir -p /u01/app/grid
mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/oracle/oraInventory
chown -Rf grid.oinstall /u01/app/grid
chown -Rf grid.oinstall /u01/app/oraInventory
chown -Rf grid.oinstall /u01/app/11.2.0
chown -Rf oracle.oinstall /u01/app/oracle

三、修改内核参数

修改linux内核参数
vim /etc/sysctl.conf

具体参数意义参考官方文档

添加

fs.aio-max-nr = 1048576 
fs.file-max = 6815744 
kernel.shmall = 2097152 
kernel.shmmax = 1073741824 
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

使修改生效

sysctl -p

四、修改grid和oracle用户下的环境变量:

su - grid
vim .bash_profile

需要修改ORACLE_SID,ORACLE_BASE和ORACLE_HOME

# .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
ORACLE_SID=+ASM1
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/11.2.0/grid
#TNS_ADMIN=$ORACLE_HOME/network/admin
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/oracm/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdbc
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib:$ORACLE_HOME/oracm/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/jdbc/lib
SQLPATH=$ORACLE_HOME/sqlplus/admin:/home/grid/woqu:$ORACLE_HOME/rdbms/admin
#export ORACLE_BASE ORACLE_HOME ORA_NLS33 ORACLE_SID PATH LD_LIBRARY_PATH CLASSPATH TNS_ADMIN SQLPATH
export ORACLE_BASE ORACLE_HOME ORA_NLS33 ORACLE_SID PATH LD_LIBRARY_PATH CLASSPATH SQLPATH
NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss";export NLS_DATE_FORMAT
umask 0022

echo " "
echo " "
echo -e "\e[31;1m****************************************************************\e[0m"
echo -e "\e[31;1m***You login as grid,Please ask somebody to double check!******\e[0m"
echo -e "\e[31;1m****************************************************************\e[0m"
echo " "
echo " "


export PS1='\e[31;1m${LOGNAME}@${HOSTNAME}:${PWD}>\e[0m'

alias sql='rlwrap sqlplus "/"'
alias rsql='rlwrap sqlplus'
alias sqln="rlwrap sqlplus /nolog"
alias dba='rlwrap sqlplus "/as sysasm"'
alias ohome="cd $ORACLE_HOME"

alias rm='rm -i --'
alias cp='cp -i'
alias mv='mv -i --'

#11G
alias bdump='cd $ORACLE_BASE/diag/asm/+asm/$ORACLE_SID/trace/'
alias udump="cd $ORACLE_BASE/diag/asm/+asm/$ORACLE_SID/trace/"
alias cdump="cd $ORACLE_BASE/diag/asm/+asm/$ORACLE_SID/trace/"
alias otail="tail -f $ORACLE_BASE/diag/asm/+asm/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias vlog='tail -200 $ORACLE_BASE/diag/asm/+asm/$ORACLE_SID/trace/alert_$ORACLE_SID.log'
alias myasm='cd $ORACLE_BASE/diag/asm/+asm/$ORACLE_SID/trace'
alias bdump='cd $ORACLE_BASE/diag/asm/+asm/$ORACLE_SID/trace'
alias clog='cd $ORACLE_HOME/log/`hostname`'

修改完毕,刷新环境变量

source .bash_profile

修改oracle用户的环境变量

su - oracle
vim .bash_profile

需要修改ORACLE_SID,ORACLE_BASE和ORACLE_HOME

# .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

ORACLE_SID=rac1
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
TNS_ADMIN=$ORACLE_HOME/network/admin
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/oracm/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdbc
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib:$ORACLE_HOME/oracm/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/jdbc/lib
SQLPATH=$ORACLE_HOME/sqlplus/admin:$ORACLE_HOME/rdbms/admin:/home/oracle/woqu
export ORACLE_BASE ORACLE_HOME ORA_NLS33 ORACLE_SID PATH LD_LIBRARY_PATH CLASSPATH TNS_ADMIN SQLPATH
NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss";export NLS_DATE_FORMAT
umask 0022

echo " "
echo " "
echo -e "\e[31;1m****************************************************************\e[0m"
echo -e "\e[31;1m***You login as oracle,Please ask somebody to double check!******\e[0m"
echo -e "\e[31;1m****************************************************************\e[0m"
echo " "
echo " "

export PS1='\e[31;1m${LOGNAME}@${HOSTNAME}:${PWD}>\e[0m'

alias sql='rlwrap sqlplus "/"'
alias sqln="rlwrap sqlplus / nolog"
alias dba='rlwrap sqlplus / as sysdba'
alias rman='rlwrap rman target /'
alias ohome="cd $ORACLE_HOME"

alias rm='rm -i --'
alias cp='cp -i'
alias mv='mv -i --'

#11G

alias bdump="cd $ORACLE_BASE/diag/rdbms/${ORACLE_SID:0:$((${#ORACLE_SID}-1))}/$ORACLE_SID/trace"
alias udump="cd $ORACLE_BASE/diag/rdbms/${ORACLE_SID:0:$((${#ORACLE_SID}-1))}/$ORACLE_SID/trace"
alias cdump="cd $ORACLE_BASE/diag/rdbms/${ORACLE_SID:0:$((${#ORACLE_SID}-1))}/$ORACLE_SID/trace"
alias otail="tail -f $ORACLE_BASE/diag/rdbms/${ORACLE_SID:0:$((${#ORACLE_SID}-1))}/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias vlog='tail -200 $ORACLE_BASE/diag/rdbms/${ORACLE_SID:0:$((${#ORACLE_SID}-1))}/$ORACLE_SID/trace/alert_$ORACLE_SID.log'

刷新环境变量:

source .bash_profile

如果调出来的图形化乱码,请在.bash_profile中加一行export LANG=en_US.UTF-8

五、修改/etc/hosts文件

如果有DNS服务解析,就配置DNS,如果没有就用/etc/hosts解析,在所有计算节点配置/etc/hosts

vim /etc/hosts

20.76.56.129  gsyxadm1
20.76.56.130  gsyxadm2
20.76.56.131  gsyxadm3
20.76.56.132  gsyxadm4

172.16.130.79  gsyxadm1-priv1
172.16.131.79  gsyxadm1-priv2
172.16.130.81  gsyxadm2-priv1
172.16.131.81  gsyxadm2-priv2
172.16.130.83  gsyxadm3-priv1
172.16.131.83  gsyxadm3-priv2
172.16.130.85  gsyxadm4-priv1
172.16.130.85  gsyxadm4-priv2

20.76.56.133  gsyxadm1-vip
20.76.56.134  gsyxadm2-vip
20.76.56.135  gsyxadm3-vip
20.76.56.136  gsyxadm4-vip

20.76.56.137  gsyxadm-scan

六、关闭ntp时间同步功能

 /bin/systemctl stop ntpd
 systemctl disable ntpd.service
 mv /etc/ntp.conf /etc/ntp.conf.original
还要删除以下文件(如果有的话):
 rm /var/run/ntpd.pid

然后将四个节点的时间同步为一致,误差不能超过2分钟

date -s "23:31"

七、安装grid

解压grid的安装包,安装包链接:链接:https://share.weiyun.com/5ghiMty 密码:521215

su - grid
unzip p13390677_112040_Linux-x86-64_3of7.zip 
cd grid
export DISPLAY=20.76.58.215:0.0
./runInstaller

如果调出来的图形化是乱码,请在.bash_profile中加一行export LANG=en_US.UTF-8
选择跳过升级

选择安装类型为集群:

选择高级安装

选择语言,直接跳过:

修改scan的名字:

填写4个节点的vip的名字:

效果如下:

配置ssh互信连接,点这里:

填写grid用户和密码,然后点击setup:


互信设置成功:

点击test,测试下:


ssh互信测试通过,点ok,下一步(如果失败,检查密码):


修改以下内容,将修改public ip(主机ip)所用到的ip地址和网卡:

修改private ip(心跳网络)所用到的网卡和ip:

点击下一步,选择由ASM磁盘管理

只先创建一个vote磁盘组,用来仲裁,冗余类型根据需求选择,size根据需求场景选择,默认也可以:

点击改变磁盘路径,修改为你iscsi磁盘映射的位置(也就是你磁盘所在的路径):


high冗余需要5块磁盘组成ocrvote组,选5块voting盘:

填写密码,oracle

提示密码过于简单,点击yes:

选择忽略




检查安装环境:

忽略警告,如果是faild就需要解决:

确认忽略警告,点ok:

安装grid进程截图:

弹出来下面的框的时候,先不要着急在4个节点上跑脚本,需要先打个补丁:

7以下的linux,例如6版本的Linux系统,请忽略下面的psu步骤
7.4的linux需要先在4个计算节点打补丁,不要同时进行,挨个来
补丁包(两个都要下载p688那个是打psu的软件,p183那个是psu)
1>链接:https://share.weiyun.com/5g2JsdC 密码:521215
2>链接:https://share.weiyun.com/5Lyna0L 密码:521215

cp /root/qdata/psu/p6880880_112000_Linux-x86-64.zip /tmp
cp /root/qdata/psu/p18370031_112040_Linux-x86-64.zip /tmp

mv /u01/app/11.2.0/grid/OPatch /u01/app/11.2.0/grid/OPatch.bak

unzip /tmp/p6880880_112000_Linux-x86-64.zip -d /u01/app/11.2.0/grid/


chown -R grid:oinstall /u01/app/11.2.0/grid/OPatch 
/u01/app/11.2.0/grid/OPatch/opatch version

unzip /tmp/p18370031_112040_Linux-x86-64.zip -d /tmp/
su - grid
cd /tmp/18370031
/u01/app/11.2.0/grid/OPatch/opatch apply 

遇到yes|no的选y
遇到默认直接回车


然后,然后,然后的然后
逐个在4个节点执行root.sh(root用户下)
复制脚本到4个节点:

在4个节点分别执行完第一个脚本后,复制第二个脚本,依次在4个节点执行,不可以同时4个节点进行:


会报错,点击ok:

发现有两处是failed的,如果是我下面截图上的两种failed那就没有关系,点击next,完成grid的安装,如果是其他错误,到了这步,看看还能挽救不,直接点下一步,看运气。

八、安装oracle软件

安装包链接(两个包都要下载):
1>链接:https://share.weiyun.com/5MzipNQ 密码:521215
2>链接:https://share.weiyun.com/5QlULH3 密码:521215

su - oracle
unzip p13390677_112040_Linux-x86-64_1of7.zip 
unzip p13390677_112040_Linux-x86-64_2of7.zip 
cd database/
export DISPLAY=20.76.58.215:0.0
./runInstaller 


跳过升级,下一步:

选择仅安装oracle软件,然后下一步:

建立oracle ssh互信:


之后点击test测试一下:

然后下一步,默认语言,直接下一步
然后选择enterprise企业版

选择安装位置,点击下一步:

保持默认,点击下一步:

正在安装:

如果出现我下面截图一样的警告,那就直接忽略下面的错误,然后点击下一步,不会有任何错误:

点击install,开始安装oracle软件:

没错,然后又跳出来了一个报错,如果是下图所示的错误,请点继续,忽略,不会有任何错误,有兴趣的自己百度原因,但是我同事DBA告诉我,这个报错没有关系。。。。。

ok,进程快完了。。。

复制下面的脚本,分别依次在4个节点上执行:


点击ok,安装完成:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!