高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署

2023年 10月 30日 262.5k 0

目录

  • 一、前言
  • 二、安装前准备工作
    • 1、硬件要求
      • 1.1、内存要求
      • 1.2、Swap Space
      • 1.3、Automatic Memory Management
      • 1.4、磁盘空间要求
    • 2、软件要求
      • 2.1、适用于 Linux x86-64 操作系统要求
      • 2.2、适用于 Linux x86-64 内核要求
      • 2.3、适用于 Linux x86-64 的 Oracle 数据库包要求
    • 3、关闭透明页
    • 4、配置主机名解析
    • 5、创建所需的操作系统组和用户
    • 6、配置Oracle软件安装用户的资源限制
    • 7、为Linux配置内核参数
    • 8、创建所需的软件目录并授权
    • 9、关闭numa功能
    • 10、禁用SELINUX
    • 11、关闭防火墙
    • 12、修改 /dev/shm大小
    • 13、安装Oracle数据库所需软件包
      • 13.1、配置YUM源
      • 13.2、安装必要的软件包
    • 14、配置Oracle软件所有者环境
    • 15、配置Grid软件所有者环境
    • 16、重启操作系统
  • 三、为Oracle ASM配置存储
    • 1、Oracle ASM简介
    • 2、确定 Oracle ASM的存储需求
    • 3、选择要用于 Oracle ASM 磁盘组的 Oracle ASM 冗余级别
    • 4、虚拟机配置文件修改
    • 5、虚拟机添加硬盘(ASM磁盘组用)
    • 6、查看磁盘UUID
      • 6.1、GRID
      • 6.2、SYSTEM
      • 6.3、RECOVERY
      • 6.4、DATA
    • 7、配置规则
    • 8、加载规则
  • 四、安装Oracle Grid软件
    • 1、上传Oracle Grid安装软件到服务器并解压
    • 2、运行Oracle Grid安装向导以安装Grid软件
    • 3、安装选项(为独立服务器配置 Oracle 网格基础结构)
    • 4、创建ASM磁盘组
    • 5、指定ASM密码
    • 6、管理选项
    • 7、操作系统组
    • 8、指定安装位置
    • 9、指定创建清单目录
    • 10、执行脚本选择
    • 11、先决条件检查
    • 12、安装
    • 13、执行配置脚本
    • 14、完成安装
    • 15、创建剩余的ASM磁盘组
      • 15.1、创建SYSTEM磁盘组
      • 15.2、创建RECOVERY磁盘组
      • 15.3、创建DATA磁盘组
      • 15.4、查看ASM磁盘组状态
  • 五、安装Oracle数据库软件
    • 1、上传Oracle数据库安装软件到服务器并解压
    • 2、安装数据库软件
      • 2.1、安装选项
      • 2.2、数据库安装选项
      • 2.3、数据库版本选择
      • 2.4、指定安装位置
      • 2.5、操作系统组选择
      • 2.6、执行脚本选择
      • 2.7、先决条件检查
      • 2.8、执行安装
      • 2.9、执行配置脚本
      • 2.10、数据库软件安装完成
  • 六、使用DBCA创建数据库
    • 1、启动数据库配置助手
    • 2、创建数据库
    • 3、创建模式
    • 4、部署类型
    • 5、数据库标识
    • 6、存储选项
    • 7、恢复区和归档配置
    • 8、监听配置
    • 9、数据库组件选择
    • 10、初始化参数
      • 10.1、内存
      • 10.2、块大小和用户进程数
      • 10.3、字符集
      • 10.4、连接模式
      • 10.5、示例模式
    • 11、管理选项
    • 12、数据库凭证
    • 13、创建选项
    • 14、创建数据库
    • 15、安装完成
  • 七、数据库管理入门
    • 1、启用SQL\*Plus从命令行连接到数据库
    • 2、查看数据库基础信息
    • 3、查看数据库版本
    • 4、查看数据库字符集
    • 5、查看数据库块大小
    • 6、实例的启动与关闭
      • 6.1、启动
      • 6.2、关闭
    • 7、取消180天密码过期限制
    • 8、关闭审计
    • 9、调整db\_files
    • 10、Oracle Grid相关操作
      • 10.1、添加环境变量
      • 10.2、查看服务状态
      • 10.3、查看资源状态
      • 10.4、启动、停止服务
        • 10.4.1、启动服务
        • 10.4.2、停止服务
    • 11、归档日志设置
      • 11.1、查看数据库归档模式
      • 11.2、设置归档空间大小
      • 11.3、设置归档存放位置
      • 11.4、启用归档模式
      • 11.5、关闭归档模式
  • 八、总结
  • 九、写在后面

一、前言

  欢迎阅读本篇技术文档,本文档将帮助大家顺利完成Oracle Linux 7.9 + ASM安装Oracle 19C的过程。在本文档中,您将学到如何准备安装前的环境、如何正确配置ASM磁盘、如何安装Oracle 19C,以及如何进行基本配置。希望通过这份文档,能够帮助大家更好地理解Oracle数据库的安装和配置流程,能够更加轻松地进行相关操作。希望本文档能够为您提供有价值的信息,并使您能够成功安装和配置Oracle 19C数据库。

二、安装前准备工作

1、硬件要求

1.1、内存要求

至少1GB的RAM用于Oracle数据库安装。建议2GB RAM。
至少8 GB的RAM用于Oracle Grid安装
[root@hellodba ~]# grep MemTotal /proc/meminfo
MemTotal: 9909068 kB

1.2、Swap Space

        RAM       Swap Space
在1GB到2GB之间 RAM大小的1.5倍
2GB到16GB之间 等于RAM的大小
超过16GB 等于16GB

[root@hellodba ~]# grep SwapTotal /proc/meminfo
SwapTotal: 10485756 kB

1.3、Automatic Memory Management

//关于/dev/shm
从Oracle Database 11g开始,自动内存管理功能需要更多的共享内存(/dev/shm)和文件描述符。在Linux系统中,'/dev/shm'目录是一个特殊的目录,用于实现共享内存,默认是系统内存的50%。它是一个临时文件系统,通常位于RAM(内存)中,而不是硬盘上,并且在系统重启时会被清空。因此,'/dev/shm'目录只适合用于短期存储和进程间通信,不能用于长期存储数据。
'/dev/shm'大小应该大于SGA+PGA的总内存大小,在Linux系统上,如果操作系统'/dev/shm'装载大小对于Oracle系统全局区域(SGA)和程序全局区域(PGA)来说太小,则会导致ORA-00845错误。

1.4、磁盘空间要求

目录/tmp至少有1GB空间,如果小于所需空间,请从目录中删除不必要的文件满足磁盘空间需求。
[root@hellodba ~]# df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 70G 6.2G 64G 9% /

       安装类型   软件文件的磁盘空间要求(GB)
企业版 7.2
标准版 7.2
Grid 6.5

 

[root@hellodba ~]# df -h /u01
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 50G 33M 50G 1% /u01

2、软件要求

2.1、适用于 Linux x86-64 操作系统要求

//需要以下或更高版本的操作系统:
Supported Oracle Linux 8 Distributions for x86-64
Supported Oracle Linux 7 Distributions for x86-64
Supported Red Hat Enterprise Linux 8 Distributions for x86-64
Supported Red Hat Enterprise Linux 7 Distributions for x86-64
Supported SUSE Linux Enterprise Server 12 Distributions for x86-64
Supported SUSE Linux Enterprise Server 15 Distributions for x86-64

[root@hellodba ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6 (Maipo)

2.2、适用于 Linux x86-64 内核要求

//支持以下 Linux x86-64 内核
Oracle Linux 8.1 with the Unbreakable Enterprise Kernel 6: 5.4.17-2011.0.7.el8uek.x86_64 or later
Oracle Linux 8 with the Red Hat Compatible kernel: 4.18.0-80.el8.x86_64 or later
Oracle Linux 7.4 with the Unbreakable Enterprise Kernel 4: 4.1.12-124.19.2.el7uek.x86_64 or later
Oracle Linux 7.4 with the Unbreakable Enterprise Kernel 5: 4.14.35-1818.1.6.el7uek.x86_64 or later
Oracle Linux 7.7 with the Unbreakable Enterprise Kernel 6: 5.4.17-2011.4.4.el7uek.x86_64 or later
Oracle Linux 7.5 with the Red Hat Compatible Kernel: 3.10.0-862.11.6.el7.x86_64 or later
Red Hat Enterprise Linux 8: 4.18.0-80.el8.x86_64 or later
Red Hat Enterprise Linux 7.5: 3.10.0-862.11.6.el7.x86_64 or later
SUSE Linux Enterprise Server 15: 4.12.14-23-default or later
SUSE Linux Enterprise Server 12 SP3: 4.4.162-94.72-default or later

[root@hellodba ~]# uname -r
5.4.17-2102.201.3.el7uek.x86_64

2.3、适用于 Linux x86-64 的 Oracle 数据库包要求

//Packages for Red Hat Enterprise Linux 7
bc
binutils
compat-libcap1
compat-libstdc++-33
elfutils-libelf
elfutils-libelf-devel
fontconfig-devel
glibc
glibc-devel
ksh
libaio
libaio-devel
libX11
libXau
libXi
libXtst
libXrender
libXrender-devel
libgcc
libstdc++
libstdc++-devel
libxcb
make
smartmontools
sysstat
gcc
gcc-c++
gcc-info
gcc-locale
gcc48
gcc48-info
gcc48-locale
gcc48-c++

3、关闭透明页

从Red Hat Enterprise Linux 6、Oracle Linux 6、SUSE 11和Unbreakable Enterprise Kernel 2(UEK2)内核开始,Transparent HugePages在运行时默认启用。然而,透明的HugePages可能会导致内存分配延迟,因为内存是动态分配的。因此,甲骨文建议您在所有甲骨文数据库服务器上禁用透明HugePages,以避免性能问题。

//查看透明页是否启用,显示[always]表示Transparent HugePages是启用的
[root@hellodba ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
always defer defer+madvise [madvise] never
[root@hellodba ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

//禁用透明页
[root@hellodba ~]# vi /etc/rc.d/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@hellodba ~]# chmod +x /etc/rc.d/rc.local
[root@hellodba ~]# reboot

//透明页已关闭
root@hellodba ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
always defer defer+madvise madvise [never]
[root@hellodba ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

4、配置主机名解析

[root@hellodba ~]# echo "192.168.0.55 hellodba" >> /etc/hosts
[root@hellodba ~]# ping hellodba
PING hellodba (192.168.0.55) 56(84) bytes of data.
64 bytes from hellodb (192.168.0.55): icmp_seq=1 ttl=64 time=0.013 ms

5、创建所需的操作系统组和用户

[root@hellodba ~]# /usr/sbin/groupadd -g 54321 oinstall
[root@hellodba ~]# /usr/sbin/groupadd -g 54322 dba
[root@hellodba ~]# /usr/sbin/groupadd -g 54323 oper
[root@hellodba ~]# /usr/sbin/groupadd -g 54324 backupdba
[root@hellodba ~]# /usr/sbin/groupadd -g 54325 dgdba
[root@hellodba ~]# /usr/sbin/groupadd -g 54326 kmdba
[root@hellodba ~]# /usr/sbin/groupadd -g 54327 asmdba
[root@hellodba ~]# /usr/sbin/groupadd -g 54328 asmoper
[root@hellodba ~]# /usr/sbin/groupadd -g 54329 asmadmin
[root@hellodba ~]# useradd -u 54321 -g oinstall -G dba,asmdba,asmadmin,backupdba,dgdba,kmdba,oper oracle
[root@hellodba ~]# useradd -u 54331 -g oinstall -G asmadmin,asmdba,asmoper,dba,oper grid
[root@hellodba ~]# echo "hellodba" | passwd --stdin oracle
[root@hellodba ~]# echo "hellodba" | passwd --stdin grid
[root@hellodba ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54327(asmdba),54329(asmadmin)
[root@hellodba ~]# id grid
uid=54331(grid) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54327(asmdba),54328(asmoper),54329(asmadmin)

6、配置Oracle软件安装用户的资源限制

[root@hellodba ~]# vi /etc/security/limits.conf
#ORACLE SETTING
#打开文件描述符大小
grid soft nproc 16384
grid hard nproc 16384
oracle soft nproc 16384
oracle hard nproc 16384
#单个用户可用的进程数
grid soft nofile 65536
grid hard nofile 65536
oracle soft nofile 65536
oracle hard nofile 65536
#进程堆栈段的大小
grid soft stack 32768
grid hard stack 32768
oracle soft stack 32768
oracle hard stack 32768
#内存锁,略低于物理内存
oracle hard memlock 8000000
oracle soft memlock 8000000

7、为Linux配置内核参数

在Oracle数据库安装期间,可以生成并运行修复脚本,以检查和设置成功安装数据库所需的内核参数值。建议手动预先修改好。
[root@hellodba ~]# vi /etc/sysctl.conf
#ORACLE SETTING
#可以拥有的异步IO请求数
fs.aio-max-nr = 1048576
#允许文件句柄的最大数目
fs.file-max = 6815744
#信号参数
kernel.sem = 250 32000 100 128
#IP V4的端口范围
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 = 1048586
#当系统检测到oops时,重新启动系统,以便系统能够重新初始化恢复正常工作
kernel.panic_on_oops = 1
#单个共享内存段最大值,让数据库在一个共享段里面的可以容纳整个SGA
#最大值:比物理内存小1字节
#(kernel.shmmax = 物理内存*1024*1024*1024-1)
kernel.shmmax = 7516192768
#控制共享内存页数(kernel.shmall = shmmax/4096)
kernel.shmall = 1835008
#共享内存的最大数量
kernel.shmmni = 4096
#当系统内存使用90%的时候开始使用交换页面
vm.swappiness=10
#默认是100,增大这个参数设置了虚拟内存回收directory和i-node缓冲的倾向,这个值越大。越容易回收。
vm.vfs_cache_pressure=200
#大页内存,物理内存大于8G一定要配 (sga_max_size+1g) / 2M
vm.nr_hugepages = 2500

8、创建所需的软件目录并授权

[root@hellodba ~]# mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
[root@hellodba ~]# mkdir -p /u01/app/oraInventory
[root@hellodba ~]# mkdir -p /u01/app/grid
[root@hellodba ~]# mkdir -p /u01/app/19.3.0/grid
[root@hellodba ~]# mkdir -p /soft
[root@hellodba ~]# chown -R grid:oinstall /u01
[root@hellodba ~]# chown -R oracle:oinstall /u01/app/oracle
[root@hellodba ~]# chmod -R 775 /u01
[root@hellodba ~]# chmod -R 775 /soft

9、关闭numa功能

//NUMA关闭前
[root@hellodba ~]# dmesg | grep -i numa
[ 0.013781] NUMA: Node 0 [mem 0x00000000-0x0009ffff] + [mem 0x00100000-0xbfffffff] -> [mem 0x00000000-0xbfffffff]
[ 0.013782] NUMA: Node 0 [mem 0x00000000-0xbfffffff] + [mem 0x100000000-0x2bfffffff] -> [mem 0x00000000-0x2bfffffff]

//关闭NUMA
[root@hellodba ~]# vi /etc/default/grub

GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet"

GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off"

[root@hellodba ~]# grub2-mkconfig -o /etc/grub2.cfg
[root@hellodba ~]# reboot

//NUMA关闭后
[root@hellodba ~]# dmesg | grep -i numa
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.4.17-2102.201.3.el7uek.x86_64 root=UUID=3edd95be-bb94-465a-bfd4-08715cf43bcb ro crashkernel=auto rhgb quiet numa=off
[ 0.013618] NUMA turned off
[ 0.030367] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.4.17-2102.201.3.el7uek.x86_64 root=UUID=3edd95be-bb94-465a-bfd4-08715cf43bcb ro crashkernel=auto rhgb quiet numa=off

10、禁用SELINUX

[root@hellodba ~]# getenforce
Enforcing
[root@hellodba ~]# vi /etc/selinux/config
将 SELINUX=enforcing
改 SELINUX= disabled
[root@hellodba ~]# setenforce 0
[root@hellodba ~]# getenforce
Permissive

11、关闭防火墙

//关闭防火墙
[root@hellodba ~]# systemctl stop firewalld

//查看防火墙状态
[root@hellodba ~]# systemctl status firewalld

//禁止防火墙开机自启动
[root@hellodba ~]# systemctl disable firewalld

12、修改 /dev/shm大小

[root@hellodba ~]# echo "none /dev/shm tmpfs defaults,size=10G 0 0" >> /etc/fstab
[root@hellodba ~]# mount -o remount /dev/shm
[root@hellodba ~]# df -h /dev/shm
Filesystem Size Used Avail Use% Mounted on
tmpfs 10G 0 10G 0% /dev/shm

13、安装Oracle数据库所需软件包

13.1、配置YUM源

[root@hellodba ~]# mount /dev/cdrom /mnt
[root@hellodba ~]# cd /etc/yum.repos.d
[root@hellodba yum.repos.d]# rm -rf *.repo
[root@hellodba yum.repos.d]# echo "[EL]" >> hellodba.repo
[root@hellodba yum.repos.d]# echo "name=Linux 7.9 DVD" >> hellodba.repo
[root@hellodba yum.repos.d]# echo "baseurl=file:///mnt" >> hellodba.repo
[root@hellodba yum.repos.d]# echo "gpgcheck=0" >> hellodba.repo
[root@hellodba yum.repos.d]# echo "enabled=1" >> hellodba.repo

13.2、安装必要的软件包

[root@hellodba ~]#
yum -y install bc*
yum -y install binutils*
yum -y install compat-libcap1*
yum -y install compat-libstdc++-33*
yum -y install elfutils-libelf*
yum -y install elfutils-libelf-devel*
yum -y install fontconfig-devel*
yum -y install glibc*
yum -y install glibc-devel*
yum -y install ksh*
yum -y install libaio*
yum -y install libaio-devel*
yum -y install libX11*
yum -y install libXau*
yum -y install libXi*
yum -y install libXtst*
yum -y install libXrender*
yum -y install libXrender-devel*
yum -y install libgcc*
yum -y install libstdc++*
yum -y install libstdc++-devel*
yum -y install libxcb*
yum -y install make*
yum -y install smartmontools*
yum -y install sysstat*
yum -y install gcc*

14、配置Oracle软件所有者环境

[root@hellodba ~]# su - oracle
[oracle@hellodba ~]$ vi ~/.bash_profile
umask 022
export PS1
export TMP=/tmp
export LANG=en_US.UTF8
export TMPDIR=$TMP
export ORACLE_TERM=xterm
export ORACLE_UNQNAME=hellodb
export ORACLE_SID=hellodb
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=AMERICAN_AMERICA.UTF8
export PATH=$ORACLE_HOME/bin:$PATH
export THREADS_FLAG=native

15、配置Grid软件所有者环境

[root@hellodba ~]# su - grid
[grid@hellodba ~]$ vi ~/.bash_profile
umask 022
export PS1
export TMP=/tmp
export LANG=en_US.UTF8
export TMPDIR=$TMP
export TZ=Asia/Shanghai
export ORACLE_SID=+ASM
export ORACLE_TERM=xterm
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export PATH=$ORACLE_HOME/bin:$PATH
export THREADS_FLAG=native;

16、重启操作系统

[root@hellodba ~]# reboot

三、为Oracle ASM配置存储

1、Oracle ASM简介

  Oracle ASM是用于Oracle数据库文件的卷管理器和文件系统,支持单实例Oracle数据库和Oracle Real Application Clusters(Oracle RAC)配置。Oracle ASM是Oracle推荐的存储管理解决方案,它提供了传统卷管理器、文件系统和裸设备的替代方案。Oracle ASM 使用磁盘组来存储数据文件;Oracle ASM 磁盘组是 Oracle ASM 作为一个单元管理的磁盘集合。在磁盘组中,Oracle ASM 公开 Oracle 数据库文件的文件系统接口。存储在磁盘组中的文件内容均匀分布,以消除热点并在磁盘之间提供统一的性能。性能可与裸设备的性能相媲美。

图 1-1 Oracle ASM for Single-Instance Oracle Databases
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-1

2、确定 Oracle ASM的存储需求

  确定是否将Oracle ASM用于Oracle群集软件文件、Oracle数据库文件、恢复文件,还是除Oracle群集软件或Oracle数据库二进制文件之外的所有文件。Oracle数据库文件包括数据文件、控制文件、重做日志文件、服务器参数文件和密码文件。

3、选择要用于 Oracle ASM 磁盘组的 Oracle ASM 冗余级别

Oracle ASM 磁盘组选择的冗余级别决定了 Oracle ASM 如何镜像磁盘组中的文件,并确定所需的磁盘数和可用磁盘空间量。
 
External redundancy(外部冗余):外部冗余磁盘组至少需要一个磁盘设备。外部冗余磁盘组中的有效磁盘空间是其所有设备中的磁盘空间之和。由于 Oracle ASM 不会在外部冗余磁盘组中镜像数据,因此 Oracle 建议将外部冗余与RAID等存储设备或其他提供自己的数据保护机制的类似设备一起使用。
 
Normal redundancy(普通冗余):在正常的冗余磁盘组中,为了提高性能和可靠性,Oracle ASM默认使用双向镜像。一个正常的冗余磁盘组至少需要三个磁盘设备。正常冗余磁盘组中的有效磁盘空间是其所有设备中磁盘空间总和的一半。
 
High redundancy(高冗余):在高冗余磁盘组中,Oracle ASM使用三向镜像来提高性能并提供最高级别的可靠性。高冗余磁盘组至少需要五个磁盘设备。高冗余磁盘组中的有效磁盘空间是其所有设备中磁盘空间总和的三分之一。
 
Flex redundancy(弹性冗余):弹性冗余磁盘组是一种冗余磁盘组,具有灵活的文件冗余、镜像拆分和冗余更改等功能。Flex 磁盘组可以将具有不同冗余要求的文件合并到单个磁盘组中。它还为数据库提供了更改其文件冗余的功能。磁盘组是文件组的集合,每个文件组与一个数据库相关联。配额组定义磁盘组

4、虚拟机配置文件修改

1) 将虚拟机关机。
2) 虚拟机配置文件最后行添加disk.EnableUUID="TRUE",才可以获取磁盘的UUID。

5、虚拟机添加硬盘(ASM磁盘组用)

//GRID
[root@hellodba ~]# fdisk -l | grep '/dev/sd*' | grep '10.7 GB'
Disk /dev/sdc: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/sdd: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/sde: 10.7 GB, 10737418240 bytes, 20971520 sectors

//SYSTEM
[root@hellodba ~]# fdisk -l | grep "/dev/sd*" | grep '107.4 GB'
Disk /dev/sdf: 107.4 GB, 107374182400 bytes, 209715200 sectors
Disk /dev/sdg: 107.4 GB, 107374182400 bytes, 209715200 sectors
Disk /dev/sdh: 107.4 GB, 107374182400 bytes, 209715200 sectors

//RECOVERY
[root@hellodba ~]# fdisk -l | grep "/dev/sd*" | grep '214.7 GB'
Disk /dev/sdi: 214.7 GB, 214748364800 bytes, 419430400 sectors
Disk /dev/sdj: 214.7 GB, 214748364800 bytes, 419430400 sectors
Disk /dev/sdk: 214.7 GB, 214748364800 bytes, 419430400 sectors

//DATA
[root@hellodba ~]# fdisk -l | grep "/dev/sd*" | grep '322.1 GB'
Disk /dev/sdl: 322.1 GB, 322122547200 bytes, 629145600 sectors
Disk /dev/sdm: 322.1 GB, 322122547200 bytes, 629145600 sectors
Disk /dev/sdn: 322.1 GB, 322122547200 bytes, 629145600 sectors

6、查看磁盘UUID

6.1、GRID

[root@hellodba ~]# /usr/lib/udev/scsi_id -g -u /dev/sdc
36000c29758b33d1f0a4b57d0188fa1b4
[root@hellodba ~]# /usr/lib/udev/scsi_id -g -u /dev/sdd
36000c299b478c05b3c5030746857eb46
[root@hellodba ~]# /usr/lib/udev/scsi_id -g -u /dev/sde
36000c29dc1208e6f4bb8a37115b31b33

KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29758b33d1f0a4b57d0188fa1b4",RUN +="/bin/sh -c 'mknod /dev/asm-grid01 b $major $minor;chown grid:asmadmin /dev/asm-grid01;chmod 0660 /dev/asm-grid01'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c299b478c05b3c5030746857eb46",RUN +="/bin/sh -c 'mknod /dev/asm-grid02 b $major $minor;chown grid:asmadmin /dev/asm-grid02;chmod 0660 /dev/asm-grid02'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29dc1208e6f4bb8a37115b31b33",RUN +="/bin/sh -c 'mknod /dev/asm-grid03 b $major $minor;chown grid:asmadmin /dev/asm-grid03;chmod 0660 /dev/asm-grid03'"

6.2、SYSTEM

[root@hellodba ~]# /usr/lib/udev/scsi_id -g -u /dev/sdf
36000c291ed20cb67ec01372414274b65
[root@hellodba ~]# /usr/lib/udev/scsi_id -g -u /dev/sdg
36000c295349c93971e8b7de986e5785d
[root@hellodba ~]# /usr/lib/udev/scsi_id -g -u /dev/sdh
36000c29fe8a8a92977ae3e792eb14a6d

KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c291ed20cb67ec01372414274b65",RUN +="/bin/sh -c 'mknod /dev/asm-system01 b $major $minor;chown grid:asmadmin /dev/asm-system01;chmod 0660 /dev/asm-system01'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c295349c93971e8b7de986e5785d",RUN +="/bin/sh -c 'mknod /dev/asm-system02 b $major $minor;chown grid:asmadmin /dev/asm-system02;chmod 0660 /dev/asm-system02'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29fe8a8a92977ae3e792eb14a6d",RUN +="/bin/sh -c 'mknod /dev/asm-system03 b $major $minor;chown grid:asmadmin /dev/asm-system03;chmod 0660 /dev/asm-system03'"

6.3、RECOVERY

[root@hellodba ~]# /usr/lib/udev/scsi_id -g -u /dev/sdi
36000c295f3e5b2c3244460c0498cac3e
[root@hellodba ~]# /usr/lib/udev/scsi_id -g -u /dev/sdj
36000c29234cafa62e705e7d8904bd62b
[root@hellodba ~]# /usr/lib/udev/scsi_id -g -u /dev/sdk
36000c29c227fd1f8047ef32253596222

KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c295f3e5b2c3244460c0498cac3e",RUN +="/bin/sh -c 'mknod /dev/asm-recovery01 b $major $minor;chown grid:asmadmin /dev/asm-recovery01;chmod 0660 /dev/asm-recovery01'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29234cafa62e705e7d8904bd62b",RUN +="/bin/sh -c 'mknod /dev/asm-recovery02 b $major $minor;chown grid:asmadmin /dev/asm-recovery02;chmod 0660 /dev/asm-recovery02'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29c227fd1f8047ef32253596222",RUN +="/bin/sh -c 'mknod /dev/asm-recovery03 b $major $minor;chown grid:asmadmin /dev/asm-recovery03;chmod 0660 /dev/asm-recovery03'"

6.4、DATA

[root@hellodba ~]# /usr/lib/udev/scsi_id -g -u /dev/sdl
36000c29c66283053d15827e3f03f1b44
[root@hellodba ~]# /usr/lib/udev/scsi_id -g -u /dev/sdm
36000c29977f94306abdbf3f062e777dc
[root@hellodba ~]# /usr/lib/udev/scsi_id -g -u /dev/sdn
36000c2936f32612b40362e882af88edd

KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29c66283053d15827e3f03f1b44",RUN +="/bin/sh -c 'mknod /dev/asm-data01 b $major $minor;chown grid:asmadmin /dev/asm-data01;chmod 0660 /dev/asm-data01'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29977f94306abdbf3f062e777dc",RUN +="/bin/sh -c 'mknod /dev/asm-data02 b $major $minor;chown grid:asmadmin /dev/asm-data02;chmod 0660 /dev/asm-data02'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c2936f32612b40362e882af88edd",RUN +="/bin/sh -c 'mknod /dev/asm-data03 b $major $minor;chown grid:asmadmin /dev/asm-data03;chmod 0660 /dev/asm-data03'"

7、配置规则

[root@hellodba ~]# vi /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=="36000c29758b33d1f0a4b57d0188fa1b4",RUN +="/bin/sh -c 'mknod /dev/asm-grid01 b $major $minor;chown grid:asmadmin /dev/asm-grid01;chmod 0660 /dev/asm-grid01'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c299b478c05b3c5030746857eb46",RUN +="/bin/sh -c 'mknod /dev/asm-grid02 b $major $minor;chown grid:asmadmin /dev/asm-grid02;chmod 0660 /dev/asm-grid02'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29dc1208e6f4bb8a37115b31b33",RUN +="/bin/sh -c 'mknod /dev/asm-grid03 b $major $minor;chown grid:asmadmin /dev/asm-grid03;chmod 0660 /dev/asm-grid03'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c291ed20cb67ec01372414274b65",RUN +="/bin/sh -c 'mknod /dev/asm-system01 b $major $minor;chown grid:asmadmin /dev/asm-system01;chmod 0660 /dev/asm-system01'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c295349c93971e8b7de986e5785d",RUN +="/bin/sh -c 'mknod /dev/asm-system02 b $major $minor;chown grid:asmadmin /dev/asm-system02;chmod 0660 /dev/asm-system02'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29fe8a8a92977ae3e792eb14a6d",RUN +="/bin/sh -c 'mknod /dev/asm-system03 b $major $minor;chown grid:asmadmin /dev/asm-system03;chmod 0660 /dev/asm-system03'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c295f3e5b2c3244460c0498cac3e",RUN +="/bin/sh -c 'mknod /dev/asm-recovery01 b $major $minor;chown grid:asmadmin /dev/asm-recovery01;chmod 0660 /dev/asm-recovery01'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29234cafa62e705e7d8904bd62b",RUN +="/bin/sh -c 'mknod /dev/asm-recovery02 b $major $minor;chown grid:asmadmin /dev/asm-recovery02;chmod 0660 /dev/asm-recovery02'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29c227fd1f8047ef32253596222",RUN +="/bin/sh -c 'mknod /dev/asm-recovery03 b $major $minor;chown grid:asmadmin /dev/asm-recovery03;chmod 0660 /dev/asm-recovery03'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29c66283053d15827e3f03f1b44",RUN +="/bin/sh -c 'mknod /dev/asm-data01 b $major $minor;chown grid:asmadmin /dev/asm-data01;chmod 0660 /dev/asm-data01'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29977f94306abdbf3f062e777dc",RUN +="/bin/sh -c 'mknod /dev/asm-data02 b $major $minor;chown grid:asmadmin /dev/asm-data02;chmod 0660 /dev/asm-data02'"
KERNEL=="sd?",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c2936f32612b40362e882af88edd",RUN +="/bin/sh -c 'mknod /dev/asm-data03 b $major $minor;chown grid:asmadmin /dev/asm-data03;chmod 0660 /dev/asm-data03'"

8、加载规则

[root@hellodba ~]# /sbin/udevadm trigger --type=devices --action=change
[root@hellodba ~]# ls -lsa /dev/asm*
0 brw-rw---- 1 grid asmadmin 8, 176 Oct 25 20:39 /dev/asm-data01
0 brw-rw---- 1 grid asmadmin 8, 192 Oct 25 20:39 /dev/asm-data02
0 brw-rw---- 1 grid asmadmin 8, 208 Oct 25 20:39 /dev/asm-data03
0 brw-rw---- 1 grid asmadmin 8, 32 Oct 25 20:39 /dev/asm-grid01
0 brw-rw---- 1 grid asmadmin 8, 48 Oct 25 20:39 /dev/asm-grid02
0 brw-rw---- 1 grid asmadmin 8, 64 Oct 25 20:39 /dev/asm-grid03
0 brw-rw---- 1 grid asmadmin 8, 128 Oct 25 20:39 /dev/asm-recovery01
0 brw-rw---- 1 grid asmadmin 8, 144 Oct 25 20:39 /dev/asm-recovery02
0 brw-rw---- 1 grid asmadmin 8, 160 Oct 25 20:39 /dev/asm-recovery03
0 brw-rw---- 1 grid asmadmin 8, 80 Oct 25 20:39 /dev/asm-system01
0 brw-rw---- 1 grid asmadmin 8, 96 Oct 25 20:39 /dev/asm-system02
0 brw-rw---- 1 grid asmadmin 8, 112 Oct 25 20:39 /dev/asm-system03

四、安装Oracle Grid软件

1、上传Oracle Grid安装软件到服务器并解压

//通过grid用户上传Oracle Grid安装软件到服务器 /u01/app/19.3.0/grid目录
[grid@hellodba ~]$ cd $ORACLE_HOME
[grid@hellodba grid]$ unzip -q LINUX.X64_193000_grid_home.zip
[grid@hellodba grid]$ rm -rf LINUX.X64_193000_grid_home.zip

2、运行Oracle Grid安装向导以安装Grid软件

[grid@hellodba ~]$ cd $ORACLE_HOME
[grid@hellodba grid]$ ./gridSetup.sh

3、安装选项(为独立服务器配置 Oracle 网格基础结构)

选择“Configure Oracle Grid Infrastructure for a Standalone Server (Oracle Restart)”选项。点击下一步。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-2

4、创建ASM磁盘组

单击更改发现路径以选择Oracle ASM要使用的但未在屏幕中列出的设备
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-3
在“更改磁盘发现路径”窗口中,输入用于搜索 Oracle ASM 使用的设备的字符串。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-4

指定ASM磁盘组名称,并设置合适的AU大小。
每个 Oracle ASM 磁盘都分为分配单元 (AU)。分配单元是磁盘组中的基本分配单元。文件扩展数据块由一个或多个分配单位组成。Oracle ASM 文件由一个或多个文件扩展数据块组成。
创建磁盘组时,可以使用磁盘组属性设置 Oracle ASM 分配单元大小。这些值可以是 1、2、4、8、16、32 或 64 MB,具体取决于特定的磁盘组兼容性级别。较大的 AU 大小通常为使用大型顺序读取的数据仓库应用程序提供性能优势。
Oracle 建议将磁盘组的分配单元 (AU) 大小设置为 4 MB。除了此 AU 大小建议之外,操作系统 (OS) I/O 大小应设置为可能的最大大小。
4 MB 分配单元的一些优点包括:
如果 I/O 大小增加到 AU 大小,则通过 I/O 子系统增加 I/O。
减小了 SGA 大小以管理数据库实例中的扩展数据块映射。
如果 I/O 大小增加到 AU 大小,则数据文件初始化速度更快。
增加了文件大小限制。
减少了数据库打开时间。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-5

5、指定ASM密码

设置连接到 Oracle ASM 实例所需的密码。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-6
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-7

6、管理选项

指定用于执行注册到Cloud Control配置的详细信息。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-8

7、操作系统组

默认情况下,操作系统组处于选中状态。您也可以手动选择。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-9

8、指定安装位置

默认情况下显示 Oracle 基本路径。您可以根据需要更改此路径。指定 Oracle 基本数据库、软件位置,然后单击下一步。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-10

9、指定创建清单目录

默认情况下显示 Oracle Inventory Directory 基本路径。您可以根据需要更改此路径。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-11

10、执行脚本选择

在软件配置过程中,某些操作必须以root用户执行,再次可以选择让安装程序自动执行这些操作。
此处不选择自动执行脚本,后面手动处理。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-12

11、先决条件检查

此选项验证是否满足执行数据库安装的最低系统要求。
注意:“修复并再次检查”选项会生成一个脚本,您必须以用户身份运行该脚本。此生成的脚本将某些系统参数设置为 Oracle 建议的值。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-13

[root@hellodba ~]# /tmp/GridSetupActions2023-10-25_02-52-26PM/CVU_19.0.0.0.0_grid/runfixup.sh
All Fix-up operations were completed successfully.

高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-14

12、安装

注意:从 Oracle 数据库 11g Release 2 (11.2) 开始,您可以通过单击保存响应文件将所有安装步骤保存到响应文件中。稍后,此文件可用于静默安装。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-15
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-16

13、执行配置脚本

在运行此屏幕中提到的脚本之前,不要单击“OK”。
以用户身份运行配置脚本。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-17

[root@hellodba ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.

[root@hellodba ~]# /u01/app/19.3.0/grid/root.sh
Performing root user operation.

The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/app/19.3.0/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...

Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/19.3.0/grid/crs/install/crsconfig_params
The log of current session can be found at:
/u01/app/grid/crsdata/hellodba/crsconfig/roothas_2023-10-25_03-11-52PM.log
LOCAL ADD MODE
Creating OCR keys for user 'grid', privgrp 'oinstall'..
Operation successful.
LOCAL ONLY MODE
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4664: Node hellodba successfully pinned.
2023/10/25 15:11:58 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'

hellodba 2023/10/25 15:12:30 /u01/app/grid/crsdata/hellodba/olr/backup_20231025_151230.olr 724960844
2023/10/25 15:12:30 CLSRSC-327: Successfully configured Oracle Restart for a standalone server

高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-18

14、完成安装

单击“Close”结束安装,并退出安装程序。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-19

15、创建剩余的ASM磁盘组

15.1、创建SYSTEM磁盘组

[grid@hellodba ~]$ asmca -silent -createDiskGroup -diskGroupName system -diskList '/dev/asm-system01','/dev/asm-system02','/dev/asm-system03' -redundancy NORMAL -au_size 4

15.2、创建RECOVERY磁盘组

[grid@hellodba ~]$ asmca -silent -createDiskGroup -diskGroupName recovery -diskList '/dev/asm-recovery01','/dev/asm-recovery02','/dev/asm-recovery03' -redundancy NORMAL -au_size 4

15.3、创建DATA磁盘组

[grid@hellodba ~]$ asmca -silent -createDiskGroup -diskGroupName data -diskList '/dev/asm-data01','/dev/asm-data02','/dev/asm-data03' -redundancy NORMAL -au_size 4

15.4、查看ASM磁盘组状态

[grid@hellodba ~]$ asmcmd lsdg
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED NORMAL N 512 512 4096 4194304 921600 921288 307200 307044 0 N DATA/
MOUNTED NORMAL N 512 512 4096 4194304 30720 30376 10240 10068 0 N GRID/
MOUNTED NORMAL N 512 512 4096 4194304 614400 614088 204800 204644 0 N RECOVERY/
MOUNTED NORMAL N 512 512 4096 4194304 307200 306888 102400 102244 0 N SYSTEM/

五、安装Oracle数据库软件

1、上传Oracle数据库安装软件到服务器并解压

//通过oracle用户上传Oracle数据库安装软件到服务器 /u01/app/oracle/product/19.3.0/dbhome_1 目录
[oracle@hellodba ~]$ cd $ORACLE_HOME
[oracle@hellodba dbhome_1]$ unzip -q LINUX.X64_193000_db_home.zip
[oracle@hellodba dbhome_1]$ rm -rf LINUX.X64_193000_db_home.zip

2、安装数据库软件

[oracle@hellodba ~]$ cd $ORACLE_HOME
[oracle@hellodba dbhome_1]$ ./runInstaller

2.1、安装选项

仅安装数据库软件:此选项仅安装数据库二进制文件。若要配置数据库,必须在安装软件后运行 Oracle 数据库配置助手。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-20

2.2、数据库安装选项

选择要执行的数据库安装类型,然后单击下一步。
ingle instance database installation:此选项安装数据库和侦听器。
Oracle Real Application Clusters database installation:此选项安装 Oracle Real Application Clusters。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-21

2.3、数据库版本选择

选择企业版或标准版,单击下一步。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-22

2.4、指定安装位置

默认情况下显示 Oracle 基本路径。您可以根据需要更改此路径。指定 Oracle 基本数据库、软件位置,然后单击下一步。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-23

2.5、操作系统组选择

默认情况下,操作系统组处于选中状态。您也可以手动选择。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-24

2.6、执行脚本选择

在软件配置过程中,某些操作必须以root用户执行,再次可以选择让安装程序自动执行这些操作。
此处不选择自动执行脚本,后面手动处理。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-25

2.7、先决条件检查

此选项验证是否满足执行数据库安装的最低系统要求。
注意:“修复并再次检查”选项会生成一个脚本,您必须以用户身份运行该脚本。此生成的脚本将某些系统参数设置为 Oracle 建议的值。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-26

2.8、执行安装

注意:从 Oracle 数据库 11g Release 2 (11.2) 开始,您可以通过单击保存响应文件将所有安装步骤保存到响应文件中。稍后,此文件可用于静默安装。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-27
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-28

2.9、执行配置脚本

在运行此屏幕中提到的脚本之前,不要单击“OK”。
以用户身份运行配置脚本。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-29

[root@hellodba ~]# /u01/app/oracle/product/19.3.0/dbhome_1/root.sh
Performing root user operation.

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/19.3.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

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.
Oracle Trace File Analyzer (TFA - Standalone Mode) is available at :
/u01/app/oracle/product/19.3.0/dbhome_1/bin/tfactl

Note :
1. tfactl will use TFA Service if that service is running and user has been granted access
2. tfactl will configure TFA Standalone Mode only if user has no access to TFA Service or TFA is not installed

高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-30

2.10、数据库软件安装完成

单击“Close”结束安装,并退出安装程序。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-31

六、使用DBCA创建数据库

1、启动数据库配置助手

[oracle@hellodba ~]$ dbca

2、创建数据库

在“操作”窗口中,选择“创建数据库”,然后单击“下一步”以启动用于创建数据库的引导式工作流。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-32

3、创建模式

如果选择“高级配置”,则可以自定义管理员用户帐户的存储位置、管理选项、数据库选项和不同的密码。
如果选择“典型配置”,则在数据库的选项中进行选择较少,从而可以更快地创建数据库。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-33

4、部署类型

此窗口选择要创建的数据库的类型。
Oracle 为以下两种工作负载类型提供模板:
General Purpose or Transaction Processing(通用或事务处理)。
Data Warehouse(数据仓库)。
对于更复杂的环境,可以选择“Custom Database(自定义数据库)”选项。此选项不使用模板,会导致更复杂,这意味着创建数据库需要更长的时间。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-34

5、数据库标识

在“Global Database Name(全局数据库名称)”字段中,输入数据库名称。
在 “SID ”字段中,输入系统标识符。SID 默认为数据库名称,并唯一标识运行数据库的实例。
如果启用“创建为容器数据库”选项,则会将数据库创建为可支持零个、一个或多个用户创建的可插入数据库 (PDB) 的多租户容器数据库 (CDB)。
如果不希望 DBCA 在创建 CDB 时创建 PDB,请启用“创建空容器数据库”选项。
如果希望 DBCA 在创建 CDB 时创建一个或多个 PDB,请启用“使用一个或多个 PDB 创建容器数据库”选项。然后在 PDB 数 字段中输入要创建的 PDB 数。在“PDB 名称”字段中,指定要用于创建一个或多个 PDB 的名称。创建多个 PDB 时,指定的 PDB 名称将用作要创建的 PDB 的前缀。
本实验创建非CDB模式。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-35

6、存储选项

Use template file for database storage attributes:此选项指示 DBCA 使用模板中指定的目录信息。
Use following for the database storage attributes:此选项要求您指定数据库文件的存储位置。
使用此选项,您需要选择如何管理数据库文件:
如果选择“文件系统”,则数据库文件由操作系统的文件系统管理。
如果选择自动存储管理 (ASM),则将数据文件放在 Oracle 自动存储管理 (Oracle ASM) 磁盘组中。
如果指定“使用 Oracle 管理的文件 (OMF)”选项,Oracle 数据库将直接管理包含 Oracle 数据库的操作系统文件。为所有文件指定默认位置(称为数据库区域)。此后,Oracle 数据库会根据需要自动创建并删除此位置中的文件。选择此选项时,会将数据库文件的完整管理委派给数据库。您不再需要指定文件名、位置或大小。您还可以通过选择多路重做日志和控制文件来创建重做和联机日志文件的多个副本。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-36
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-37
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-38

7、恢复区和归档配置

Specify Fast Recovery Area:选择此选项可指定备份和恢复区域及其目录位置和大小。
Enable Archiving:选择此选项可启用数据库联机重做日志文件的存档,这些文件可用于恢复数据库。
Oracle 建议您选择“启用存档”。选择此选项可针对软件或硬件故障更好地保护数据库。如果现在未选择此选项,则可以稍后启用存档日志模式。
本实验在数据库安装完后在启用存档。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-39

8、监听配置

显示当前 Oracle 主目录中的侦听器。如果要在当前 Oracle 主目录中创建新的侦听器,可以在“监听配置”窗口中执行此操作。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-40

9、数据库组件选择

选择要配置在数据库中使用的组件。显示为禁用的组件,要么是没安装,要么依赖于未选择的组件。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-41

10、初始化参数

10.1、内存

Use Automatic Shared Memory Management(使用自动共享内存管理):
此方法使您能够将特定数量的内存分配给 SGA和PGA。为 SGA 启用了自动共享 内存管理,并根据需要将内存分配给各个PGA。
Use Manual Shared Memory Management(使用手动共享内存管理):
此方法要求您为每个 SGA 组件和PGA 输入特定值。您可以确定 SGA 内如何在 SGA 内存组件之间的分布方式。此方法适用于有经验的 Oracle 数据库管理员。
Use Automatic Memory Management(使用自动内存管理):
此方法要求您在内存目标字段中设置 Oracle 系统范围的可用内存,然后系统会自动调整 SGA 的许多内存组件,并根据需要将内存分配给各个 PGA。系统还可以根据处理需求动态减少或增加分配给 SGA 和PGA 的内存总量。用于数据库实例的总内存永远不会超过您指定的内存量。
注:如果数据库实例的总物理内存大于 4 GB,则无法选择使用自动内存管理选项。请改用自动共享内存管理。自动共享内存管理根据需要自动在各个组件之间分配可用内存,使系统能够最大限度地利用所有可用的 SGA 内存。
经验值:
SGA < 物理内存 * 80% * 80%
PGA < 物理内存 * 80% * 20%
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-42

10.2、块大小和用户进程数

在此选项卡中,您可以指定可以同时连接到数据库的最小块大小和操作系统用户进程的最大数量。
Block Size(块大小): 使用此列表选择块大小,或接受默认值。Oracle数据库数据存储在指定大小的数据块中。一个数据块对应于磁盘上特定数量的物理空间字节。选择默认8192 Bytes。
Processes(进程): 指定可以同时连接到数据库的进程的最大数量。此参数的默认值是300。根据具体需要进行调整。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-43

10.3、字符集

使用此选项卡定义数据库使用的字符集。字符集是用于在计算机屏幕上显示字符的编码方案。字符集决定了数据库中可以表示哪些语言。
Oracle建议使用Unicode(AL32UTF8)作为数据库字符集。AL32UTF8是Oracle对Unicode标准UTF-8编码的名称。Unicode标准是通用字符集,支持世界上目前使用的大多数语言。使用Unicode标准对于任何多语言技术(包括数据库处理)都是必不可少的。在创建数据库并积累生产数据后,更改数据库字符集是一个耗时且复杂的项目。因此,在安装时选择正确的字符集非常重要。即使数据库目前不存储多语言数据,但预计将在几年内存储多语言数据,为数据库字符集选择AL32UTF8通常是唯一好的决定。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-44

10.4、连接模式

使用此窗口选择数据库模式。您可以在以下任一模式下运行数据库:
专用服务器模式: 此模式允许每个用户进程的专用服务器进程。当客户总数预计很小(例如50个或更少)时,请选择此选项。当数据库客户端通常向数据库发出持久、长期运行的请求时,您也可以选择此选项。默认情况下,数据库是为专用服务器进程配置的。
共享服务器模式: 此模式允许多个客户端连接共享数据库分配的资源池。在客户端负载预计会对内存和其他系统资源造成压力的配置中使用此模式。如果您选择共享服务器模式,那么您必须在启动数据库实例时指示要创建的服务器进程数量。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-45

10.5、示例模式

若要在数据库中包括示例架构,请选择“Add sample schemas to the database”。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-46

11、管理选项

Oracle Enterprise Manager 为单个数据库提供基于 Web 的管理工具,并为管理整个 Oracle 环境提供中央管理工具。
若要在本地管理数据库,请选择“Configure Enterprise Manager (EM) database express”。
本实验不配置EM管理器。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-47

12、数据库凭证

设置管理用户SYS和SYSTEM的密码。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-48

13、创建选项

此窗口中,可以对控制文件、数据文件、联机重做日志组等进行调整。如果对存储结构或参数不满意,则可以进行更改。
这里对Redo Log(在线重做日志)进行简单调整下:Redo Log需根据实际情况进行调整大小,如果存在大量DML操作,为了防止频繁切换日志,建议设置大点提高性能,但不是越大越好,建议切换频率在15分钟左右一次。我这里先暂设置5组200MB。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-49
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-50

14、创建数据库

高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-51
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-52
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-53

15、安装完成

单击“Close”结束安装,并退出安装程序。
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-54

七、数据库管理入门

1、启用SQL*Plus从命令行连接到数据库

[root@hellodba ~]# su - oracle
[oracle@hellodba ~]$ sqlplus / as sysdba

2、查看数据库基础信息

//查看数据库基础信息
SQL> select name,log_mode,open_mode,platform_name,db_unique_name from v$database;
NAME LOG_MODE OPEN_MODE PLATFORM_NAME DB_UNIQUE_NAME
--------------------------------------------------------------------------------------
HELLODB NOARCHIVELOG READ WRITE Linux x86 64-bit hellodb

3、查看数据库版本

SQL> select banner_full from v$version;
BANNER_FULL
-----------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

4、查看数据库字符集

//查看数据库字符集
SQL> select * from nls_database_parameters where parameter like '%CHARACTERSET%';
PARAMETER VALUE
--------------------------------------------------------------------------------
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET UTF8

5、查看数据库块大小

//查看数据库块大小
SQL> show parameter db_block_size
NAME TYPE VALUE
-------------------------------------------
db_block_size integer 8192

6、实例的启动与关闭

6.1、启动

[root@hellodba ~]# su - oracle
[oracle@hellodba ~]$ sqlplus / as sysdba
SQL> startup

6.2、关闭

[root@hellodba ~]# su - oracle
[oracle@hellodba ~]$ sqlplus / as sysdba
SQL> shutdown immediate;

7、取消180天密码过期限制

SQL> select profile,resource_name,resource_type,limit from dba_profiles where profile='DEFAULT' and RESOURCE_NAME='PASSWORD_LIFE_TIME';
PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT
------------------------------------ ----------- ------------------------------
DEFAULT PASSWORD_LIFE_TIME PASSWORD 180

SQL> alter profile default limit password_life_time unlimited;

SQL> select profile,resource_name,resource_type,limit from dba_profiles where profile='DEFAULT' and RESOURCE_NAME='PASSWORD_LIFE_TIME';
PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT
------------------------------------ ----------- ------------------------------
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED

8、关闭审计

SQL> show parameter audit_trail;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_trail string DB

SQL> alter system set audit_trail=none scope=spfile; (重启数据库生效)

9、调整db_files

SQL> show parameter db_files;
NAME TYPE VALUE
---------------------------------------------------------------------------
db_files integer 200

SQL> alter system set db_files=1024 scope=spfile; (重启数据库生效)

10、Oracle Grid相关操作

10.1、添加环境变量

// 查看ORACLE_HOME目录
[grid@hellodba ~]$ env | grep ORACLE
ORACLE_SID=+ASM
ORACLE_BASE=/u01/app/grid
ORACLE_TERM=xterm
ORACLE_HOME=/u01/app/19.3.0/grid

# 添加到root下的环境变量
[root@hellodba ~]# vi ~/.bash_profile
PATH=$PATH:/u01/app/19.3.0/grid/bin:$HOME/bin
[root@hellodba ~]# source ~/.bash_profile

10.2、查看服务状态

[root@hellodba ~]# crsctl check has
CRS-4638: Oracle High Availability Services is online

10.3、查看资源状态

[root@hellodba ~]# crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE hellodba STABLE
ora.GRID.dg
ONLINE ONLINE hellodba STABLE
ora.LISTENER.lsnr
ONLINE ONLINE hellodba STABLE
ora.RECOVERY.dg
ONLINE ONLINE hellodba STABLE
ora.SYSTEM.dg
ONLINE ONLINE hellodba STABLE
ora.asm
ONLINE ONLINE hellodba Started,STABLE
ora.ons
OFFLINE OFFLINE hellodba STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
1 ONLINE ONLINE hellodba STABLE
ora.diskmon
1 OFFLINE OFFLINE STABLE
ora.evmd
1 ONLINE ONLINE hellodba STABLE
ora.hellodb.db
1 ONLINE ONLINE hellodba Open,HOME=/u01/app/o
racle/product/19.3.0
/dbhome_1,STABLE
--------------------------------------------------------------------------------

10.4、启动、停止服务

10.4.1、启动服务

[root@hellodba ~]# crsctl start has
CRS-4123: Oracle High Availability Services has been started.

10.4.2、停止服务

[root@hellodba ~]# crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'hellodba'
CRS-2673: Attempting to stop 'ora.hellodb.db' on 'hellodba'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'hellodba'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'hellodba' succeeded
CRS-2677: Stop of 'ora.hellodb.db' on 'hellodba' succeeded
CRS-2673: Attempting to stop 'ora.evmd' on 'hellodba'
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'hellodba'
CRS-2673: Attempting to stop 'ora.GRID.dg' on 'hellodba'
CRS-2673: Attempting to stop 'ora.RECOVERY.dg' on 'hellodba'
CRS-2673: Attempting to stop 'ora.SYSTEM.dg' on 'hellodba'
CRS-2677: Stop of 'ora.DATA.dg' on 'hellodba' succeeded
CRS-2677: Stop of 'ora.RECOVERY.dg' on 'hellodba' succeeded
CRS-2677: Stop of 'ora.GRID.dg' on 'hellodba' succeeded
CRS-2677: Stop of 'ora.SYSTEM.dg' on 'hellodba' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'hellodba'
CRS-2677: Stop of 'ora.evmd' on 'hellodba' succeeded
CRS-2677: Stop of 'ora.asm' on 'hellodba' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'hellodba'
CRS-2677: Stop of 'ora.cssd' on 'hellodba' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'hellodba' has completed
CRS-4133: Oracle High Availability Services has been stopped.

11、归档日志设置

作为DBA,需要做出的重要决定之一是确定数据库必须以ARCHIVELOG模式还是NOARCHIVELOG模式运行。您选择的模式取决于您的可用性和可靠性要求。它还会影响您可以执行的备份和恢复操作的类型。
在NOARCHIVELOG模式下,可以重复使用已填充的重做日志组。此模式保护数据库免受实例故障,但不保护介质故障。在ARCHIVELOG模式下,已填充的重做日志组被存档。此模式保护数据库免受实例和介质故障的影响,但可能需要额外的硬件资源。
以下步骤将数据库从NOARCHIVELOG模式切换到ARCHIVELOG模式

11.1、查看数据库归档模式

SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u01/app/oracle/product/19.3.0/dbhome_1/dbs/arch
Oldest online log sequence 17
Current log sequence 21

11.2、设置归档空间大小

SQL> show parameter recovery;
NAME TYPE VALUE
-----------------------------------------------------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 0
recovery_parallelism integer 0
remote_recovery_file_dest string

SQL> alter system set db_recovery_file_dest_size=100g;

11.3、设置归档存放位置

SQL> alter system set db_recovery_file_dest='+RECOVERY';
SQL> show parameter recovery;
NAME TYPE VALUE
-----------------------------------------------------------------------------
db_recovery_file_dest string +RECOVERY
db_recovery_file_dest_size big integer 100G
recovery_parallelism integer 0
remote_recovery_file_dest string

11.4、启用归档模式

SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 17
Next log sequence to archive 21
Current log sequence 21

11.5、关闭归档模式

SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database noarchivelog;
SQL> alter database open;
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 20
Current log sequence 24

八、总结

  到此Oracle Linux 7.9 + ASM安装Oracle 19C部署完毕,并进行了一些常规的设置。安装Oracle数据库需要有一定的专业知识和经验,在实际操作中,可能还会遇到其他问题和挑战,建议在进行安装之前详细阅读相关文档和指南,并确保有必要的技术支持和备份措施。希望通过本文对您搭建一套基于Oracle Linux 7.9 + ASM + Oracle 19C的数据库环境有一定帮助,祝顺利!

九、写在后面

  由于本人有限的能力和知识储备,如有错误敬请批评指正!

 
公众号:Hello DBA
 
高效运行Oracle 19C:基于Oracle Linux 7.9+ASM的安装部署-55

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论