数据库教程FGMT21‑Oracle RAC+DG生产实战(1):Oracle19c/26ai for RHEL8/9安装配置+补丁
数据库教程FGMT21‑Oracle RAC+DG生产实战(1):Oracle19c/26ai for RHEL8/9安装配置+补丁
>
> 说明:本套风哥教程本章为两套**单机单实例**独立环境部署实战,非RAC集群;第一套环境:Oracle19c部署于主机`fgedu‑net‑cn1`,操作系统RHEL8;第二套环境:Oracle26ai(AI Database)部署于主机`fgedu‑net‑cn2`,操作系统RHEL9,26ai采用传统zip介质,**不使用Gold‑Image镜像模式**;两套环境硬件规格均为64G内存,8颗CPU,两套环境相互独立,无依赖关系。
## 前言
Oracle单机单实例数据库是企业IT架构里面最基础、使用范围最广的数据库部署形态。Oracle19c作为长期支持LTS版本,稳定性成熟,大量政企核心业务都在使用;Oracle26ai(AI Database)是Oracle新一代数据库产品,内置向量检索、AI大模型适配相关能力,目前多用于技术预研与新业务试点。单机数据库的操作系统标准化预配置、二进制软件部署、CDB/PDB容器数据库创建、监听配置、归档闪回开启、RU季度补丁升级、补丁回退,是DBA必须掌握的基础核心能力。操作系统内核参数不合理、资源限制配置错误、补丁操作流程失误,都会直接引发数据库启动失败、性能抖动、业务报错等严重生产故障。风哥教程本文分别针对两套独立单机环境完成完整实施讲解,为本套教程后续DataGuard容灾、数据迁移、性能调优打下坚实基础。风哥 itpux‑com
本套风哥教程面向DBA、运维实施工程师、数据库架构师;两套独立实验环境:
环境一:主机`fgedu‑net‑cn1`,RHEL8,Oracle19c单机,硬件64G内存8CPU,数据库SID:`fgedudb`,数据库名`fgedudb`,业务测试用户名`fgedu`,根目录统一`/fgedudb`;
环境二:主机`fgedu‑net‑cn2`,RHEL9,Oracle26ai单机(传统zip介质,不使用Gold Image),硬件64G内存8CPU,数据库SID:`fgedudb`,数据库名`fgedudb`,业务测试用户名`fgedu`,根目录统一`/fgedudb`;
风哥教程本文分为前言与大纲、核心理论知识、实战操作演练、风哥针对本文总结四大模块;实战包含大量可直接复制shell与SQL脚本,读者可以在两套独立测试主机完整复现整套部署与补丁升级全流程。网上搜索风哥教程可以学习全套数据库教程
### 内容大纲
1. Oracle单机单实例项目整体规划,两套独立环境硬件、存储、操作系统说明,19c与26ai版本定位与核心差异
2. 单机数据库操作系统部署理论:内核参数、资源限制、swap配置、透明大页关闭、chrony时间同步、软件目录OFA规范
3. Oracle软件目录体系:ORACLE_BASE、ORACLE_HOME、oraInventory库存目录、数据文件、快速恢复区FRA作用与权限规范
4. Oracle补丁体系理论:OPatch工具、RU/RUR季度补丁概念、datapatch字典升级、补丁回退原理与风险约束
5. CDB/PDB容器数据库基础理论,单机环境容器架构使用场景与约束
6. 环境一实战:Oracle19c单机RHEL8完整部署,操作系统配置、zip介质软件静默部署、监听配置、DBCA静默创建CDB/PDB数据库
7. Oracle19c单机后期配置:启停操作、日志检查、PDB管理、归档模式开启、闪回特性配置
8. Oracle19c单机RU补丁完整实操:补丁预检查、应用RU补丁、datapatch字典升级、补丁回退完整流程
9. 环境二实战:Oracle26ai单机RHEL9完整部署,传统zip介质不使用Gold Image,操作系统依赖配置、软件部署、DBCA建库
10. Oracle26ai单机后期运维、补丁操作、版本特有注意事项
11. 单机数据库上线前完整验收检查清单,部署与补丁阶段高频报错故障分析
## 一、核心理论知识
本章节为本套风哥教程理论基础,理解单机数据库软件目录结构、操作系统约束、补丁体系原理,能够规避部署阶段埋下长期生产隐患。风哥教程 113257174
### 1.1 Oracle19c与Oracle26ai版本定位差异
1. **Oracle19c**:企业主流LTS长期支持版本,官方认证操作系统RHEL8;支持传统zip介质就地部署,支持in‑place就地打RU补丁;产品成熟稳定,广泛用于政企核心生产业务。
2. **Oracle26ai(AI Database)**:Oracle新一代AI数据库,官方主推RHEL9操作系统,内置向量数据库、大模型适配能力;官方优先推荐Gold Image镜像部署模式,**本教程使用传统zip介质部署,不启用Gold Image**;部分系统依赖包要求相比19c版本有调整,适合技术预研、新业务试点,核心业务上线前需要完成充分业务兼容性测试。
>
> 版本选型提示:已上线核心生产业务优先选择Oracle19c;26ai适合做技术预研、新业务试点,不建议直接未做充分测试就替换现有核心业务系统。网上搜索风哥教程可以学习全套数据库教程
### 1.2 单机数据库操作系统核心约束
单机数据库虽然没有RAC集群节点互联需求,但操作系统配置对数据库稳定性起到决定性的作用。
1. **内存与Swap**:单台主机物理内存64G,Oracle分配SGA+PGA合计48G;按照Oracle官方规范,物理内存大于16GB时swap设置16GB;`vm.swappiness`建议设置10,尽可能减少swap交换抖动,swap频繁交换会直接引发数据库性能剧烈抖动。
2. **透明大页Transparent HugePages**:Oracle强烈建议关闭透明大页,透明大页会带来内存分配延迟,引发数据库业务随机性能抖动。
3. **资源限制limits.conf**:oracle用户的nofile、nproc、stack限制不足,数据库高并发业务场景会报`ORA‑27104`、`ORA‑24920`等错误,导致新连接无法创建。
4. **时间同步chrony**:单机环境同样需要统一时间;RMAN备份恢复、LogMiner日志挖掘、闪回查询、AWR时间统计全部依赖系统时间准确性,禁止主机同时启用多套NTP服务,避免时间跳变。
5. **文件系统权限**:`ORACLE_BASE`、`ORACLE_HOME`目录所有者必须为`oracle:oinstall`;oraInventory全局库存目录权限一旦被破坏,后续补丁、版本升级操作会直接失败。风哥数据库教程 itpux‑com
### 1.3 Oracle OFA目录结构理论说明(两套环境统一规范)
1. **ORACLE_BASE**:`/fgedudb/app/oracle`,软件根目录,存放告警日志、trace诊断trace文件、快速恢复区FRA;
2. **ORACLE_HOME**:`/fgedudb/app/oracle/product/19.0.0/dbhome_1`(19c);`/fgedudb/app/oracle/product/26.0.0/dbhome_1`(26ai),数据库二进制可执行程序目录;不同大版本数据库使用独立home目录。
3. **oraInventory**:`/fgedudb/app/oraInventory`,Oracle全局软件库存,记录主机上面所有安装过的Oracle软件home信息;补丁、升级流程会读取该库存,该目录权限不可被随意修改、删除。
4. **数据文件目录**:`/fgedudb/oradata/fgedudb`,存放CDB、PDB数据文件、redo联机日志、控制文件;
5. **快速恢复区FRA**:`/fgedudb/fast_recovery_area/fgedudb`,归档日志、RMAN备份集、闪回日志存放目录。
>
> 生产规范:软件目录与数据文件目录尽量部署在不同物理磁盘,防止数据磁盘占满同时把软件目录写满,导致数据库无法正常运行。网上搜索风哥教程可以学习全套数据库教程
### 1.4 OPatch、RU、RUR补丁体系理论
1. **RU Release Update**:季度更新补丁,包含BUG修复、安全漏洞修复;单机环境打RU补丁需要关闭数据库实例与监听,属于停机补丁操作。
2. **RUR Release Update Revision**:RU的月度小修订补丁,基于对应RU版本之上做问题修复。
3. **OPatch**:Oracle二进制补丁工具,操作ORACLE_HOME二进制文件;`opatch lsinventory`命令查看已经安装补丁清单。
4. **datapatch工具**:二进制补丁应用完成之后,datapatch负责执行数据库内部数据字典升级;CDB容器环境会自动遍历所有PDB执行补丁脚本;**单机打完RU补丁,必须执行datapatch,补丁才完整生效,只替换二进制不执行datapatch会出现字典与二进制版本不一致,引发大量ORA报错**。
5. **补丁回退**:`opatch rollback`可以回退已经应用的RU补丁,回退完成之后同样需要再次运行datapatch回退字典变更。
>
> 重要风险提示:不要直接拷贝其他主机的ORACLE_HOME目录,oraInventory库存信息会不一致,后续补丁升级会出现严重异常;补丁操作前务必备份ORACLE_HOME目录,同时做数据库全量RMAN备份,保留完整回退手段。
### 1.5 CDB与PDB单机容器数据库概念
Oracle19c、26ai默认创建CDB容器数据库:CDB$ROOT(ROOT根容器,PDB)PDB$SEED种子PDB,可以创建业务PDB`fgedu_pdb`;业务用户`fgedu`创建在PDB内部。单机单实例环境不使用GI集群件,ASM存储属于可选项,本教程两套环境全部使用文件系统存储演示。
### 1.6 部署上线前验收关键点
部署完成不能仅仅验证数据库可以启动;需要核查内核参数、资源限制、补丁版本、数据库无效对象、监听状态、字符集、系统时间、告警日志无ORA报错;归档、闪回、备份策略完成配置,才算完整部署完成。
上51CTO搜索风哥可以学习全套数据库教程
## 二、实战操作演练
>
> 说明:
> 环境一:`fgedu‑net‑cn1`主机,RHEL8 + Oracle19c单机,64G内存8CPU,SID=`fgedudb`;
> 环境二:`fgedu‑net‑cn2`主机,RHEL9 + Oracle26ai单机(zip传统介质,不使用Gold Image),64G内存8CPU,SID=`fgedudb`;
> 操作系统配置全部root用户执行;数据库软件部署、数据库操作使用oracle用户;两套环境操作完全独立,互不影响。
# 第一部分 环境一:Oracle19c单机 RHEL8 完整部署
## 2.1 操作系统环境校验与标准化配置(主机fgedu‑net‑cn1 root用户执行)
### 2.1.1 硬件环境检查
“`
#确认主机名称
hostname
#确认内存、CPU资源,64G内存,8逻辑CPU
free -h
lscpu
#操作系统版本确认
cat /etc/redhat‑release
#查看swap分区
cat /proc/swaps
#确认透明大页状态
cat /sys/kernel/mm/transparent_hugepage/enabled
#chrony时间同步状态
chronyc sources
“`
校验输出:hostname输出`fgedu‑net‑cn1`,总内存64G,逻辑CPU数量8颗。
### 2.1.2 安装oracle预安装rpm包
“`
yum install -y oracle‑database‑preinstall‑19c
“`
>
> 该预安装rpm会自动完成部分内核参数、用户组、资源限制基础配置,后续我们再手工微调参数适配64G内存8CPU生产规格。
### 2.1.3 创建操作系统用户与用户组
“`
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 asmadmin
groupadd -g 54326 asmdba
groupadd -g 54327 asmoper
useradd -u 54321 -g oinstall -G dba,oper,asmdba oracle
echo “oracle” | passwd –stdin oracle
“`
### 2.1.4 创建全套OFA规范目录
“`
mkdir -p /fgedudb/app/oracle
mkdir -p /fgedudb/app/oracle/product/19.0.0/dbhome_1
mkdir -p /fgedudb/app/oraInventory
mkdir -p /fgedudb/oradata/fgedudb
mkdir -p /fgedudb/fast_recovery_area/fgedudb
mkdir -p /fgedudb/media
chown -R oracle:oinstall /fgedudb
chmod -R 775 /fgedudb
“`
### 2.1.5 内核参数配置 /etc/sysctl.conf
追加下面参数,适配64G内存8CPU生产规格
“`
cat >> /etc/sysctl.conf <<EOF
fs.aio‑max‑nr=1048576
fs.file‑max=6815744
kernel.sem=250 32000 100 128
kernel.shmmni=4096
kernel.shmall=8388608
kernel.shmmax=34359738368
net.ipv4.ip_local_port_range=9000 65500
net.rmem_default=262144
net.wmem_default=262144
net.rmem_max=4194304
net.wmem_max=4194304
net.core.rmem_max=4194304
net.core.wmem_max=4194304
vm.swappiness=10
EOF
sysctl -p
“`
### 2.1.6 用户资源限制配置 /etc/security/limits.conf
“`
cat >> /etc/security/limits.conf <<EOF
oracle soft nofile 10240
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
EOF
“`
### 2.1.7 关闭透明大页,chrony时间同步配置
“`
#关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
#写入grub配置永久关闭,重启生效
grubby –update‑kernel‑args=transparent_hugepage=never
#chrony时间同步
systemctl enable –now chronyd
chronyc -a burst 4/4
#防火墙、selinux配置
systemctl disable firewalld
systemctl stop firewalld
sed -i ‘s/^SELINUX=.*/SELINUX=permissive/’ /etc/selinux/config
setenforce 0
“`
### 2.1.8 oracle用户环境变量配置
切换oracle用户,编辑`~/.bash_profile`
“`
su – oracle
cat >> ~/.bash_profile <<‘EOF’
export ORACLE_BASE=/fgedudb/app/oracle
export ORACLE_HOME=/fgedudb/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=fgedudb
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
EOF
source ~/.bash_profile
echo $ORACLE_HOME
“`
## 2.2 Oracle19c二进制软件zip介质静默部署(oracle用户)
把LINUX.X64_193000_db_home.zip介质上传至`/fgedudb/media`
“`
su – oracle
cd /fgedudb/media
unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
cd $ORACLE_HOME
#执行安装前预检查
./runInstaller -executePrereqs
“`
预检查输出修复全部ERROR级别的报错;预检查通过后执行静默软件安装。
“`
./runInstaller -silent -ignorePrereq \
ORACLE_BASE=/fgedudb/app/oracle \
ORACLE_HOME=/fgedudb/app/oracle/product/19.0.0/dbhome_1 \
oracle.install.option=INSTALL_DB_SWONLY \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSOPER_GROUP=oper \
oracle.install.db.OSBACKUPDBA_GROUP=dba \
oracle.install.db.OSDGDBA_GROUP=dba \
oracle.install.db.OSKMDBA_GROUP=dba \
oracle.install.db.OSRACDBA_GROUP=dba \
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
“`
软件安装结束,**切换root用户执行两个root脚本**
“`
su – root
/fgedudb/app/oracle/product/19.0.0/dbhome_1/root.sh
/fgedudb/app/oraInventory/orainstRoot.sh
“`
## 2.3 配置监听,DBCA静默创建CDB/PDB数据库(oracle用户)
### 2.3.1 netca静默配置监听
“`
su – oracle
netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp
“`
验证监听状态
“`
lsnrctl status
“`
### 2.3.2 dbca静默创建CDB容器数据库,创建业务PDB fgedu_pdb
“`
dbca -silent -createDatabase \
‑templateName General_Purpose.dbc \
‑gdbName fgedudb ‑sid fgedudb \
‑characterSet AL32UTF8 \
‑sysPassword fgedudb ‑systemPassword fgedudb \
‑createAsContainerDatabase true \
‑numberOfPDBs 1 \
‑pdbName fgedu_pdb \
‑pdbAdminPassword fgedudb \
‑databaseType MULTIPURPOSE \
‑memoryMgmtType auto_sga \
‑totalMemory 49152 \
‑storageType FS \
‑datafileDestination “/fgedudb/oradata/fgedudb” \
‑redoLogFileSize 200 \
‑recoveryAreaDestination “/fgedudb/fast_recovery_area/fgedudb” \
‑emConfiguration NONE
“`
>
> totalMemory设置49152MB,对应48G内存,适配64G主机硬件规格。网上搜索风哥教程可以学习全套数据库教程
### 2.3.3 数据库基础登录验证,PDB打开与保存状态
“`
sqlplus / as sysdba
show pdbs;
alter pluggable database all open;
alter pluggable database all save state;
–切换PDB,创建业务用户fgedu
alter session set container=fgedu_pdb;
create user fgedu identified by fgedudb default tablespace users temporary tablespace temp;
grant connect,resource,select_catalog_role to fgedu;
alter session set container=cdb$root;
exit;
“`
## 2.4 Oracle19c单机数据库后期配置操作
### 2.4.1 数据库启停脚本示例
“`
#启动数据库
sqlplus / as sysdba <<EOF
startup;
exit;
EOF
lsnrctl start
#停止数据库
sqlplus / as sysdba <<EOF
shutdown immediate;
exit;
EOF
lsnrctl stop
“`
### 2.4.2 开启归档模式,开启闪回数据库
“`
sqlplus / as sysdba
shutdown immediate;
startup mount;
alter database archivelog;
alter database flashback on;
alter database open;
–查看归档状态
archive log list;
select flashback_on from v$database;
exit;
“`
### 2.4.3 查看数据库告警日志位置
“`
select value from v$diag_info where name=’Diag Trace’;
“`
## 2.5 Oracle19c RU补丁完整实操流程(停机打补丁)
>
> 重要:打补丁前做全库RMAN备份,备份ORACLE_HOME目录;关闭监听、关闭数据库实例。
1. 上传RU补丁介质到`/fgedudb/media/patch`;
2. 升级OPatch工具版本;
“`
su – oracle
cd /fgedudb/media/patch
unzip p6880880_190000_Linux‑x86‑64.zip -d $ORACLE_HOME
cd $ORACLE_HOME/OPatch
./opatch version
“`
3. 关闭数据库与监听
“`
lsnrctl stop
sqlplus / as sysdba <<EOF
shutdown immediate;
exit;
EOF
“`
4. 解压RU补丁包,执行补丁预检查
“`
cd /fgedudb/media/patch
unzip p37642901_190000_Linux‑x86‑64.zip
cd $ORACLE_HOME/OPatch
./opatch prereq CheckConflictAgainstOHWithDetail -ph /fgedudb/media/patch/37642901
“`
预检查无冲突,执行opatch apply应用二进制补丁
“`
./opatch apply /fgedudb/media/patch/37642901
“`
5. 补丁二进制应用完成,启动监听、启动数据库实例
“`
lsnrctl start
sqlplus / as sysdba <<EOF
startup;
exit;
EOF
“`
6. 执行datapatch完成数据字典补丁升级
“`
cd $ORACLE_HOME/OPatch
./datapatch -verbose
“`
7. 编译无效对象
“`
sqlplus / as sysdba
@?/rdbms/admin/utlrp.sql
select owner,object_name,object_type,status from dba_objects where status=’INVALID’;
exit;
“`
8. 查看已经安装补丁清单
“`
cd $ORACLE_HOME/OPatch
./opatch lsinventory
“`
### 2.5.1 RU补丁回退实操(出现异常时执行)
“`
lsnrctl stop
sqlplus / as sysdba <<EOF
shutdown immediate;
exit;
EOF
cd $ORACLE_HOME/OPatch
./opatch rollback -id 37642901
lsnrctl start
sqlplus / as sysdba <<EOF
startup;
exit;
EOF
cd $ORACLE_HOME/OPatch
./datapatch -verbose
@?/rdbms/admin/utlrp.sql
“`
风哥数据库教程 itpux‑com
# 第二部分 环境二:Oracle26ai单机 RHEL9完整部署(主机fgedu‑net‑cn2,传统zip介质,不使用Gold Image)
>
> 主机`fgedu‑net‑cn2`,RHEL9,64G内存8CPU,完全独立环境,不依赖19c环境。
## 2.6 操作系统环境校验与标准化配置(root用户)
### 2.6.1硬件、操作系统基础检查
“`
hostname
free -h
lscpu
cat /etc/redhat‑release
cat /proc/swaps
cat /sys/kernel/mm/transparent_hugepage/enabled
chronyc sources
“`
输出hostname为`fgedu‑net‑cn2`,总内存64G,逻辑CPU8颗。
### 2.6.2 安装Oracle26ai预安装rpm包
“`
dnf install -y oracle‑ai‑database‑preinstall‑26ai
“`
### 2.6.3 创建操作系统用户与用户组
“`
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 asmadmin
groupadd -g 54326 asmdba
groupadd -g 54327 asmoper
useradd -u 54321 -g oinstall -G dba,oper,asmdba oracle
echo “oracle” | passwd –stdin oracle
“`
### 2.6.4 OFA目录创建
“`
mkdir -p /fgedudb/app/oracle
mkdir -p /fgedudb/app/oracle/product/26.0.0/dbhome_1
mkdir -p /fgedudb/app/oraInventory
mkdir -p /fgedudb/oradata/fgedudb
mkdir -p /fgedudb/fast_recovery_area/fgedudb
mkdir -p /fgedudb/media
chown -R oracle:oinstall /fgedudb
chmod -R 775 /fgedudb
“`
### 2.6.5 RHEL9内核参数配置 /etc/sysctl.conf
“`
cat >> /etc/sysctl.conf <<EOF
fs.aio‑max‑nr=1048576
fs.file‑max=6815744
kernel.sem=250 32000 100 128
kernel.shmmni=4096
kernel.shmall=8388608
kernel.shmmax=34359738368
net.ipv4.ip_local_port_range=9000 65500
net.rmem_default=262144
net.wmem_default=262144
net.rmem_max=4194304
net.wmem_max=4194304
net.core.rmem_max=4194304
net.core.wmem_max=4194304
vm.swappiness=10
EOF
sysctl -p
“`
### 2.6.6 limits.conf资源限制、关闭透明大页、chrony时间同步
“`
cat >> /etc/security/limits.conf <<EOF
oracle soft nofile 10240
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
EOF
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
grubby –update‑kernel‑args=transparent_hugepage=never
systemctl enable –now chronyd
chronyc -a burst 4/4
systemctl disable firewalld
systemctl stop firewalld
sed -i ‘s/^SELINUX=.*/SELINUX=permissive/’ /etc/selinux/config
setenforce 0
“`
### 2.6.7 oracle用户环境变量配置
“`
su – oracle
cat >> ~/.bash_profile <<‘EOF’
export ORACLE_BASE=/fgedudb/app/oracle
export ORACLE_HOME=/fgedudb/app/oracle/product/26.0.0/dbhome_1
export ORACLE_SID=fgedudb
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
EOF
source ~/.bash_profile
echo $ORACLE_HOME
“`
## 2.7 Oracle26ai传统zip介质软件部署(不使用Gold Image)
上传26ai db_home.zip介质到`/fgedudb/media`
“`
su – oracle
cd /fgedudb/media
unzip LINUX.X64_260000_db_home.zip -d $ORACLE_HOME
cd $ORACLE_HOME
./runInstaller -executePrereqs
“`
修复预检查报错,执行静默软件安装
“`
./runInstaller -silent -ignorePrereq \
ORACLE_BASE=/fgedudb/app/oracle \
ORACLE_HOME=/fgedudb/app/oracle/product/26.0.0/dbhome_1 \
oracle.install.option=INSTALL_DB_SWONLY \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSOPER_GROUP=oper
“`
软件安装完成切换root执行root脚本
“`
su – root
/fgedudb/app/oracle/product/26.0.0/dbhome_1/root.sh
/fgedudb/app/oraInventory/orainstRoot.sh
“`
## 2.8 Oracle26ai监听配置、DBCA静默创建CDB/PDB数据库
“`
su – oracle
netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp
lsnrctl status
“`
dbca静默建库,总内存48G
“`
dbca -silent -createDatabase \
‑templateName General_Purpose.dbc \
‑gdbName fgedudb ‑sid fgedudb \
‑characterSet AL32UTF8 \
‑sysPassword fgedudb ‑systemPassword fgedudb \
‑createAsContainerDatabase true \
‑numberOfPDBs 1 \
‑pdbName fgedu_pdb \
‑pdbAdminPassword fgedudb \
‑databaseType MULTIPURPOSE \
‑memoryMgmtType auto_sga \
‑totalMemory 49152 \
‑storageType FS \
‑datafileDestination “/fgedudb/oradata/fgedudb” \
‑redoLogFileSize 200 \
‑recoveryAreaDestination “/fgedudb/fast_recovery_area/fgedudb” \
‑emConfiguration NONE
“`
### 2.8.1 26ai数据库初始化验证,创建业务用户
“`
sqlplus / as sysdba
show pdbs;
alter pluggable database all open;
alter pluggable database all save state;
alter session set container=fgedu_pdb;
create user fgedu identified by fgedudb default tablespace users temporary tablespace temp;
grant connect,resource,select_catalog_role to fgedu;
alter session set container=cdb$root;
–开启归档、闪回
shutdown immediate;
startup mount;
alter database archivelog;
alter database flashback on;
alter database open;
archive log list;
exit;
“`
## 2.9 Oracle26ai补丁简要说明
Oracle26ai虽然官方主推Gold Image镜像,本教程zip传统介质依然支持opatch就地打RU补丁;操作流程大体与19c保持一致,但部分opatch参数有变更,打补丁前务必阅读对应版本RU的README说明文档;补丁完成同样必须执行datapatch。网上搜索风哥教程可以学习全套数据库教程
## 2.10 单机数据库上线验收检查清单
两套环境部署完成之后,需要执行下面全套检查,确认部署合格,可以进入测试或者生产使用。
1. 操作系统层面:hostname正确,内存CPU识别正确,swap配置合理,透明大页关闭,chrony时间同步正常;sysctl内核参数、limits资源限制核对无误;
2. Oracle软件:`opatch lsinventory`核对补丁版本;oraInventory目录权限正确;环境变量配置正确;
3. 数据库层面:监听正常启动;数据库实例正常open;所有PDB open;PDB save state配置;字符集AL32UTF8;
4. 归档模式开启,FRA快速恢复区配置正常;闪回数据库按需开启;
5. 告警日志检查,无持续ORA错误;查询无效对象,编译完成;
6. 业务用户fgedu可以正常登录PDB,执行简单查询;
7. 启停脚本测试,数据库可以正常shutdown immediate、startup;
8. 完成一次RMAN全库备份,备份集验证可用;
9. 记录版本信息,编写部署文档,记录回退方案。
## 2.11 部署阶段高频报错故障分析
1. runInstaller预检查报错:缺少系统包、内核参数不达标,按照输出修复;RHEL8/9优先使用oracle‑database‑preinstall‑19c / oracle‑ai‑database‑preinstall‑26ai预安装rpm;
2. dbca建库失败:目录权限不对,磁盘空间不足;查看$ORACLE_HOME/cfgtoollogs/dbca下面日志定位;
3. 监听无法启动:/etc/hosts主机名解析异常;
4. datapatch执行报错:数据库没有完全open;二进制补丁版本和数据库版本不匹配;查看datapatch输出日志;
5. opatch apply补丁冲突:执行opatch prereq预检查,根据MOS文档处理补丁冲突;
6. PDB重启后mount:没有执行`alter pluggable database xxx save state;`保存PDB状态。
上51CTO搜索风哥可以学习全套数据库教程
## 三、风哥针对本文总结
本套风哥教程完整完成两套独立单机环境实战:第一套Oracle19c部署于RHEL8主机`fgedu‑net‑cn1`,第二套Oracle26ai(传统zip介质,不使用Gold Image)部署于RHEL9主机`fgedu‑net‑cn2`;覆盖OFA目录规范、操作系统内核参数、资源限制、时间同步、透明大页关闭、zip介质软件静默部署、netca监听配置、DBCA静默创建CDB/PDB容器数据库、归档闪回配置、RU补丁完整流程、datapatch字典升级、补丁回退、上线验收清单与部署阶段故障分析。
1. Oracle19c作为成熟LTS版本,适合核心生产业务;Oracle26ai为新一代AI数据库,本教程采用传统zip介质部署,不使用官方主推Gold Image镜像,适合技术预研;两套单机环境硬件规格均按照64G内存8CPU配置,SGA+PGA合计分配48G内存。
2. 操作系统配置是数据库稳定运行根基,swap、vm.swappiness、透明大页、limits.conf资源限制、chrony时间同步是重中之重;透明大页必须关闭,否则会带来随机性能抖动;时间同步异常会导致AWR、闪回、RMAN备份恢复功能异常。
3. OFA目录规范需要严格遵守,`oraInventory`全局库存目录权限不能随意修改删除,一旦损坏,后续补丁、升级操作会直接失败;禁止直接拷贝其他主机ORACLE_HOME目录来迁移软件。
4. RU季度补丁属于停机补丁,单机打补丁完整流程:升级opatch版本→关闭数据库与监听→opatch apply应用二进制补丁→启动数据库→**执行datapatch完成数据字典升级**→编译无效对象;datapatch步骤不可省略,否则二进制版本和数据库字典版本不一致,会出现大量ORA异常报错;补丁前务必备份ORACLE_HOME目录,同时做数据库RMAN全量备份,保留完整回退手段。
5. CDB/PDB容器架构单机环境,PDB实例重启后默认mount,必须执行`alter pluggable database xxx save state;`保存状态,实例重启PDB自动open;业务用户应当创建在业务PDB内部,不建议在CDB$ROOT根容器创建业务应用账号。
6. 数据库部署完成不等于项目结束,必须执行上线完整验收清单,核查操作系统、软件、数据库、告警日志、备份可用性;不能仅仅只验证数据库可以启动;上线前完整演练启停操作,记录回退方案。
7. Oracle26ai虽然支持传统zip介质部署,但官方生产环境优先推荐Gold Image镜像模式;传统zip模式适合测试、预研,生产上线前仔细阅读对应版本RU补丁的README文档,26ai部分opatch行为对比19c存在细微差异。
8. 本套风哥教程两套单机环境,为后续DG容灾、数据迁移、性能调优打下基础;全部shell与SQL脚本建议读者在两套独立测试主机完整复现,理解部署与补丁风险,之后再应用到真实项目实施工作。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
