Oracle rac 21c安装详细过程_IP


一、rac安装规划

官网安装过程:https://docs.oracle.com/en/database/oracle/oracle-database/21/rilin/index.html

1.1、所需软件介绍

Oracle RAC不支持异构平台。在同一个集群中,可以支持具有速度和规模不同的机器,但所有节点必须运行在相同的操作系统。Oracle RAC不支持具有不同的芯片架构的机器。

Oracle rac 21c安装详细过程_oracle_02

备注:

1、OS内存至少8G

2、安装OS和数据库前需要对下载好的安装包进行MD5值校验,检查其完整性


21c数据库软件下载可以参考:https://www.xmmup.com/dbbao76zaidockerzhongzhixu2bujikeyongyouoracle-21chuanjing.html


1.2、IP地址规划 从Oracle

11g开始,一共至少7个IP地址,2块网卡,其中public、vip和scan都在同一个网段,private在另一个网段,主机名不要包含下横线

,如:RAC_01是不允许的;通过执行ifconfig -a检查2个节点的网卡名称必须一致。另外,在安装之前,公网、私网共4个IP可以ping通,其它3个不能ping通才是正常的。 从18c开始,scan建议至少3个。
 Oracle rac 21c安装详细过程_IP_03

1.3、操作系统本地磁盘分区规划

除了/boot分区外,其它分区均采用逻辑卷的方式,这样有利于文件系统的扩展。

Oracle rac 21c安装详细过程_oracle_04


1.4、共享存储与ASM磁盘组规划

Oracle rac 21c安装详细过程_IP_05


二、操作系统配置

若无特殊说明,那么以下操作在2个节点均需要执行。

2.1、准备OS

安装步骤略

也可以下载小麦苗已经安装好的虚拟机环境:https://www.xmmup.com/ziliaofenxiang.html  

       各种操作系统下的数据库安装文件(Linux、Windows、AIX等):https://pan.baidu.com/s/1Rzf28aIBJYFnL86SMTsF-w(提取码:lhr6

安装一台虚拟机,然后复制改名,如下:

   

Oracle rac 21c安装详细过程_oracle_06



  用虚拟机软件打开:

Oracle rac 21c安装详细过程_linux_07

2.2、添加网卡


首先,需要添加网卡适配器:

VMnet2如下:

Oracle rac 21c安装详细过程_IP_08

VMnet8如下:

Oracle rac 21c安装详细过程_linux_09

  网关为:192.168.59.2,如下所示:

Oracle rac 21c安装详细过程_linux_10


先删除再添加,添加2块网卡,VMnet8为公有网卡,VMnet2为私有网卡,如下所示:

Oracle rac 21c安装详细过程_linux_11


  打开后,选择我已复制该虚拟机。

Oracle rac 21c安装详细过程_oracle_12



2.3、修改主机名


修改2个节点的主机名为raclhr-21c-n1和raclhr-21c-n2:


hostnamectl set-hostname raclhr-21c-n1

 hostnamectl set-hostname raclhr-21c-n2


2.4、配置静态IP地址

在2个节点上分别配置静态IP地址。

在节点2上配置IP的时候注意将IP地址(IPADDR)修改掉。需要确保2个节点上的网卡MAC地址不一样,否则节点间不能通信。


2.4.1、修改mac地址


使用ifconfigip link show查看mac地址,修改文件/etc/udev/rules.d/70-persistent-ipoib.rules

cat > /etc/udev/rules.d/70-persistent-ipoib.rules <<"EOF" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:25:83:db", ATTR{type}=="1", KERNEL=="eth*", NAME="ens33" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:25:83:e5", ATTR{type}=="1", KERNEL=="eth*", NAME="ens34" EOF


2.4.2、配置静态IP地址

注意修改IPADDR和HWADDR地址。


1、配置公网:/etc/sysconfig/network-scripts/ifcfg-ens33

cat > /etc/sysconfig/network-scripts/ifcfg-ens33 <<"EOF" DEVICE=ens33 NAME=ens33 IPADDR=192.168.59.62 NETMASK=255.255.255.0 GATEWAY=192.168.59.2 ONBOOT=yes USERCTL=no BOOTPROTO=static HWADDR=00:0c:29:25:83:db TYPE=Ethernet IPV6INIT=no DNS1=114.114.114.114 DNS2=8.8.8.8 NM_CONTROLLED=no EOF

2、配置私网:/etc/sysconfig/network-scripts/ifcfg-ens34

cat > /etc/sysconfig/network-scripts/ifcfg-ens34 <<"EOF"
DEVICE=ens34
NAME=ens34
IPADDR=192.168.2.62
NETMASK=255.255.255.0
ONBOOT=yes
USERCTL=no
BOOTPROTO=static
HWADDR=00:0c:29:25:83:e5
TYPE=Ethernet
IPV6INIT=no
DNS1=114.114.114.114
DNS2=8.8.8.8
NM_CONTROLLED=no
EOF

该部分内容做完后,可以重启一次OS。


2.5、关闭防火墙

systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld

systemctl list-unit-files | grep fire


2.6、禁用selinux

手工修改/etc/selinux/configSELINUX=disabled,或使用下面命令

sed -i '/^SELINUX=.*/ s//SELINUX=disabled/' /etc/selinux/config


2.7、修改/etc/hosts文件


#Public IP 
192.168.59.62 raclhr-21c-n1
192.168.59.63 raclhr-21c-n2

#Private IP 
192.168.2.62 raclhr-21c-n1-priv
192.168.2.63 raclhr-21c-n2-priv

#Virtual IP 
192.168.59.64 raclhr-21c-n1-vip
192.168.59.65 raclhr-21c-n2-vip

#Scan IP 
192.168.59.66 raclhr-21c-scan
192.168.59.67 raclhr-21c-scan
192.168.59.68 raclhr-21c-scan

注意:需要保留127.0.0.1 localhost这行。


2.8、添加组和用户


groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin
groupadd -g 54330 racdba

useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle
useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba grid

echo lhr | passwd --stdin oracle
echo lhr | passwd --stdin grid



2.9、创建安装目录

2.9.1、挂载/u01目录

首先,在2个节点都各自添加一块200g大小的磁盘:

Oracle rac 21c安装详细过程_oracle_13


然后做卷组,200g磁盘大约分10个PE,每个PE大约20g:

[root@raclhr-21c-n1 ~]# fdisk -l | grep sd 

Disk /dev/sdb: 1073.7 GB, 1073741824000 bytes, 2097152000 sectors
/dev/sdb1 2048 209717247 104857600 8e Linux LVM
/dev/sdb2 209717248 419432447 104857600 8e Linux LVM
/dev/sdb3 419432448 629147647 104857600 8e Linux LVM
/dev/sdb4 629147648 2097151999 734002176 5 Extended
/dev/sdb5 629149696 838864895 104857600 8e Linux LVM
/dev/sdb6 838866944 1048582143 104857600 8e Linux LVM
/dev/sdb7 1048584192 1258299391 104857600 8e Linux LVM
/dev/sdb8 1258301440 1468016639 104857600 8e Linux LVM
/dev/sdb9 1468018688 1677733887 104857600 8e Linux LVM
/dev/sdb10 1677735936 1887451135 104857600 8e Linux LVM
/dev/sdb11 1887453184 2097151999 104849408 8e Linux LVM
Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 180248575 89074688 8e Linux LVM
Disk /dev/sdc: 214.7 GB, 214748364800 bytes, 419430400 sectors

[root@raclhr-21c-n1 ~]# fdisk /dev/sdc 
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x6d06be8a.

Command (m for help): m
Command action
   a toggle a bootable flag
   b edit bsd disklabel
   c toggle the dos compatibility flag
   d delete a partition
   g create a new empty GPT partition table
   G create an IRIX (SGI) partition table
   l list known partition types
   m print this menu
   n add a new partition
   o create a new empty DOS partition table
   p print the partition table
   q quit without saving changes
   s create a new empty Sun disklabel
   t change a partition's system id
   u change display/entry units
   v verify the partition table
   w write table to disk and exit
   x extra functionality (experts only)

Command (m for help): l
   0 Empty 			   	24 		NEC DOS 			81 		Minix / old Lin			bf 	Solaris
   1 FAT12 			   	27 		Hidden NTFS Win 	82 		Linux swap / So 		c1 	DRDOS/sec (FAT-
   2 XENIX root 	   	39 		Plan 9 				83 		Linux 					c4 	DRDOS/sec (FAT-
   3 XENIX usr 		   	3c 		PartitionMagic 		84 		OS/2 hidden C: 			c6 	DRDOS/sec (FAT-
   4 FAT16 <32M 	   	40 		Venix 80286 		85 		Linux extended 			c7 	Syrinx
   5 Extended 		   	41 		PPC PReP Boot 		86 		NTFS volume set 		da 	Non-FS data
   6 FAT16			   	42 		SFS 				87 		NTFS volume set 		db 	CP/M / CTOS / .
   7 HPFS/NTFS/exFAT   	4d 		QNX4.x 				88 		Linux plaintext 		de 	Dell Utility
   8 AIX 			   	4e 		QNX4.x 2nd part 	8e 		Linux LVM 				df 	BootIt
   9 AIX bootable	   	4f 		QNX4.x 3rd part 	93 		Amoeba 					e1 	DOS access
   a OS/2 Boot Manag   	50 		OnTrack DM 			94 		Amoeba BBT 				e3 	DOS R/O
   b W95 FAT32 		   	51 		OnTrack DM6 Aux 	9f 		BSD/OS 					e4 	SpeedStor
   c W95 FAT32 (LBA)   	52 		CP/M 				a0 		IBM Thinkpad hi 		eb 	BeOS fs
   e W95 FAT16 (LBA)   	53 		OnTrack DM6 Aux 	a5 		FreeBSD 				ee 	GPT
   f W95 Ext'd (LBA)   	54 		OnTrackDM6 			a6 		OpenBSD 				ef 	EFI (FAT-12/16/
   10 OPUS 			   	55 		EZ-Drive 			a7 		NeXTSTEP 				f0 	Linux/PA-RISC b
   11 Hidden FAT12 	    56 		Golden Bow 			a8 		Darwin UFS 				f1 	SpeedStor
   12 Compaq diagnost 	5c 		Priam Edisk 		a9 		NetBSD 					f4 	SpeedStor
   14 Hidden FAT16 <3 	61 		SpeedStor 			ab 		Darwin boot 			f2 	DOS secondary
   16 Hidden FAT16 		63 		GNU HURD or Sys 	af 		HFS / HFS+ 				fb 	VMware VMFS
   17 Hidden HPFS/NTF 	64 		Novell Netware 		b7 		BSDI fs 				fc 	VMware VMKCORE
   18 AST SmartSleep 	65 		Novell Netware 		b8 		BSDI swap 				fd 	Linux raid auto
   1b Hidden W95 FAT3 	70 		DiskSecure Mult 	bb 		Boot Wizard hid 		fe 	LANstep
   1c Hidden W95 FAT3 	75 		PC/IX 				be 		Solaris boot 			ff 	BBT
   1e Hidden W95 FAT1 	80 		Old Minix


Command (m for help): p

Disk /dev/sdc: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x6d06be8a

	Device Boot 		Start 		End 		Blocks 		Id 			System

Command (m for help): n
Partition type:
		p primary (0 primary, 0 extended, 4 free)
		e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-419430399, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-419430399, default 419430399): +20G
Partition 1 of type Linux and of size 20 GiB is set

Command (m for help): n
Partition type:
		p primary (1 primary, 0 extended, 3 free)
		e extended
Select (default p):
Using default response p
Partition number (2-4, default 2):
First sector (41945088-419430399, default 41945088):
Using default value 41945088
Last sector, +sectors or +size{K,M,G} (41945088-419430399, default 419430399): +20G
Partition 2 of type Linux and of size 20 GiB is set

Command (m for help): n
Partition type:
	p primary (2 primary, 0 extended, 2 free)
	e extended
Select (default p):
Using default response p Partition number (3,4, default 3):
First sector (83888128-419430399, default 83888128):
Using default value 83888128
Last sector, +sectors or +size{K,M,G} (83888128-419430399, default 419430399): +20G
Partition 3 of type Linux and of size 20 GiB is set

Command (m for help): n
Partition type:
	p primary (3 primary, 0 extended, 1 free)
	e extended Select (default e):
Using default response e
Selected partition 4
First sector (125831168-419430399, default 125831168):
Using default value 125831168
Last sector, +sectors or +size{K,M,G} (125831168-419430399, default 419430399):
Using default value 419430399
Partition 4 of type Extended and of size 140 GiB is set

Command (m for help): n
All primary partitions are in use
Adding logical partition 5
First sector (125833216-419430399, default 125833216):
Using default value 125833216
Last sector, +sectors or +size{K,M,G} (125833216-419430399, default 419430399): +20G
Partition 5 of type Linux and of size 20 GiB is set

Command (m for help): n
All primary partitions are in use
Adding logical partition 6
First sector (167778304-419430399, default 167778304):
Using default value 167778304
Last sector, +sectors or +size{K,M,G} (167778304-419430399, default 419430399): +20G
Partition 6 of type Linux and of size 20 GiB is set

Command (m for help): n
All primary partitions are in use
Adding logical partition 7
First sector (209723392-419430399, default 209723392):
Using default value 209723392
Last sector, +sectors or +size{K,M,G} (209723392-419430399, default 419430399): +20G
Partition 7 of type Linux and of size 20 GiB is set

Command (m for help): n
All primary partitions are in use
Adding logical partition 8 First sector (251668480-419430399, default 251668480):
Using default value 251668480
Last sector, +sectors or +size{K,M,G} (251668480-419430399, default 419430399): +20G
Partition 8 of type Linux and of size 20 GiB is set

Command (m for help): n
All primary partitions are in use
Adding logical partition 9
First sector (293613568-419430399, default 293613568):
Using default value 293613568 Last sector, +sectors or +size{K,M,G} (293613568-419430399, default 419430399): +20G
Partition 9 of type Linux and of size 20 GiB is set

Command (m for help): n
All primary partitions are in use
Adding logical partition 10
First sector (335558656-419430399, default 335558656):
Using default value 335558656 Last sector, +sectors or +size{K,M,G} (335558656-419430399, default 419430399): +20G
Partition 10 of type Linux and of size 20 GiB is set

Command (m for help): n
All primary partitions are in use
Adding logical partition 11
First sector (377503744-419430399, default 377503744):
Using default value 377503744
Last sector, +sectors or +size{K,M,G} (377503744-419430399, default 419430399): +20G
Value out of range.
Last sector, +sectors or +size{K,M,G} (377503744-419430399, default 419430399):
Using default value 419430399
Partition 11 of type Linux and of size 20 GiB is set

Command (m for help): p

Disk /dev/sdc: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x6d06be8a

		Device Boot 	        Start 		End 		Blocks 			Id 		System
		/dev/sdc1 		2048 		41945087 	20971520 		83 		Linux
		/dev/sdc2 		41945088 	83888127 	20971520 		83 		Linux
		/dev/sdc3 		83888128 	125831167 	20971520 		83 		Linux
		/dev/sdc4 		125831168 	419430399 	146799616 		5  		Extended
		/dev/sdc5 		125833216 	167776255 	20971520 		83 		Linux
		/dev/sdc6 		167778304 	209721343 	20971520 		83 		Linux
		/dev/sdc7 		209723392 	251666431 	20971520 		83 		Linux
		/dev/sdc8 		251668480 	293611519 	20971520 		83 		Linux
		/dev/sdc9 		293613568 	335556607 	20971520 		83 		Linux
		/dev/sdc10 		335558656 	377501695 	20971520 		83 		Linux
		/dev/sdc11 		377503744 	419430399 	20963328 		83 		Linux

Command (m for help): t
Partition number (1-11, default 11): 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): t
Partition number (1-11, default 11): 2
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): t
Partition number (1-11, default 11): 3
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): t
Partition number (1-11, default 11): 5
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): t
Partition number (1-11, default 11): 6
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): t
Partition number (1-11, default 11): 7
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): t
Partition number (1-11, default 11): 8
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): t
Partition number (1-11, default 11): 9
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): t
Partition number (1-11, default 11): 10
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): t
Partition number (1-11, default 11):
Hex code (type L to list all codes): 8e
Changed type of partition 'Empty' to 'Linux LVM'

Command (m for help): p

Disk /dev/sdc: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x6d06be8a

		Device Boot 	        Start 		End 		Blocks 			Id 		System
		/dev/sdc1		2048 		41945087	20971520 		8e 		Linux LVM
		/dev/sdc2		41945088 	83888127 	20971520 		8e 		Linux LVM
		/dev/sdc3		83888128 	125831167 	20971520 		8e 		Linux LVM
		/dev/sdc4		125831168 	419430399 	146799616		 5 		Extended
		/dev/sdc5		125833216 	167776255 	20971520 		8e 		Linux LVM
		/dev/sdc6		167778304 	209721343 	20971520 		8e 		Linux LVM
		/dev/sdc7		209723392 	251666431 	20971520 		8e 		Linux LVM
		/dev/sdc8		251668480 	293611519 	20971520 		8e 		Linux LVM
		/dev/sdc9		293613568 	335556607 	20971520 		8e 		Linux LVM
		/dev/sdc10 		335558656 	377501695 	20971520 		8e 		Linux LVM
		/dev/sdc11 		377503744 	419430399 	20963328 		8e 		Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

分区完成后,开始创建逻辑卷,挂载分区等操作:

pvcreate /dev/sdc1 /dev/sdc2 /dev/sdc3 /dev/sdc5 /dev/sdc6 /dev/sdc7 /dev/sdc8 /dev/sdc9 /dev/sdc10 /dev/sdc11
vgcreate vg_oracle /dev/sdc1 /dev/sdc2 /dev/sdc3 /dev/sdc5 /dev/sdc6 /dev/sdc7 /dev/sdc8 /dev/sdc9 /dev/sdc10 /dev/sdc11
lvcreate -n lv_orasoft_u01 -L 60G vg_oracle
mkfs.ext4 /dev/vg_oracle/lv_orasoft_u01
mkdir /u01
mount /dev/vg_oracle/lv_orasoft_u01 /u01

echo "/dev/vg_oracle/lv_orasoft_u01 /u01  ext4 defaults 0 0" >> /etc/fstab

查询:

[root@raclhr-21c-n1 ~]# df -h 
Filesystem                            Size  Used Avail Use% Mounted on
devtmpfs                              3.9G     0  3.9G   0% /dev
tmpfs                                 3.9G     0  3.9G   0% /dev/shm
tmpfs                                 3.9G   13M  3.9G   1% /run
tmpfs                                 3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/centos_lhrdocker-root      50G  5.0G   42G  11% /
/dev/sda1                             976M  143M  767M  16% /boot
/dev/mapper/centos_lhrdocker-home     9.8G   41M  9.2G   1% /home
/dev/mapper/vg_docker-lv_docker       788G   73M  748G   1% /var/lib/docker
tmpfs                                 797M   12K  797M   1% /run/user/42
tmpfs                                 797M     0  797M   0% /run/user/0
/dev/mapper/vg_oracle-lv_orasoft_u01   59G   53M   56G   1% /u01



2.9.2、创建目录

mkdir -p /u01/app/21.3.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/21.3.0/dbhome_1
chown -R grid:oinstall /u01
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




2.10、配置grid和oracle用户的环境变量文件

oracle用户:

cat >> /home/oracle/.bash_profile <<"EOF"


 umask 022
 export ORACLE_SID=rac21c1
 export ORACLE_BASE=/u01/app/oracle
 export ORACLE_HOME=$ORACLE_BASE/product/21.3.0/dbhome_1
 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
 export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
 export TMP=/tmp export TMPDIR=$TMP
 export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

 export EDITOR=vi
 export TNS_ADMIN=$ORACLE_HOME/network/admin
 export ORACLE_PATH=.:$ORACLE_BASE/dba_scripts/sql:$ORACLE_HOME/rdbms/admin
 export SQLPATH=$ORACLE_HOME/sqlplus/admin

 #export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" --AL32UTF8 SELECT userenv('LANGUAGE') db_NLS_LANG FROM DUAL; 
 export NLS_LANG="AMERICAN_CHINA.ZHS16GBK"

 alias sqlplus='rlwrap sqlplus'
 alias rman='rlwrap rman'
 alias asmcmd='rlwrap asmcmd'
 alias dgmgrl='rlwrap dgmgrl'
 alias sas='sqlplus / as sysdba'

 EOF

 cat >> /home/grid/.bash_profile <<"EOF"

 umask 022
 export ORACLE_SID=+ASM1
 export ORACLE_BASE=/u01/app/grid
 export ORACLE_HOME=/u01/app/21.3.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
 alias sqlplus='rlwrap sqlplus'
 alias asmcmd='rlwrap asmcmd'
 alias dgmgrl='rlwrap dgmgrl'
 alias sas='sqlplus / as sysdba'

 EOF



注意:另外一台数据库实例名须做相应修改:

Oracle:export ORACLE_SID=rac21c2grid:export ORACLE_SID=+ASM2


2.11、配置root用户的环境变量


cat >> /etc/profile <<"EOF"

export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/21.3.0/grid
export GRID_BASE=$ORACLE_BASE
export GRID_HOME=$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME/bin

EOF


2.12、安装软件依赖包


yum install -y openssh-clients openssh-server initscripts  net-tools telnet which wget \
    passwd e4fsprogs lrzsz sudo unzip lvm2 tree traceroute lsof file tar systemd \
	bridge-utils mlocate mailx strace less mmv stress

yum install -y dos2unix rlwrap xdpyinfo xorg-x11-apps nmap numactl numactl-devel \
	iproute rsyslog bash-completion tmux sysbench vim redhat-lsb smartmontools xinetd \
	gcc  make  sysstat ksh binutils socat cmake automake autoconf bzr bison libtool deltarpm \
	rsync libev pv subversion nload gnuplot jq oniguruma

yum-fastestmirror net-snmp net-snmp-utils \
	nfs-utils rpcbind  postfix dovecot bind-utils bind bind-chroot dnsmasq haproxy keepalived bzr \
	fio bzip2 ntp flex lftp yum install -y ncurses-devel libgcrypt-devel libaio libaio-devel \
	perl perl-Env perl-devel  perl-Time-HiRes perl-DBD-MySQL perl-ExtUtils-MakeMaker perl-TermReadKey \
	perl-Config-Tiny perl-Email-Date-Format perl-Log-Dispatch perl-Mail-Sender perl-Mail-Sendmail \
	perl-MIME-Lite perl-Parallel-ForkManager perl-Digest-MD5 perl-ExtUtils-CBuilder perl-IO-Socket-SSL \
	perl-JSON openssl-devel libverto-devel libsepol-devel libselinux-devel libkadm5 keyutils-libs-devel \
	krb5-devel libcom_err-devel cyrus-sasl* perl-DBD-Pg perf slang perl-DBI  perl-CPAN \
	perl-ExtUtils-eBuilder cpan perl-tests

yum install -y  compat-libstdc++-33 gcc-c++
	glibc glibc-common glibc.i686  glibc-devel glibc-devel.i686 \
	libgcc libgcc.i686 libstdc++   libstdc++-devel  libaio.i686   libaio-devel.i686 \
	libXext  libXext.i686  libXtst  libXtst.i686  libX11  libX11.i686  libXau  libXau.i686  \
	libxcb  libxcb.i686  libXi  libXi.i686   unixODBC  unixODBC-devel  zlib-devel  zlib-devel.i686 \
	compat-libcap1 libXp libXp-devel libXp.i686 elfutils-libelf elfutils-libelf-devel compat-db \
	gnome-libs pdksh xscreensaver fontconfig-devel libXrender-devel

yum remove PackageKit -y


检查:


rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \
	compat-libcap1 \
	compat-libstdc++-33 \
	gcc \
	gcc-c++ \
	glibc \
	glibc-devel \
	ksh \
	libgcc \
	libstdc++ \
	libstdc++-devel \
	libaio \
	libaio-devel \
	libXext \
	libXtst \
	libX11 \
	libXau \
	libxcb \
	libXi \
	make \
	elfutils-libelf-devel \

sysstat  | grep "not installed"



2.13、配置内核参数

2.13.1、修改/etc/sysctl.conf文件


cat >> /etc/sysctl.conf <<"EOF"

vm.swappiness = 1
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
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
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.panic_on_oops = 1
kernel.watchdog_thresh=30

EOF


生效:

/sbin/sysctl -p


2.13.2、修改/etc/security/limits.conf文件

echo "grid soft nofile 1024 
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
grid soft nproc 2047
grid hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle hard memlock  8145728
oracle soft memlock  8145728
root soft nproc 2047 " >> /etc/security/limits.conf


2.13.3、修改/etc/pam.d/login文件

 

echo "session    required     pam_limits.so" >> /etc/pam.d/login

2.13.4、修改/etc/profile文件 

cat >> /etc/profile << "EOF"
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
EOF



2.14、关闭NTP和chrony服务


可以采用操作系统的NTP服务,也可以使用Oracle自带的服务ctss,如果ntp没有启用,那么Oracle会自动启用自己的ctssd进程。 从oracle 11gR2 RAC开始使用Cluster Time Synchronization Service(CTSS)同步各节点的时间,当安装程序发现NTP协议处于非活动状态时,安装集群时间同步服务将以活动模式(active)自动进行安装并同步所有节点的时间。如果发现配置了NTP,则以观察者模式(observer mode)启动集群时间同步服务,Oracle Clusterware不会在集群中进行活动的时间同步。
 

systemctl stop ntpd
systemctl disable ntpd.service
mv /etc/ntp.conf /etc/ntp.conf.bak


Chrony是一个开源的自由软件,它能帮助你保持系统时钟与时钟服务器(NTP)同步,因此让你的时间保持精确。它由两个程序组成,分别是chronyd和chronyc。chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
 

systemctl disable chronyd
systemctl stop chronyd
mv /etc/chrony.conf /etc/chrony.conf_bak


2.15、关闭avahi-daemon


systemctl stop avahi-daemon
systemctl disable avahi-daemon

Avahi允许程序在不需要进行手动网络配置的情况 下,在一个本地网络中发布和获知各种服务和主机。例如,当某用户把他的计算机接入到某个局域网时,如果他的机器运行有Avahi服务,则Avahi程式自动广播,从而发现网络中可用的打印机、共享文件和可相互聊天的其他用户。这有点象他正在接收局域网中的各种网络广告一样。 Linux下系统实际启动的进程名,是avahi-daemon。
 

2.16、将NOZEROCONF=yes添加到/etc/sysconfig/network文件中


echo 'NOZEROCONF=yes' >> /etc/sysconfig/network


2.17、禁用透明大页

参考:https://www.xmmup.com/linux-biaozhundayehetoumingdaye.html

cat >> /etc/rc.local <<"EOF"

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
	echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi

if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
	echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

EOF

chmod +x /etc/rc.d/rc.local
sh /etc/rc.local

cat /sys/kernel/mm/transparent_hugepage/defrag
cat /sys/kernel/mm/transparent_hugepage/enabled


建议配置大页功能,参考:https://www.xmmup.com/oracleshujukupeizhidaye.html


2.18、停止不用的服务


systemctl list-unit-files | grep enable

systemctl stop autofs
systemctl stop nfslock
systemctl stop rpcidmapd
systemctl stop rpcgssd
systemctl stop ntpd
systemctl stop bluetooth.service
systemctl stop cups.path
systemctl stop cups.socket
systemctl stop postfix.service
systemctl stop rpcbind.service
systemctl stop rpcbind.socket
systemctl stop NetworkManager-dispatcher.service
systemctl stop dbus-org.freedesktop.NetworkManager.service
systemctl stop abrt-ccpp.service
systemctl stop cups.service
systemctl stop libvirtd

systemctl disable autofs
systemctl disable nfslock
systemctl disable rpcidmapd
systemctl disable rpcgssd
systemctl disable ntpd
systemctl disable bluetooth.service
systemctl disable cups.path
systemctl disable cups.socket
systemctl disable postfix.service
systemctl disable rpcbind.service
systemctl disable rpcbind.socket
systemctl disable NetworkManager-dispatcher.service
systemctl disable dbus-org.freedesktop.NetworkManager.service
systemctl disable abrt-ccpp.service
systemctl disable cups.service
systemctl disable  libvirtd


2.19、提升开关机速度

在centos在关机或开机时一直等待,等待时间久,卡住时间久,提示A stop job is running for ……

解决:

cat >> /etc/systemd/system.conf << "EOF"
DefaultTimeoutStartSec=30s
DefaultTimeoutStopSec=30s

EOF

systemctl daemon-reload




三、配置共享存储

这个是重点,也是最容易出错的地方。共享存储可以使用第三方软件提供的方式来共享(例如openfiler),也可以使用 WMware Workstation软件进行存储共享,也可以使用ISCSI网络存储服务来配置共享存储。 我们本次使用ISCSI网络存储服务+udev的方式进行模拟共享存储,将节点2上的多出的磁盘作为共享存储。

3.1、服务端配置 这里的服务端即节点2。

3.1.1、创建LVM

在节点2执行:


lvcreate -L 1g -n lv_ocr1 vg_oracle
lvcreate -L 1g -n lv_ocr2 vg_oracle
lvcreate -L 1g -n lv_ocr3 vg_oracle

lvcreate -L 10g -n lv_mgmt1 vg_oracle
lvcreate -L 10g -n lv_mgmt2 vg_oracle
lvcreate -L 10g -n lv_mgmt3 vg_oracle

lvcreate -L 15g -n lv_data1 vg_oracle
lvcreate -L 15g -n lv_data2 vg_oracle
lvcreate -L 15g -n lv_data3 vg_oracle

lvcreate -L 10g -n lv_fra1 vg_oracle
lvcreate -L 10g -n lv_fra2 vg_oracle
lvcreate -L 10g -n lv_fra3 vg_oracle


3.1.2、使用yum安装targetd和targetcli

在节点2执行:

yum -y install targetd targetcli

systemctl start target
systemctl enable target
systemctl status target

systemctl list-unit-files|grep target.service


同时确认targetd服务启动状态和开机启动。


3.1.3、使用targetcli创建设备

targetcli进入命令行,cd到/backstores/block目录下,创建设备:


targetcli
 ls
 cd /backstores/block

 create ocr1 /dev/vg_oracle/lv_ocr1
 create ocr2 /dev/vg_oracle/lv_ocr2
 create ocr3 /dev/vg_oracle/lv_ocr3


create mgmt1 /dev/vg_oracle/lv_mgmt1
create mgmt2 /dev/vg_oracle/lv_mgmt2
create mgmt3 /dev/vg_oracle/lv_mgmt3

create data1 /dev/vg_oracle/lv_data1
create data2 /dev/vg_oracle/lv_data2
create data3 /dev/vg_oracle/lv_data3

create fra1 /dev/vg_oracle/lv_fra1
create fra2 /dev/vg_oracle/lv_fra2
create fra3 /dev/vg_oracle/lv_fra3


执行过程:

Oracle rac 21c安装详细过程_IP_14


3.1.4、使用targetcli创建iqn和LUN

cd到/iscsi目录下,创建iqn;cd到/iscsi/iqn.20...0be/tpg1/luns下创建LUN,参考命令如下:


cd /iscsi create iqn.2021-08.xmmup.com:rac-21c-shared-disks
cd /iscsi/iqn.2021-08.xmmup.com:rac-21c-shared-disks/tpg1/luns
create /backstores/block/ocr1
create /backstores/block/ocr2
create /backstores/block/ocr3
create /backstores/block/mgmt1
create /backstores/block/mgmt2
create /backstores/block/mgmt3
create /backstores/block/data1
create /backstores/block/data2
create /backstores/block/data3
create /backstores/block/fra1
create /backstores/block/fra2
create /backstores/block/fra3

执行过程:

Oracle rac 21c安装详细过程_linux_15


3.1.5、使用targetcli创建acls

设置哪些设备可以连接到此iqn上:

cd到acls目录下,创建2个client的acls,参考命令如下:

cd /iscsi/iqn.2021-08.xmmup.com:rac-21c-shared-disks/tpg1/acls
 create iqn.2021-08.xmmup.com:rac-21c-shared-disks:client62
 create iqn.2021-08.xmmup.com:rac-21c-shared-disks:client63

执行:

Oracle rac 21c安装详细过程_linux_16


3.1.6、配置target监听IP和端口

cd到portals目录下创建portals:

cd /iscsi/iqn.2021-08.xmmup.com:rac-21c-shared-disks/tpg1/portals
 delete 0.0.0.0 3260
 create 192.168.59.63


执行过程:

Oracle rac 21c安装详细过程_IP_17


3.1.7、保存配置

cd /
saveconfig

说明:可以查看/etc/target/saveconfig.json配置文件,该配置文件保存着ISCSI的配置。

/iscsi/iqn.20.../tpg1/portals> cd /
/> saveconfig
Configuration saved to /etc/target/saveconfig.json
/>


3.2、客户端配置

客户端即节点1和节点2都需要配置。

3.2.1、安装服务并启动

yum -y install iscsi-initiator-utils
 -- 注意节点2的不同,应该为“client63”
 echo "InitiatorName=iqn.2021-08.xmmup.com:rac-21c-shared-disks:client62" > /etc/iscsi/initiatorname.iscsi

 systemctl enable iscsid
 systemctl start iscsid
 systemctl status iscsid

 -- 修改文件/usr/lib/systemd/system/iscsi.service,在“[Service]”下添加如下内容:
 TimeoutStartSec=5sec
 TimeoutStopSec=5sec

 systemctl daemon-reload



3.2.2、使用iscsiadm发现可用存储设备并登陆连接

-- 找到可用存储设备:
 iscsiadm -m discovery -t st -p 192.168.59.63
 -- 登陆连接: iscsiadm -m node -T iqn.2021-08.xmmup.com:rac-21c-shared-disks -p 192.168.59.63 --login

 -- 若是重新配置,则删除以下内容,并重启OS才能生效
 rm -rf /var/lib/iscsi/nodes/*
 rm -rf /var/lib/iscsi/send_targets/*


Oracle rac 21c安装详细过程_IP_18

此时使用fdisk -l | grep dev查看已经正常显示所有设备:


Oracle rac 21c安装详细过程_linux_19


3.2.3、创建并配置udev rules文件

直接运行如下的脚本:

-- 创建ASM磁盘udev配置文件
 for i in  d e f g h i j k l m n o; do
 echo "KERNEL==\"sd*\",ENV{DEVTYPE}==\"disk\",SUBSYSTEM==\"block\",PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d \$devnode\",RESULT==\"`/usr/lib/udev/scsi_id -g -u /dev/sd$i`\", RUN+=\"/bin/sh -c 'mknod /dev/asm-disk$i b  \$major \$minor; chown grid:asmadmin /dev/asm-disk$i; chmod 0660 /dev/asm-disk$i'\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
 done

 -- 重启服务:
 /sbin/udevadm trigger --type=devices --action=change
 /sbin/udevadm control --reload

 -- 查看磁盘
 ll /dev/asm*

执行过程:


Oracle rac 21c安装详细过程_linux_20

[root@raclhr-21c-n1 ~]# for i in  d e f g h i j k l m n o; do 
> echo "KERNEL==\"sd*\",ENV{DEVTYPE}==\"disk\",SUBSYSTEM==\"block\",PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d \$devnode\",RESULT==\"`/usr/lib/udev/scsi_id -g -u /dev/sd$i`\", RUN+=\"/bin/sh -c 'mknod /dev/asm-disk$i b  \$major \$minor; chown grid:asmadmin /dev/asm-disk$i; chmod 0660 /dev/asm-disk$i'\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
> done
[root@raclhr-21c-n1 ~]# cat /etc/udev/rules.d/99-oracle-asmdevices.rules 
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="360014054269a99f369e49f3b96c36a1f", RUN+="/bin/sh -c 'mknod /dev/asm-diskd b  $major $minor; chown grid:asmadmin /dev/asm-diskd; chmod 0660 /dev/asm-diskd'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="360014050e1a3ca0338b4ec98c3fd3549", RUN+="/bin/sh -c 'mknod /dev/asm-diske b  $major $minor; chown grid:asmadmin /dev/asm-diske; chmod 0660 /dev/asm-diske'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="360014059475c72da0e44253b4377a355", RUN+="/bin/sh -c 'mknod /dev/asm-diskf b  $major $minor; chown grid:asmadmin /dev/asm-diskf; chmod 0660 /dev/asm-diskf'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36001405cf669852f98240dd9596e1808", RUN+="/bin/sh -c 'mknod /dev/asm-diskg b  $major $minor; chown grid:asmadmin /dev/asm-diskg; chmod 0660 /dev/asm-diskg'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36001405120d8ce03eb94720ac9ffa91a", RUN+="/bin/sh -c 'mknod /dev/asm-diskh b  $major $minor; chown grid:asmadmin /dev/asm-diskh; chmod 0660 /dev/asm-diskh'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36001405095565b2b64b4085bf3b13184", RUN+="/bin/sh -c 'mknod /dev/asm-diski b  $major $minor; chown grid:asmadmin /dev/asm-diski; chmod 0660 /dev/asm-diski'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36001405647c901386824b27aceedf72f", RUN+="/bin/sh -c 'mknod /dev/asm-diskj b  $major $minor; chown grid:asmadmin /dev/asm-diskj; chmod 0660 /dev/asm-diskj'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36001405030340160f0b4393becae3f60", RUN+="/bin/sh -c 'mknod /dev/asm-diskk b  $major $minor; chown grid:asmadmin /dev/asm-diskk; chmod 0660 /dev/asm-diskk'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36001405ef600c31b0034c41ac16391ea", RUN+="/bin/sh -c 'mknod /dev/asm-diskl b  $major $minor; chown grid:asmadmin /dev/asm-diskl; chmod 0660 /dev/asm-diskl'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36001405f671bb9a383e4808ad158b573", RUN+="/bin/sh -c 'mknod /dev/asm-diskm b  $major $minor; chown grid:asmadmin /dev/asm-diskm; chmod 0660 /dev/asm-diskm'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="360014053294b9b4056841baa79a34d67", RUN+="/bin/sh -c 'mknod /dev/asm-diskn b  $major $minor; chown grid:asmadmin /dev/asm-diskn; chmod 0660 /dev/asm-diskn'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36001405b219421f2408475f8b8183eb1", RUN+="/bin/sh -c 'mknod /dev/asm-disko b  $major $minor; chown grid:asmadmin /dev/asm-disko; chmod 0660 /dev/asm-disko'"
[root@raclhr-21c-n1 ~]# ll /dev/asm* 
ls: cannot access /dev/asm*: No such file or directory
[root@raclhr-21c-n1 ~]# /sbin/udevadm trigger --type=devices --action=change 
[root@raclhr-21c-n1 ~]# /sbin/udevadm control --reload 
[root@raclhr-21c-n1 ~]# ll /dev/asm* 
ls: cannot access /dev/asm*: No such file or directory
[root@raclhr-21c-n1 ~]# ll /dev/asm* 
brw-rw---- 1 grid asmadmin 8,  48 Aug 19 15:19 /dev/asm-diskd
brw-rw---- 1 grid asmadmin 8,  64 Aug 19 15:19 /dev/asm-diske
brw-rw---- 1 grid asmadmin 8,  80 Aug 19 15:19 /dev/asm-diskf
brw-rw---- 1 grid asmadmin 8,  96 Aug 19 15:19 /dev/asm-diskg
brw-rw---- 1 grid asmadmin 8, 112 Aug 19 15:19 /dev/asm-diskh
brw-rw---- 1 grid asmadmin 8, 128 Aug 19 15:19 /dev/asm-diski
brw-rw---- 1 grid asmadmin 8, 144 Aug 19 15:19 /dev/asm-diskj
brw-rw---- 1 grid asmadmin 8, 160 Aug 19 15:19 /dev/asm-diskk
brw-rw---- 1 grid asmadmin 8, 176 Aug 19 15:19 /dev/asm-diskl
brw-rw---- 1 grid asmadmin 8, 192 Aug 19 15:19 /dev/asm-diskm
brw-rw---- 1 grid asmadmin 8, 208 Aug 19 15:19 /dev/asm-diskn
brw-rw---- 1 grid asmadmin 8, 224 Aug 19 15:19 /dev/asm-disko
[root@raclhr-21c-n1 ~]# lsscsi       
[0:0:0:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sda
[0:0:1:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sdb
[0:0:2:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sdc
[3:0:0:0]    disk    LIO-ORG  ocr1             4.0   /dev/asm-diskd
[3:0:0:1]    disk    LIO-ORG  ocr2             4.0   /dev/asm-diske
[3:0:0:2]    disk    LIO-ORG  ocr3             4.0   /dev/asm-diskf
[3:0:0:3]    disk    LIO-ORG  mgmt1            4.0   /dev/asm-diskg
[3:0:0:4]    disk    LIO-ORG  mgmt2            4.0   /dev/asm-diskh
[3:0:0:5]    disk    LIO-ORG  mgmt3            4.0   /dev/asm-diski
[3:0:0:6]    disk    LIO-ORG  data1            4.0   /dev/asm-diskj
[3:0:0:7]    disk    LIO-ORG  data2            4.0   /dev/asm-diskk
[3:0:0:8]    disk    LIO-ORG  data3            4.0   /dev/asm-diskl
[3:0:0:9]    disk    LIO-ORG  fra1             4.0   /dev/asm-diskm
[3:0:0:10]   disk    LIO-ORG  fra2             4.0   /dev/asm-diskn
[3:0:0:11]   disk    LIO-ORG  fra3             4.0   /dev/asm-disko


四、数据库软件包准备

4.1、上传安装软件

打开SecureFX软件:

Oracle rac 21c安装详细过程_oracle_21

复制粘贴数据库文件到/soft目录下并等待上传完成。

注意,对安装包需要进行MD5值校验:

[root@raclhr-21c-n1 ~]# cd /soft 
[root@raclhr-21c-n1 soft]# ll 
total 5401812
-rw-r--r-- 1 root root 3109225519 Aug 16 09:58 LINUX.X64_213000_db_home.zip
-rw-r--r-- 1 root root 2422217613 Aug 16 09:57 LINUX.X64_213000_grid_home.zip
[root@raclhr-21c-n1 soft]# md5sum LINUX.X64_213000_grid_home.zip 
b3fbdb7621ad82cbd4f40943effdd1be  LINUX.X64_213000_grid_home.zip
[root@raclhr-21c-n1 soft]# md5sum LINUX.X64_213000_db_home.zip 
8ac915a800800ddf16a382506d3953db  LINUX.X64_213000_db_home.zip


4.2、解压软件

grid用户:

unzip LINUX.X64_213000_grid_home.zip  -d /u01/app/21.3.0/grid

oracle用户:

unzip LINUX.X64_213000_db_home.zip -d /u01/app/oracle/product/21.3.0/dbhome_1


只在节点1上进行解压即可。


? 注意:

1、不要同时进行解压2个文件,否则可能有未预料到的错误

2、需要搜索一下解压是否有报错的地方,搜索关键词“error”

注意:18c解压后的文件所在目录就是grid home。所以解压的时候,就要把文件解压到之前定的GRID_HOME下。在12c R2之前是安装的时候,软件会自动复制过去。 Starting with Oracle Database 18c, the Oracle Database software is available as an image file for download and installation. Extract the image software into the directory where you want your Oracle home to be located, and then run the runInstaller script to start the Oracle Database installation. Starting with Oracle Database 18c, installation and configuration of Oracle Database software is simplified with Image-Based installation.


五、安装前预检查

5.1、安装补丁包(cvuqdisk)

在安装RAC之前,经常会需要运行集群验证工具CVU(Cluster Verification Utility),该工具执行系统检查,确认当前的配置是否满足要求。

首先判断是否安装了cvuqdisk包:


rpm -qa cvuqdisk

如果没有安装,那么在2个节点上都执行如下命令进行安装该包:

export CVUQDISK_GRP=oinstall
cd /u01/app/21.3.0/grid/cv/rpm
rpm -ivh  cvuqdisk-1.0.10-1.rpm


传输到第2个节点上进行安装:

scp cvuqdisk-1.0.10-1.rpm root@raclhr-21c-n2:/soft

-- 节点2安装cvuqdisk包
export CVUQDISK_GRP=oinstall
rpm -ivh  /soft/cvuqdisk-1.0.10-1.rpm



5.2、配SSH互信,建立ssh等效性

sshUserSetup.sh在GI安装介质解压缩后的sshsetup目录下。下面两条命令在节点1上执行即可,在root用户下执行:

/u01/app/21.3.0/grid/oui/prov/resources/scripts/sshUserSetup.sh -user grid  -hosts "raclhr-21c-n1 raclhr-21c-n2" -advanced exverify -confirm
/u01/app/21.3.0/grid/oui/prov/resources/scripts/sshUserSetup.sh -user oracle  -hosts "raclhr-21c-n1 raclhr-21c-n2" -advanced exverify -confirm

输入yes及密码一路回车即可。

以oracle和grid用户在2个节点上都测试两节点连通性

ssh raclhr-21c-n1 date
ssh raclhr-21c-n2 date
ssh raclhr-21c-n1-priv date
ssh raclhr-21c-n2-priv date


第二次执行时不再提示输入口令,并且可以成功执行命令,则表示SSH对等性配置成功。

Use Cluster Verification Utility (cvu) Before installing Oracle Clusterware, use CVU to ensure that your cluster is prepared for an installation: Oracle provides CVU to perform system checks in preparation for an installation, patch updates, or other system changes. In addition, CVU can generate fixup scripts that can change many kernel parameters to at lease the minimum settings required for a successful installation. Using CVU can help system administrators, storage administrators, and DBA to ensure that everyone has completed the system configuration and preinstallation steps. ./runcluvfy.sh -help ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 –fixup -verbose Install the operating system package cvuqdisk to both Oracle RAC nodes. Without cvuqdisk, Cluster Verification Utility cannot discover shared disks, and you will receive the error message "Package cvuqdisk not installed" when the Cluster Verification Utility is run (either manually or at the end of the Oracle grid infrastructure installation). Use the cvuqdisk RPM for your hardware architecture (for example, x86_64 or i386). The cvuqdisk RPM can be found on the Oracle grid infrastructure installation media in the rpm directory. For the purpose of this article, the Oracle grid infrastructure media was extracted to the /home/grid/software/oracle/grid directory on racnode1 as the grid user.


在安装GRID之前,建议先利用CVU(Cluster Verification Utility)检查CRS的安装前环境。以grid用户运行:

su - grid
 export CVUQDISK_GRP=oinstall
 export CV_NODE_ALL=raclhr-21c-n1,raclhr-21c-n2
 /u01/app/21.3.0/grid/runcluvfy.sh stage -pre crsinst -allnodes -fixup -verbose -method root

grid安装完成后还可以进行如下校验:

$ORACLE_HOME/bin/cluvfy stage  -pre crsinst -n all  -verbose -fixup

未检测通过的显示为failed,有的failed可以根据提供的脚本进行修复。有的需要根据情况进行修复,有的failed也可以忽略。


报错一:

/dev/shm mounted as temporary file system ...FAILED
 raclhr-21c-n2: PRVE-0421 : No entry exists in /etc/fstab for mounting /dev/shm
 raclhr-21c-n1: PRVE-0421 : No entry exists in /etc/fstab for mounting /dev/shm

参考:http://blog.itpub.net/26736162/viewspace-2214381

CentOS7和RHEL7在 /etc/fstab中不包含/dev/shm ,可以手动加进去,或者忽略都可以。
 

报错二:

Systemd login manager IPC parameter ...FAILED
raclhr-21c-n2: PRVE-10233 : Systemd login manager parameter 'RemoveIPC' entry
		does not exist or is commented out in the configuration file
		"/etc/systemd/logind.conf" on node "raclhr-21c-n2".
		[Expected="no"]

raclhr-21c-n1: PRVE-10233 : Systemd login manager parameter 'RemoveIPC' entry
		does not exist or is commented out in the configuration file
		"/etc/systemd/logind.conf" on node "raclhr-21c-n1".
		[Expected="no"]


参考:http://blog.itpub.net/29371470/viewspace-2125673/



解决:

echo "RemoveIPC=no" >> /etc/systemd/logind.conf
systemctl daemon-reload
systemctl restart systemd-logind


报错三:

Network Time Protocol (NTP) ...FAILED
 raclhr-21c-n2: PRVG-1017 : NTP configuration file "/etc/ntp.conf" is present on
				nodes "raclhr-21c-n2,raclhr-21c-n1" on which NTP daemon or
				service was not running
raclhr-21c-n1: PRVG-1017 : NTP configuration file "/etc/ntp.conf" is present on
				nodes "raclhr-21c-n2,raclhr-21c-n1" on which NTP daemon or
				service was not running

我们使用ctssd来同步集群的时间,所以ntp必须关闭。




六、图形界面安装集群和db

安装之前重启一次OS,并检查网络和共享盘是否正确。

首先,打开Xmanager - Passive,如下:

Oracle rac 21c安装详细过程_IP_22


6.1、安装grid

注意:以grid用户登录,然后运行下面这个脚本,和之前版本的grid安装有所不同:


[grid@raclhr-21c-n1 ~]$ export DISPLAY=192.168.59.1:0.0
[grid@raclhr-21c-n1 ~]$ /u01/app/21.3.0/grid/gridSetup.sh
Launching Oracle Grid Infrastructure Setup Wizard...


Oracle rac 21c安装详细过程_oracle_23


Oracle rac 21c安装详细过程_oracle_24

Oracle rac 21c安装详细过程_oracle_25


Oracle rac 21c安装详细过程_linux_26

点击add添加节点2后,点击next

Oracle rac 21c安装详细过程_linux_27

Oracle rac 21c安装详细过程_oracle_28

默认选中了不安装GIMR,我们也暂时不安装MIMR库:

Oracle rac 21c安装详细过程_IP_29

Oracle rac 21c安装详细过程_oracle_30

Oracle rac 21c安装详细过程_IP_31

修改磁盘路径为“/dev/asm*”就可以找到ASM磁盘了。

Oracle rac 21c安装详细过程_oracle_32

Oracle rac 21c安装详细过程_linux_33

Oracle rac 21c安装详细过程_linux_34

Oracle rac 21c安装详细过程_IP_35

Oracle rac 21c安装详细过程_linux_36

Oracle rac 21c安装详细过程_linux_37

Oracle rac 21c安装详细过程_oracle_38

Oracle rac 21c安装详细过程_linux_39

忽悠所有错误继续安装

Oracle rac 21c安装详细过程_linux_40


Oracle rac 21c安装详细过程_oracle_41

Oracle rac 21c安装详细过程_linux_42


分别在节点1和节点2上执行:

/u01/app/oraInventory/orainstRoot.sh
/u01/app/21.3.0/grid/root.sh


节点1运行:

Oracle rac 21c安装详细过程_IP_43


最后输出Configure Oracle Grid Infrastructure for a Cluster ... succeeded表示成功,跑完后,检查一下:


Oracle rac 21c安装详细过程_linux_44


节点2:


Oracle rac 21c安装详细过程_IP_45

最后输出Configure Oracle Grid Infrastructure for a Cluster ... succeeded表示成功,查看:

Oracle rac 21c安装详细过程_IP_46




此时回到界面点击OK,继续运行:


Oracle rac 21c安装详细过程_oracle_47


Oracle rac 21c安装详细过程_IP_48

最后集群校验报错,看了一下是dns和ntp的问题,可以忽略,继续安装:

Oracle rac 21c安装详细过程_oracle_49



6.2、安装db


[root@raclhr-21c-n1 ~]# su - oracle 
Last login: Thu Aug 19 15:26:38 CST 2021 on pts/0
[oracle@raclhr-21c-n1 ~]$ cd $ORACLE_HOME
[oracle@raclhr-21c-n1 dbhome_1]$ export DISPLAY=192.168.59.1:0.0
[oracle@raclhr-21c-n1 dbhome_1]$ ./runInstaller


Oracle rac 21c安装详细过程_linux_50

Oracle rac 21c安装详细过程_oracle_51

Oracle rac 21c安装详细过程_oracle_52

Oracle rac 21c安装详细过程_oracle_53

Oracle rac 21c安装详细过程_oracle_54

Oracle rac 21c安装详细过程_IP_55

Oracle rac 21c安装详细过程_linux_56

Oracle rac 21c安装详细过程_oracle_57

Oracle rac 21c安装详细过程_oracle_58

Oracle rac 21c安装详细过程_oracle_59

Oracle rac 21c安装详细过程_oracle_60

Oracle rac 21c安装详细过程_IP_61

节点1和节点2分别执行:

Oracle rac 21c安装详细过程_linux_62


执行完后,点击OK:

Oracle rac 21c安装详细过程_IP_63



6.3、创建磁盘组


[root@raclhr-21c-n1 ~]# su - grid 
 Last login: Fri Aug 20 09:59:53 CST 2021
 [grid@raclhr-21c-n1 ~]$ export DISPLAY=192.168.59.1:0.0
 [grid@raclhr-21c-n1 ~]$ asmca

Oracle rac 21c安装详细过程_IP_64

Oracle rac 21c安装详细过程_IP_65

Oracle rac 21c安装详细过程_linux_66

查看:

Oracle rac 21c安装详细过程_IP_67


6.4、创建数据库


[oracle@raclhr-21c-n1 ~]$ export DISPLAY=192.168.59.1:0.0
[oracle@raclhr-21c-n1 ~]$ dbca

Oracle rac 21c安装详细过程_oracle_68

Oracle rac 21c安装详细过程_oracle_69

Oracle rac 21c安装详细过程_IP_70

Oracle rac 21c安装详细过程_IP_71

Oracle rac 21c安装详细过程_IP_72

Oracle rac 21c安装详细过程_linux_73

Oracle rac 21c安装详细过程_oracle_74

Oracle rac 21c安装详细过程_IP_75

Oracle rac 21c安装详细过程_oracle_76

Oracle rac 21c安装详细过程_IP_77

Oracle rac 21c安装详细过程_oracle_78

Oracle rac 21c安装详细过程_oracle_79

Oracle rac 21c安装详细过程_IP_80

Oracle rac 21c安装详细过程_IP_81




七、静默安装集群和db

安装之前重启一次OS,并检查网络和共享盘是否正确。

7.1、静默安装grid

/u01/app/21.3.0/grid/gridSetup.sh -silent  -force -noconfig  -ignorePrereq \
 oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v21.0.0 \
 INVENTORY_LOCATION=/u01/app/oraInventory \
 oracle.install.option=CRS_CONFIG \
 ORACLE_BASE=/u01/app/grid \
 oracle.install.asm.OSDBA=asmdba \
 oracle.install.asm.OSOPER=asmoper \
 oracle.install.asm.OSASM=asmadmin \
 oracle.install.crs.config.scanType=LOCAL_SCAN \
 oracle.install.crs.config.gpnp.scanName=raclhr-21c-scan \
 oracle.install.crs.config.gpnp.scanPort=1521 \
 oracle.install.crs.config.ClusterConfiguration=STANDALONE \
 oracle.install.crs.config.configureAsExtendedCluster=false \
 oracle.install.crs.config.clusterName=raclhr-cluster \
 oracle.install.crs.config.gpnp.configureGNS=false \
 oracle.install.crs.config.autoConfigureClusterNodeVIP=false \
 oracle.install.crs.config.clusterNodes=raclhr-21c-n1:raclhr-21c-n1-vip,raclhr-21c-n2:raclhr-21c-n2-vip \
 oracle.install.crs.config.networkInterfaceList=ens34:192.168.2.0:5,ens33:192.168.59.0:1 \
 oracle.install.asm.configureGIMRDataDG=false \
 oracle.install.crs.config.useIPMI=false \
 oracle.install.asm.storageOption=ASM \
 oracle.install.asm.SYSASMPassword=lhr \
 oracle.install.asm.diskGroup.name=OCR \
 oracle.install.asm.diskGroup.redundancy=NORMAL \
 oracle.install.asm.diskGroup.AUSize=4 \
 oracle.install.asm.diskGroup.disks=/dev/asm-diskd,/dev/asm-diske,/dev/asm-diskf \
 oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm-* \
 oracle.install.asm.monitorPassword=lhr \
 oracle.install.asm.configureAFD=false \
 oracle.install.crs.configureRHPS=false \
 oracle.install.crs.config.ignoreDownNodes=false \
 oracle.install.config.managementOption=NONE \
 oracle.install.crs.rootconfig.executeRootScript=false

执行过程:

Oracle rac 21c安装详细过程_IP_82


在安装grid软件和db软件的过程中,有一个过程是将节点1上的软件拷贝到节点2上,这个过程是利用的集群的公网进行传递软件的,可以使用ifconfig命令看到。


[root@raclhr-21c-n2 ~]# ifconfig 
ens33: flags=4163  mtu 1500
		inet 192.168.59.63  netmask 255.255.255.0  broadcast 192.168.59.255
		inet6 fe80::20c:29ff:feb5:cf4b  prefixlen 64  scopeid 0x20
		ether 00:0c:29:b5:cf:4b  txqueuelen 1000  (Ethernet)
		RX packets 4285065  bytes 6368668989 (5.9 GiB)
		RX errors 0  dropped 0  overruns 0  frame 0
		TX packets 161678  bytes 27715188 (26.4 MiB)
		TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens34: flags=4163  mtu 1500
		inet 192.168.2.63  netmask 255.255.255.0  broadcast 192.168.2.255
		inet6 fe80::20c:29ff:feb5:cf55  prefixlen 64  scopeid 0x20
		ether 00:0c:29:b5:cf:55  txqueuelen 1000  (Ethernet)
		RX packets 478  bytes 426304 (416.3 KiB)
		RX errors 0  dropped 0  overruns 0  frame 0
		TX packets 441  bytes 421344 (411.4 KiB)
		TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0



7.1.1、root.sh脚本

以root用户分别在2个节点上运行:

1. /u01/app/oraInventory/orainstRoot.sh
2. /u01/app/21.3.0/grid/root.sh
1、节点1执行过程:

Oracle rac 21c安装详细过程_IP_83


最后输出Configure Oracle Grid Infrastructure for a Cluster ... succeeded表示成功。


2、节点2执行过程:


Oracle rac 21c安装详细过程_IP_84


最后输出Configure Oracle Grid Infrastructure for a Cluster ... succeeded表示成功。


3、然后以安装用户grid在节点1执行如下脚本:
/u01/app/21.3.0/grid/gridSetup.sh  -silent -executeConfigTools -responseFile /u01/app/21.3.0/grid/install/response/grid_2021-08-20_04-58-51PM.rsp

执行结果:

[grid@raclhr-21c-n1 ~]$ /u01/app/21.3.0/grid/gridSetup.sh  -silent -executeConfigTools -responseFile /u01/app/21.3.0/grid/install/response/grid_2021-08-20_04-58-51PM.rsp
 Launching Oracle Grid Infrastructure Setup Wizard...

 You can find the logs of this session at:
 /u01/app/oraInventory/logs/GridSetupActions2021-08-20_05-20-02PM

 ====》 这里至少需要按2次回车

 (reconfirmation):

 (reconfirmation):

 [WARNING] [INS-43080] Some of the configuration assistants failed, were cancelled or skipped.
 ACTION: Refer to the logs or contact Oracle Support Services.


7.2、静默安装db软件

安装之前可以使用脚本进行校验,确保所有的failed选项都可以忽略。

su - oracle export
 CVUQDISK_GRP=oinstall
 export CV_NODE_ALL=raclhr-21c-n1,raclhr-21c-n2
 /u01/app/21.3.0/grid/runcluvfy.sh stage -pre dbinst -allnodes -fixup -verbose

静默安装:

/u01/app/oracle/product/21.3.0/dbhome_1/runInstaller -silent  -force -noconfig  -ignorePrereq \
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v21.0.0 \
oracle.install.option=INSTALL_DB_SWONLY \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/u01/app/oraInventory \
ORACLE_BASE=/u01/app/oracle \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSOPER_GROUP=oper \
oracle.install.db.OSBACKUPDBA_GROUP=backupdba \
oracle.install.db.OSDGDBA_GROUP=dgdba \
oracle.install.db.OSKMDBA_GROUP=kmdba \
oracle.install.db.OSRACDBA_GROUP=racdba \
oracle.install.db.CLUSTER_NODES=raclhr-21c-n1,raclhr-21c-n2 \
oracle.install.db.rootconfig.executeRootScript=false

Oracle rac 21c安装详细过程_linux_85


执行过程:

[oracle@raclhr-21c-n1 ~]$ /u01/app/oracle/product/21.3.0/dbhome_1/runInstaller -silent  -force -noconfig  -ignorePrereq \
> oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v21.0.0 \
> oracle.install.option=INSTALL_DB_SWONLY \
> UNIX_GROUP_NAME=oinstall \
> INVENTORY_LOCATION=/u01/app/oraInventory \
> ORACLE_BASE=/u01/app/oracle \
> oracle.install.db.InstallEdition=EE \
> oracle.install.db.OSDBA_GROUP=dba \
> oracle.install.db.OSOPER_GROUP=oper \
> oracle.install.db.OSBACKUPDBA_GROUP=backupdba \
> oracle.install.db.OSDGDBA_GROUP=dgdba \
> oracle.install.db.OSKMDBA_GROUP=kmdba \
> oracle.install.db.OSRACDBA_GROUP=racdba \
> oracle.install.db.CLUSTER_NODES=raclhr-21c-n1,raclhr-21c-n2 \
> oracle.install.db.rootconfig.executeRootScript=false
Launching Oracle Database Setup Wizard...

[WARNING] [INS-13001] Oracle Database is not supported on this operating system. Installer will not perform prerequisite checks on the system.
		CAUSE: This operating system may not have been in the certified list at the time of the release of this software.
		ACTION: Refer to My Oracle Support portal for the latest certification information for this operating system. Proceed with the installation if the operating system has been certified after the release of this software.
The response file for this session can be found at:
/u01/app/oracle/product/21.3.0/dbhome_1/install/response/db_2021-08-20_09-57-24PM.rsp

You can find the log of this install session at:
/u01/app/oraInventory/logs/InstallActions2021-08-20_09-57-24PM/installActions2021-08-20_09-57-24PM.log

As a root user, execute the following script(s):
	1. /u01/app/oracle/product/21.3.0/dbhome_1/root.sh

Execute /u01/app/oracle/product/21.3.0/dbhome_1/root.sh on the following nodes:
[raclhr-21c-n1, raclhr-21c-n2]

Successfully Setup Software.

[root@raclhr-21c-n1 InstallActions2021-08-20_09-47-27PM]# /u01/app/oracle/product/21.3.0/dbhome_1/root.sh 
Check /u01/app/oracle/product/21.3.0/dbhome_1/install/root_raclhr-21c-n1_2021-08-20_22-03-03-392736813.log for the output of root script
[root@raclhr-21c-n1 InstallActions2021-08-20_09-47-27PM]# more /u01/app/oracle/product/21.3.0/dbhome_1/install/root_raclhr-21c-n1_2021-08-20_22-03-03-392736813.log 
Performing root user operation.

The following environment variables are set as:
		ORACLE_OWNER= oracle
		ORACLE_HOME=  /u01/app/oracle/product/21.3.0/dbhome_1
	Copying dbhome to /usr/local/bin ...
	Copying oraenv to /usr/local/bin ...
	Copying coraenv to /usr/local/bin ...

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.

节点1和节点2都需要以root用户执行脚本:/u01/app/oracle/product/21.3.0/dbhome_1/root.sh

至此,grid集群和db软件都已经安装完成了,剩下的就是创建数据库的操作。


7.3、创建DATA和FRA磁盘组


su - grid

sqlplus / as sysasm

create diskgroup DATA external redundancy disk '/dev/asm-diskj','/dev/asm-diskk','/dev/asm-diskl'
ATTRIBUTE 'compatible.rdbms' = '21.3', 'compatible.asm' = '21.3';

create diskgroup FRA external redundancy disk '/dev/asm-diskm','/dev/asm-diskn','/dev/asm-disko'
ATTRIBUTE 'compatible.rdbms' = '21.3', 'compatible.asm' = '21.3';

srvctl start diskgroup -diskgroup data
srvctl start diskgroup -diskgroup fra
alter diskgroup all mount;

col name format a10
set line 9999
col path format a25
select GROUP_NUMBER,path,name,disk_number,total_mb,free_mb,CREATE_DATE,MOUNT_STATUS,MOUNT_DATE from v$asm_disk order by GROUP_NUMBER desc,disk_number;
select name,state,free_mb,required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;

查看:

Oracle rac 21c安装详细过程_linux_86

SQL> col name format a10
SQL> set line 9999
SQL> col path format a25
SQL> select GROUP_NUMBER,path,name,disk_number,total_mb,free_mb,CREATE_DATE,MOUNT_STATUS,MOUNT_DATE from v$asm_disk order by GROUP_NUMBER desc,disk_number;

GROUP_NUMBER PATH                      NAME       DISK_NUMBER   TOTAL_MB    FREE_MB CREATE_DA MOUNT_S MOUNT_DAT
------------ ------------------------- ---------- ----------- ---------- ---------- --------- ------- ---------
3 /dev/asm-diskm            FRA_0000             0      10240      10218 20-AUG-21 CACHED  20-AUG-21
3 /dev/asm-diskn            FRA_0001             1      10240      10216 20-AUG-21 CACHED  20-AUG-21
3 /dev/asm-disko            FRA_0002             2      10240      10216 20-AUG-21 CACHED  20-AUG-21
2 /dev/asm-diskj            DATA_0000            0      15360      15336 20-AUG-21 CACHED  20-AUG-21
2 /dev/asm-diskk            DATA_0001            1      15360      15339 20-AUG-21 CACHED  20-AUG-21
2 /dev/asm-diskl            DATA_0002            2      15360      15335 20-AUG-21 CACHED  20-AUG-21
1 /dev/asm-diskd            OCR_0000             0       1024        692 20-AUG-21 CACHED  20-AUG-21
1 /dev/asm-diske            OCR_0001             1       1024        696 20-AUG-21 CACHED  20-AUG-21
1 /dev/asm-diskf            OCR_0002             2       1024        696 20-AUG-21 CACHED  20-AUG-21
0 /dev/asm-diskg                                 0          0          0           CLOSED
0 /dev/asm-diskh                                 1          0          0           CLOSED

GROUP_NUMBER PATH                      NAME       DISK_NUMBER   TOTAL_MB    FREE_MB CREATE_DA MOUNT_S MOUNT_DAT
------------ ------------------------- ---------- ----------- ---------- ---------- --------- ------- ---------
0 /dev/asm-diski                                 2          0          0           CLOSED
12 rows selected.

SQL> select name,state,free_mb,required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;
NAME       STATE          FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
---------- ----------- ---------- ----------------------- --------------
OCR        MOUNTED           2084                    1024            530
DATA       MOUNTED          46010                       0          46010
FRA        MOUNTED          30650                       0          30650

[root@raclhr-21c-n1 ~]# $ORACLE_HOME/bin/kfod disks=all st=true ds=true 

--------------------------------------------------------------------------------
Disk          Size Header    Path                                    Disk Group    User     Group
================================================================================
1:       1024 MB MEMBER    /dev/asm-diskd                           OCR          grid     asmadmin
2:       1024 MB MEMBER    /dev/asm-diske                           OCR          grid     asmadmin
3:       1024 MB MEMBER    /dev/asm-diskf                           OCR          grid     asmadmin
4:      10240 MB CANDIDATE /dev/asm-diskg                           #            grid     asmadmin    
5:      10240 MB CANDIDATE /dev/asm-diskh                           #            grid     asmadmin    
6:      10240 MB CANDIDATE /dev/asm-diski                           #            grid     asmadmin    
7:      15360 MB MEMBER    /dev/asm-diskj                           DATA         grid     asmadmin
8:      15360 MB MEMBER    /dev/asm-diskk                           DATA         grid     asmadmin
9:      15360 MB MEMBER    /dev/asm-diskl                           DATA         grid     asmadmin
10:      10240 MB MEMBER    /dev/asm-diskm                           FRA          grid     asmadmin
11:      10240 MB MEMBER    /dev/asm-diskn                           FRA          grid     asmadmin
12:      10240 MB MEMBER    /dev/asm-disko                           FRA          grid     asmadmin
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME
================================================================================


7.4、静默创建数据库


-- rac数据库
-- dbca -silent -deleteDatabase -sourceDB rac21c -sysDBAUserName sys -sysDBAPassword lhr
dbca -silent  -createDatabase -ignorePreReqs  -ignorePrereqFailure -templateName General_Purpose.dbc -responseFile NO_VALUE \
-gdbname rac21c  -sid rac21c \
-createAsContainerDatabase TRUE \
-sysPassword lhr -systemPassword lhr -dbsnmpPassword lhr \
-datafileDestination '+DATA' -recoveryAreaDestination '+FRA' \
-redoLogFileSize 50 \
-storageType ASM \
-characterset AL32UTF8 \
-totalMemory 1024 \
-databaseType OLTP \
-enableArchive true \
-emConfiguration none \
-nodeinfo raclhr-21c-n1,raclhr-21c-n2

-- 单实例
dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
-gdbname lhrsdb  -sid lhrsdb \
-createAsContainerDatabase TRUE \
-numberOfPDBs 1 \
-pdbName pdbxmm \
-pdbAdminPassword lhr \
-sysPassword lhr -systemPassword lhr \
-datafileDestination '/u01/app/oracle/oradata' \
-recoveryAreaDestination '/u01/app/oracle/flash_recovery_area' \
-redoLogFileSize 50 \
-storageType FS \
-characterset AL32UTF8 -nationalCharacterSet AL16UTF16 \
-totalMemory 1024 \
-databaseType OLTP  \
-enableArchive true \
-emConfiguration NONE


创建过程:

Oracle rac 21c安装详细过程_IP_87

[oracle@raclhr-21c-n1 ~]$ dbca -silent -ignorePreReqs  -ignorePrereqFailure  -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
> -gdbname rac21c  -sid rac21c \
> -createAsContainerDatabase TRUE \
> -sysPassword lhr -systemPassword lhr -dbsnmpPassword lhr \
> -datafileDestination '+DATA' -recoveryAreaDestination '+FRA' \
> -storageType ASM \
> -characterset AL32UTF8 \
> -totalMemory 1024 \
> -databaseType OLTP \
> -emConfiguration none \
> -nodeinfo raclhr-21c-n1,raclhr-21c-n2
[WARNING] [DBT-06208] The 'SYS' password entered does not conform to the Oracle recommended standards.
	CAUSE:
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
	ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
[WARNING] [DBT-06208] The 'SYSTEM' password entered does not conform to the Oracle recommended standards.
	CAUSE:
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
	ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
[WARNING] [DBT-06208] The 'PDBADMIN' password entered does not conform to the Oracle recommended standards.
	CAUSE:
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
	ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
Prepare for db operation
7% complete
Copying database files
27% complete
Creating and starting Oracle instance
28% complete
31% complete
35% complete
37% complete
40% complete
Creating cluster database views
41% complete
53% complete
Completing Database Creation
57% complete
59% complete
60% complete
80% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
/u01/app/oracle/cfgtoollogs/dbca/rac21c.
Database Information:
Global Database Name:rac21c
System Identifier(SID) Prefix:rac21c
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/rac21c/rac21c.log" for further details.

[oracle@raclhr-21c-n1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources --------------------------------------------------------------------------------
ora.LISTENER.lsnr
				ONLINE  ONLINE       raclhr-21c-n1            STABLE
				ONLINE  ONLINE       raclhr-21c-n2            STABLE
ora.chad
				ONLINE  ONLINE       raclhr-21c-n1            STABLE
				ONLINE  ONLINE       raclhr-21c-n2            STABLE
ora.net1.network
				ONLINE  ONLINE       raclhr-21c-n1            STABLE
				ONLINE  ONLINE       raclhr-21c-n2            STABLE
ora.ons
				ONLINE  ONLINE       raclhr-21c-n1            STABLE
				ONLINE  ONLINE       raclhr-21c-n2            STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
		2        ONLINE  ONLINE       raclhr-21c-n2            STABLE
ora.DATA.dg(ora.asmgroup)
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
		2        ONLINE  ONLINE       raclhr-21c-n2            STABLE
ora.FRA.dg(ora.asmgroup)
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
		2        ONLINE  ONLINE       raclhr-21c-n2            STABLE
ora.LISTENER_SCAN1.lsnr
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
ora.LISTENER_SCAN2.lsnr
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
ora.LISTENER_SCAN3.lsnr
		1        ONLINE  ONLINE       raclhr-21c-n2            STABLE
ora.OCR.dg(ora.asmgroup)
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
		2        ONLINE  ONLINE       raclhr-21c-n2            STABLE
ora.asm(ora.asmgroup)
		1        ONLINE  ONLINE       raclhr-21c-n1            Started,STABLE
		2        ONLINE  ONLINE       raclhr-21c-n2            Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
		2        ONLINE  ONLINE       raclhr-21c-n2            STABLE
ora.cdp1.cdp
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
ora.cdp2.cdp
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
ora.cdp3.cdp
		1        ONLINE  ONLINE       raclhr-21c-n2            STABLE
ora.cvu
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
ora.qosmserver
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
ora.rac21c.db
		1        ONLINE  ONLINE       raclhr-21c-n1            Open,HOME=/u01/app/o
															   racle/product/21.3.0
															   /dbhome_1,STABLE
		2        ONLINE  ONLINE       raclhr-21c-n2            Open,HOME=/u01/app/o
																racle/product/21.3.0
																/dbhome_1,STABLE
ora.raclhr-21c-n1.vip
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
ora.raclhr-21c-n2.vip
		1        ONLINE  ONLINE       raclhr-21c-n2            STABLE
ora.scan1.vip
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
ora.scan2.vip
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
ora.scan3.vip
		1        ONLINE  ONLINE       raclhr-21c-n2            STABLE
--------------------------------------------------------------------------------

[oracle@raclhr-21c-n1 ~]$ sas
SQL*Plus: Release 21.0.0.0.0 - Production on Mon Aug 23 10:32:50 2021
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle.  All rights reserved.

Connected to:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

SYS@rac21c1> show pdbs

CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED                       READ ONLY  NO


7.5、创建PDB数据库

Oracle rac 21c安装详细过程_IP_88


SYS@rac21c1> show parameter db_create_file_dest
NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
db_create_file_dest                  string                 +DATA

SYS@rac21c1> create pluggable database PDBLHR1 admin user lhr identified by lhr;

Pluggable database created.   SYS@rac21c1> show pdbs

CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED                       READ ONLY  NO
3 PDBLHR1                        MOUNTED

SYS@rac21c1> alter pluggable database pdblhr1 open instances=all;
Pluggable database altered.   SYS@rac21c1> show pdbs
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED                       READ ONLY  NO
3 PDBLHR1                        READ WRITE NO

SYS@rac21c1>  alter pluggable database all save state instances=all;

Pluggable database altered.

[oracle@raclhr-21c-n1 ~]$ export ORACLE_PDB_SID=PDBLHR1
[oracle@raclhr-21c-n1 ~]$ sas

SQL*Plus: Release 21.0.0.0.0 - Production on Mon Aug 23 10:45:11 2021
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

Connected to:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

SYS@rac21c1> show pdbs
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
3 PDBLHR1                        READ WRITE NO

SYS@rac21c1> show con_name
CON_NAME
------------------------------
PDBLHR1

[root@raclhr-21c-n1 ~]# crsctl status resource  -w "TYPE = ora.database.type" -t 
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.rac21c.db
		1        ONLINE  ONLINE       raclhr-21c-n1            Open,HOME=/u01/app/o
																racle/product/21.3.0
																/dbhome_1,STABLE
		2        ONLINE  ONLINE       raclhr-21c-n2            Open,HOME=/u01/app/o
																racle/product/21.3.0
																/dbhome_1,STABLE
--------------------------------------------------------------------------------

[root@raclhr-21c-n1 ~]# crsctl status resource  -w "TYPE = ora.pdb.type" -t         

--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.rac21c.pdblhr1.pdb
		1        ONLINE  ONLINE       raclhr-21c-n1            STABLE
		2        ONLINE  ONLINE       raclhr-21c-n2            STABLE
--------------------------------------------------------------------------------


八、修改基本配置


8.1、禁用crs和db的自启动

-- 禁用crs自启动
crsctl disable has

-- 禁用db自启动
crsctl modify resource ora.rac21c.db -attr AUTO_START=never -unsupported
crsctl stat res ora.rac21c.db -p | grep AUTO_START

Oracle rac 21c安装详细过程_oracle_89

8.2、修改SQL提示符

cat >> $ORACLE_HOME/sqlplus/admin/glogin.sql <<"EOF"
set linesize 9999 pagesize 9999
set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> "
EOF

Oracle rac 21c安装详细过程_IP_90






为人:谦逊、激情、博学、审问、慎思、明辨、 笃行
学问:纸上得来终觉浅,绝知此事要躬行
为事:工欲善其事,必先利其器。
态度:道阻且长,行则将至;行而不辍,未来可期
.....................................................................
------- 桃之夭夭,灼灼其华。之子于归,宜其室家。 ---------------
------- 桃之夭夭,有蕡其实。之子于归,宜其家室。 ---------------
------- 桃之夭夭,其叶蓁蓁。之子于归,宜其家人。 ---------------
=====================================================================
转载请标注出处!