安装环境准备
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,进程快完了。。。