Oracle11g RAC 安装

Oracle11g RAC 安装

1 安装前准备

1.1 主机方面

  1. 在rac1和rac2上分别修改主机名
vim /etc/sysconfig/network # 重启生效,一个rac1,另一个rac2
HOSTNAME=rac1
  1. 在rac1和rac2上分别执行配置内核参数
vim /etc/sysctl.conf
#加入以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2147483648
kernel.shmmax = 68719476736
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

#使修改参数立即生效:
sysctl -p
  1. 在rac1和rac2上分别执行修改limits
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
  1. 在rac1和rac2上分别修改/etc/pam.d/login
vim /etc/pam.d/login
加入以下信息
#session required /lib/security/pam_limits.so 
session required /lib64/security/pam_limits.so
session required pam_limits.so
  1. 在rac1和rac2上分别执行修改/etc/profile
vim /etc/profile
加入以下信息
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
  1. 在rac1和rac2 上分别执行禁用 selinux
vim /etc/selinux/config
修改 SELINUX值
SELINUX=disabled
  1. 在rac1和rac2上分别执行停止 ntp 服务
service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.bak

1.2 网络方面

  1. 配置静态IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改ip地址。每个虚拟机ens33网卡为public,
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=711d1898-6ba2-4e27-9f72-af6f46dd72cd
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.236.100
NETMASK=255.255.255.0
GATEWAY=192.168.236.1

vi /etc/sysconfig/network-scripts/ifcfg-ens34
修改ip地址。每个虚拟机ens34网卡位private
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens34
UUID=910e6c9a-966b-4c6f-881d-a617a21fc3e3
DEVICE=ens34
ONBOOT=yes
IPADDR=2.2.2.1
NETMASK=255.255.255.0

修改完成后执行
systemctl restart network
  1. 在rac1和rac2上分别关闭防火墙
#可用systemctl命令
service iptables stop   --停止防火墙
chkconfig iptables off   --禁用防火墙 
systemctl stop firewalld
systemctl disable firewalld
  1. 在rac1和rac2 上分别改hosts
vim /etc/hosts  
 添加对应的ip信息

#public
192.168.236.100 rac1
192.168.236.101 rac2
#private
2.2.2.1 rac1-priv
2.2.2.2 rac2-priv
#virtual
192.168.236.102 rac1-vip
192.168.236.103 rac2-vip
#scan
192.168.236.104 cluster-scan
  1. 在rac1和rac2上分别关闭不需要的服务
chkconfig autofs off
chkconfig acpid off
chkconfig sendmail off
chkconfig cups-config-daemon off
chkconfig cpus off
chkconfig xfs off
chkconfig lm_sensors off
chkconfig gpm off
chkconfig openibd off
chkconfig pcmcia off
chkconfig cpuspeed off
chkconfig nfslock off
chkconfig ip6tables off
chkconfig rpcidmapd off	
chkconfig apmd off
chkconfig sendmail off
chkconfig arptables_jf off	
chkconifg microcode_ctl off
chkconfig rpcgssd off
chkconfig ntpd off
#使用时上面部分命令会自动跳转到以下命令,使用上面命令也行
systemctl disable autofs.service
systemctl disable nfslock.service
systemctl disable rpcidmapd.service
systemctl disable rpcgssd.service
systemctl disable ntpd.service

1.3 操作系统方面

  1. 在rac1和rac2上分别添加oracle和grid用户和组
groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 504 asmadmin
groupadd -g 505 asmoper
groupadd -g 506 asmdba
useradd -g oinstall -G dba,asmdba,oper oracle
useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid

#注意:如果oracle,grid用户已经存在可使用下面命令
usermod -g oinstall -G dba,asmdba,oper oracle
usermod -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
  1. 在rac1和rac2上分别为oracle和grid用户设密码
passwd oracle
passwd grid
  1. 在rac1和rac2上分别创建grid 和 oracle 用户的目录
mkdir -p /u01/app/grid	
mkdir -p /u01/app/11.2.0/grid
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/11.2.0
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory
  1. 在rac1和rac2上分别修改oracle用户的.bash_profile文件
vim /home/oracle/.bash_profile
注意:	export ORACLE_SID=rac1 #在rac1里面
export ORACLE_SID=rac2 #在rac2里面

export ORACLE_SID=rac1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export TMP=/tmp	
export TMPDIR=$TMP
export PATH=$PATH:$ORACLE_HOME/bin
  1. 在rac1和rac2上分别修改grid 用户的.bash_profile文件
vim /home/grid/.bash_profile
注意:	export ORACLE_SID=+ASM1 #在rac1里面
export ORACLE_SID=+ASM2 #在rac2里面

export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export PATH=$ORACLE_HOME/bin:$PATH
  1. 在本机上创建共享磁盘
#在windows的cmd 中进入VMware Workstation 安装目录,执行命令创建磁盘: 
cd c:\Program Files (x86)\VMware\VMware Workstation

vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "F:\shdisk\vot.vmdk"
#这是一个 VMware 的命令行工具,意思是创建一个大小为 5GB、使用 LSI Logic 控制器、采用 Thick-Provision Lazy Zeroed 方式分配的虚拟磁盘文件,命名为 "vot.vmdk" 并保存到 "F:\shdisk\" 目录下。

vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "F:\shdisk\vot.vmdk"
Vmware-vdiskmanager.exe -c -s 2g -a lsilogic -t 2 "F:\shdisk\fra.vmdk"
vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "F:\shdisk\data.vmdk"
vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "F:\shdisk\data1.vmdk"

vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "D:\shared_disks_rac\asmdisk1.vmdk"
Vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "D:\shared_disks_rac\asmdisk2.vmdk"
vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "D:\shared_disks_rac\asmdisk3.vmdk"
vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "D:\shared_disks_rac\asmdisk4.vmdk"
vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "D:\shared_disks_rac\asmdisk5.vmdk"

image-20230414220445417

  1. 将共享磁盘挂到两台虚拟机

注意:一定要关闭虚拟机再写,否则不能保存

关闭两台虚拟机并退出VM,分别用记事本打开虚拟机安装位置中虚拟机名字. vmx,添加以下内容

disk.EnableUUID="TRUE"
disk.locking = "FALSE"
scsi1.shared = "TRUE"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize= "4096"
diskLib.maxUnsyncedWrites = "0"
 
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsil.sharedBus = "VIRTUAL"

scsi1:0.present = "TRUE"
scsi1:0.mode = "independent-persistent"
scsi1:0.fileName = "D:\shared_disks_rac\asmdisk1.vmdk"
scsi1:0.deviceType = "disk"
scsi1:0.redo = ""

scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.fileName = "D:\shared_disks_rac\asmdisk2.vmdk"
scsi1:1.deviceType = "disk"
scsi1:1.redo = ""

scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.fileName = "D:\shared_disks_rac\asmdisk3.vmdk"
scsi1:2.deviceType = "disk"
scsi1:2.redo = ""

scsi1:3.present = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.fileName = "D:\shared_disks_rac\asmdisk4.vmdk"
scsi1:3.deviceType = "disk"
scsi1:3.redo = "" 

scsi1:4.present = "TRUE"
scsi1:4.mode = "independent-persistent"
scsi1:4.fileName = "D:\shared_disks_rac\asmdisk5.vmdk"
scsi1:4.deviceType = "disk"
scsi1:4.redo = ""
  1. 两个虚拟机开机,,确认是否共享成功。
fdisk -l	--确认看以正常看到sdb,sbc,sdd,sde,sdf
或者使用lsblk命令
lsblk

image-20230414220711289

  1. 在rac1和rac2上分别将裸设备文件和分区设备文件进行绑定。
执行下面命令查询scsi_id
/usr/lib/udev/scsi_id -g -u -d /dev/sdb
/usr/lib/udev/scsi_id -g -u -d /dev/sdc
/usr/lib/udev/scsi_id -g -u -d /dev/sdd
/usr/lib/udev/scsi_id -g -u -d /dev/sde
/usr/lib/udev/scsi_id -g -u -d /dev/sdf

image-20230414220817370

#修改保存
vim /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=="36000c29a02ed9eee9551000598605268", RUN+="/bin/sh -c 'mknod /dev/asm-disk1  b  $major $minor; chown grid:oinstall /dev/asm-disk1; chmod 0660 /dev/asm-disk1'"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block",  PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",  RESULT=="36000c29b27ef8520083ac1203a05565c", RUN+="/bin/sh -c 'mknod /dev/asm-disk2  b  $major $minor; chown grid:oinstall /dev/asm-disk2; chmod 0660 /dev/asm-disk2'"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block",  PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",  RESULT=="36000c29da16ee7cb4d20fe0f4fd36d85", RUN+="/bin/sh -c 'mknod /dev/asm-disk3  b  $major $minor; chown grid:oinstall /dev/asm-disk3; chmod 0660 /dev/asm-disk3'"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block",  PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",  RESULT=="36000c295d8a536ce1527f54d76aad4c5", RUN+="/bin/sh -c 'mknod /dev/asm-disk4  b  $major $minor; chown grid:oinstall /dev/asm-disk4; chmod 0660 /dev/asm-disk4'"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block",  PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",  RESULT=="36000c29cfe47782bbf223b50b004b96f", RUN+="/bin/sh -c 'mknod /dev/asm-disk5  b  $major $minor; chown grid:oinstall /dev/asm-disk5; chmod 0660 /dev/asm-disk5'"

#注意Centos7该命令已经失效!!!
#然后执行:start_udev	
cd /etc/udev/rules.d/

#Centos7使用下面命令使其配置生效并查看

/sbin/udevadm trigger --type=devices --action=change
ll /dev/asm*

2 安装grid软件

安装软件包–挂载本地yum源
配置本地yum源
步骤一:在centos虚拟机中挂载光盘

  1. 创建挂载点目录
mkdir /mnt/cdrom
df /mnt/cdrom

image-20230414221558958

  1. 挂载光盘
mount /dev/cdrom /mnt/cdrom

image-20230414221611975

#查看挂载记录
df -hT /mnt/cdrom

image-20230414221640738

步骤二:更改配置文件

  1. 进入/etc/yum.repos.d/中查看文件
cd /etc/yum.repos.d/
ll

image-20230414221709037

  1. 将CentOS-Base.repo和CentOS-Debuginfo.repo改名或者移动,绕过网络安装,以便使用本地安装
#本次使用改名 方便作为备份文件
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
mv CentOS-Base.repo CentOS-Base.repo.bak
  1. 编辑文件CentOS-Media.repo(使用vim编辑器)

image-20230414221729677

4.清除yum缓存,测试yum源配置

#清除yum缓存测试
yum clean all
yum list
#出现已安装的软件包时,便成功配置了

#下载依赖
yum -y install \
binutils \
compat-libcap1  \
compat-libstdc++-33 \
compat-libstdc++-33*.i686 \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc*.i686 \
glibc \
glibc-devel \
glibc-devel*.i686 \
ksh \
libgcc*.i686 \
libgcc \
libstdc++ \
libstdc++*.i686 \
libstdc++-devel \
libstdc++-devel*.i686 \
libaio \
libaio*.i686 \
libaio-devel \
libaio-devel*.i686 \
make \
sysstat \
unixODBC \
unixODBC*.i686 \
unixODBC-devel \
unixODBC-devel*.i686 \
libXp

#root用户下
xhost +
#grid用户下
export DISPLAY=192.168.236.1:0.0
export LANG=en_US

image-20230414221758933

进入安装包grid用户下运行

./runInstaller

安装截图

image-20230414222008128

image-20230414222019444

image-20230414222027077

image-20230414222035606

SCAN NAME:与hosts文件对应

image-20230414222100491

建立SSH互信 加入rac2,输入OS Password,SetUp => Test

image-20230414222127822

image-20230414222140492

image-20230414222149339

image-20230414222155599

此次创建的磁盘组用于存放数据库实例相关的文件,如控制文件,参数文件,表空间数据文件(一般存储规划时将归档文件另外再创建磁盘组额外存放,热备文件也是如此),在弹出框中修改磁盘簇名称,以及选择磁盘冗余度,本次选择是Normal。
补充:
redundancy—冗余

三种模式:high、normal、external 分别代表 : 高、正常、外部

一般情况下三种模式需要的磁盘数量为: high:最少5块;normal:最少3块;external:最少1块。
1、 高度冗余(high redundancy):
表示Oracle提供3份镜像来保护数据(镜像数据两次),以提高性能和数据的安全,所创建的磁盘组空间大小是所有磁盘设备大小之和的1/3,虽然冗余级别高了,但是硬件的代价也最高。
2、 默认冗余(normal redundancy):
表示Oracle提供2份镜像来保护数据(镜像数据一次),所创建的磁盘组空间大小是所有磁盘设备大小之和的1/2 (虽然网上说使用最多,但是这要看实际生产设备存储情况来判断)。
3、 外部冗余(external redundancy):
表示Oracle没有做磁盘冗余,所创建的磁盘组空间大小是所有选择的所有磁盘的大小之和。虽然磁盘利用充分,但是磁盘出错后无法恢复数据,只能依赖外部存储系统实现,比如通过RAID技术。

image-20230414222232970image-20230414222201712

image-20230414222241800

image-20230414222248226

image-20230414222256180

image-20230414222302226

前面没下载依赖就会出现下面情况,解决办法下载依赖

image-20230414222324262

点击 Fix & Check Again 根据提示在root用户下执行脚本Script

image-20230414222344064

image-20230414222351286

image-20230414222358381

image-20230414222404149

image-20230414222411845

以下错误可以Ignore 点击Ignore All

image-20230414222432213

image-20230414222438363

在root用户下分别在rac1 rac2下执行脚本,注意要等rac1执行完成,才能在rac2下执行

image-20230414222457909

错误:

Creating /etc/oratab file…
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
User ignored Prerequisites during installation
Installing Trace File Analyzer
Failed to create keys in the OLR, rc = 127, Message:*
/u01/app/11.2.0/grid/bin/clscfg.bin: error while loading shared libraries: libcap.so.1: cannot open shared object file: No such file or directory*
原因:少compat-libcap1依赖,配置本地yum源后下载
yum -y install 依赖名

执行root.sh出现下面问题,原因在 centos 7 下安装 11.2.0.4 GI,运行 root.sh 时报错 Failed to start the Clusterware. Last 20 lines of the alert log follow:

主要要因为 centos 7使用 systemd 而不是 initd 运行进程和重启进程,而 root.sh 是通过传统的 initd 运行ohasd进程。
执行root.sh失败
root用户下

touch /usr/lib/systemd/system/ohas.service
chmod 777 /usr/lib/systemd/system/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

启动该服务

systemctl daemon-reload
systemctl enable ohas.service
systemctl start ohas.service
systemctl status ohas.service

image-20230414222731726

root.sh成功截图

image-20230414222755464

由错误日志可知,是因为没有配置resolve.conf,可以忽略 点击Skip

image-20230414222815723

image-20230414222821840

查看确保都是online

crsctl check crs

执行asmca命令

asmca

image-20230414222908010

image-20230414223118452

image-20230414223129196

image-20230414223138146

image-20230414223145104

查看共享磁盘

image-20230414223637041

3 安装 Oracle

image-20230414223700560

image-20230414223707050

image-20230414223713481

image-20230414223718450

image-20230414223723489

image-20230414223728708

image-20230414223734063

image-20230414223739139

image-20230414223744516

以下错误可以忽视

image-20230414223800785

image-20230414223806264

image-20230414223811371

出现上面错误,需要修改**$ORACLE_HOME/sysman/lib/ins_emagent.mk**文件
NMECTL后面加上 -lnnz11 第一个为字母l,后面两个为数字1

[oracle@rac1 ~]$ cd $ORACLE_HOME/sysman/lib
[oracle@rac1 lib]$ cp ins_emagent.mk ins_emagent.mk.bak
[oracle@rac1 lib]$ vim ins_emagent.mk

image-20230414223909201

以root用户在rac1 rac2下面分别执行

/u01/app/oracle/product/11.2.0/dbhome_1/root.sh

image-20230414223942813

4 创建实例

dbca

image-20230414224023742

image-20230414224028929

image-20230414224034730

image-20230414224040535

image-20230414224045827

image-20230414224051836

image-20230414224057114

image-20230414224102900

image-20230414224108435

image-20230414224113204

image-20230414224118246

image-20230414224122866

image-20230414224127997

image-20230414224133469

image-20230414224138405

image-20230414224143663

image-20230414224149853

image-20230414224154985

image-20230414224159645

image-20230414224204468

image-20230414224218492

4357)]

[外链图片转存中…(img-PP2EGSAZ-1681483874358)]

[外链图片转存中…(img-j0Xl5jDQ-1681483874359)]

[外链图片转存中…(img-kRfNyl8D-1681483874359)]

[外链图片转存中…(img-OBaAXto8-1681483874360)]

[外链图片转存中…(img-wjNdo56n-1681483874361)]

[外链图片转存中…(img-FA3Sdg82-1681483874361)]

[外链图片转存中…(img-EPOHD42g-1681483874362)]

[外链图片转存中…(img-YQO4cp15-1681483874363)]

[外链图片转存中…(img-xNc1kxFy-1681483874363)]

[外链图片转存中…(img-diEyd5dV-1681483874365)]

[外链图片转存中…(img-Fv5Ho9qj-1681483874366)]

[外链图片转存中…(img-jwTFoLLB-1681483874366)]

[外链图片转存中…(img-0x0W3Gxc-1681483874367)]

[外链图片转存中…(img-WyZ0brPO-1681483874368)]

[外链图片转存中…(img-lUtYrf7I-1681483874368)]

[外链图片转存中…(img-jCzsOrf3-1681483874369)]

[外链图片转存中…(img-PKs2bOfx-1681483874370)]

image-20230414224224126

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值