签到成功

知道了

CNDBA社区CNDBA社区

Redhat7 以上RAC搭建

2018-01-29 16:06 3500 0 原创 ORACLE
作者: Marvinn

1、配置主机 网络

192.168.45.56 sy-oa-01 sy-oa-01-publ

10.0.10.1  sy-oa-01-priv1

172.16.10.1 sy-oa-01-priv2

192.168.45.76  sy-oa-01-vip

192.168.45.57 sy-oa-02 sy-oa-02-publ

10.0.10.2  sy-oa-02-priv1

172.16.10.2 sy-oa-02-priv2

192.168.45.77  sy-oa-02-vip

192.168.45.78 rac-scan

关闭卸载Rehat7 virbro虚拟桥接网卡

http://www.cndba.cn/Marvinn/article/2597
http://www.cndba.cn/Marvinn/article/2597

展示brtctl命令http://www.cndba.cn/Marvinn/article/2597

brctl show

ifconfig virbr0 down

brctl delbr virbr0

2、关闭firewall和disabled Selinuxhttp://www.cndba.cn/Marvinn/article/2597

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

--关闭防火墙

vi / etc/ sysconfig/ selinux

修改enforcing 为disabled

3、修改/ etc/ security /limits.conf 文件,增加内容如下:http://www.cndba.cn/Marvinn/article/2597

vi /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

oracle soft memlock 3145728

oracle hard memlock 3145728

4、修改/etc/pam.d/login 文件

vi /etc/pam.d/login

session required pam_limits.so

5、修改 sysctl.conf 配置文件

vi / 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 = 1048586

net.ipv4.conf.default.rp_filter = 2 

net.ipv4.conf.all.rp_filter = 2 

让配置生效:

sysctl -p

6、关闭ntp服务

service ntpd status

chkconfig ntpd off

mv / etc/ntp.conf /etc/ntp.conf.original

修改network文件

echo “NOZEROCONF=yes” >> /etc/sysconfig/network

关闭ntptime.zone

systemct stop chronyd.service

mv /etc/chronyd.conf /etc/chronyd.conf.orgina

7、创建用户和组http://www.cndba.cn/Marvinn/article/2597http://www.cndba.cn/Marvinn/article/2597

groupadd -g 5000 asmadmin

groupadd -g 5001 asmdba

groupadd -g 5002 asmoper

groupadd -g 6000 oinstall

groupadd -g 6001 dba

groupadd -g 6002 oper

useradd -g oinstall -G asmadmin,asmdba,asmoper,dba grid

useradd -g oinstall -G dba,asmdba,asmadmin oracle

passwd oracle

passwd grid

8、创建安装目录

mkdir /u01

mkdir /g01

chown -R oracle:oinstall /u01

chown -R grid:oinstall /g01

9、vi /etc/profile

—添加如下

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

10、配置rehat yum 并安装相关包

mkdir /mnt.cdrom

mount -o loop /dev/cdrom /mnt/cdrom

local.repo

[base]

name=RedHat

baseurl=file: ///mnt/cdrom

enabled=1

gpgckeck=0

gpgkey=file: ///mnt/cdrom/RPM-GPG-KEY-redhat-release

yum install compat-libstdc++-33 compat-libcap1 elfutils-libelf-devel gcc-c++ ksh libaio-devel libstdc++-devel unixODBC unixODBC-devel -y

11、配置grid用户环境变量:

rac1:

vi ~/.bash_profile

--添加如下

ORACLE_SID=+ASM1

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG

ORACLE_BASE=/g01/grid

ORACLE_HOME=/g01/app/grid/11.2.0

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/oracle/admin/sql:ORACLE_HOME/rdbms/admin

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

echo " "

echo " "

echo -e "/e[31;1m********************/e[0m"

echo -e "/e[31;1mYou 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='sqlplus "/"'

alias rsql='rlwrap sqlplus'

alias sqln="sqlplus /nolog"

alias dba='sqlplus "/as sysasm"'

alias ohome="cd $ORACLE_HOME"

alias rm='rm -i --'

alias cp='cp -i'

alias mv='mv -i --'



alias clog='cd $ORACLE_HOME/log/hostname'

alias bdump='cd ORACLE_BASE/diag/asm/+asm/ORACLE_SID/trace'

alias udump="cd $ORACLE_BASE/admin/diag/asm/+asm/+ASM/trace/"

alias cdump="cd $ORACLE_BASE/admin/diag/asm/+asm/+ASM/trace/"

alias otail="tail -f  ORACLE_BASE/admin/diag/asm/+asm/+ASM/trace/alert_ORACLE_SID.log"

alias vlog='tail -200 ORACLE_BASE/admin/diag/asm/+asm/+ASM/trace/alert_ORACLE_SID.log'

alias myasm='cd $ORACLE_BASE/admin/diag/asm/+asm/+ASM/trace'

rac2: 

vi ~/.bash_profile

--添加如下

ORACLE_SID=+ASM2

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG

ORACLE_BASE=/g01/grid

ORACLE_HOME=/g01/app/grid/11.2.0

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/oracle/admin/sql:ORACLE_HOME/rdbms/admin



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

echo " "

echo " "

echo -e "/e[31;1m********************/e[0m"

echo -e "/e[31;1mYou 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='sqlplus "/"'

alias rsql='rlwrap sqlplus'

alias sqln="sqlplus /nolog"

alias dba='sqlplus "/as sysasm"'

alias ohome="cd $ORACLE_HOME"

alias rm='rm -i --'

alias cp='cp -i'

alias mv='mv -i --'



alias clog='cd $ORACLE_HOME/log/hostname'

alias bdump='cd ORACLE_BASE/diag/asm/+asm/ORACLE_SID/trace'

alias udump="cd $ORACLE_BASE/admin/diag/asm/+asm/+ASM/trace/"

alias cdump="cd $ORACLE_BASE/admin/diag/asm/+asm/+ASM/trace/"

alias otail="tail -f  ORACLE_BASE/admin/diag/asm/+asm/+ASM/trace/alert_ORACLE_SID.log"

alias vlog='tail -200 ORACLE_BASE/admin/diag/asm/+asm/+ASM/trace/alert_ORACLE_SID.log'

alias myasm='cd $ORACLE_BASE/admin/diag/asm/+asm/+ASM/trace'

stty erase ^H

12、配置oracle用户环境变量:

rac1:

--添加如下

ORACLE_SID=orcl1

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG

ORACLE_HOME=/u01/oracle/11.2.0

ORACLE_BASE=/u01/oracle

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/oracle/admin/sql: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

echo " "

echo " "

echo -e "/e[31;1m********************/e[0m"

echo -e "/e[31;1mYou 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='sqlplus "/"'

alias rsql='rlwrap sqlplus'

alias sqln="sqlplus /nolog"

alias dba='sqlplus "/as sysdba"'

alias ohome="cd $ORACLE_HOME"

alias rm='rm -i --'

alias cp='cp -i'

alias mv='mv -i --'

-------------------------------------------------------------------------------------

UMASK

-------------------------------------------------------------------------------------

Set the default file mode creation mask

(umask) to 022 to ensure that the user performing

the Oracle software installation creates files

with 644 permissions

------------------------------------------------------------------------------------

umask 022

stty erase ^H

rac2:

--添加如下

ORACLE_SID=orcl2

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG

ORACLE_HOME=/u01/oracle/11.2.0

ORACLE_BASE=/u01/oracle

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/oracle/admin/sql: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

echo " "

echo " "

echo -e "/e[31;1m********************/e[0m"

echo -e "/e[31;1mYou 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='sqlplus "/"'

alias rsql='rlwrap sqlplus'

alias sqln="sqlplus /nolog"

alias dba='sqlplus "/as sysdba"'

alias ohome="cd $ORACLE_HOME"

alias rm='rm -i --'

alias cp='cp -i'

alias mv='mv -i --'

-------------------------------------------------------------------------------------

UMASK

-------------------------------------------------------------------------------------

Set the default file mode creation mask

(umask) to 022 to ensure that the user performing

the Oracle software installation creates files

with 644 permissions

------------------------------------------------------------------------------------

umask 022

stty erase ^H

12、配置共享存储(root用户)

配置multipath/见其他网卡绑定/Multipath文档

配置udev规则,mapper/下面设备名

ENV{DM_NAME}=="hba1",OWNER:="grid", GROUP:="asmadmin", MODE:="660"

ENV{DM_NAME}=="hba2",OWNER:="grid", GROUP:="asmadmin", MODE:="660"

ENV{DM_NAME}=="hba3",OWNER:="grid", GROUP:="asmadmin", MODE:="660"

13、rac1、rac2互信(grid用户两节点互信以及oracle用户两节点互信分别登陆)

http://www.cndba.cn/Marvinn/article/2597

两个节点得互信,可以在图形安装过程中解决。不用手动配置

配置两个节点间grid和oracle帐号的SSH互信认证

http://www.cndba.cn/Marvinn/article/2597

以便安装过程中将grid和oracle目录复制到其他节点中。

1).在主节点RAC1上以grid,oracle用户身份生成用户的公匙和私匙 

$ mkdir ~/.ssh 

ssh-keygen -t rsa 

ssh-keygen -t dsa  

2).在副节点RAC2上执行相同的操作,确保通信无阻

$mkdir ~/.ssh 

ssh-keygen -t rsa 

ssh-keygen -t dsa 

3).在一节点RAC1上oracle(grid)用户执行以下操作

$cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys 

cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys 

ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 

---在二节点RAC2上oracle(grid)用户执行以下操作

$cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys 

cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys 

ssh rac1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

ssh rac1 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 

4)--rac1、rac2节点上验证用户等效性

$ssh rac1 date

$ssh rac2 date 

$ssh rac1-priv date

$ssh rac2-priv date

11、上传安装软件grid,并切换用户grid解压

$ cd  软件解压路径中的sshUserSetup

$./sshUserSetup.sh -user grid -hosts "rac1 rac2" -noPromptPassphrase -confirm -advanced

期间要输入grid用户口令

$./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose  ---校验环境

---上传响应文件grid_install.rsp  详情见grid_install文档

--安装

$./runInstaller -silent -responseFile /home/grid/response/grid_install.rsp -showProgress -ignorePrereq

执行脚本:现在rac1执行再到rac2上执行



---创建数据DATA磁盘组

grid用户下asmca创建磁盘

两个节点都需要运行

grid用户下:sqlplus / as sysasm

alter system set "_high_priority_processes"='LMS*' scope=spfile;

12、上传安装软件oracle,并切换用户oracle解压http://www.cndba.cn/Marvinn/article/2597

$ cd  软件解压路径中的sshUserSetup

$./sshUserSetup.sh -user oracle -hosts "rac1 rac2" -noPromptPassphrase -confirm -advanced

$ vi  grid用户下oraInventory/ContentsXML/inventory.xml

找到 这行<HOME NAME="Ora11g_gridinfrahome1" LOC="/opt/grid/products/11.2.0" TYPE="O" IDX="1" CRS="true">  ---添加 CRS="true"即可

------上传响应文件db_install.rsp  详情见db_install文档

--安装

$./runInstaller -silent -responseFile /u01/database/response/db_install.rsp -showProgress -ignorePrereq

执行脚本:现在rac1执行再到rac2上执行:

——-RAC环境搭建完成

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Marvinn

Marvinn

关注

路漫漫其修远兮、吾将上下而求索

  • 99
    原创
  • 0
    翻译
  • 2
    转载
  • 36
    评论
  • 访问:458490次
  • 积分:449
  • 等级:中级会员
  • 排名:第12名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ