ITPub博客

首页 > 数据库 > Oracle > 数据库教程FGMT21‑Oracle RAC+DG生产实战(1):Oracle19c/26ai安装配置+补丁

数据库教程FGMT21‑Oracle RAC+DG生产实战(1):Oracle19c/26ai安装配置+补丁

原创 Oracle 作者:mfkqwyc86 时间:2026-09-16 10:57:47 0 删除 编辑

数据库教程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配置yj关闭,重启生效

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脚本建议读者在两套独立测试主机完整复现,理解部署与补丁风险,之后再应用到真实项目实施工作。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9664900/viewspace-3182507/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
风哥Oracle,MySQL,PostgreSQL,Linux,大数据,国产数据库,中间件等教程

注册时间:2010-10-26

  • 博文量
    68
  • 访问量
    406019