linux redhat6 Oracle11g rac +lvm +asm安装详细过程 总结经验
安装环境
主操作系统:windows 10
虚拟机VMware 15:两台Red Hat Enterprise linux 6.10
装包:Oracle Database software: Oracle11gR2
Cluster software: Oracle grid infrastructure 11gR2(11.2.0.4.0)
共享存储:ASM
网络配置
数据库(第一节点):
public ip:192.168.10.100
private ip:192.168.20.11
virtual ip:192.168.10.103
scan ip:192.168.10.105
数据库SID:acdm1
数据文件位置:+DATA
OCR:+OCR
数据库(第二节点):
public ip:192.168.10.102
private ip:192.168.20.22
virtual ip:192.168.10.104
scan ip:192.168.10.105
数据库SID:acdm2
数据文件位置:+DATA
OCR:+OCR
环境配置
配置根目录逻辑卷(双节点)
#只是为了练习安装oracle的朋友可以直接跳过此步
#以下操作第一节点与第二节点都要操作
两节点各增加磁盘80g
reboot #重启虚拟机
fdisk -l
查看分区情况
我新加的磁盘是/dev/sdb1,要看好自己的新加磁盘名称。
关闭swap交换区
[root@localhost Desktop]# freetotal used free shared buffers cached
Mem: 1905164 1001764 903400 3652 32040 598392
-/+ buffers/cache: 371332 1533832
Swap: 1048572 0 1048572
swap交换分区正在使用
#关闭所有交换分区/并且显示详细信息
[root@localhost Desktop]# swapoff -av
swapoff on /dev/sda3
[root@localhost Desktop]# freetotal used free shared buffers cached
Mem: 1905164 1001256 903908 3652 32180 598548
-/+ buffers/cache: 370528 1534636
Swap: 0 0 0
划分新分区
把刚才加入的80G硬盘建立分区
Command (m for help): n
Command actione extendedp primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-10443, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-10443, default 10443):
Using default value 10443
Command (m for help): w
The partition table has been altered!
新增物理卷
[root@localhost Desktop]# pvcreate /dev/sdb1Physical volume "/dev/sdb1" successfully created
新增卷组
[root@localhost Desktop]#vgcreate lvm2020 /dev/sdb1
Volume group "lvm2020" successfully created
新增逻辑卷 用于新的根目录
[root@localhost Desktop]# lvcreate -L 79G -n lv2020 lvm2020Logical volume "lv2020" created.
[root@localhost Desktop]#mkfs -t ext4 /dev/lvm2020/lv2020
######新建/mnt/usb目录用于挂载lv2020
[root@localhost Desktop]#mkdir /mnt/usb
[root@localhost Desktop]#mount /dev/lvm2020/lv2020 /mnt
######用dump把根目录备份到/mnt/usb
如果没有dump命令就安装一下,如果是新的建的虚拟机配置一下yum源
[root@localhost Desktop]#yum -y install dump*
[root@localhost Desktop]#dump /mnt/usb/root.bak /
还原root.bak
[root@localhost Desktop]#restore -rf /mnt/root.bak
修改启动引导配置文件 /boot/grub/grub.conf和 文件系统配置表 /ect/fstab中根目录的引导分区的id。
查看一下新加逻辑卷lv2020的uuid
[root@localhost Desktop]#blkid
vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Jan 8 06:23:22 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=56125f64-8d90-4c84-9723-cb98db8ab8f6 / ext4 defaults 1 1
UUID=8bec9b72-3c54-49a1-93a1-0e781e393a12 /boot ext4 defaults 1 2
UUID=165084df-c6d7-4f68-991d-90fd96f2c8e0 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux 6 (2.6.32-754.el6.x86_64)root (hd0,0)kernel /vmlinuz-2.6.32-754.el6.x86_64 ro root=UUID=56125f64-8d90-4c84-9723-cb98db8ab8f6 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quietinitrd /initramfs-2.6.32-754.el6.x86_64.img
重启虚拟机并查看根目录挂载分区
reboot
df -Th
[root@localhost Desktop]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/lvm2020-lv2020ext4 78G 5.3G 69G 8% /
配置hosts文件(双节点)
vim /etc/hosts
添加映射
根据自己设定的ip 与主机名而设定/例如我的主机名是orarac1 orarac2
#------public ip-------------192.168.10.100 orarac1192.168.10.102 orarac2#------private ip-------------192.168.20.11 orarac1-priv192.168.20.22 orarac2-priv#------vip ip-----------------192.168.10.103 orarac1-vip192.168.10.104 orarac2-vip #------scan ip---------------192.168.10.105 scan-ip
创建组/用户grid和oracle(两节点)
groupadd -g 1000 oinstall
groupadd -g 1100 asmadmin
groupadd -g 1200 dba
groupadd -g 1300 asmdba
groupadd -g 1301 asmoper
useradd -u 1100 -g oinstall -Gasmadmin,asmdba,asmoper -d /home/grid grid
useradd -u 1101 -g oinstall -G dba,asmdba-d /home/oracle oracle
echo grid | passwd --stdin grid
echo oracle | passwd --stdin oracle
创建目录与设定权限(两节点)
mkdir -p/u01/app/oracle/product/11.2.0.4/db_1
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
chmod -R 775 /u01/app/oracle
mkdir -p /u01/app/grid/product/11.2.0.4
chown -R grid:oinstall /u01/app/grid
chmod -R 775 /u01/app/grid
配置limitsconf文件(两节点)
vim /etc/security/limits.d/90-nproc.conf
找到这行注掉
#* soft nproc 1024 加上注释#
vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
配置sysctl.conf文件(两节点)
vim /etc/sysctl.conf
增加内核配置
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 805306368
kernel.shmmax = 3221225472
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
修改登录配置文件(两节点)
vim /etc/profile
增加:
if [ $USER = "oracle" ]; thenif [ $SHELL = "/bin/ksh" ]; thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fifi
执行以下命令生效参数
source /etc/profile
修改/dev/shm (两节点)
vim /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=3146641408
重新挂载一下shm
mount -o remount /dev/shm
停掉以下服务(两节点)
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
chkconfig iptables off
service iptables stop
service ip6tables stop
修改SELINUX(两节点)
vim /etc/selinux/config
修改成SELINUX=disabled
配置root用户环境变量(两节点)
vim /root/.bash_profile
添加
export
ORACLE_HOME=/u01/app/grid/product/11.2.0.4export
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/sbin:/bin:/usr/sbin:/usr/bin
export PATH
配置grid用户环境变量(一节点)
vim /home/grid/.bash_profile
export ORACLE_SID=+ASM1export ORACLE_BASE=/u01/app/grid/baseexport ORACLE_HOME=/u01/app/grid/product/11.2.0.4export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATHexport ORACLE_TERM=xtermexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/oracm/lib:/lib:/usr/lib:/usr/local/lib:$ORACLE_HOME/lib32
配置grid用户环境变量(二节点)
vim /home/grid/.bash_profile
export ORACLE_SID=+ASM2
export ORACLE_BASE=/u01/app/grid/base
export ORACLE_HOME=/u01/app/grid/product/11.2.0.4
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export ORACLE_TERM=xterm
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/oracm/lib:/lib:/usr/lib:/usr/local/lib:$ORACLE_HOME/lib32
上传安装包到服务器并解压(可以通过FTP上传至服务器)
p13390677_112040_Linux-x86-64_1of7.zip --database安装包1(上传到第1节点)上传到/home/oracle目录下
p13390677_112040_Linux-x86-64_2of7.zip --database安装包2(上传到第1节点)上传到/home/oracle目录下
p13390677_112040_Linux-x86-64_3of7.zip --grid安装包(上传到第1节点)上传到/home/grid目录下
pdksh-5.2.14-1.i386.rpm --ksh rpm包(上传到两节点)上传到/root目录下即可
用grid用户登录,解压grid安装包到grid家目录。
unzip p13390677_112040_Linux-x86-64_3of7.zip
用oracle用户登录,解压database安装包。
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
- 安装所需软件包(两节点)
yum install binutils* compat-libstdc++-*
elfutils-libelf-* elfutils-libelf-devel-* gcc-* gcc-c++-* glibc-*
glibc-common-* glibc-devel-* glibc-headers-* libaio-* libaio-devel-* libgcc-*
libstdc++-* make-* sysstat-* unixODBC-* compat-libcap1-1.10-1.x86_64 -yexport CVUQDISK_GRP=oinstallrpm -ivh /home/grid/grid/rpm/cvuqdisk-1.0.9-1.rpmrpm -ivh pdksh-5.2.14-1.i386.rpm(两节点)### 创建VMwa
re共享磁盘
管理员权限打开CMD
cd C:\Program Files (x86)\VMware\VMware
Workstation>
vmware-vdiskmanager.exe -c -s 1000Mb -a
lsilogic -t 2 D:\虚拟机镜像\dd\ocr.vmdk
vmware-vdiskmanager.exe -c -s 1000Mb -a
lsilogic -t 2 D:\虚拟机镜像\dd\ocr2.vmdk
vmware-vdiskmanager.exe -c -s 1000Mb -a
lsilogic -t 2 D:\虚拟机镜像\dd\votingdisk.vmdk
vmware-vdiskmanager.exe -c -s 20000Mb -a
lsilogic -t 2 D:\虚拟机镜像\dd\data.vmdk
vmware-vdiskmanager.exe -c -s 10000Mb -a
lsilogic -t 2 D:\虚拟机镜像\dd\backup.vmdk
在两台虚拟机上添加新建好的磁盘,选择独立永久模式,虚拟机的控制设备节点改为SCSI 1:n通过关机添加下,顺序不能错:把之前文件里的scsi1相关的数删掉即可,把下列添加修改RAC1虚拟机目录下的vmx配置文件:
scsi1.present = “TRUE”
scsi1.virtualDev = “lsilogic”
scsi1.sharedBus = “virtual”
scsi1:1.present = “TRUE”
scsi1:1.mode = “independent-persistent”
scsi1:1.filename = " D:\虚拟机镜像\dd\ocr.vmdk"
scsi1:1.deviceType = “plainDisk”
scsi1:2.present = “TRUE”
scsi1:2.mode = “independent-persistent”
scsi1:2.filename = " D:\虚拟机镜像\dd\votingdisk.vmdk"
scsi1:2.deviceType = “plainDisk”
scsi1:3.present = “TRUE”
scsi1:3.mode = “independent-persistent”
scsi1:3.filename = " D:\虚拟机镜像\dd\data.vmdk"
scsi1:3.deviceType = “plainDisk”
scsi1:4.present = “TRUE”
scsi1:4.mode = “independent-persistent”
scsi1:4.filename = " D:\虚拟机镜像\dd\backup.vmdk"
scsi1:4.deviceType = “plainDisk”
scsi1:5.present = “TRUE”
scsi1:5.mode = “independent-persistent”
scsi1:5.filename = " D:\虚拟机镜像\dd\ocr2.vmdk"
scsi1:5.deviceType = “plainDisk”
disk.locking = “false”
diskLib.dataCacheMaxSize = “0”
diskLib.dataCacheMaxReadAheadSize = “0”
diskLib.DataCacheMinReadAheadSize = “0”
diskLib.dataCachePageSize = “4096”
diskLib.maxUnsyncedWrites = “0”
修改RAC2的vmx配置文件:
scsi1.sharedBus = “virtual”
disk.locking = “false”
diskLib.dataCacheMaxSize = “0”
diskLib.dataCacheMaxReadAheadSize =
“0”
diskLib.DataCacheMinReadAheadSize =
“0”
diskLib.dataCachePageSize =
“4096”
diskLib.maxUnsyncedWrites = “0”
gui.lastPoweredViewMode =
“fullscreen”
checkpoint.vmState = “”
usb:0.present = “TRUE”
usb:0.deviceType = “hid”
usb:0.port = “0”
usb:0.parent = “-1”
配置udev绑定(两节点)
首先查看共享磁盘。使用root用户登录。
sdb到sde为共享磁盘,共4个。在命令行执行以下脚本
for i in b c d e f ;doecho "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.rulesdone
查看绑定规则文件。
cat /etc/udev/rules.d/99-oracle-asmdevices.rules
启动udev。
start_udev
查看绑定好的asm磁盘。ll /dev/asm
用脚本进行配置互信(一节点)(root用户执行)
./sshUserSetup.sh -user grid -hosts "orarac1 orarac2" -advanced -noPromptPassphrase
(脚本在:/home/grid/grid/sshsetup)
./sshUserSetup.sh -user oracle -hosts "orarac1 orarac2" -advanced -noPromptPassphrase
(脚本在:/home/oracle/database/sshsetup)
装Grid Infrastructure(第1节点)
使用grid用户登录。
cd /home/grid/grid./runInstaller
选择安装集群
选择自定义安装
选择语言默认English
选择语言默认English
定义集群名字,SCAN Name 为hosts中定义的scan-ip,取消GNS
界面只有第一个节点rac1,点击“Add”把第二个节点rac2加上,如果找不到orarac2 看一下hosts配置的主机民和network
选择网卡
选择配置ASM方式共享
配置ASM这里选择前面配置的裸盘diskb、dickc 、diskf冗余方式为External即不冗余。因为是不用于,所以也可以只选一个设备。这里的设备是用来做OCR注册盘和votingdisk投票盘的。
配置ASM实例需要为具有sysasm权限的sys用户,具有sysdba权限的asmsnmp用户设置密码,这里设置统一密码为oracle,会提示密码不符合标准,点击OK即可
不选择智能管理
检查ASM实例权限分组情况
选择grid软件安装路径和base目录
选择grid安装清单目录
环境检测
环境检测出现resolv.conf错误,是因为没有配置DNS,可以忽略,出现ntp错误是因为没有配置ntp。
安装grid概要
安装grid完成,提示需要root用户依次执行脚本orainstRoot.sh ,root.sh (一定要先在rac1执行完脚本后,才能在其他节点执行)执行完成点击ok进行下一步安装
/u01/app/grid/oraInventory/orainstRoot.sh
/u01/app/grid/product/11.2.0.4/root.sh
这里出现一个错误,是因为没有配置resolve.conf,可以忽略点击ok,点击NEXT即可
安装完成
安装grid后的资源检查(到grid用户下执行命令)
检查crs状态 crsctl check crs
检查Clusterware资源 crs_stat -t -v
检查集群节点 olsnodes -n
检查两个节点上的Oracle TNS监听器进程
`ps -ef|grep lsnr|grep -v 'grep'|grep -v 'ocfs'|awk '{print$9}'`
确认针对Oracle Clusterware文件的Oracle ASM功能:
如果在 Oracle ASM 上暗转过了OCR和表决磁盘文件,则以Grid Infrastructure 安装所有者的身份,使用给下面的命令语法来确认当前正在运行已安装的Oracle ASM
srvctl status asm -a
为数据和快速恢复去创建ASM磁盘组
在节点一下进行安装(用grid用户)
用asmca命令进行安装
这里看到安装grid时配置的OCR盘已存在
添加FRA盘使用asm-diskd、asm-diske裸盘
ASM磁盘组情况
ASM实例
安装Oracle databaser软件(RAC)
就在一节点上安装即可(到oracle用户下)
选择只安装数据库软件
选择Oracel Real Application Clusters database installation按钮(默认),确保勾选所有的节点
选择语言English
选择安装企业版软件
选择安装Oracle软件路径,其中ORACLE_BASE,ORACLE_HOME均选择之前配置好的
Oracle权限授予用户组
安装前的预检查
选择跳过错误即可
安装RAC的概要信息
在每个节点的root用户下执行脚本,执行脚本后点击ok即可
集群数据库
在节点一上用oracle用户执行dbca创建RAC数据库
选择创建数据库
选择自定义数据库
配置类型选择Admin-Managed,输入全局数据库名acdm,每个节点实例SID前缀为acdm,选择双节点
选择默认,配置OEM,启用数据库自动维护任务
选择字符集AL32UTF8
选择默认的数据存储信息
开始创建数据库,勾选生成数据库的脚本
数据库的概要信息,点击ok开始安装
开始组建安装
RAC维护
查看服务状态(在grid用户下执行)
crs_stat -t
检查集群运行状态
srvctl status database -d acdm
检查CRS状态
检查本地节点的CRS状态
crsctl check crs
检查集群的CRS状态
crsctl check cluster
-
查看集群中节点配置信息
olsnodes
olsnodes -n
olsnodes -n -i -s -t
查看集群的表决磁盘信息
crsctl query css votedisk
查看集群SCAN VIP 信息
srvctl config scan
查看集群SCAN Listener信息
srvctl config scan_listener