centos7.7 oracle 12c RAC 部署安装记录
centos7.7 oracle 12c RAC 安装教程
0.安装openfiler(密码:123456)
eth0:192.168.2.100(web控制台登录IP,账号:openfiler,密码:password)
eth1:192.168.2.101
子网:255.255.255.0
#修改主机名为openfiler
vi /etc/sysconfig/network
#设置完openfiler 控制台中的Volume、Systems、services 后
vi /etc/initiators.deny 注释iqn.2006-01.com.openfiler:tsn.c9d01aaf371e ALL
1.安装centos7.7
#进安装界面时按TAB键 输入 net.ifnames=0 biosdevname=0 然后回车
#racdb1
eth0:192.168.2.10(root账号/密码:123456)
eth1:10.1.1.10
子网:255.255.255.0
#racdb2
eth0:192.168.2.20(root账号/密码:123456)
eth1:10.1.1.11
子网:255.255.255.0
#修改主机名
hostnamectl set-hostname rac
#重启网卡
systemctl restart network
#执行rac_install.sh 脚本(执行前记得挂载系统光盘)
chmod a+x rac_install.sh
./rac_install.sh
#执行compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
1.2.配置DNS
执行
systemctl start named
执行
systemctl status named
使用nslookup racdb2,racdb2-priv,racdb-scan 命令去互相解析DNS验证
执行
systemctl enable named
2.共享存储配置
2.1在openfiler主机上查看iscsi服务是否开启
service iscsi-target status
2.2rac1,rac2两个节点安装iscsi initiator
rpm -qa|grep iscsi
yum -y install iscsi-initiator-utils
2.3获取IQN号
iscsiadm -m discovery -t sendtargets -p 192.168.2.100
92.168.2.100:3260,1 iqn.2006-01.com.openfiler:tsn.11506e928845
2.4挂载ISCSI存储
#查看目前挂载的情况
fdisk -l|grep dev
2.5启动iscsi
systemctl start iscsi
2.6启动后查看验证
fdisk -l|grep dev
2.7查看指定服务的状态
systemctl status iscsi
3.多路径软件安装
rpm -qa |grep device-mapper-multipath
yum -y install device-mapper device-mapper-multipath
3.1将多路径软件添加内核块中
modprobe dm-multipath
modprobe dm-round-robin
3.2检查是否正常安装成功
lsmod |grep dm_multipath
multipath -ll
3.3将多路径软件设置开机自启动
systemctl enable multipathd
3.4启动多路径软件
systemctl start multipathd
3.5查看启动状态
systemctl status multipathd
3.6多路径配置
#停止多路径服务
systemctl stop multipathd
#清理缓存
multipath -F
#获取所有存储LUN的WWID号
for i in `cat /proc/partitions|awk {'print $4'} |grep sd`; do val=`/sbin/blockdev --getsize64 /dev/$i` ; val2=`expr $val / 1073741824`;echo "/dev/$i:$val2 `/usr/lib/udev/scsi_id -gud /dev/$i`";done
1ATA_VBOX_HARDDISK_VB145bd4a6-b20a5bca #racdb1
1ATA_VBOX_HARDDISK_VB4a20e6f4-f700514a #racdb2
/dev/sdc:2 14f504e46494c455264336b594e4f2d346638792d356e654c
/dev/sdb:2 14f504e46494c455264336b594e4f2d346638792d356e654c
/dev/sdd:2 14f504e46494c45523137353577632d787237722d6c4a6778
/dev/sde:2 14f504e46494c45523137353577632d787237722d6c4a6778
/dev/sdg:2 14f504e46494c45527844664246502d6e6268322d46777561
/dev/sdf:2 14f504e46494c45527844664246502d6e6268322d46777561
/dev/sdh:40 14f504e46494c45526d336b3062322d69784e622d325a544a
/dev/sdi:40 14f504e46494c45526d336b3062322d69784e622d325a544a
/dev/sdj:40 14f504e46494c45524567336249422d4f3551302d65637931
/dev/sdk:40 14f504e46494c45524567336249422d4f3551302d65637931
/dev/sdl:9 14f504e46494c45524338454452642d6b6b36532d32383242
/dev/sdm:9 14f504e46494c45524338454452642d6b6b36532d32383242
#修改vi /etc/multipath.conf 文件
vi /etc/multipath.conf
defaults {
user_friendly_names yes
path_group_policy multibus
find_multipaths yes
}
blacklist {
wwid 1ATA_VBOX_HARDDISK_VB4a20e6f4-f700514a #节点1和节点2值不一样
}
multipaths {
multipath {
wwid 14f504e46494c455264336b594e4f2d346638792d356e654c
alias asmocrvote1
}
multipath {
wwid 14f504e46494c45523137353577632d787237722d6c4a6778
alias asmocrvote2
}
multipath {
wwid 14f504e46494c45527844664246502d6e6268322d46777561
alias asmocrvote3
}
multipath {
wwid 14f504e46494c45526d336b3062322d69784e622d325a544a
alias asmmgmtdisk1
}
multipath {
wwid 14f504e46494c45524567336249422d4f3551302d65637931
alias asmmgmtdisk2
}
multipath {
wwid 14f504e46494c45524338454452642d6b6b36532d32383242
alias asmdatadisk
}
}
#启动多路径服务
systemctl start multipathd
systemctl status multipathd
3.7查看多路径状态
ll /dev/mapper/
3.8配置多路径设备的权限(udev方式实现)
# 将文件复制到etc/dev/rules.d/
cp /usr/share/doc/device-mapper-1.02.158/12-dm-permissions.rules /etc/udev/rules.d/
#使用cat 命令写入参数
cat <<EOF >> /etc/udev/rules.d/12-dm-permissions.rules
ENV{DM_NAME}=="asmocrvote1",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="asmocrvote2",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="asmocrvote3",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="asmmgmtdisk1",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="asmmgmtdisk2",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
ENV{DM_NAME}=="asmdatadisk",OWNER:="grid",GROUP:="asmadmin",MODE:="660"
EOF
#看下是否写入成功
vi /etc/udev/rules.d/12-dm-permissions.rules
3.9首先查看目前权限挂在哪个用户下
ll /dev/dm*
3.10执行命令使其生效
/sbin/udevadm trigger --type=devices --action=change
3.11查看是否改成gird用户下的asmadmin
ll /dev/dm*
如果以上都没有问题那么grid环境基本安装完成.
4.通过SSH上传gird安装包并解压
#如未安装unzip 则安装一下
yum install -y unzip zip
#将grid软件安装包拷贝到racdb1 /soft下
切换grid用户执行unzip linuxx64_12201_grid_home.zip -d $ORACLE_HOME
#解压完成后切换root用户执行 cd /u01/app/11.2.0/grid/cv/rpm/ 下的cvuqdisk-1.0.10-1.rpm
cd /u01/app/11.2.0/grid/cv/rpm/
ll
rpm -ivh cvuqdisk-1.0.10-1.rpm
#传到racdb2节点上同样执行一下
scp cvuqdisk-1.0.10-1.rpm racdb2:/root
5.配置SSH信任关系(只要在节点1执行)
#在/u01/app/11.2.0/grid/路径下找到sshUserSetup.sh文件
find /u01/app/11.2.0/grid/ -name sshUserSetup.sh
/u01/app/11.2.0/grid/deinstall/sshUserSetup.sh
/u01/app/11.2.0/grid/deinstall/sshUserSetup.sh -user oracle -hosts 'racdb1 racdb2 racdb1-priv racdb2-priv' -advanced
#密码全是oracle
/u01/app/11.2.0/grid/deinstall/sshUserSetup.sh -user grid -hosts 'racdb1 racdb2 racdb1-priv racdb2-priv' -advanced
#密码全是grid
#验证 在rac1和rac2分别验证ssh还要不要输入密码,如果不用则为成功
su - grid
ssh rac2 date
ssh rac2-priv date
su - oracle
ssh rac2 date
ssh rac2-priv date
6.挂载系统安装镜像然后安装 nfs-utils*
#查看系统磁盘使用情况
df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.3G 0 1.3G 0% /dev
tmpfs 1.3G 0 1.3G 0% /dev/shm
tmpfs 1.3G 8.6M 1.3G 1% /run
tmpfs 1.3G 0 1.3G 0% /sys/fs/cgroup
/dev/mapper/centos-root 31G 4.5G 27G 15% /
/dev/sda1 1014M 136M 879M 14% /boot
tmpfs 251M 0 251M 0% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /mnt #看到此处表示光盘已挂载在/mnt目录下
############################################################################################
#如果没有挂载上的话在root目录下输入命令:
# mount /mnt/cdrom
#如输出错误为: mount: can't find cdrom in /etc /fstab or /etc/mtab
#可知在/etc/fstab找不到要挂载的文件
#有两种解决方式解决:
#1.输入命令:
#mount -t iso9660 /dev/cdrom /mnt/cdrom
#/dev/cdrom 为软连接指向的是hdc即是镜像文件的挂载盘,如提示没有权限在/dev 下赋权sr0
#这时候在输入命令:
#ls -l /mnt/cdrom
#敲击enter键显示的是你要挂载的iso文件里的所有文件,到此成功挂载镜像。
#如在执行#mount -t iso9660 /dev/cdrom /mnt/cdrom时提示:
#mount: block device /dev/sr0 is write-protected, mounting read-only,
#只需要在mnt新建个cdrom的文件夹:
#mkdir -p /mnt/cdrom
#然后再执行:
#mount -t iso9660 /dev/cdrom /mnt/cdrom
##############################################################################################
#安装nfs-utils*
yum -y install nfs-utils*
#如果安装不成功请确认/etc/yum.repos.d/CentOS-Media.repo文件baseurl=file:///mnt 与挂载的路径一致
cd /etc/yum.repos.d/
vi CentOS-Media.repo
#如果没有该文件可以手动touch一个CentOS-Media.repo 然后进行配置
mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cd /etc/yum.repos.d/
rename .repo .repo.bak *
touch /etc/yum.repos.d/CentOS-Media.repo
cat <<EOF >/etc/yum.repos.d/CentOS-Media.repo
[local]
name=local
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1
EOF
7.安装grid前环境检查(只要在节点1执行)
#切换到grid用户先使用 find 命令查找文件是否存在
find $ORACLE_HOME -name runcluvfy.sh
/u01/app/11.2.0/grid/runcluvfy.sh
#在查找出来的文件路径后加stage -pre crsinst -n racdb1,racdb2 -verbose -fixup 执行检查命令
/u01/app/11.2.0/grid/runcluvfy.sh stage -pre crsinst -n racdb1,racdb2 -verbose -fixup
#或者进入/u01/app/11.2.0/grid/ 目录下执行
./runcluvfy.sh stage -pre crsinst -n racdb1,racdb2 -verbose -fixup
#第一次检查完后提示/tmp/CVU_12.2.0.1.0_grid/runfixup.sh 的话,在两个节点都执行下runfixup.sh
/tmp/CVU_12.2.0.1.0_grid/runfixup.sh
###################################################################################
CVU operation performed: stage -pre crsinst
Date: Aug 2, 2020 1:59:56 AM
CVU home: /u01/app/11.2.0/grid/
User: grid
#检查命令跑到最后显示上面这个一般就没什么问题了,可以进入grid安装环节。
###################################################################################
8.安装grid
#上传解压grid 安装包并赋权给grid用户
chmod 775 grid/ -R
chown grid:oinstall grid/ -R
#切换grid用户执行
./runInstaller
#如出现乱码执行
export LANG=C
#图形化界面安装弹窗异常
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
安装过程中要注意的点:
1.scanname 要和etc/hosts 中的scan一致
2.安装过程中会弹出窗口需分别按顺序在rac1,2上使用root用户执行下面两个脚本(root.sh脚本耗时较长,等rac1执行完在执行rac2)
/u01/app/oraInventory/orainstRoot.sh
/u01/app/11.2.0/grid/root.sh
3、安装grid执行root.sh脚本错误
/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
4.安装到100%时提示[INS-20802] Oracle Cluster Verification Utility failed.可以忽略。
9.安装database
#上传解压datebase 安装包并赋权给oracle用户
chmod 775 database/ -R
chown oracle:oinstall database/ -R
#切换oracle用户
/soft/database下执行
./runInstaller
#出现INS-06001 解决办法
rac2节点上执行 ssh rac2 date 手动打通
#安装数据库软件makefile错误
在makefile中添加链接libnnz11库的参数,修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将$(MK_EMAGENT_NMECTL),修改为:$(MK_EMAGENT_NMECTL) -lnnz11。 修改前可以先备份文件
SQL
[oracle@centos ~]$ cd $ORACLE_HOME/sysman/lib
[oracle@centos lib]$ cp ins_emagent.mk ins_emagent.mk.bak
[oracle@centos lib]$ vim ins_emagent.mk
SQL
#===========================
# emdctl
#===========================
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL)-lnnz11 在此处修改添加
#===========================
# nmocat
#===========================
#查看文件夹大小
du -sh 文件名
#94%的时候弹出窗口后rac1,2上用root用户执行窗口中提示的
/u01/app/oracle/product/11.2.0/db/root.sh
10.创建磁盘组
切换grid用户
#查看环境变量
[grid@rac1 ~]$ env
确定DISPLAY=localhost:11.0 与实际地址一致或者直接为localhost:11.0
[grid@rac1 ~]$ asmca
这里要创建一下磁盘组,除了之前安装grid时创建的OCR磁盘组外还需要根据做多路径时的情况来创建,
我这里根据多路径时的配置创建了asmocrdisk1,asmocrdisk2 数据存储磁盘组以及asmdatadisk归档日志存储磁盘组
另外要注意的是NOrmal(标准)模式要选择2块以上的盘来创建磁盘组,而External(None)外部存储则是每一块创建一个磁盘组。
#安装rac实例
[oracle@rac1 ~]$ dbca
#查看数据库启动状态
[grid@rac1 ~]$ crsctl status res -t
[oracle@rac1 ~]$ sqlplus /nolog
SQL> conn /as sysdba
11.维护命令
检查RAC运行状况
[grid@rac1 ~]$ crsctl check cluster
检查Database实例例状态
[oracle@rac1 ~]$ srvctl status database -d orcl
检查节点应用状态及配置
[oracle@rac1 ~]$ srvctl status nodeapps
[oracle@rac1 ~]$ srvctl config nodeapps -a -g -s -l
查看数据库配置
[oracle@rac1 ~]$ srvctl config database -d prod -a
检查 ASM状态及配置
[oracle@rac1 ~]$ srvctl status asm
[oracle@rac1 ~]$ srvctl config asm -a
检查 TNS的状态及配置
[oracle@rac1 ~]$ srvctl status listener
[oracle@rac1 ~]$ srvctl config listener -a
检查 SCAN 的状态及配置
[oracle@rac1 ~]$ srvctl status scan
[oracle@rac1 ~]$ srvctl config scan
检查 VIP的状态及配置
[oracle@rac1 ~]$ srvctl status vip -n rac1
[oracle@rac1 ~]$ srvctl status vip -n rac2
[oracle@rac1 ~]$ srvctl config vip -n rac1
[oracle@rac1 ~]$ srvctl config vip -n rac2
重启数据库的顺序
关闭
srvctl stop database -d orcl
crsctl stop cluster -all
crsctl stop has –f
开启
crsctl start has
crsctl start cluster -all
srvctl start database -d orcl
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)