好消息:Oracle 23ai 现已支持一键部署!
目录
- 前言
- 安装前准备
- 环境配置
- 网络信息
- 系统镜像挂载
- 安装包上传
- 获取安装命令
- 一键安装
- 安装后检查
- 写在最后
前言
最近拿到了 23ai 的本地版安装包,之前也写了一篇手动安装 Oracle 23ai RAC 的文章:装个 Oracle 23ai RAC 玩玩~,当时文章里说会尽快适配好 23ai 的一键安装,正好晚上有空适配了一下,花了半小时左右调整了一下静默安装的模版,已经搞定了!
本文先演示一下用一键安装脚本安装 Oracle 23ai 的过程,过两天再发一篇 23ai RAC 的一键安装。
安装前准备
安装使用方式和之前一样,安装命令通用,不分操作系统版本,同一套命令安装所有 Oracle 场景。
环境配置
操作系统版本:
[root@orcl:/root]# cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="8.10"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.10"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.10"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:10:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://github.com/oracle/oracle-linux"ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.10
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.10
网络信息
查看网络配置情况:
[root@orcl:/root]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:8f:22:48 brd ff:ff:ff:ff:ff:ffaltname enp11s0inet 192.168.31.102/24 brd 192.168.31.255 scope global noprefixroute ens192valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe8f:2248/64 scope link noprefixroute valid_lft forever preferred_lft forever
获取网卡名称 ens192
。
系统镜像挂载
手动挂载操作系统镜像,脚本会自动配置本地 YUM 源:
[root@orcl:/root]# mount /dev/cdrom /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@orcl:/root]# df -h | grep /mnt
/dev/sr0 14G 14G 0 100% /mnt
要用 everything 版本的镜像,否则可能会缺包。
安装包上传
提前上传安装介质和安装脚本:
[root@orcl:/soft]# ls
LINUX.X64_235000_db_home.zip OracleShellInstall
获取安装命令
使用我配套开发的 Oracle 一键安装命令生成工具 可视化填写参数,获取一键安装命令:
一键安装
切换到安装包和脚本所在目录,执行一键安装即可:
[root@orcl23ai soft]# ./OracleShellInstall \
-lf ens192 `# 公网IP的网卡名称`\
-pdb pdb01 `# PDB名称`\
-opd Y `# 优化数据库`███████ ██ ████████ ██ ██ ██ ██ ██ ██ ████░░░░░██ ░██ ██░░░░░░ ░██ ░██ ░██░██ ░██ ░██ ░████ ░░██ ██████ ██████ █████ ░██ █████ ░██ ░██ █████ ░██ ░██░██ ███████ ██████ ██████ ██████ ░██ ░██
░██ ░██░░██░░█ ░░░░░░██ ██░░░██ ░██ ██░░░██░█████████░██████ ██░░░██ ░██ ░██░██░░██░░░██ ██░░░░ ░░░██░ ░░░░░░██ ░██ ░██
░██ ░██ ░██ ░ ███████ ░██ ░░ ░██░███████░░░░░░░░██░██░░░██░███████ ░██ ░██░██ ░██ ░██░░█████ ░██ ███████ ░██ ░██
░░██ ██ ░██ ██░░░░██ ░██ ██ ░██░██░░░░ ░██░██ ░██░██░░░░ ░██ ░██░██ ░██ ░██ ░░░░░██ ░██ ██░░░░██ ░██ ░██░░███████ ░███ ░░████████░░█████ ███░░██████ ████████ ░██ ░██░░██████ ███ ███░██ ███ ░██ ██████ ░░██ ░░████████ ███ ███░░░░░░░ ░░░ ░░░░░░░░ ░░░░░ ░░░ ░░░░░░ ░░░░░░░░ ░░ ░░ ░░░░░░ ░░░ ░░░ ░░ ░░░ ░░ ░░░░░░ ░░ ░░░░░░░░ ░░░ ░░░ 注意:本脚本仅用于新服务器上实施部署数据库使用,严禁在已运行数据库的主机上执行,以免发生数据丢失或者损坏,造成不可挽回的损失!!! 请选择安装模式 [单机(si)/单机ASM(sa)/集群(rac)] : si数据库安装模式: single 请选择数据库版本 [11|12|19|21|23] : 23数据库版本: 23 OracleShellInstall 开始安装,详细安装过程可查看日志: tail -2000f /soft/print_shell_install_20250825214052.log 正在进行安装前检查,请稍等...... 正在检测安装包 /soft/LINUX.X64_235000_db_home.zip 的 MD5 值是否正确,请稍等...... 正在配置本地软件源......已完成 (耗时: 1 秒)
正在获取操作系统信息......已完成 (耗时: 1 秒)
正在安装依赖包......已完成 (耗时: 113 秒)
正在禁用防火墙......已完成 (耗时: 2 秒)
正在禁用 selinux......已完成 (耗时: 1 秒)
正在配置 nsyctl......已完成 (耗时: 1 秒)
正在配置主机名和 hosts 文件......已完成 (耗时: 1 秒)
正在创建用户和组......已完成 (耗时: 2 秒)
正在创建安装目录......已完成 (耗时: 1 秒)
正在配置 Avahi-daemon 服务......已完成 (耗时: 1 秒)
正在配置透明大页 && NUMA && 磁盘 IO 调度器......已完成 (耗时: 4 秒)
正在配置操作系统参数 sysctl......已完成 (耗时: 1 秒)
正在配置 RemoveIPC......已完成 (耗时: 1 秒)
正在配置用户限制 limit......已完成 (耗时: 1 秒)
正在配置 shm 目录......已完成 (耗时: 1 秒)
正在安装 rlwrap 插件......已完成 (耗时: 16 秒)
正在配置用户环境变量......已完成 (耗时: 1 秒)
正在解压 Oracle 安装包以及补丁......已完成 (耗时: 51 秒)
正在安装 Oracle 软件以及补丁......已完成 (耗时: 170 秒)
正在创建监听......已完成 (耗时: 5 秒)
正在创建数据库......已完成 (耗时: 473 秒)
正在优化数据库......已完成 (耗时: 121 秒)恭喜!Oracle 一键安装执行完成 (耗时: 973 秒),现在是否重启主机:[Y/N] Y正在重启当前节点主机......
因为我虚拟化环境的磁盘是机械盘,所以安装不是很快,如果是 SSD,估计 10 分钟不到就装完了。
安装后检查
重启主机后,数据库自动启动:
[root@orcl:/soft]# so## 数据库开机自启
[oracle@orcl:/home/oracle]$ ps -ef|grep pmon
oracle 1861 1 0 22:36 ? 00:00:00 ora_pmon_orcl
oracle 3353 3313 0 22:58 pts/0 00:00:00 grep --color=auto pmon## 自动配置归档删除和备份定时任务
[oracle@orcl:/home/oracle]$ crontab -l
# OracleBegin
00 02 * * * /home/oracle/scripts/del_arch_orcl.sh
#00 00 * * 0 /home/oracle/scripts/dbbackup_lv0_orcl.sh
#00 00 * * 1,2,3,4,5,6 /home/oracle/scripts/dbbackup_lv1_orcl.sh## 自动配置 SQLNET 优化
[oracle@orcl:/home/oracle]$ cat $TNS_ADMIN/sqlnet.ora
# sqlnet.ora Network Configuration File: /u01/app/oracle/product/23.5.0/db/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)# OracleBegin
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8## 各种快捷别名,运维便捷
alias sas='sqlplus / as sysdba'
alias awr='sqlplus / as sysdba @?/rdbms/admin/awrrpt'
alias ash='sqlplus / as sysdba @?/rdbms/admin/ashrpt'
alias alert='vi $ORACLE_BASE/diag/rdbms/*/$ORACLE_SID/trace/alert_$ORACLE_SID.log'
export PS1="[`whoami`@`hostname`:"'$PWD]$ '
alias bdf='df -Th'
alias acd='cd $ORACLE_BASE/diag/rdbms/*/$ORACLE_SID/trace'
alias dblog='tail -200f $ORACLE_BASE/diag/rdbms/*/$ORACLE_SID/trace/alert_$ORACLE_SID.log'## 支持别名快速连接数据库
[oracle@orcl:/home/oracle]$ sasSQL*Plus: Release 23.0.0.0.0 - Production on Mon Aug 25 22:58:35 2025
Version 23.8.0.25.04Copyright (c) 1982, 2025, Oracle. All rights reserved.Connected to:
Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - Limited Availability
Version 23.8.0.25.04## 默认创建一个 PDB01,可根据参数自定义 PDB 名称(支持安装过程中同时创建多个 PDB)
SYS@orcl SQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB01 READ WRITE NO## 默认开启归档模式,可根据参数自定义是否开启归档
SYS@orcl SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /oradata/archivelog
Oldest online log sequence 2
Next log sequence to archive 2
Current log sequence 1## 默认创建 8 组 1G 的在线重做日志,可根据参数定义日志文件大小(默认 1G)
SYS@orcl SQL> select group#,thread#,bytes/1024/1024,status from v$log;GROUP# THREAD# BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------1 1 1024 INACTIVE2 1 1024 CURRENT3 1 1024 UNUSED4 1 1024 UNUSED5 1 1024 UNUSED6 1 1024 UNUSED7 1 1024 UNUSED8 1 1024 UNUSED8 rows selected.
以上都是一键安装脚本自动完成,没有任何人为配置,更多优化内容不一一展示,最后附上完整的一键安装详细日志:
Mon Aug 25 21:40:55 CST 2025#==============================================================#
配置本地软件源
#==============================================================# [BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0#==============================================================#
打印系统信息
#==============================================================# 服务器时间: Mon Aug 25 21:41:00 CST 2025操作系统版本: NAME="Oracle Linux Server"
VERSION="8.10"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.10"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.10"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:10:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://github.com/oracle/oracle-linux"ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.10
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.10内核信息: Linux version 5.15.0-206.153.7.1.el8uek.x86_64 (mockbuild@host-100-100-224-14) (gcc (GCC) 11.4.1 20230605 (Red Hat 11.4.1-2.1.0.1), GNU ld version 2.36.1-4.0.2.el8_6) #2 SMP Wed May 22 20:49:34 PDT 2024Glibc 版本: 2.28CPU 信息: 型号名称 :Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
物理 CPU 个数 :4
每个物理 CPU 的逻辑核数 :2
系统的 CPU 线程数 :8
系统的 CPU 类型 :x86_64 内存信息: total used free shared buff/cache available
Mem: 7932 637 4636 10 2658 7023
Swap: 8191 0 8191挂载信息: /dev/mapper/ol-root / xfs defaults 0 0
UUID=92390a0d-1af9-4e77-9403-6c705eec2494 /boot xfs defaults 0 0
UUID=D974-8153 /boot/efi vfat umask=0077,shortname=winnt 0 2
/dev/mapper/ol-swap none swap defaults 0 0目录信息: 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 9.3M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/ol-root 91G 8.2G 83G 9% /
/dev/sda2 1014M 322M 693M 32% /boot
/dev/sda1 599M 6.0M 593M 1% /boot/efi
tmpfs 794M 12K 794M 1% /run/user/42
tmpfs 794M 0 794M 0% /run/user/0
/dev/sr0 14G 14G 0 100% /mnt#==============================================================#
安装依赖软件包
#==============================================================# psmisc \
tar \
glibc \
libaio \
libgcc \
libstdc++ \
bc \
make \
binutils \
glibc-devel \
ksh \
libstdc++-devel \
unzip \
gcc \
gcc-c++ \
libnsl \
initscripts \
libaio-devel \
e2fsprogs \
e2fsprogs-libs \
smartmontools \
net-tools \
nfs-utils \
elfutils-libelf \
elfutils-libelf-devel \
libibverbs \
librdmacm \
fontconfig \
fontconfig-devel \
libXrender \
libXrender-devel \
libX11 \
libXau \
libXi \
libXtst \
libxcb \
unixODBC \
sysstat \
readline \
readline-devel \
policycoreutils \
libvirt-libs \
policycoreutils-python-utils \
libnsl2 \
libasan \
liblsan \
compat-openssl10 \
libxcrypt-compat \
compat-openssl11 \
libgfortran \
rlwrap #==============================================================#
静默安装软件包
#==============================================================# 检查必需软件包安装情况: psmisc-23.1-5.el8.x86_64
tar-1.30-9.el8.x86_64
glibc-2.28-251.0.2.el8.x86_64
libaio-0.3.112-1.el8.x86_64
libgcc-8.5.0-21.0.1.el8.x86_64
libstdc++-8.5.0-21.0.1.el8.x86_64
bc-1.07.1-5.el8.x86_64
make-4.2.1-11.el8.x86_64
binutils-2.30-123.0.2.el8.x86_64
glibc-devel-2.28-251.0.2.el8.x86_64
ksh-20120801-267.0.1.el8.x86_64
libstdc++-devel-8.5.0-21.0.1.el8.x86_64
unzip-6.0-46.0.1.el8.x86_64
gcc-8.5.0-21.0.1.el8.x86_64
gcc-c++-8.5.0-21.0.1.el8.x86_64
libnsl-2.28-251.0.2.el8.x86_64
initscripts-10.00.18-1.0.1.el8.x86_64#==============================================================#
禁用防火墙
#==============================================================# ● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead) since Mon 2025-08-25 21:42:54 CST; 402ms agoDocs: man:firewalld(1)Main PID: 1209 (code=exited, status=0/SUCCESS)Aug 24 22:17:46 orcl23ai systemd[1]: Starting firewalld - dynamic firewall daemon...
Aug 24 22:18:00 orcl23ai systemd[1]: Started firewalld - dynamic firewall daemon.
Aug 24 22:18:01 orcl23ai firewalld[1209]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. Please consider disabling it now.
Aug 25 21:42:54 orcl23ai systemd[1]: Stopping firewalld - dynamic firewall daemon...
Aug 25 21:42:54 orcl23ai systemd[1]: firewalld.service: Succeeded.
Aug 25 21:42:54 orcl23ai systemd[1]: Stopped firewalld - dynamic firewall daemon.#==============================================================#
禁用 SELinux
#==============================================================# SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: disabled
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 33#==============================================================#
配置 nsysctl.conf
#==============================================================# NOZEROCONF=yes#==============================================================#
配置主机名
#==============================================================# Static hostname: orclIcon name: computer-vmChassis: vmMachine ID: 2361e9c20d1d4403aeb1be8b44a81b87Boot ID: 4f1c9139827648d9bd79e9cf6a072ca3Virtualization: vmwareOperating System: Oracle Linux Server 8.10CPE OS Name: cpe:/o:oracle:linux:8:10:serverKernel: Linux 5.15.0-206.153.7.1.el8uek.x86_64Architecture: x86-64#==============================================================#
配置 /etc/hosts 文件
#==============================================================# 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.31.102 orcl#==============================================================#
创建用户和组
#==============================================================# oracle 用户: uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)#==============================================================#
配置 Avahi-daemon 服务
#==============================================================# ● avahi-daemon.service - Avahi mDNS/DNS-SD StackLoaded: loaded (/usr/lib/systemd/system/avahi-daemon.service; disabled; vendor preset: enabled)Active: inactive (dead)Aug 24 22:18:16 orcl23ai avahi-daemon[1107]: New relevant interface virbr0.IPv4 for mDNS.
Aug 24 22:18:16 orcl23ai avahi-daemon[1107]: Registering new address record for 192.168.122.1 on virbr0.IPv4.
Aug 25 21:43:02 orcl systemd[1]: Stopping Avahi mDNS/DNS-SD Stack...
Aug 25 21:43:02 orcl avahi-daemon[1107]: Got SIGTERM, quitting.
Aug 25 21:43:02 orcl avahi-daemon[1107]: Leaving mDNS multicast group on interface virbr0.IPv4 with address 192.168.122.1.
Aug 25 21:43:02 orcl avahi-daemon[1107]: Leaving mDNS multicast group on interface ens192.IPv6 with address fe80::20c:29ff:fe8f:2248.
Aug 25 21:43:02 orcl avahi-daemon[1107]: Leaving mDNS multicast group on interface ens192.IPv4 with address 192.168.31.102.
Aug 25 21:43:02 orcl avahi-daemon[1107]: avahi-daemon 0.7 exiting.
Aug 25 21:43:02 orcl systemd[1]: avahi-daemon.service: Succeeded.
Aug 25 21:43:02 orcl systemd[1]: Stopped Avahi mDNS/DNS-SD Stack.#==============================================================#
配置透明大页 && NUMA && 磁盘 IO 调度器
#==============================================================# args="ro resume=/dev/mapper/ol-swap rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet numa=off transparent_hugepage=never elevator=deadline $tuned_params"
-resume=/dev/mapper/ol-swap
-args="ro
args="ro resume=/dev/mapper/ol-swap rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet numa=off transparent_hugepage=never elevator=deadline $tuned_params"
-elevator=deadline
-transparent_hugepage=never
args="ro resume=/dev/mapper/ol-swap rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet numa=off transparent_hugepage=never elevator=deadline $tuned_params"
-
-#==============================================================#
配置 sysctl.conf
#==============================================================# 查看 sysctl.conf 配置情况 :sysctl -p fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 8317681654
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.min_free_kbytes = 32490
net.ipv4.conf.ens192.rp_filter = 1
vm.swappiness = 10
kernel.panic_on_oops = 1
kernel.randomize_va_space = 2
vm.hugetlb_shm_group = 54321
kernel.numa_balancing = 0#==============================================================#
配置 RemoveIPC
#==============================================================# 查看 RemoveIPC :/etc/systemd/logind.conf RemoveIPC=no
RemoveIPC=no#==============================================================#
配置 /etc/security/limits.conf 和 /etc/pam.d/login
#==============================================================# 查看 /etc/security/limits.conf: oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 16384
oracle hard nproc 16384
oracle hard memlock unlimited
oracle soft memlock unlimited查看 /etc/pam.d/login 文件: auth substack system-auth
auth include postlogin
account required pam_nologin.so
account include system-auth
password include system-auth
session required pam_selinux.so close
session required pam_loginuid.so
session optional pam_console.so
session required pam_selinux.so open
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include system-auth
session include postlogin
-session optional pam_ck_connector.so
session required pam_limits.so#==============================================================#
配置 /dev/shm
#==============================================================# 查看 Linux 挂载情况:/etc/fstab /dev/mapper/ol-root / xfs defaults 0 0
UUID=92390a0d-1af9-4e77-9403-6c705eec2494 /boot xfs defaults 0 0
UUID=D974-8153 /boot/efi vfat umask=0077,shortname=winnt 0 2
/dev/mapper/ol-swap none swap defaults 0 0
tmpfs /dev/shm tmpfs size=8122736k 0 0#==============================================================#
安装 rlwrap 插件
#==============================================================# 成功安装 rlwrap: rlwrap 0.44 #==============================================================#
Root 用户环境变量
#==============================================================# 查看 root 用户环境变量:/root/.bash_profile if [ -f ~/.bashrc ]; then. ~/.bashrc
fi
PATH=$PATH:$HOME/bin
export PATH
alias so='su - oracle'
export PS1=[`whoami`@`hostname`:'$PWD]# '
alias bdf='df -Th'
alias syslog='vi /var/log/messages'#==============================================================#
oracle 用户环境变量,实例名:orcl
#==============================================================# 查看 oracle 用户环境变量:/home/oracle/.bash_profile if [ -f ~/.bashrc ]; then. ~/.bashrc
fi
umask 022
export TMP=/tmp
export TMPDIR=$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/23.5.0/db
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_SID=orcl
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/perl/bin:$PATH
export PERL5LIB=$ORACLE_HOME/perl/lib
alias sas='sqlplus / as sysdba'
alias awr='sqlplus / as sysdba @?/rdbms/admin/awrrpt'
alias ash='sqlplus / as sysdba @?/rdbms/admin/ashrpt'
alias alert='vi $ORACLE_BASE/diag/rdbms/*/$ORACLE_SID/trace/alert_$ORACLE_SID.log'
export PS1="[`whoami`@`hostname`:"'$PWD]$ '
alias bdf='df -Th'
alias acd='cd $ORACLE_BASE/diag/rdbms/*/$ORACLE_SID/trace'
alias dblog='tail -200f $ORACLE_BASE/diag/rdbms/*/$ORACLE_SID/trace/alert_$ORACLE_SID.log'
export CV_ASSUME_DISTID=OL8
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias adrci='rlwrap adrci'#==============================================================#
静默解压 Oracle 软件包
#==============================================================# 正在静默解压缩 Oracle 软件包,请稍等: 静默解压 Oracle 软件安装包: /soft/LINUX.X64_235000_db_home.zip #==============================================================#
Oracle 安装静默文件
#==============================================================# oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v23.0.0
installOption=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/23.5.0/db
installEdition=EE
OSDBA=dba
OSOPER=oper
OSBACKUPDBA=backupdba
OSDGDBA=dgdba
OSKMDBA=kmdba
OSRACDBA=racdba#==============================================================#
静默安装 Oracle 软件命令
#==============================================================# /u01/app/oracle/product/23.5.0/db/runInstaller \
-silent \
-ignorePrereqFailure \
-responseFile /soft/oracle.rsp \
-waitForCompletion #==============================================================#
静默安装数据库软件
#==============================================================# 检查 Oracle 软件 OPacth 版本: OPatch Version: 12.2.0.1.46OPatch succeeded.正在安装 Oracle 软件: Launching Oracle Database Setup Wizard...The response file for this session can be found at:/u01/app/oracle/product/23.5.0/db/install/response/db_2025-08-25_09-44-21PM.rspYou can find the log of this install session at:/tmp/InstallActions2025-08-25_09-44-21PM/installActions2025-08-25_09-44-21PM.logAs a root user, run the following script(s):1. /u01/app/oraInventory/orainstRoot.sh2. /u01/app/oracle/product/23.5.0/db/root.shRun /u01/app/oraInventory/orainstRoot.sh on the following nodes:
[orcl]
Run /u01/app/oracle/product/23.5.0/db/root.sh on the following nodes:
[orcl]Successfully Setup Software.
Moved the install session logs to:/u01/app/oraInventory/logs/InstallActions2025-08-25_09-44-21PM#==============================================================#
执行 root 脚本
#==============================================================# 执行命令:/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.执行命令:/u01/app/oracle/product/23.5.0/db/root.sh Check /u01/app/oracle/product/23.5.0/db/install/root_orcl_2025-08-25_21-47-03-468441092.log for the output of root script#==============================================================#
Oracle 软件版本
#==============================================================# SQL*Plus: Release 23.0.0.0.0 - Production
Version 23.8.0.25.04#==============================================================#
Oracle 补丁信息
#==============================================================# 37701424;OCW RELEASE UPDATE 23.8.0.25.04 (37701424) Gold Image
37701421;Database Release Update : 23.8.0.25.04 (37701421) Gold ImageOPatch succeeded.#==============================================================#
静默安装 Oracle 软件命令
#==============================================================# /u01/app/oracle/product/23.5.0/db/bin/netca -silent \
-responsefile /u01/app/oracle/product/23.5.0/db/assistants/netca/netca.rsp #==============================================================#
创建监听
#==============================================================# 正在创建监听: Parsing command line arguments:Parameter "silent" = trueParameter "responsefile" = /u01/app/oracle/product/23.5.0/db/assistants/netca/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:Running Listener Control: /u01/app/oracle/product/23.5.0/db/bin/lsnrctl start LISTENERListener Control complete.Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0#==============================================================#
检查监听状态
#==============================================================# LSNRCTL for Linux: Version 23.0.0.0.0 - Production on 25-AUG-2025 21:47:13Copyright (c) 1991, 2025, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=orcl)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 23.0.0.0.0 - Production
Start Date 25-AUG-2025 21:47:13
Uptime 0 days 0 hr. 0 min. 1 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/23.5.0/db/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/orcl/listener/alert/log.xml
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orcl)(PORT=1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully#==============================================================#
DBCA 静默建库文件:orcl
#==============================================================# gdbName=orcl
sid=orcl
templateName=General_Purpose.dbc
sysPassword=oracle
systemPassword=oracle
characterSet=AL32UTF8
nationalCharacterSet=AL16UTF16
automaticMemoryManagement=false
totalMemory=6345
initParams=db_block_size=8192BYTES
createAsContainerDatabase=true
databaseConfigType=SI
storageType=FS
datafileDestination=/oradata
recoveryAreaDestination=/oradata
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v23.0.0#==============================================================#
静默创建数据库命令
#==============================================================# /u01/app/oracle/product/23.5.0/db/bin/dbca -silent -createDatabase \
-responseFile /soft/db.rsp \
-ignorePreReqs \
-ignorePrereqFailure \
-J-Doracle.assistants.dbca.validate.ConfigurationParams=false \
-initParams _exadata_feature_on=true #==============================================================#
创建数据库实例:orcl
#==============================================================# 正在创建数据库:orcl [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 passwordACTION: 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 passwordACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
Prepare for db operation
10% complete
Copying database files
40% complete
Creating and starting Oracle instance
42% complete
46% complete
50% complete
54% complete
60% complete
Completing Database Creation
66% complete
69% complete
70% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:/u01/app/oracle/cfgtoollogs/dbca/orcl.
Database Information:
Global Database Name:orcl
System Identifier(SID):orcl
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log" for further details.#==============================================================#
创建 PDB 数据库
#==============================================================# 正在创建 PDB:pdb01 CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB01 READ WRITE NO#==============================================================#
配置 Oracle 数据库控制文件复用
#==============================================================# 数据库控制文件: NAME
----------------------------------------------------------------------------------------------------
/oradata/ORCL/control01.ctl
/oradata/ORCL/control02.ctl#==============================================================#
配置在线重做日志
#==============================================================# THREAD# GROUP# MEMBER size(M)
---------- ---------- -------------------------------------------------------------------------------- ----------1 1 /oradata/ORCL/redo01.log 10241 2 /oradata/ORCL/redo02.log 10241 3 /oradata/ORCL/redo03.log 10241 4 /oradata/ORCL/redo04.log 10241 5 /oradata/ORCL/redo05.log 10241 6 /oradata/ORCL/redo06.log 10241 7 /oradata/ORCL/redo07.log 10241 8 /oradata/ORCL/redo08.log 1024#==============================================================#
配置 Oracle 数据库开机自启
#==============================================================# 数据库开机自启配置: touch /var/lock/subsys/local
su oracle -lc "/u01/app/oracle/product/23.5.0/db/bin/lsnrctl start"
su oracle -lc "/u01/app/oracle/product/23.5.0/db/bin/dbstart"#==============================================================#
配置 RMAN 备份任务
#==============================================================# # OracleBegin
00 02 * * * /home/oracle/scripts/del_arch_orcl.sh
#00 00 * * 0 /home/oracle/scripts/dbbackup_lv0_orcl.sh
#00 00 * * 1,2,3,4,5,6 /home/oracle/scripts/dbbackup_lv1_orcl.sh#==============================================================#
优化数据库参数
#==============================================================# 数据库参数: NAME SID SPVALUE VALUE
-------------------------------------------------- ---------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
_b_tree_bitmap_plans * FALSE FALSE
_datafile_write_errors_crash_instance * FALSE FALSE
_exadata_feature_on * true TRUE
audit_trail * NONE NONE
compatible * 23.6.0 23.6.0
control_file_record_keep_time * 31 31
db_block_size * 8192 8192
db_create_file_dest * /oradata /oradata
db_file_multiblock_read_count * 128
db_files * 5000 200
db_name * orcl orcl
db_writer_processes * 1
deferred_segment_creation * FALSE FALSE
diagnostic_dest * /u01/app/oracle /u01/app/oracle
dispatchers * (PROTOCOL=TCP) (SERVICE=orclXDB) (PROTOCOL=TCP) (SERVICE=orclXDB)
enable_pluggable_database * true TRUE
event * 10949 trace name context forever,level 1
event * 28401 trace name context forever,level 1
fast_start_parallel_rollback * LOW
log_archive_dest_1 * location=/oradata/archivelog location=/oradata/archivelog
log_archive_format * %t_%s_%r.dbf %t_%s_%r.dbf
max_dump_file_size * 1G
max_string_size * STANDARD
nls_language * AMERICAN AMERICAN
nls_territory * AMERICA AMERICA
open_cursors * 1000 300
optimizer_adaptive_plans * TRUE
optimizer_adaptive_statistics * FALSE
optimizer_index_caching * 0
optimizer_mode * ALL_ROWS
parallel_force_local * FALSE
parallel_max_servers * 64 64
pga_aggregate_target * 1330642944 1664090112
processes * 2000 640
remote_login_passwordfile * EXCLUSIVE EXCLUSIVE
session_cached_cursors * 300 50
sessions * 984
sga_max_size * 5322571776 4999610368
sga_target * 5322571776 4999610368
spfile * /u01/app/oracle/product/23.5.0/db/dbs/spfileorcl.ora
statistics_level * TYPICAL
undo_retention * 10800 900#==============================================================#
配置 glogin.sql
#==============================================================# define _editor=vi
set serveroutput on size 1000000
set trimspool on
set long 5000
set linesize 100
set pagesize 9999
column plan_plus_exp format a80
set sqlprompt '&_user.@&_connect_identifier. SQL> '
有心人可以根据我的安装日志就可以完成手动静默安装 Oracle 23ai 啦!
写在最后
其实 Oracle 23ai RAC 一键安装我已经测试完了,但是没时间整理文章,等我有时间整理好了就发出来!886~