虚拟机安装oracle RAC

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

虚拟机安装oracle RAC

Oracle rac安装的前提是必须要有一个共享存储器。两台电脑上只安装oracle实例,数据库创建在共享存储上,两个实例都可以访问数据库。因此由于没有存储设备,所以用虚拟机虚拟几个硬盘作为共享存储。


环境如下:

Linux操作系统:Oracle Linux Server release 6.4

VMware versionWorkstation 10 build-703057

Oracle版本:11G R2 oracle 64位 11.2.0.1.0 for linux

安装包如下:

Linux: V37084-01.iso oracle官网下载)

Oracle: linux.x64_11gR2_database_1of2.ziporacle官网下载)

        linux.x64_11gR2_database_2of2.ziporacle官网下载)

              oracleasmlib-2.0.12-1.el6.x86_64.rpm(oracle官网下载)

 注意:ASMoracle用来管理共享存储里面的磁盘的,后面文档中有提供下载地址

        linux.x64_11gR2_grid.ziporacle官网下载)

       注意:grid是oracle集群工具

 

步骤规划:

1,安装Linux操作系统,配置虚拟机共享磁盘

2,配置系统相关的网络,用户相关信息

3,配置ASM

4,安装Oracle grid

5,安装Oracle database

6,创建ASM磁盘组

7,建立数据库实例

 

1,配置虚拟机、安装Linux操作系统

1.1  新建虚拟机:NEWSDB01 NEWSDB02,并安装系统

下载Oracle Linux Server release 6.4iso后新建虚拟机后安装即可。注意内存分配,每个虚拟机至少2G内存比较好给每个虚拟机分配50GB硬盘容量,配置2个桥接网卡。(其中一个网卡用于主机与外部通信,另一个网卡用于两台主机心跳。还有“桥接”就是虚拟机的ip段和电脑本机在一个段,这样整个局域网中的电脑都可以访问这台虚拟机,需要给虚拟机手动设置ip。)

1.2   配置Share Disks

新建共享硬盘,在DOS 切换到VM安装目录下执行:要注意要有F盘,没有F盘就得改后面的路径

开始--运行---CMD 进入DOS

cd  F:/Software/vm10/(就是你vm的安装路径)

vmware-vdiskmanager.exe -c -s 1000Mb -a lsilogic -t 2 F:\VMDisk\Sharedisk\ocr.vmdk
vmware-vdiskmanager.exe -c -s 1000Mb -a lsilogic -t 2 F
:\VMDisk\Sharedisk\ocr2.vmdk
vmware-vdiskmanager.exe -c -s 1000Mb -a lsilogic -t 2
 F:\VMDisk\Sharedisk\votingdisk.vmdk
vmware-vdiskmanager.exe -c -s 20000Mb -a lsilogic -t 2 F:\VMDisk\Sharedisk\data.vmdk
vmware-vdiskmanager.exe -c -s 10000Mb -a lsilogic -t 2 F:\VMDisk\Sharedisk\backup.vmdk

配置虚拟机newsdb01 newsdb02目录下的vmx虚拟机配置文件,在行最后添加如下:

scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1.sharedBus = "virtual"


scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.filename = "F:\VMDisk\Sharedisk\ocr.vmdk"
scsi1:1.deviceType = "plainDisk"

scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.filename = "F:\VMDisk\Sharedisk\votingdisk.vmdk"
scsi1:2.deviceType = "plainDisk" 

scsi1:3.present = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.filename = "F:\VMDisk\Sharedisk\data.vmdk"
scsi1:3.deviceType = "plainDisk"

scsi1:4.present = "TRUE"
scsi1:4.mode = "independent-persistent"
scsi1:4.filename = "F:\VMDisk\Sharedisk\backup.vmdk"
scsi1:4.deviceType = "plainDisk"

scsi1:5.present = "TRUE"
scsi1:5.mode = "independent-persistent"
scsi1:5.filename = "F:\VMDisk\Sharedisk\ocr2.vmdk"
scsi1:5.deviceType = "plainDisk"

disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"

保存退出。

再次提醒注意内存、硬盘和网卡配置。

配置虚拟机、安装Linux操作系统完成。

 

2,配置OS

这种颜色的需要在两个节点都配置需要同时在两个节点执行。

2.1 关闭防火墙、selinux(考虑到后面安装时会碰到一些情况,所以需要执行这步骤)

关闭selinux
setenforce 0   
[root@newsdb01  ~]# vim /etc/selinux/config
SELINUX=disabled

关闭防火墙
service iptables stop

chkconfig iptables off

 

2.2 配置网络

host文件,两个节点都配置

 vim /etc/hosts

192.168.0.5 newsdb01

192.168.0.6 newsdb02

192.168.0.7 newsdb01-vip

192.168.0.8 newsdb02-vip

10.10.10.10 newsdb01-priv

10.10.10.11 newsdb02-priv

192.168.0.100 scan-ip

保存退出。

配置完之后互相ping看看是否连通。

 

2.3 停止NTP服务和删除配置

service ntpd stop

chkconfig ntpd off

rm -rf /etc/ntpd.conf 

rm -rf /var/run/ntpd.pid


   

配置SSH互通

就是两台服务器直接SSH访问是不需要密码:比如  ssh newsdb02 就直接连接到newsdb02上了。在oracle 11g r2 之前的版本需要手动配置,oracle 11g r2 中不需要手动配置。

注意:

grid安装时会提供配置步骤,所以不需要手工配置。

在安装gridoracle的时候都需要创建SSH互通,该步骤的主要目的是使两台主机之间访问不需要输入密码,安装gridoracle都只需要在一台机器上运行,因为安装过程中安装程序会自动把node1的数据copynode2.


 

2.4 配置Oracle软件安装用户、组、环境变量、安装目录

#
groupadd -g 1300 dba
groupadd -g 1301 oper
groupadd -g 1000 oinstall
groupadd -g 1200 asmadmin
groupadd -g 1201 asmdba
groupadd -g 1202 asmoper

#用户

useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -s /bin/bash grid  

useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -s /bin/bash oracle
#用户环境变量修改home下的

vim  .bash_profile

ORACLE用户

export TMP=/tmp 
export TMPDIR=$TMP 
export ORACLE_SID=netdb1  # newsdb01(节点一)
export ORACLE_SID=
netdb2  # newsdb02(节点二)

export ORACLE_BASE=/u01/app/oracle 
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin 
export PATH=/usr/sbin:$PATH 
export PATH=$ORACLE_HOME/bin:$PATH 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib 
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib 
umask 022 

GRID
用户
export TMP=/tmp 
export TMPDIR=$TMP 
export ORACLE_SID=+ASM1  # 
newsdb01(节点一)

export ORACLE_SID=+ASM2  # newsdb02(节点二)

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/11.2.0/grid
export PATH=/usr/sbin:$PATH 
export PATH=$ORACLE_HOME/bin:$PATH 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib 
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib 
umask 022 

配置目录
mkdir -p  /u01/app/11.2.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle

chown grid:oinstall /u01/app/11.2.0/grid

chown grid:oinstall /u01/app/grid
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/
chown -R grid:oinstall /u01

 

2.5 配置系统文件

配置oraclegrid用户的shell限制

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

修改/etc/pam.d/login配置文件

vim  /etc/pam.d/login 
添加 session    required     pam_limits.so


修改内核配置文件/etc/sysctl.conf

fs.aio-max-nr = 1048576 
fs.file-max = 6815744 
kernel.shmall = 2097152 
kernel.shmmax = 1054472192 
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.tcp_wmem = 262144 262144 262144 
net.ipv4.tcp_rmem = 4194304 4194304 4194304 


保存退出后执行 sysctl -p 立即生效。

 

2.6 配置共享磁盘 (由于是共享存储,在一个节点执行即可。另一个节点自然就有了

查看分区

ls /dev/sd*

使用fdisk进行分区,其他区按照自己的规划划分就可以了,例:

fdisk /dev/sdb

[root@newsdb01  ~]# fdisk /dev/sdb

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1000, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1000, default 1000): +500M

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (502-1000, default 502):
Using default value 502
Last cylinder, +cylinders or +size{K,M,G} (502-1000, default 1000):
Using default value 1000

Command (m for help): w

The partition table has been altered!

最后配置完后查看分区

fidks -l

[root@newsdb01  ~]# ls /dev/sd*(应该有如下对应的7个分区)
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1  /dev/sdc  /dev/sdc1  /dev/sdd  /dev/sdd1  /dev/sdd2  /dev/sde  /dev/sde1  /dev/sde2  /dev/sdf  /dev/sdf1

 

2.7 安装Oracle grid等需要的包(这个包在安装检查安装环境的时候会提示哪些包没有,没有的就再装一遍,如果确认已经安装过了就直接下一步,因为你安装的版本可能和系统要求的不一致所以提示未安装,这些包在系统盘里面就有。可以把系统盘挂载到文件系统中,

mount /dev/cdrom /mnt/

cd /mnt/Packages )

这些包在系统盘里面就有。可以把系统盘挂载在上

rpm -ivh libgcc-4.4.7-3.el6.i686.rpm

rpm -ivh libgcc-4.4.7-3.el6.x86_64.rpm

rpm -ivh libstdc++-4.4.7-3.el6.i686.rpm

rpm -ivh libstdc++-4.4.7-3.el6.x86_64.rpm

rpm -ivh libstdc++-devel-4.4.7-3.el6.x86_64.rpm

rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm

rpm -ivh libaio-devel-0.3.107-10.el6.x86_64.rpm

rpm -ivh make-3.81-20.el6.x86_64.rpm

rpm -ivh sysstat-9.0.4-20.el6.x86_64.rpm

rpm -ivh ksh-20100621-19.el6.x86_64.rpm

rpm -ivh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm

rpm -ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm

rpm -ivh gcc-4.4.7-3.el6.x86_64.rpm

rpm -ivh oracleasm-support-2.1.8-1.el6.x86_64.rpm

rpm -ivh binutils-2.20.51.0.2-5.36.el6.x86_64.rpm

rpm -ivh compat-libcap1-1.10-1.x86_64.rpm

rpm -ivh binutils-2.20.51.0.2-5.36.el6.x86_64.rpm

rpm -ivh binutils-2.20.51.0.2-5.36.el6.x86_64.rpm

rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm

rpm -ivh glibc-2.12-1.107.el6.x86_64.rpm

rpm -ivh glibc-2.12-1.107.el6.i686.rpm

rpm -ivh glibc-2.12-1.107.el6.x86_64.rpm

rpm -ivh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm

rpm -ivh elfutils-libelf-devel-0.152-1.el6.x86_64.rpm

rpm -ivh gcc-c++-4.4.7-3.el6.x86_64.rpm

rpm -ivh libaio-devel-0.3.107-10.el6.x86_64.rpm

rpm -ivh libgcc-4.4.7-3.el6.x86_64.rpm

rpm -ivh libstdc++-4.4.7-3.el6.x86_64.rpm

rpm -ivh libaio-0.3.107-10.el6.i686.rpm

rpm -ivh glibc-2.12-1.107.el6.x86_64.rpm

rpm -ivh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm

rpm -ivh libaio-devel-0.3.107-10.el6.i686.rpm

rpm -ivh libgcc-4.4.7-3.el6.i686.rpm

rpm -ivh  libstdc++-4.4.7-3.el6.x86_64.rpm

rpm -ivh  unixODBC-2.2.14-12.el6_3.x86_64.rpm

rpm -ivh  unixODBC-devel-2.2.14-12.el6_3.x86_64.rpm


yum -y install pdksh


3,配置ASM

3.1 查看操作系统内核版本对应下载

uname -a

下载oracleasm 

http://www.oracle.com/technetwork/server-storage/linux/asmlib/ol6-1709075.html

安装

yum -y install kmod-oracleasm.x86_64

rpm -ivh oracleasmlib-2.0.4-1.el6.x86_64.rpm(官网下载) 
rpm -ivh oracleasm-support-2.1.8-1.el6.x86_64.rpm
(光盘中有)

3.2 配置ASM磁盘

在两个节点上执行
[root@newsdb01  oracle]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: grid
Default group to own the driver interface []: asmdba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver:                     [  OK  ]
Scanning the system for Oracle ASMLib disks:               [  OK  ]



创建并扫描ASM磁盘(只需要一个节点上创建,另一个节点上直接scandisks)

[root@newsdb01  oracle]# /etc/init.d/oracleasm createdisk  VOL1  /dev/sdb1

[root@newsdb01  oracle]# /etc/init.d/oracleasm createdisk  VOL2  /dev/sdc1

[root@newsdb01  oracle]# /etc/init.d/oracleasm createdisk  VOL3  /dev/sdd1

[root@newsdb01  oracle]# /etc/init.d/oracleasm createdisk  VOL4  /dev/sdd2

[root@newsdb01  oracle]# /etc/init.d/oracleasm createdisk  VOL5  /dev/sde1

[root@newsdb01  oracle]# /etc/init.d/oracleasm createdisk  VOL6  /dev/sde2

[root@newsdb01  oracle]# /etc/init.d/oracleasm createdisk  VOL7  /dev/sdf1


[root@newsdb01  oracle]# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks:               [  OK  ]

[root@newsdb01  ~]# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
VOL5
VOL6
VOL7


4,安装Oracle grid

将grid 安装包传到服务器上 。

4.1将grid程序包拷贝到服务器节点1的/u01目录下解压,unzip linux.x64_11gR2_grid.zip

在root下执行 xhost +

su - grid

export DISPLAY=:0.0

export LANG=en_US.UTF-8

进入解压开的目录中执行

./runinstaller 打开安装图像界面,开始安装。


安装完成后会产生两个shell文件,分别在两个节点执行。

如果出错则执行

先执行/u01/app/11.2.0/grid/crs/install/roothas.pl -deconfig -force -verbose

然后执行root.sh的同时执行/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1

 

5,安装Oracle database软件

需要用oracle用户安装

在root下执行 xhost +

su - oracle

export DISPLAY=:0.0

export LANG=en_US.UTF-8

./runInstaller

仅安装数据库软件即可,这里就根据图形界面的提示安装就可以了,最后按照提示执行相关脚本。

 

6,创建ASM磁盘组

需要新建其他磁盘组来安装数据文件等

su - grid

asmca

根据界面提示创建磁盘组。

 

7,建立数据库实例

su - oracle

./runInstaller

根据图形界面步骤提示选择rac选项新建数据库实例即可。

 


     本文转自阿伦艾弗森 51CTO博客,原文链接:http://blog.51cto.com/perper/1946897,如需转载请自行联系原作者






相关文章
|
2月前
|
Ubuntu Shell 网络安全
安装了ubuntu虚拟机后发现shell无法连接 ubuntu开启ssh连接
【8月更文挑战第23天】安装了ubuntu虚拟机后发现shell无法连接
139 6
|
13天前
|
Unix Linux 开发工具
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
本文详细介绍了如何在官网下载CentOS 8以及在VMware Workstation Pro 16虚拟机上安装CentOS 8的步骤,包括可能出现的问题和解决方案,如vcpu-0错误的处理方法。
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
|
2月前
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
68 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
2月前
|
编解码 Linux 虚拟化
超详细VMware虚拟机安装Win10操作系统过程图解
这篇文章提供了一个详细的VMware虚拟机安装Windows 10操作系统的图解教程,包括了从创建虚拟机到安装操作系统的全过程,以及安装后的一些基本设置,如屏幕分辨率调整等。作者还提到了后续会分享关于磁盘分区的创建过程。
超详细VMware虚拟机安装Win10操作系统过程图解
|
2月前
|
机器学习/深度学习 Oracle 关系型数据库
Oracle 19c单机一键安装脚本分享
Oracle 19c单机一键安装脚本分享
71 2
|
2月前
|
运维 Oracle 前端开发
Oracle 11g RAC集群日常运维命令总结
Oracle 11g RAC集群日常运维命令总结
59 2
|
2月前
|
测试技术 开发工具 虚拟化
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
这篇文章提供了一份保姆级的教程,指导如何在MacOS虚拟机上安装Xcode,包括环境准备、基础软件安装以及USB扩展插件的使用,以实现iOS自动化测试方案的第一步。
44 0
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
|
2月前
|
应用服务中间件 Linux nginx
Linux虚拟机磁盘扩容、Docker容器磁盘满的问题、Docker安装nginx
这篇文章讨论了Linux虚拟机磁盘扩容的方法,包括外部配置、具体扩容步骤和扩容后的效果验证。同时,文章还涉及了Docker容器磁盘满的问题及其解决方法,如删除不必要的镜像和容器,以及调整Docker的安装路径。此外,还提到了意外情况的处理,例如误删除停止的容器后的应对措施。最后,文章还提供了使用Docker安装nginx的步骤和成功访问的截图。
Linux虚拟机磁盘扩容、Docker容器磁盘满的问题、Docker安装nginx
|
2月前
|
存储 NoSQL Java
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
该博客文章展示了如何在Linux虚拟机上使用Redis和Jedis客户端实现手机验证码的验证功能,包括验证码的生成、存储、验证以及限制每天发送次数的逻辑,并提供了测试结果截图。
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
|
2月前
|
Linux
虚拟机安装Linux系统的网络配置
该博客文章提供了解决虚拟机中Linux系统网络问题的多种方法,包括重置网络服务、修改网络配置文件、使用不同网络模式等,以确保虚拟机能够成功连接到网络。
虚拟机安装Linux系统的网络配置