签到成功

知道了

CNDBA社区CNDBA社区

Redhat7 以下RAC 搭建

2018-01-29 16:28 2407 3 原创 ORACLE
作者: Marvinn

1、配置/etc/hosts 网络

172.16.10.221 rac1 rac1-publ

192.168.122.37  rac1-priv

172.16.10.226  rac1-vip

172.16.10.222 rac2 rac2-publ

192.168.122.145 rac2-priv

172.16.10.227  rac2-vip

172.16.10.225 rac-scan

2、关闭firewall和disabled Selinux

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

service iptables stop

chkconfig iptables off

vi /etc/selinux/config    修改成==>SELINUX=disabled

setenforce 0

3、修改/etc/security/limits.conf 文件,增加内容如下:

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

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

让配置生效:

sysctl -p

6、关闭ntp服务

service ntpd status

chkconfig ntpd off

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

7、创建用户和组

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、创建安装目录http://www.cndba.cn/Marvinn/article/2598http://www.cndba.cn/Marvinn/article/2598

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

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、配置yum 并安装相关包http://www.cndba.cn/Marvinn/article/2598

mkdir /media/disk       --创建挂载目录

mount /dev/cdrom /media/disk/  ---挂载

touch /etc/yum.repos.d/oinstall.repo   ---创建yum文件

vi  oinstall.repo

[oracle-install]

name=oracle-install

baseurl=file: ///media/disk/Server

gpgcheck=0

enabled=1

yum install oracle-rdbms-server-11gR2-preinstall-1.0-6.el6 --安装包之后,oracle用户参数自动设定

或者 # yum  install binutils -y

yum install compat-libcap1 -y

yum install compat-libstdc++-33 -y

yum install gcc -y

yum install gcc-c++ -y

yum install glibc -y

yum install glibc-devel -y

yum install ksh -y

yum install libgcc -y

yum install libstdc++ -y

yum install libstdc++-devel -y

yum install libaio -y

yum install libaio-devel -y

yum install libXext -y

yum install libXtst -y 

yum install libX11 -y

yum install libXau -y

yum install libxcb -y  

yum install libXi -y

yum install make -y

yum install sysstat -y

yum install unixODBC -y

yum install unixODBC-devel -y                 ---后续参数需要自行设置

--检查包是否被安装上

rpm -q binutils  compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc  glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel libXext libX11 libXau  libxcb libXi make sysstat unixODBC unixODBC-devel

10、(看是否采用哪个安装包)cat /etc/security/limits.conf查看用户限制文件的参数,使用oracle-rdbms-server-11gR2-preinstall-1.0-6.el6 --安装包之后,oracle用户参数自动设定,并修改文件限制参数(grid)

grid-rdbms-server-11gR2-preinstall setting for nofile soft limit is 1024

grid   soft   nofile    1024

grid-rdbms-server-11gR2-preinstall setting for nofile hard limit is 65536

grid   hard   nofile    65536

grid-rdbms-server-11gR2-preinstall setting for nproc soft limit is 2047

grid   soft   nproc    2047

grid-rdbms-server-11gR2-preinstall setting for nproc hard limit is 16384

grid   hard   nproc    16384

grid-rdbms-server-11gR2-preinstall setting for stack soft limit is 10240KB

grid   soft   stack    10240

grid-rdbms-server-11gR2-preinstall setting for stack hard limit is 32768KB

grid   hard   stack    32768

11、配置grid用户环境变量:http://www.cndba.cn/Marvinn/article/2598

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

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 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 --'

11G

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

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 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 --'

11G

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

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

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用户)

---在rac1上执行如下

以下脚本生成asm-disk*设备,并追加到99-oracle-asmdevices.rules的规则文件内:

for i in b c d e f g h i j;

do

echo "KERNEL==/"sd*/", BUS==/"scsi/", PROGRAM==/"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name/", RESULT==/"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i/", NAME=/"asm-disk$i/", OWNER=/"grid/", GROUP=/"asmadmin/", MODE=/"0660/""      >> /etc/udev/rules.d/99-oracle-asmdevices.rules

done

--绑定udev设备并查看asm-disk*是否生成

start_udev

---rac1、rac2两个节点执行

vi /lib/udev/rules.d/90-pulseaudio.rules

#找到SUBSYSTEMS=="usb", GOTO="pulseaudio_check_usb"这行,前面加个#注释掉

ls  /dev/asm-disk*    ---查看asm-disk*是否生成

9、把这个规则SCP到rac2节点,然后再rac2也start_udev即可。

cd  /etc/udev/rules.d/

scp 99-oracle-asmdevices.rules  root@172.21.16.222:/etc/udev/rules.d/99-oracle-asmdevices.rules

13、rac1、rac2互信(grid用户两节点互信以及oracle用户两节点互信分别登陆)http://www.cndba.cn/Marvinn/article/2598

配置两个节点间grid和oracle帐号的SSH互信认证 (可图行化安装自动配置)

以便安装过程中将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上执行:

12、上传安装软件oracle,并切换用户oracle解压

$ 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环境搭建完成http://www.cndba.cn/Marvinn/article/2598

—dbca 建库http://www.cndba.cn/Marvinn/article/2598

rac1:

--su - grid

--sqlplus  / as sysasm 

SQL*Plus: Release 11.2.0.3.0 Production on Tue Oct 8 17:32:35 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Real Application Clusters and Automatic Storage Management options

create diskgroup data external redundancy disk '/dev/asm-diske' ATTRIBUTE 'compatible.rdbms' = '11.2','compatible.asm' = '11.2';

rac2 :需要对增加的磁盘组Mount

alter diskgroup data mount;

--rac1  su - grid

$  srvctl add listener

  srvctl start  listener

SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ

 FROM SYS.xksppi x, SYS.xksppcv y

 WHERE x.inst_id = USERENV ('Instance')

 AND y.inst_id = USERENV ('Instance')

 AND x.indx = y.indx

AND x.ksppinm like '%high%';

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



---

dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname ora  -sid ora -sysPassword yunq111 -systemPassword yunq111 -datafileDestination '+DATADG' -redoLogFileSize 50 -recoveryAreaDestination '+DATADG' -storageType ASM -asmsnmpPassword oracle  -diskGroupName '+DATADG' -responseFile NO_VALUE -characterset AL32UTF32 -nationalCharacterSet AL32UTF8 -sampleSchema false -automaticMemoryManagement true -totalMemory 500  -nodeinfo rac1,rac2

---静默安装不行,图形安装

--打开xmanager passive,利用xshell

--# export DISPLAY=本机IP:0.0

---# xhost +

-$dbca

---安装VNC

-查询是否安装vnc服务器

rpm -qa|grep vnc-server

yum install vnc* -y

vncserver

cd $HOME/.vnc

vi xtartup

--注释最后一行,添加如下

gnome &

vi /etc/sysconfig/vncservers

--按照最后两行的格式添加1:root   1024x768

service vncserver restart

---以上VNC服务器配置完成!

--VNC view连接

--#xhost +

--切换用户,安装软件

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

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

Marvinn

关注

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

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

        QQ交流群

        注册联系QQ