ITPub博客

首页 > 数据库 > Oracle > 通过ORACLE VM virtualbox环境安装oracle 11G RAC(ASM)

通过ORACLE VM virtualbox环境安装oracle 11G RAC(ASM)

原创 Oracle 作者:germany006 时间:2020-03-26 11:54:05 0 删除 编辑

一、环境准备

操作系统CENTOS7.5

数据库ORACLE11.2.0.4

虚拟机ORACLE VM virtualbox6.0


1、新建2台虚拟机

虚拟机配置,内存4G(最好是给4G,不然会后悔的,后悔的截图在最后一行),CPU1核,本地磁盘50G,共享磁盘需要详细的写一下,如下所述:

RAC1:

创建新虚拟盘


1节点创建好2个固定磁盘

进入 (ORACLE VM)虚拟介质管理界面

将刚刚创建的2块磁盘设置为共享属性,应用


2节点直接使用刚刚创建的两块现有共享磁盘


每台虚拟机一共3块网卡,其中2块hostonly,1块桥接

2块hostonly的网段也要区分开

不同网段可以在(ORACLE VM)主机网络管理那里配置添加

IP地址和网卡配置自己搞定吧,太简单不写了

1  、host文件配置

#vi /etc/hosts

10.18.96.211 testdb1

10.18.96.212 testdb2

10.18.96.213 testdb1-vip

10.18.96.214 testdb2-vip

10.18.97.215 testdb1-pri

10.18.97.216 testdb2-pri

10.18.96.220 testdb-scan


 

  hosts  文件的  IP  对应名称最好只写一个,不要多余的)

以下很重要,不修改会在安装grid的时候会报错

节点1

vi /etc/hostname

testdb1

临时修改hostname

hostname testdb1

节点2

vi /etc/hostname

testdb2

临时修改hostname

hostname testdb2

 



2  、安装ORACLE11G所需环境包

yum -y install compat-libstdc++-33 elfutils-libelf-devel gcc gcc-c++ glibc-devel glibc-headers libaio-devel libstdc++-devel sysstat unixODBC unixODBC-devel libcap.so.1


我用本地YUM源


3    参数配置

vi /etc/sysctl.conf

生产库的配置:最后一行添加,重复的去掉

kernel.shmall = 4294967295

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

kernel.shmmax = 4294967295

 

这里 hugepage不配置了

 

使参数立即生效

sysctl -p

 

vi /etc/security/limits.conf

生产库的配置:最后一行添加,重复的去掉

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 10240

oracle hard nofile 65536

oracle soft stack 10240

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

grid soft stack 10240

 

 

vi /etc/pam.d/login

session required pam_limits.so

 

 

4  、关闭防火墙

如果不关闭防火墙,在后面配置集群的时候会遇到麻烦的

service iptables stop

chkconfig iptables off

setenforce 0

getenforce

iptables -F

 

vi /etc/selinux/config

SELINUX=disabled

SELINUXTYPE=targeted

 

 

5  、禁用NTP服务(可忽略)

service ntpd stop

chkconfig ntpd off

mv /etc/ntp.conf /etc/ntp.conf.bak

rm -rf /etc/ntp.conf

 

6  、用户及用户组,权限目录创建

/usr/sbin/groupadd -g 501 oinstall

/usr/sbin/groupadd -g 502 dba

/usr/sbin/groupadd -g 503 oper

/usr/sbin/groupadd -g 504 asmadmin

/usr/sbin/groupadd -g 505 asmoper

/usr/sbin/groupadd -g 506 asmdba

/usr/sbin/useradd -g oinstall -G dba,asmdba,oper oracle

/usr/sbin/useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid

 

passwd oracle

passwd grid

 

mkdir -p /u01/app/grid

mkdir -p /u01/app/11.2.0/grid

chown -R grid:oinstall /u01

mkdir -p /u01/app/oracle

chown oracle:oinstall /u01/app/oracle

chmod -R 775 /u01

 

7  、oracle及grid环境变量配置

  oracle  用户登录(两个节点一样)

节点一

vi .bash_profile

 

export PATH

umask 022

export ORACLE_BASE=/ u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=testdb1

export  LANG=en_US.UTF-8

export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin

export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin

export ORACLE_TERM=xterm

export TNS_ADMIN=$ORACLE_HOME/network/admin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

 

oracle用户,节点二

vi .bash_profile

 

export PATH

umask 022

export ORACLE_BASE=/ u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=testdb2

export  LANG=en_US.UTF-8

export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin

export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin

export ORACLE_TERM=xterm

export TNS_ADMIN=$ORACLE_HOME/network/admin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

 

 

 

 

  grid  用户登录

节点一:

vi .bash_profile

ORACLE_SID=+ASM1; export ORACLE_SID

JAVA_HOME=/usr/local/java;export JAVA_HOME

ORACLE_BASE=/ u01/app/grid; export ORACLE_BASE

ORACLE_HOME=/ u01/app/11.2.0/grid; export ORACLE_HOME

ORACLE_PATH=/ u01/app/oracle/common/oracle/sql; export ORACLE_PATH

ORACLE_TERM=xterm;export ORACLE_TERM

NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS";export NLS_DATE_FORMAT

TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN

ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11

PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

PATH=${PATH}:/ u01/app/common/oracle/bin

export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export CLASSPATH

THREADS_FLAG=native; export THREADS_FLAG

export TEMP=/tmp

export TMPDIR=/tmp

export  LANG=en_US.UTF-8

alias sqlplus="rlwrap sqlplus"

umask 022

 

 

节点二:

vi .bash_profile

ORACLE_SID=+ASM2; export ORACLE_SID

JAVA_HOME=/usr/local/java;export JAVA_HOME

ORACLE_BASE=/ u01/app/grid; export ORACLE_BASE

ORACLE_HOME=/ u01/app/11.2.0/grid; export ORACLE_HOME

ORACLE_PATH=/ u01/app/oracle/common/oracle/sql; export ORACLE_PATH

ORACLE_TERM=xterm;export ORACLE_TERM

NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS";export NLS_DATE_FORMAT

TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN

ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11

PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

PATH=${PATH}:/ u01/app/common/oracle/bin

export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export CLASSPATH

THREADS_FLAG=native; export THREADS_FLAG

export TEMP=/tmp

export TMPDIR=/tmp

export  LANG=en_US.UTF-8

alias sqlplus="rlwrap sqlplus"

umask 022


8  、ssh密匙互信配置

设置互信关系,这里记住oracle和grid用户都要设置互信,root也互信,且在测试的时候,2个节点都要进行测试

两个节点上分别操作

su - oracle

mkdir ~/.ssh

ssh-keygen -t rsa

ssh-keygen -t dsa

以下操作在一个节点上执行即可

cat ~/.ssh/id_rsa.pub>>./.ssh/authorized_keys -公钥存在authorized_keys文件中,写到本机

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

ssh testdb2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys -第二个节点的公钥写到本机

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

scp ~/.ssh/authorized_keys testdb2:~/.ssh/authorized_keys

两个节点上分别验证

ssh testdb1 date

ssh testdb2 date

ssh testdb1-PRI date

ssh testdb2-PRI date

两个节点上分别操作 

su - grid

mkdir ~/.ssh

ssh-keygen -t rsa

ssh-keygen -t dsa

以下操作在一个节点上执行即可

cat ~/.ssh/id_rsa.pub>>./.ssh/authorized_keys -公钥存在authorized_keys文件中,写到本机

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

ssh testdb2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys -第二个节点的公钥写到本机

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

scp ~/.ssh/authorized_keys testdb2:~/.ssh/authorized_keys

两个节点上分别验证

ssh testdb1 date

ssh testdb2 date

ssh testdb1-PRI date

ssh testdb2-PRI date


二、ASM磁盘配置

1  、编辑 /etc/scsi_id.config 文件

vi  /etc/scsi_id.configo

options=-g

 

2  、给磁盘分区,并查看磁盘的 uuid  (磁盘分区只在一个节点执行即可)

fdisk /dev/sda

n

p

1

默认回车

默认回车

w

fidk /dev/sdb

n

p

1

默认回车

默认回车

w

查看UUID

/usr/lib/udev/scsi_id -g -u -d /dev/sda1

/usr/lib/udev/scsi_id -g -u -d /dev/sdb1


当然磁盘是哪个磁盘,这个要你们自己挂载的时候自己整好,lsblk查看磁盘

 


  

3  、编辑绑定文件,使用如下规则(这个配置在2个节点都写)

vi  /etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="3628408eff0495d08ef004912d7d6b386", RUN+="/bin/sh -c 'mknod /dev/asmocrdisk b $major $minor; chown grid:asmadmin /dev/asmocrdisk; chmod 0660 /dev/asmocrdisk'"

KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="361c104516049770bef80026911671d80", RUN+="/bin/sh -c 'mknod /dev/asmdatadisk1 b $major $minor; chown grid:asmadmin /dev/asmdatadisk1; chmod 0660 /dev/asmdatadisk1'"


4  、开始绑定

测试

/sbin/partprobe /dev/sda1

/sbin/udevadm test /block/sda/sda1

/sbin/partprobe /dev/sdb1

/sbin/udevadm test /block/sdb/sdb1

进行绑定命令:

/sbin/udevadm control --reload-rules

 

 

5  、绑定完成,可以使用命了 ls -l /dev/asm* 进行查看

lrwxrwxrwx. 1 root root 4 6月   6 16:14 /dev/asm-datadisk1 -> sdb1

lrwxrwxrwx. 1 root root 4 6月   6 16:05 /dev/asm-ocrdisk -> sda1

 

注意:这个时候可能你会发现ll /dev/asm* 下面啥都木有

这个就要记得,把防火墙关闭了,setenforce 0  iptables -F

然后改那个/etc/selinux/config  永久关闭,vi /dev/udev/rules.d/  99-oracle-asmdevices.rules 一样的配置

再登陆2节点,lsblk发现为啥没有/dev/sda1 和/dev/sdb1,直接fdisk /dev/sda 和fdisk /dev/sdb然后直接q退出,不用操作

再次lsblk,就发现,ll /dev/asm* 有映射了。

然后回到1节点,ll /dev/asm*发现还是没有映射,那就和2节点一样的操作,fdisk /dev/sda 和fdisk /dev/sdb然后直接q退出,不用操作。再次lsblk,就发现,ll /dev/asm*有映射了。


如果ll /dev/asm* 还是看不到,那就直接reboot重启操作系统应该就能看到了。


磁盘不同,那些命令路径也有不同,自己看着来



三、GRID/ASM安装

1  )使用  oracle  用户解压安装包

2  )使用  grid  用户登录安装  grid

安装图形化

yum -y groupinstall "X Window System"  

rpm -ivh /opt/grid/rpm/cvuqdisk-1.0.9-1.rpm   (  解压  grid  安装包里面可以找到,如果无法安装,请先安装yum install  smartmontools这个  )

rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm  (这里必须安装这个版本)

 

注意事项:安装  GRID  时,  VIP  设置的时候要全部小写,  VIP    IP  不允许占用

 图形化安装,自己搞定哈,或者在我其他博客里自己找

root用户xhost +回车

su - grid

export DISPLAY=192.168.159.6:0.0

cd /opt/grid/

./runInstaller


(1)步骤一

步骤二

步骤三

步骤四

步骤五

步骤六

步骤七

步骤八

步骤九

步骤十

步骤十一

步骤十二

步骤十三

步骤十四

步骤十五

步骤十六


以上这些都可以忽略

步骤十七

步骤十八

两个节点分别执行脚本,先在一个节点执行完2个脚本,再去第二个节点执行


在执行第二个脚本时,

OLR initialization - successful

  root wallet

  root wallet cert

  root cert export

  peer wallet

  profile reader wallet

  pa wallet

  peer wallet keys

  pa wallet keys

  peer cert request

  pa cert request

  peer cert

  pa cert

  peer root cert TP

  profile reader root cert TP

  pa root cert TP

  peer pa cert TP

  pa peer cert TP

  profile reader pa cert TP

  profile reader peer cert TP

  peer user cert

  pa user cert

Adding Clusterware entries to inittab

运行到这一句,开始,就可以做以下操作了

步骤如下: 
1. 以root用户创建服务文件 
#touch /usr/lib/systemd/system/ohas.service 
#chmod 777 /usr/lib/systemd/system/ohas.service 
2. 将以下内容添加到新创建的ohas.service文件中 
[root@rac1 init.d]# cat /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. 查看运行状态 
[root@rac1 init.d]# systemctl status ohas.service 

看到 Active: active (running) 这个状态就OK了,不用管,继续让它自己自动执行。


完成安装

出现这个报错可以忽略


四、  配置  ASM  磁盘

使用grid  用户在桌面图形环境中运行asmca

创建数据磁盘组




  、安装RAC  数据库

1  )步骤一


使用ORACLE  用户登录,./runInstaller

图形界面啥的,自己搞定或者看我其他博客文章

)步骤二

开始安装





啊后面的不想写了,,,写了一大堆,这博客傻掉了,不知道干嘛突然自动退出,没保存到截图,吐了,不写了。后面的和我其他博客里写的安装方法一样的。

比如下面我写的这篇就很详细了,包含了各种遇到的报错处理,各种注意事项,以后还有什么会继续补充完善

    ORACLE11.2.0.4 RAC+ ASM安装方法 (操作系统CENTOS7.6)

反正最重要的是前面那里配置VM磁盘的,而且只是写给自己看的,又不能设置只给自己看,莫得办法啊。



一个字,慢死了!!!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28371090/viewspace-2682228/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论
ORACLE,MYSQL,POSTGRESQL,SQLSERVER

注册时间:2013-03-06

  • 博文量
    768
  • 访问量
    925339