Oracle RAC 19.8 RHEL7.6 安装手册

 

 


Oracle RAC

19.8 RHEL7.6

安装手册

 

 目录

1. 整体规划......................................................... 7

1.1. IP地址规划................................................. 7

1.2. 操作系统本地磁盘分区规划.................................... 8

1.3. 共享存储与ASM磁盘组规划.................................... 8

1.4. 数据库相关介质.............................................. 9

2. 硬件及系统要求................................................... 9

2.1. 物理内存检查................................................ 9

2.2. 交换空间检查............................................... 10

2.3. 文件系统检查............................................... 10

2.4. 系统剩余物理内存和交换空间检查.............................. 11

2.5. 操作系统版本检查........................................... 11

2.6. 共享内存大小检查........................................... 11

2.7. 时区和时间检查............................................. 11

2.8. 确保服务器上已安装OpenSSH.................................. 12

3. 操作系统配置.................................................... 12

3.1. 配置主机名及解析文件....................................... 12

3.2. 配置 YUM 源................................................ 13

3.3. 安装系统依赖包............................................. 13

3.4. 安装compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm........... 15

3.5. 配置系统服务............................................... 15

3.6. 禁用SELINUX配置........................................... 15

3.7. 添加pam_limits.so模块..................................... 15

3.8. 禁用透明大页............................................... 16

3.9. 确认IO调度算法............................................ 17

3.10. 创建用户组及用户.......................................... 17

3.11. 修改LIMITS配置........................................... 17

3.12. 修改 grid 和 oracle 进程数量限制........................... 18

3.13. 修改默认shell启动配置.................................... 19

3.14. 创建目录................................................. 19

3.15. 设置grid用户环境变量..................................... 20

3.16. 设置oracle 环境变量...................................... 22

3.17. 修改内核参数.............................................. 24

3.18. 时间服务................................................. 26

3.19. RemoveIPC处理............................................ 27

3.20. NOZEROCON................................................ 28

3.21. /etc/resolv.conf......................................... 28

3.22. 配置磁盘................................................. 28

3.23. 重启操作系统.............................................. 31

4. 应用GI补丁,并安装GRID软件..................................... 32

4.1. 上传并解压软件............................................. 32

4.2. 安装cvuqdisk 包........................................... 32

4.3. 配置ssh双机互信........................................... 32

4.4. 更新OPatch................................................ 33

4.5. 应用GI补丁,并安装grid软件................................ 34

4.5.1. 选择安装 new cluster................................. 35

4.5.2. 选择standalone...................................... 36

4.5.3. 设置scan............................................ 37

4.5.4. 配置节点2 信息....................................... 38

4.5.5. 测试grid 用户互信.................................... 39

4.5.6. 选择网卡............................................. 42

4.5.7. 选择使用ASM.......................................... 43

4.5.8. 选择不使用 GI repository............................. 43

4.5.9. 配置磁盘组........................................... 44

4.5.10. 设置ASM 口令........................................ 46

4.5.11. 不使用IPMI......................................... 48

4.5.12. 不向EM 注册......................................... 49

4.5.13. 确认用户组.......................................... 50

4.5.14. 确认安装路径........................................ 51

4.5.15. 确认inventory 目录.................................. 52

4.5.16. 选择不自动运行脚本................................... 54

4.5.17. 安装前检测.......................................... 55

4.5.18. 可忽略检测结果...................................... 56

4.5.19. 最后安装前展示...................................... 58

4.5.20. 开始安装............................................ 58

4.5.21. 两个节点顺序执行root.sh............................. 59

4.5.22. 安装后状态.......................................... 65

5. DataBase软件安装............................................... 66

5.1. 启动安装.................................................. 66

5.2. 只安装软件................................................. 66

5.3. 选择集群安装............................................... 67

5.4. 选中集群全部节点........................................... 68

5.5. 测试oracle 用户互信....................................... 68

5.6. 选择安装企业版............................................. 70

5.7. 确认用户组................................................. 71

5.8. 确认安装路径............................................... 71

5.9. 不自动运行脚本............................................. 72

5.10. 安装前环境检查............................................ 73

5.11. 可忽略选项................................................ 74

5.12. 安装前检查结果............................................ 75

5.13. 开始安装................................................. 76

5.14. 运行root.sh.............................................. 77

6. RU 安装 for DB.................................................. 78

6.1. 更新opatch 工具........................................... 79

6.2. 修改RU 补丁介质权限........................................ 79

6.3. 补丁冲突检测............................................... 79

6.4. 编辑patch_list_dbhome.txt................................. 80

6.5. 补丁安装前空间检测......................................... 80

6.6. 安装补丁.................................................. 81

7. 创建用于建库的磁盘组............................................. 83

7.1. 启动asmca................................................. 83

7.2. Asmca 管理页面............................................ 83

7.3. 添加DATA磁盘组............................................ 84

7.4. DATA磁盘组创建成功........................................ 85

7.5. 添加FRA磁盘组............................................. 85

7.6. FRA磁盘组创建成功......................................... 86

8. DBCA建库....................................................... 87

8.1. 启动dbca.................................................. 87

8.2. 选择高级配置............................................... 89

8.3. 选择custom database....................................... 90

8.4. 选择全部节点............................................... 91

8.5. 设置数据库名称和类型....................................... 92

8.6. 选择数据文件存放类型和位置.................................. 92

8.7. 选择不开启归档和闪回....................................... 95

8.8. 选择数据库组件............................................. 95

8.9. 定制数据库参数............................................. 97

8.9.1. 内存管理采用ASMM..................................... 97

8.9.2. 设置block size 和进程数量............................ 98

8.9.3. 设置字符集........................................... 99

8.10. 不运行脚本和向EM 注册.................................... 100

8.11. 设置用户初始口令......................................... 101

8.12. 不生成模板和建库语句..................................... 102

8.13. 定制数据文件和联机日志................................... 102

8.14. 建库前检查............................................... 107

8.15. 可忽略项目............................................... 108

8.16. 安装信息汇总............................................. 110

8.17. 进行建库安装............................................. 111

8.18. 安装完成集群状态......................................... 113

 

 


1.  整体规划

1.1. IP地址规划

l  主机名允许使用字母、数字和中横线(-),并且只能以字母开头,不能以中横线(-)结尾。(Doc ID 1603775.1)

l  两节点rac建议DNS服务器环境配置3个SCANIP,否则配置1个SCANIP(/etc/hosts文件进行配置)。

l  私网需要使用独立交换机,而不是网线对联。

l  多套RAC使用同一私网交换机,需划分成不同VLAN,或者使用不同网段。

 

本文档配置:

共有7个IP地址,2块网卡,其中public、vip和scan都在同一个网段,private在另一个网段;通过执行ifconfig -a检查2个节点的网络设备名字是否一致。另外,在安装之前,公网、私网共4个IP可以ping通,其它3个不能ping通才是正常的。

 

节点/主机名

Interface Name

地址类型

IP Address

rac01

rac01

Public

192.168.101.141

rac01

rac01-vip

Virtual

192.168.101.143

rac01

rac01-priv

Private

192.168.201.141

rac02

rac02

Public

192.168.201.142

rac02

rac02-vip

Virtual

192.168.101.142

rac02

rac02-priv

Private

192.168.101.144

 

rac-scan

scan

192.168.101.145

 

 

注意事项:

1)19c GI搭建时,cluster_name不能超过15个字符,否则会在执行root.sh第16步,无法通过(报错:clsrsc-119,crs-4000)。(文档ID 2568395.1)

2)dbca建库时在creation option时不要勾选“save as a database template”,否则在进行建库时报错 "PRCS-1046 : Name is not valid" 。(此问题是个bug。文档id 2462400.1)

3)如果安装19.5 且使用AFD绑定asm,需安装小补丁29013832,否则AFD启用会失败。

1.2. 操作系统本地磁盘分区规划

磁盘分区:建议最少分配如下

 

分区

大小

用途说明

/

10G

根分区

/home

10G

家目录

/tmp

10G

临时文件目录

swap

16G

交换空间

/u01

100G

oracle和grid的安装目录

/stage

20G

安装介质目录

1.3. 共享存储与ASM磁盘组规划

存储使用Oracle ASM管理。操作系统层通过udev绑定。如果使用afd参考以下文档:

1.ASMFD (ASM Filter Driver) Support on OS Platforms (Certification Matrix). (Doc ID 2034681.1)

2.How to configure and Create a Disk group using ASMFD. (Doc ID 2053045.1)

存储LUN规划原则

l  数据文件和归档日志文件底层属于不同的RAID组,ASM属于不同磁盘组;

l  在线日志文件同一组中不同成员分别存储在两个DG中;

l  控制文件不同成员分别存储在两个DG中;

l  OCR和VOTEDISK存放在数据之外单独的ASM磁盘组。

uuid

ASM磁盘名称

磁盘组名称

大小

用途

36000c29c9281767e241b7d3da610dc3c

asm-ocr01

OCR

2G

OCR+VOTINGDISK

36000c2922fe2cc579a6bc052ae6cec83

asm-ocr02

2G

36000c29921fc4ef773ce5fc656bb7784

asm-ocr03

2G

36000c2962d5712c80c1b32037277ea3c

asm-data01

DATA

8G

数据文件

36000c296fa0ec892acb466962b4577ca

asm-data02

8G

36000c2939e8511088fae6bd494d6de6c

asm-data03

8G

36000c2913270b294841deb9807a49794

asm-fra

FRA

8G

闪回区

1.4. 数据库相关介质

安装包Oracle database、Oracle grid只需要上传到一节点。补丁跟OPatch两个节点均需要上传。

 

Oracle database

LINUX.X64_193000_db_home.zip

Oracle grid

LINUX.X64_193000_grid_home.zip

OPatch

p6880880_190000_Linux-x86-64.zip

GI+OJVM 19.8

p31305339_190000_gird_19.8.0.0.200714_Linux-x86-64.zip

2.  硬件及系统要求

2.1. 物理内存检查

检查命令:

 

 # grep MemTotal /proc/meminfo

 

建议配置:最少8GB,推荐16GB以上。

2.2. 交换空间检查

检查命令:

 

# grep SwapTotal /proc/meminfo

 

配置要求:

 

Between 4 GB and 16 GB: Equal to RAM
More than 16 GB: 16 GB
Note: If you enable HugePages for your Linux servers, then you should deduct the memory allocated to HugePages from the available RAM before calculating swap space.

建议配置32GB。

2.3. 文件系统检查

检查命令:

 

# df -h

 

配置要求:

 

At least 1 GB of space in the temporary disk space (/tmp) directory.

At least 12 GB of space for the Oracle Grid Infrastructure for a cluster home (Grid home).
Oracle recommends that you allocate 100 GB to allow additional space for patches.
At least 10 GB for Oracle Database Enterprise Edition.

 

建议配置:

临时文件系统/tmp至少为10GB,软件文件系统/u01至少为80GB。

 

软件文件系统格式:

Ext4 (RHEL5.6+)

XFS (supported when using OL7 or RHEL 7 or later)

 

参见:

 

Supported and Recommended File Systems on Linux (文档 ID 236826.1)

SLES 8, 9, 10, 11: Oracle DB 9i, 10g: Linux, Filesystem & I/O Type Supportability(文档 ID 414673.1)

2.4. 系统剩余物理内存和交换空间检查

检查命令: 

 

# free

2.5. 操作系统版本检查

检查命令:

 

# cat /etc/redhat-release

# uname -a

 

内核版本要求:

 

Red Hat Enterprise Linux 7

Oracle Linux 7

Unbreakable Enterprise Kernel (ueknano) 4.1.12-124.23.4 or later.

2.6. 共享内存大小检查

当oracle使用AMM自动内存管理时需要配置,如果使用ASMM自动共享内存管理则不需要此配置。

df -h /dev/shm的值需要大于oracle需要分配的memory内存。

 

检查命令:

 

# df -h /dev/shm

 

2.7. 时区和时间检查

检查命令:

 

# date -R

# date +"%Z %z"

 

 

要求:为东8区,时间正确

 

 

 

如果时区不正确,按照以下步骤修改,例如西四区修改为东八区:

 

# date -R

Thu, 23 Apr 2020 04:50:47 -0400

 

# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

cp: overwrite ‘/etc/localtime’? yes

 

# date -R

Thu, 23 Apr 2020 16:51:02 +0800

2.8. 确保服务器上已安装OpenSSH

rpm -qa | grep ssh

3.  操作系统配置

3.1. 配置主机名及解析文件

rac1/rac2修改主机名:

 

# hostnamectl set-hostname rac1

# su

 

rac1/rac2修改HOSTS文件示例:

 

#  vi /etc/hosts

 

#############public##########

192.168.101.111 rac01

192.168.101.112 rac02

#############vip#############

192.168.101.113 rac01-vip

192.168.101.114 rac02-vip

#############priv############

192.168.201.111 rac01-priv

192.168.201.112 rac02-priv

#############scan############

192.168.101.115  rac-scan

3.2. 配置 YUM 源

光盘挂载方式:

 

mount /dev/cdrom /mnt

   

ISO挂载方式:

 

mount -o loop /xxx/rhel7.6.iso  /mnt

 

编写YUM配置文件:

 

cat >>/etc/yum.repos.d/ISO.repo <<EOF

[ISO]

name=iso

baseurl=file:///mnt

enabled=1

gpgchek=0

EOF

 

rpm --import /etc/pki/rpm-gpg/RPM*

yum clean all

yum makecache

 

3.3. 安装系统依赖包

rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \

compat-libstdc++-33 \

compat-libcap1 \

elfutils-libelf \

elfutils-libelf-devel \

gcc \

gcc-c++ \

glibc \

glibc-common \

glibc-devel \

glibc-headers \

ksh \

libaio \

libaio-devel \

libgcc \

libstdc++ \

libXext \

libXtst \

kde-l10n-Chinese.noarch \

libstdc++-devel \

make \

xclock \

sysstat \

libvirt-devel \

man \

nfs-utils \

lsof \

expect \

unzip \

redhat-lsb \

openssh-clients \

smartmontools \

unixODBC \

perl \

telnet \

vsftpd \

ntsysv \

lsscsi \

libX11 \

libxcb \

libXau \

libXi \

strace \

sg3_utils \

kexec-tools \

net-tools \

nmap \

lrzsz \

tree \

dos2unix \

ncurses \

ncurses-devel \

xdpyinfo \

unixODBC-devel |grep "not installed" |awk '{print $2}' |xargs yum install -y

3.4. 安装compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm

cd /stage

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

3.5. 配置系统服务

禁用:

 

systemctl disable firewalld

systemctl disable avahi-daemon

systemctl disable bluetooth

systemctl disable cpuspeed

systemctl disable cups

systemctl disable firstboot

systemctl disable ip6tables

systemctl disable iptables

systemctl disable pcmcia

3.6. 禁用SELINUX配置

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

cat /etc/selinux/config |grep SELINUX

setenforce 0

getenforce

--返回Disabled,修改成功。

3.7. 添加pam_limits.so模块

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

3.8. 禁用透明大页

关闭Transparent HugePages特性(RHEL7):

需要先确认操作系统是否使用EFI启动方式,使用df -h,如果存在/boot/efi挂载目录的话,即为使用EFI启动方式。

 

a. 将“transparent_hugepage=never“内核参数追加到/etc/default/grub文件中

#vi /etc/default/grub

GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap ... transparent_hugepage=never"

 

b. 重新生成grub配置文件

如果为BIOS启动方式

grub2-mkconfig -o /boot/grub2/grub.cfg

如果为 EFI启动方式

grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

 

c. 重启操作系统

#reboot

 

操作重启之后,查看效果:

 

# cat /proc/cmdline

 

-->>>有此行

 

# cat /sys/kernel/mm/transparent_hugepage/enabled

    

-->>>[never]表示成功禁用THP。

# grep AnonHugePages /proc/meminfo

 

-->>>返回值若是零,代表成功禁用THP。

 

3.9. 确认IO调度算法

原先磁盘的IO算法是noop deadline [cfq]调度算法,这种算法是操作系统的默认算法,根据以往在Oracle调优上的建议,可以将这个算法修改为deadline模式。

从Rdhat 7.2开始 ,已经默认为dead line 算法,不需修改。

 

查看目前调度算法:

dmesg |grep scheduler |grep default

 

修改方法如下:

grubby --update-kernel=ALL --args="elevator=deadline"  重启后生效

3.10.   创建用户组及用户

groupadd -g 1001 oinstall

groupadd -g 1002 dba

groupadd -g 1003 oper

groupadd -g 1004 asmadmin

groupadd -g 1005 asmoper

groupadd -g 1006 asmdba 

 

useradd -u 1001 -g oinstall -G dba,asmadmin,asmdba,oper oracle

useradd -u 1002 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid

chage -M -1 oracle

chage -M -1 grid

echo "123456" |passwd oracle --stdin

echo "123456" |passwd grid --stdin

 

说明 在rhel7 ,1000 以内的gid ,uid 为系统保留。尽量不要使用。

此处创建用户后,设置口令为123456。

3.11.   修改LIMITS配置

cp /etc/security/limits.conf /etc/security/limits.conf.`date +%Y%m%d`

 

cat>>/etc/security/limits.conf<<EOF

grid    soft    nproc     8192

grid    hard    nproc     16384

grid    soft    nofile    8192

grid    hard    nofile    65536

grid    soft    stack     10240

grid    hard    stack     32768

oracle  soft    nproc     8192

oracle  hard    nproc     16384

oracle  soft    nofile    8192

oracle  hard    nofile    65536

oracle  soft    stack     10240

oracle  hard    stack     32768

root    soft    stack     10240

root    hard    stack     32768

*       soft    memlock   unlimited

*       hard    memlock   unlimited

EOF

 

 

Memlock在HugePage环境开启,单位为KB。(Memlock>=vm.nr_hugepages*2*1024)

当启用HugePages内存时,memlock的值应该至少是当前RAM的90%,当禁用HugePages内存时,memlock的值至少是3145728 KB (3 GB)。

参见:What is Memlock and How to Calculate the Values for Memlock? (Doc ID 2511230.1)

3.12.   修改 grid 和 oracle 进程数量限制

echo "oracle soft nproc 16384"  >>/etc/security/limits.d/20-nproc.conf

echo "grid soft nproc 16384"    >>/etc/security/limits.d/20-nproc.conf

echo "oracle hard nproc 16384"  >>/etc/security/limits.d/20-nproc.conf

echo "grid hard nproc 16384"    >>/etc/security/limits.d/20-nproc.conf

 

 

如果是centos  修改 /etc/security/limits.d/90-nproc.conf

3.13.   修改默认shell启动配置

修改/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

 

修改/etc/csh.login:

 

cat >>/etc/csh.log <<EOF

 

if ( \$USER = "oracle" || \$USER = "grid" ) then

limit maxproc 16384

limit descriptors 65536

endif

EOF

3.14.   创建目录

依次在各个节点顺序执行如下语句:

 

mkdir -p /u01/app/oraInventory

chown -R grid:oinstall /u01/app/oraInventory

chmod -R 775 /u01/app/oraInventory

 

mkdir -p /u01/app/grid  

chown -R grid:oinstall /u01/app/grid

chmod -R 775 /u01/app/grid

 

mkdir -p /u01/app/grid/diag

chown -R grid:oinstall /u01/app/grid/diag

chmod -R 775 /u01/app/grid/diag

 

mkdir -p /u01/app/19c/grid  

chown -R grid:oinstall /u01/app/19c/grid

chmod -R 775 /u01/app/19c/grid

 

mkdir -p /u01/app/oracle

chown -R oracle:oinstall /u01/app/oracle

chmod -R 775 /u01/app/oracle

 

mkdir -p /u01/app/oracle/product/19c/db_1

chown -R oracle:oinstall /u01/app/oracle/product/19c/db_1

chmod -R 775 /u01/app/oracle/product/19c/db_1

3.15.   设置grid用户环境变量

节点1:

 

# su - grid

$ vi .bash_profile

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=+ASM1

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/19c/grid

export TNS_ADMIN=$ORACLE_HOME/network/admin

export NLS333=$ORACLE_HOME/ocommon/nls/admin/data

export NLS_LANG=american_america.AL32UTF8

export LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32

export LD_LIBRARY_PATH=$ORACLE_HOME/jdk/jre/lib:$ORACLE_HOME/network/lib:$ORACLE_HOME/rdbms/lib:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:$LD_LIBRARY_PATH

export CLASS_PATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:.

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$HOME/bin:$PATH

NAME=`hostname`

PS1="[$NAME:$LOGNAME]:\${PWD}>"

umask 022

if [ $USER = "grid" ]; then

    if [ $SHELL = "/bin/ksh" ]; then

           ulimit -p 16384

           ulimit -n 65536

    else

           ulimit -u 16384 -n 65536

    fi

fi

 

 

节点2:

# su - grid

$ vi .bash_profile

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=+ASM2

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/19c/grid

export TNS_ADMIN=$ORACLE_HOME/network/admin

export NLS333=$ORACLE_HOME/ocommon/nls/admin/data

export NLS_LANG=american_america.AL32UTF8

export LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32

export LD_LIBRARY_PATH=$ORACLE_HOME/jdk/jre/lib:$ORACLE_HOME/network/lib:$ORACLE_HOME/rdbms/lib:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:$LD_LIBRARY_PATH

export CLASS_PATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:.

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$HOME/bin:$PATH

NAME=`hostname`

PS1="[$NAME:$LOGNAME]:\${PWD}>"

umask 022

if [ $USER = "grid" ]; then

    if [ $SHELL = "/bin/ksh" ]; then

           ulimit -p 16384

           ulimit -n 65536

    else

           ulimit -u 16384 -n 65536

    fi

fi

3.16.   设置oracle 环境变量

节点1:

 

# su - oracle

$ vi .bash_profile

export LANG=en_US

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=orcl1

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/19c/db_1

export TNS_ADMIN=$ORACLE_HOME/network/admin

export NLS333=$ORACLE_HOME/ocommon/nls/admin/data

export NLS_LANG=american_america.AL32UTF8

export LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32

export LD_LIBRARY_PATH=$ORACLE_HOME/jdk/jre/lib:$ORACLE_HOME/network/lib:$ORACLE_HOME/rdbms/lib:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:$LD_LIBRARY_PATH

export CLASS_PATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:.

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$HOME/bin:$PATH

NAME=`hostname`

PS1="[$NAME:$LOGNAME]:\${PWD}>"

umask 022

if [ $USER = "oracle" ]; then

    if [ $SHELL = "/bin/ksh" ]; then

           ulimit -p 16384

           ulimit -n 65536

    else

           ulimit -u 16384 -n 65536

    fi

fi

 

 

 

节点2:

 

# su - oracle

$ vi .bash_profile

export LANG=en_US

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=orcl2

export ORACLE_BASE=/oracle/app/oracle

export ORACLE_HOME=/oracle/app/oracle/product/19c/db_1

export TNS_ADMIN=$ORACLE_HOME/network/admin

export NLS333=$ORACLE_HOME/ocommon/nls/admin/data

export NLS_LANG=american_america.AL32UTF8

export LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32

export LD_LIBRARY_PATH=$ORACLE_HOME/jdk/jre/lib:$ORACLE_HOME/network/lib:$ORACLE_HOME/rdbms/lib:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:$LD_LIBRARY_PATH

export CLASS_PATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:.

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$HOME/bin:$PATH

NAME=`hostname`

PS1="[$NAME:$LOGNAME]:\${PWD}>"

umask 022

if [ $USER = "oracle" ]; then

    if [ $SHELL = "/bin/ksh" ]; then

           ulimit -p 16384

           ulimit -n 65536

    else

           ulimit -u 16384 -n 65536

    fi

fi

 

3.17.   修改内核参数

修改内核参数(结合实际环境修改):

 

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

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmmax =  xxx #填入命令echo "`cat /proc/meminfo | grep "MemTotal" | awk '{print $2}'` * 1024 * 0.8" | bc  | sed 's#\..*$##' 的运行结果

kernel.shmall = xxx  #填入命令echo "`cat /proc/meminfo | grep "MemTotal" | awk '{print $2}'` / (`getconf PAGESIZE` / 1024)" | bc 的运行结果

kernel.shmmni = 4096

kernel.sem = 250 256000 100 1024

net.ipv4.ip_local_port_range = 9000 65500 

net.core.rmem_default = 262144

net.core.rmem_max = 10485860

net.core.wmem_default = 262144

net.core.wmem_max = 10485860

vm.min_free_kbytes = 524288

 

net.ipv4.ipfrag_high_thresh = 16777216

net.ipv4.ipfrag_low_thresh = 15728640

 

vm.swappiness = 10

vm.dirty_background_ratio = 3

vm.dirty_ratio = 80

vm.dirty_expire_centisecs = 500

vm.dirty_writeback_centisecs = 100

# vm.nr_hugepages = 512

EOF

 

执行命令生效

# sysctl -p

 

 

参数解释:

 

kernel.shm*参数

SHMMAX设置为物理内存80%,必须大于所有实例的SGA大小,单位为字节。

SHMALL为SHMMAX除以4096。

kernel.shmmax = 137438953472 (128GB)

kernel.shmall = kernel.shmmax/4K

kernel.sem参数

默认配置支持8个数据库实例,如果超过该值,按照比例翻倍处理

kernel.sem = 250 32000 100 128

vm.nr_hugepages参数

SGA内存超过8GB时候,配置HugePage,对应参数vm.nr_hugepages,单位为2MB,设置大小为所有SGA_MAX_SIZE/2MB,配置后ASM实例也需要修改为ASSM。

vm.nr_hugepages = 512

fs.file-max参数

fs.file-max = 512 x processes

vm.min_free_kbytes参数

配置最小保留内存,默认为512MB,如果物理内存超过128GB,按照比例翻倍。

vm.min_free_kbytes = 524288

net.core.wmem_max参数

当使用RDS作为私网时候,设置为2097152。

net.core.wmem_default = 2097152

net.ipfrag_*_thresh参数

容易触发BUG,RHEL 6.6+/7.1+需要修改,

参考文档:RHEL 6.6: IPC Send timeout/node eviction etc with high packet reassembles failure (文档 ID 2008933.1)

net.ipv4.ipfrag_high_thresh = 16777216

net.ipv4.ipfrag_low_thresh = 15728640

确认:cat /proc/sys/net/ipv4/ipfrag_*_thresh

另解决方案:

升级内核到Red Hat Enterprise Linux 6.8 - kernel-2.6.32-642.el6

升级内核到Red Hat Enterprise Linux 6.7.z - kernel-2.6.32-573.8.1.el6

参考文档:RHEL 6.6: IPC Send timeout/node eviction etc with high packet reassembles failure (文档 ID 2008933.1)

kernel.panic_on_oops参数

Oracle 12.1.0.2.0+配置参数。

kernel.panic_on_oops = 1

ASLR参数

Address Space Layout Randomization (ASLR)

物理内存地址是否随机分配,应当禁用。

kernel.randomize_va_space=0

kernel.exec-shield=0

3.18.   时间服务

需确认是否有时间同步服务器,使用哪种方式进行同步进行同步,以下分别为使用NTP服务、chrony服务、CTSS服务的例子。

①  使用NTP服务(RHEL7)

在RHEL7/OL7平台,NTP服务被Chrony服务替换,需要禁用Chrony,并安装NTP。

 

禁用chronyd服务:

To stop chronyd, issue the following command as root: 

# systemctl stop chronyd

To prevent chronyd from starting automatically at system start, issue the following command as root:

# systemctl disable chronyd

 

安装NTP包:

# yum install ntp

 

启用NTP服务:

# systemctl enable ntpd.service

# systemctl start ntpd.service

 

如果使用NTP同步,需要开启slew time:

# vi /etc/sysconfig/ntpd

OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"

systemctl restart ntpd.service

 

配置NTP服务:

# vi /etc/ntp.conf

server  <NTP_SERVER_ADDR>         iburst

 

停止NTP服务,手动同步时间:

systemctl stop ntpd.service

ntpdate -b <NTP_SERVER_ADDR>

systemctl start ntpd.service

 

时钟写回主板:

hwclock --systohc

hwclock;date

 

 

②  使用Chrony服务

配置Chrony参数文件:

vi /etc/chrony.conf

server  <NTP_SERVER_ADDR>         iburst

 

重启时间同步服务:

systemctl restart chronyd.service

systemctl enable chronyd.service

 

查看时间同步源:

chronyc sources -v

 

时钟写回主板:

hwclock --systohc

hwclock;date

 

③  使用CTSS服务

在没有时钟源的环境,采用RAC自带的CTSS做节点间时钟同步。

systemctl mask chronyd

systemctl mask ntpd

mv /etc/ntp.conf /etc/ntp.conf.bak

crsctl check ctss

 

3.19.   RemoveIPC处理

在RHEL7.2中,systemd-logind 服务引入了一个新特性,该新特性是:当一个user 完全退出os之后,remove掉所有的IPC objects。

解决方法:

1) Set RemoveIPC=no in /etc/systemd/logind.conf

2) Reboot the server or restart systemd-logind as follows:

    # systemctl daemon-reload

    # systemctl restart systemd-logind

3.20.   NOZEROCON

当系统无法连接DHCP server的时候,就会尝试通过ZEROCONF来获取IP。然后网卡将会被设置为 169.254.0.0段的地址,可以禁止这项功能。

# echo "NOZEROCONF=yes" >> /etc/sysconfig/network

3.21.   /etc/resolv.conf

# mv /etc/resolv.conf /etc/resolv.conf.bak

3.22.   配置磁盘

根据系统使用存储的不同,配置磁盘,进行磁盘名称持久化的方法略有不同。

① 如果使用虚拟机安装集群

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

 

输出示例如下:

/dev/sdc:    2    36000c29c9281767e241b7d3da610dc3c

/dev/sdb:    2    36000c2922fe2cc579a6bc052ae6cec83

/dev/sdd:    2    36000c29921fc4ef773ce5fc656bb7784

/dev/sdf:    8    36000c2962d5712c80c1b32037277ea3c

/dev/sde:    8    36000c296fa0ec892acb466962b4577ca

/dev/sdh:    8    36000c2939e8511088fae6bd494d6de6c

/dev/sdg:    8    36000c2913270b294841deb9807a49794

 

编辑/etc/udev/rules.d/99-oracle-asmdevice.rules

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29c9281767e241b7d3da610dc3c", SYMLINK+="asm-ocr01",  OWNER="grid",  GROUP="asmadmin", MODE="0660"

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c2922fe2cc579a6bc052ae6cec83", SYMLINK+="asm-ocr02",  OWNER="grid",  GROUP="asmadmin", MODE="0660"

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29921fc4ef773ce5fc656bb7784", SYMLINK+="asm-ocr03",  OWNER="grid",  GROUP="asmadmin", MODE="0660"

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c2962d5712c80c1b32037277ea3c", SYMLINK+="asm-data01",  OWNER="grid",  GROUP="asmadmin", MODE="0660"

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c296fa0ec892acb466962b4577ca", SYMLINK+="asm-data02",  OWNER="grid",  GROUP="asmadmin", MODE="0660"

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c2939e8511088fae6bd494d6de6c", SYMLINK+="asm-data03",  OWNER="grid",  GROUP="asmadmin", MODE="0660"

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c2913270b294841deb9807a49794", SYMLINK+="asm-fra01",  OWNER="grid",  GROUP="asmadmin", MODE="0660"

 

执行如下语句,进行磁盘名称和权限持久化

 

/sbin/udevadm control --reload-rules

/sbin/udevadm trigger --type=devices --action=change

ll /dev/asm*

ll /dev |grep grid

 

示例输出如下:

 

 

② 如磁盘使用powerpath (emc),dlnkmgr(日立)等磁盘聚合软件

格式为:

 

KERNEL=="emcpowerc", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36006016053d04100206ca35f5aa3e5f0", SYMLINK+="asm_vote1", OWNER="grid", GROUP="asmadmin", MODE="0660"

KERNEL=="emcpowerd", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36006016053d04100056da35f88a6ba98", SYMLINK+="asm_vote2", OWNER="grid", GROUP="asmadmin", MODE="0660"

KERNEL=="emcpowere", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36006016053d04100ca6da35fe3166158", SYMLINK+="asm_vote3", OWNER="grid", GROUP="asmadmin", MODE="0660"

KERNEL=="emcpowerf", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36006016053d041008471a35f61bd4cff", SYMLINK+="asm_arch1", OWNER="grid", GROUP="asmadmin", MODE="0660"

KERNEL=="emcpowerg", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36006016053d04100b672a35fd8931158", SYMLINK+="asm_fra1", OWNER="grid", GROUP="asmadmin", MODE="0660"

 

 

KERNRL 部分为聚合后磁盘名称

 

③ 如使用multipath 进行聚合

格式为:

 

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-360002ac000000000000009a30002195d", ACTION=="add|change", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="asm-crs-vote1"

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-360002ac000000000000009a40002195d", ACTION=="add|change", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="asm-crs-vote2"

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-360002ac000000000000009a50002195d", ACTION=="add|change", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="asm-crs-vote3"

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-360002ac000000000000009a60002195d", ACTION=="add|change", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="asm-datadg-disk1"

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-360002ac000000000000009a70002195d", ACTION=="add|change", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="asm-datadg-disk2"

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-360002ac000000000000009a80002195d", ACTION=="add|change", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="asm-datadg-disk3"

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-360002ac000000000000009a90002195d", ACTION=="add|change", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="asm-fradg-disk1"

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-360002ac000000000000009aa0002195d", ACTION=="add|change", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="asm-fradg-disk2"

 

④ 如使用磁盘分区

格式为:

SUBSYSTEM=="block",KERNEL=="sdb1",GROUP="admadmin",OWNER=="grid",MODE=="0660"

SUBSYSTEM=="block",KERNEL=="sdb2",GROUP="admadmin",OWNER=="grid",MODE=="0660"

SUBSYSTEM=="block",KERNEL=="sdb3",GROUP="admadmin",OWNER=="grid",MODE=="0660"

 

KERNEL 部分为分区名称

3.23.   重启操作系统

# reboot

4.  应用GI补丁,并安装GRID软件

4.1. 上传并解压软件

一节点,修改介质权限,用grid用户将grid软件解压到$OACLE_HOME中。

# cd /stage

# chown -R grid:oinstall LINUX.X64_193000_grid_home.zip

# su - grid

$ cd /stage

$ unzip LINUX.X64_193000_grid_home.zip -d $ORACLE_HOME >/tmp/unzip_gihome.log

 

一节点,修改介质权限,用oracle用户将database文件解压到$OACLE_HOME中。

# cd /stage

# chown -R oracle:oinstall LINUX.X64_193000_db_home.zip

# su - oracle

$ cd /stage

$ unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME >/tmp/unzip_dbhome.log

4.2. 安装cvuqdisk 包

cvuqdisk 包位于grid软件的解压目录中,使用root用户安装cvuqdisk 包,两个节点都需要安装,从1节点拷贝到2节点:

# cd /u01/app/19c/grid/cv/rpm

# rpm -ivh cvuqdisk*.rpm

4.3. 配置ssh双机互信

一节点的oracle用户:

su - oracle

cd $ORACLE_HOME/deinstall/

./sshUserSetup.sh -user oracle -hosts "rac01 rac01-priv rac02 rac02-priv" -advanced -noPromptPassphrase

 

一节点的grid用户:

su - grid

cd $ORACLE_HOME/deinstall/

./sshUserSetup.sh -user grid -hosts "rac01 rac01-priv rac02 rac02-priv" -advanced -noPromptPassphrase

 

两个节点上验证ssh配置正确(执行下述命令无需输入口令):

grid用户:

 su - grid

 ssh rac01 date

 ssh rac02 date

 ssh rac01-priv date

 ssh rac02-priv date

 

oracle用户:

 su - oracle

 ssh rac01 date

 ssh rac02 date

 ssh rac01-priv date

 ssh rac02-priv date

 

 

如果/etc/ssh/sshd_config配置文件中的LoginGraceTime没有被注释掉,则修改/etc/ssh/sshd_config配置文件中的LoginGraceTime为0:

#vi /etc/ssh/sshd_config

LoginGraceTime 0

 

这里缺省情况下LoginGraceTime已经被注释掉了:

 

4.4. 更新OPatch

一节点,上传opatch 工具(version 12.2.0.21)以grid 用户解压缩

su - grid

mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_bak

cd /stage

unzip p6880880_122010_12.2.0.1.21_Linux-x86-64.zip -d $ORACLE_HOME

 

安装前,版本为:

 

安装完成后,版本为:

 

4.5.  应用GI补丁,并安装grid软件

一节点,使用root用户解压GI补丁,修改解压文件权限,启动安装:

 

cd /stage

unzip p31305339_190000_gird_19.8.0.0.200714_Linux-x86-64.zip

chmod -R 775 31305339

su - grid

who am i

export DISPLAY=192.168.101.1:0.0

$ORACLE_HOME/gridSetup.sh -applyPSU /stage/31305339

 

/stage/31305339 为RU 补丁的解压缩后的路径。

 

这个过程需要一点时间,耐心等待即可;应用补丁后,会启动安装。

4.5.1.   选择安装 new cluster

 

4.5.2.   选择standalone

 

 

 

4.5.3.   设置scan

 

Scan name 需要与/etc/hosts 文件配置严格一致。

 

 

4.5.4.   配置节点2 信息

 

 

点击add 按钮,添加节点2信息。

 

必须与/etc/hosts 内容严格一致。

4.5.5.   测试grid 用户互信

单击“SSH Connectivity”按钮:

 

 

单击Test按钮,应该出现以下窗口,如果以下窗口不能出现,则说明SSH配置有问题,请退出安装程序,修改ssh配置,然后重新执行上述步骤:

 

单击“OK”按钮。

 

4.5.6.   选择网卡

 

 

4.5.7.   选择使用ASM

 

4.5.8.   选择不使用 GI repository

不安装集群配置管理库。如果安装建议单独分配磁盘。在这有点区别,12选no也会强制装,而且不能将mgmtdb单独装在一个磁盘,导致ocr磁盘不能少于40g。18的时候可以单独分,19选择no不装。

 

 

4.5.9.   配置磁盘组

点击change discovery path 按钮,根据实际情况,修改磁盘扫描路径。

 

 

选择需要的磁盘

不选择ASFD

 

4.5.10.  设置ASM 口令

 

4.5.11.  不使用IPMI

 

4.5.12.  不向EM 注册

 

 

4.5.13.  确认用户组

 

4.5.14.  确认安装路径

 

应与grid 环境变量中配置一致

 

4.5.15.  确认inventory 目录

 

应与 grid 环境变量中配置一致

4.5.16.  选择不自动运行脚本

 

 

4.5.17.  安装前检测

 

 

 

4.5.18.  可忽略检测结果

 

 

此处需要说明的是:

1)libvirt-deve-4.5.0-10.0和libvirt-libs-4.5.0-10.0期望版本和已安装版本不一致,可忽略;

2)resolv.conf为DNS解析的配置,可忽略;

3)由于没有配置Ntp,dns和scan可以选择忽略;

因此可以选择“Ignore All”,然后单击“Next”按钮执行下一步。

4.5.19.  最后安装前展示

 

 

4.5.20.  开始安装

0% 这个阶段会持续时间较长

 

 

4.5.21.  两个节点顺序执行root.sh

 

 

以root用户登陆系统,执行上面的脚本,顺序如下:

在一节点上执行脚本1,在二节点上执行脚本1;

在一节点上执行脚本2,在二节点上执行脚本2。

Root用户运行脚本

第一个脚本

节点一:

 

节点二:

 

第二个脚本:

节点一:

 

 

节点二:

 

 

跑完脚本点ok

 

点ok,next,这个报错是由于scan引起的可以忽略。

 

 

点close至此集群安装完毕。

 

4.5.22.  安装后状态

 

 

 

检查集群状态:

 

 

 

检查两节点补丁是否一致,分别在两节点执行:

crsctl query crs softwarepatch

 

5.  DataBase软件安装

5.1. 启动安装

su - oracle

who am i

export DISPLAY=192.168.101.1:0.0

$ORACLE_HOME/runInstaller

5.2. 只安装软件

 

5.3. 选择集群安装

 

5.4. 选中集群全部节点

 

 

5.5. 测试oracle 用户互信

单击“SSH Connectivity”按钮:

 

单击Test按钮,应该出现以下窗口,如果以下窗口不能出现,则说明SSH配置有问题,请退出安装程序,修改ssh配置,然后重新执行上述步骤:

 

 

5.6. 选择安装企业版

 

5.7. 确认用户组

 

 

5.8. 确认安装路径

安装路径应与oracle 环境变量里设置相同

 

5.9. 不自动运行脚本

 

5.10.   安装前环境检查

 

 

5.11.   可忽略选项

 

 

5.12.   安装前检查结果

 

 

5.13.   开始安装

 

5.14.   运行root.sh

 

根据提示,以root 用户在两个节点顺序执行root.sh。

 

运行root.sh脚本

节点一:

 

节点二:

 

 

至此数据库软件安装完毕。

6.  RU 安装 for DB

由于在安装阶段已经为GI 安装了补丁。因此只需为DB安装补丁。

 

6.1. 更新opatch 工具

在全部节点,上传opach补丁介质,并以oracle 用户解压opatch

 

su - oracle

mv $ORACLE_HOME/OPatch  $ORACLE_HOME/OPatch_bak

cd /stage

unzip p6880880_122010_12.2.0.1.21_Linux-x86-64.zip -d $ORACLE_HOME

 

 

升级后opatch版本

 

6.2. 修改RU 补丁介质权限

将补丁上传到2节点,在2节点解压并修改RU 补丁介质权限。

 

cd /stage

unzip p31305339_190000_gird_19.8.0.0.200714_Linux-x86-64.zip

chmod -R 775 31305339

 

6.3. 补丁冲突检测

以oracle 执行:

 

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /stage/31305339/31281355

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /stage/31305339/31305087

 

 

此处命令,应严格参考RU readme.html

 

 

/satge 为解压后补丁路径

 

示例输出:

 

 

6.4. 编辑patch_list_dbhome.txt

此处应严格参照readme

 

在两个节点,以oracle 用户执行:

 

cat >>/tmp/patch_list_dbhome.txt <<EOF

/stage/31305339/31281355

/stage/31305339/31305087

EOF

 

 

6.5. 补丁安装前空间检测

安装集群软件,集群补丁,数据库软件后,会消耗接近20G空间

以oracle 用户,在两个节点执行

$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_dbhome.txt

 

示例如下:

 

6.6. 安装补丁

按照节点1,节点2 的顺序安装补丁

root 用户执行,调用ORACLE_HOME 下的opatch

export ORACLE_HOME=/u01/app/oracle/product/19c/db_1

export PATH=$ORACLE_HOME/OPatch:$PATH

 

$ORACLE_HOME/OPatch/opatchauto apply /stage/31305339 -oh /u01/app/oracle/product/19c/db_1

 

过程日志存放在$ORACLE_HOME/ cfgtoollogs/opatchautodb 目录下

日志输出如下:

 

 

 

其中,两个补丁被跳过

安装成功后,补丁显示如下

 

 

7.  创建用于建库的磁盘组

7.1. 启动asmca

1节点,以grid 用户执行

 

su - grid

export DISPLAY=192.168.101.1:0.0

asmca

 

7.2. Asmca 管理页面

 

 

7.3. 添加DATA磁盘组

点击左侧 Disk Groups

 

 

点击左下部,create  按钮

填写磁盘组信息

 

 

点击OK 按钮

DATA磁盘组创建成功:

 

7.4. DATA磁盘组创建成功

 

7.5. 添加FRA磁盘组

点击左下部,create  按钮

填写磁盘组信息

 

 

点击OK 按钮

FRA磁盘组创建成功。

7.6. FRA磁盘组创建成功

 

点击exit 退出

 

8.  DBCA建库

节点1 ,以oracle 用户执行

8.1. 启动dbca

su - oracle

export DISPLAY=192.168.101.1:0.0

dbca

 

 

 

选择create  a database

 

8.2.  选择高级配置

 

 

8.3. 选择custom database

 

8.4.  选择全部节点

 

8.5.  设置数据库名称和类型

 

数据库名称应与环境变量设置一致

根据实际需要,选择是否使用cdb。

这里选择创建容器数据库。

如果想创建为传统类型数据库,不要选定 create as container database  选项。

8.6.  选择数据文件存放类型和位置

 

 

 

如果需要配置控制文件和日志日志文件多路径,点击 Multiplex redo logs and control files ...

填写放置控制文件和日志日志文件的磁盘组:

 

点击OK

8.7.  选择不开启归档和闪回

 

 

归档和闪回可根据实际需要后期进行配置

8.8.  选择数据库组件

 

 

 

根据需要选择需要安装的组件。

 

8.9.  定制数据库参数

8.9.1.   内存管理采用ASMM

 

 

内存大小根据实际情况调整

 

8.9.2.   设置block size 和进程数量

 

 

Blocksize  根据客户要求设定

进程数量不要小于1500

 

8.9.3.   设置字符集

 

根据客户要求设置字符集。

这里选择简体中文

点击next

 

8.10.    不运行脚本和向EM 注册

 

 

8.11.    设置用户初始口令

 

安装阶段,这里统一设置为oracle

后期客户执行修改更新

8.12.    不生成模板和建库语句

 

 

点击 Customize Storage Location

8.13.    定制数据文件和联机日志

联机日志默认大小200M 每个实例两组。

调整为 每实例不少于3组,成员不小于512M

 

注意:每个文件修改要,要点击apply 按钮

 

 

 

点击OK,点击next。

8.14.    建库前检查

 

8.15.    可忽略项目

 

8.16.    安装信息汇总

 

如需修改回退,否则点击finish将开始安装

8.17.    进行建库安装

 

比较耗时,耐心等待完成。

 

 

8.18.    安装完成集群状态

 

 

 

Ru 补丁已经安装。

 

posted @ 2025-08-12 15:07  再见亦是泪20  阅读(68)  评论(0)    收藏  举报