1. 首页 > Oracle教程 > 正文

Oracle教程FG454-DBUA升级

本文档风哥主要介绍Oracle DBUA升级相关知识,包括DBUA升级的概念、DBUA升级组成、DBUA升级使用、DBUA升级配置、DBUA升级监控、DBUA升级故障处理等内容,由风哥教程参考Oracle官方文档Install and Upgrade内容编写,适合DBA人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。

Part01-基础概念与理论知识

1.1 DBUA升级的概念

Oracle DBUA(Database Upgrade Assistant)是Oracle提供的图形化数据库升级工具。DBUA可以自动完成数据库升级的大部分工作,包括预升级检查、升级执行、升级后验证等。DBUA是推荐的升级方式,特别适合初学者使用。更多视频教程www.fgedu.net.cn

Oracle DBUA的特点:

  • 图形化界面:提供图形化操作界面
  • 自动检查:自动执行预升级检查
  • 自动升级:自动执行升级过程
  • 自动验证:自动验证升级结果
  • 回滚支持:支持升级回滚

1.2 DBUA升级组成

Oracle DBUA升级组成:

  • 预升级检查:自动检查升级前提条件
  • 升级选项:配置升级选项
  • 升级执行:自动执行升级过程
  • 升级验证:自动验证升级结果
  • 升级报告:生成升级报告
# DBUA升级组成说明

1. 预升级检查
– 自动检查升级前提条件
– 检查数据库配置
– 检查组件状态
– 检查参数设置
– 检查空间使用

2. 升级选项
– 配置升级选项
– 选择升级方式
– 配置并行度
– 配置备份选项
– 配置回滚选项

3. 升级执行
– 自动执行升级过程
– 执行预升级修复
– 执行数据库升级
– 执行升级后修复
– 执行对象编译

4. 升级验证
– 自动验证升级结果
– 验证数据库版本
– 验证组件状态
– 验证对象状态
– 验证功能正常

5. 升级报告
– 生成升级报告
– 记录升级过程
– 记录升级结果
– 记录问题修复
– 记录建议事项

1.3 DBUA升级使用

Oracle DBUA升级使用:

  • 图形化升级:使用图形化界面升级
  • 静默升级:使用静默模式升级
  • 单实例升级:升级单实例数据库
  • RAC升级:升级RAC数据库
  • 容器数据库升级:升级容器数据库
风哥提示:DBUA是推荐的升级方式,建议掌握DBUA使用方法。

Part02-生产环境规划与建议

2.1 DBUA升级规划

Oracle DBUA升级规划要点:

# DBUA升级规划
– 升级评估:评估升级的必要性和可行性
– 升级准备:准备升级所需资源
– 升级测试:在测试环境中测试
– 升级执行:执行升级过程

# 升级评估规划
– 版本评估:评估当前版本和目标版本
– 功能评估:评估功能需求
– 性能评估:评估性能需求
– 风险评估:评估升级风险

# 升级准备规划
– 硬件准备:准备硬件资源
– 软件准备:准备软件资源
– 备份准备:准备备份策略
– 时间准备:准备升级时间

# 升级测试规划
– 测试环境:在测试环境中测试
– 测试数据:使用测试数据
– 测试用例:制定测试用例
– 测试验证:验证升级结果

# 升级执行规划
– 升级时间:选择合适的升级时间
– 升级方式:选择合适的升级方式
– 升级监控:监控升级过程
– 升级验证:验证升级结果

2.2 DBUA升级场景

Oracle DBUA升级场景:

  • 单实例升级:升级单实例数据库
  • RAC升级:升级RAC数据库
  • 容器数据库升级:升级容器数据库
  • 静默升级:使用静默模式升级
  • 回滚升级:回滚失败的升级
# DBUA升级场景

1. 单实例升级
– 升级单实例数据库
– 最常见的升级场景
– 操作简单
– 时间较短
– 风险较低

2. RAC升级
– 升级RAC数据库
– 支持滚动升级
– 最小化停机时间
– 操作复杂
– 风险适中

3. 容器数据库升级
– 升级容器数据库
– 支持多租户架构
– 同时升级所有PDB
– 操作复杂
– 风险适中

4. 静默升级
– 使用静默模式升级
– 无需图形界面
– 适合自动化
– 操作简单
– 风险较低

5. 回滚升级
– 回滚失败的升级
– 恢复到升级前状态
– 需要提前备份
– 操作复杂
– 风险较高

2.3 DBUA升级最佳实践

Oracle DBUA升级最佳实践:

  • 充分测试:在测试环境中充分测试
  • 备份数据:升级前备份数据
  • 文档记录:记录升级过程
  • 回滚方案:制定回滚方案
  • 经验总结:总结升级经验
生产环境建议:DBUA升级需要建立完善的流程,建议充分测试、备份数据、文档记录。学习交流加群风哥微信: itpux-com

Part03-生产环境项目实施方案

3.1 DBUA升级配置

3.1.1 启动DBUA

# 1. 设置环境变量
$ export ORACLE_HOME=/oracle/app/oracle/product/19c/dbhome_1
$ export PATH=$ORACLE_HOME/bin:$PATH

# 2. 启动DBUA(图形界面)
$ dbua

# 3. DBUA启动界面
+————————————————–+
| Database Upgrade Assistant |
+————————————————–+
| |
| Welcome to the Database Upgrade Assistant |
| |
| This assistant will guide you through the |
| process of upgrading your Oracle database. |
| |
| [Next] [Cancel] |
+————————————————–+

# 4. 选择数据库
+————————————————–+
| Select Database |
+————————————————–+
| |
| Select the database to upgrade: |
| |
| (*) FGEDUDB |
| ( ) ORCL |
| |
| [Back] [Next] [Cancel] |
+————————————————–+

# 5. 预升级检查
+————————————————–+
| Pre-Upgrade Checks |
+————————————————–+
| |
| Running pre-upgrade checks… |
| |
| [=====> ] 50% |
| |
| Checking database components… |
| Checking parameters… |
| Checking space requirements… |
| |
| [Back] [Next] [Cancel] |
+————————————————–+

# 6. 升级选项
+————————————————–+
| Upgrade Options |
+————————————————–+
| |
| Upgrade Options: |
| |
| [X] Recompile invalid objects |
| [X] Upgrade Time Zone data |
| [X] Gather dictionary statistics |
| |
| Parallelism: [4] |
| |
| [Back] [Next] [Cancel] |
+————————————————–+

# 7. 备份选项
+————————————————–+
| Backup Options |
+————————————————–+
| |
| Backup Options: |
| |
| (*) Use RMAN to backup database |
| ( ) Use existing backup |
| ( ) No backup |
| |
| Backup Location: [/backup] |
| |
| [Back] [Next] [Cancel] |
+————————————————–+

# 8. 执行升级
+————————————————–+
| Upgrade Progress |
+————————————————–+
| |
| Upgrading database FGEDUDB… |
| |
| [========> ] 75% |
| |
| Current step: Upgrading data dictionary |
| Elapsed time: 01:30:00 |
| Estimated remaining: 00:30:00 |
| |
| [Cancel] |
+————————————————–+

# 9. 升级完成
+————————————————–+
| Upgrade Complete |
+————————————————–+
| |
| Database upgrade completed successfully. |
| |
| Database: FGEDUDB |
| Previous version: 12.2.0.1.0 |
| New version: 19.3.0.0.0 |
| Upgrade time: 02:00:00 |
| |
| View Report [Close] |
+————————————————–+

3.1.2 使用静默模式升级

# 1. 创建响应文件
$ vi /home/oracle/dbua.rsp

# DBUA响应文件

# 数据库信息
ORACLE_HOME=/oracle/app/oracle/product/19c/dbhome_1
ORACLE_BASE=/oracle/app/oracle
ORACLE_SID=FGEDUDB

# 升级选项
UPGRADE_TIMEZONE=TRUE
RECOMPILE_INVALID_OBJECTS=TRUE
GATHER_DICTIONARY_STATS=TRUE
PARALLELISM=4

# 备份选项
BACKUP_LOCATION=/backup
USE_RMAN_BACKUP=TRUE

# 日志选项
LOG_DIR=/home/oracle/dbua_logs

# 2. 使用静默模式运行DBUA
$ dbua -silent -responseFile /home/oracle/dbua.rsp

Upgrading database FGEDUDB…

Performing pre-upgrade checks…
Pre-upgrade checks completed successfully.

Starting upgrade…
Upgrading data dictionary…
Upgrading database components…
Upgrading time zone data…
Recompiling invalid objects…

Upgrade completed successfully.

Database: FGEDUDB
Previous version: 12.2.0.1.0
New version: 19.3.0.0.0
Upgrade time: 02:00:00

# 3. 查看升级日志
$ cat /home/oracle/dbua_logs/FGEDUDB/upgrade.log

# 4. 验证升级结果
$ sqlplus / as sysdba

SQL> select * from v$version;

BANNER
——————————————————————————–
Oracle Database 19c Enterprise Edition Release 19.3.0.0.0 – Production

SQL> select comp_name, version, status from dba_registry;

COMP_NAME VERSION STATUS
—————————————- —————————— ————
Oracle Server 19.3.0.0.0 VALID
JServer JAVA Virtual Machine 19.3.0.0.0 VALID
Oracle XDK 19.3.0.0.0 VALID
Oracle Database Java Packages 19.3.0.0.0 VALID

3.2 DBUA升级监控

3.2.1 配置DBUA监控脚本

# 1. 创建DBUA监控脚本
$ vi /home/oracle/scripts/monitor_dbua.sh

#!/bin/bash
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
# DBUA监控脚本

export ORACLE_HOME=/oracle/app/oracle/product/19c/dbhome_1
export ORACLE_SID=FGEDUDB
export PATH=$ORACLE_HOME/bin:$PATH

LOG_DIR=”/home/oracle/dbua_monitor”
mkdir -p $LOG_DIR

DATE=$(date +%Y%m%d)
LOG_FILE=”$LOG_DIR/dbua_monitor_$DATE.log”

echo “$(date): Starting DBUA monitor…” > $LOG_FILE

# 检查DBUA状态
ps -ef | grep dbua >> $LOG_FILE

# 检查数据库状态
sqlplus -s / as sysdba <> $LOG_FILE
set linesize 200
set pagesize 100

— 检查数据库版本
select * from v\$version;

— 检查组件状态
select comp_name, version, status from dba_registry;

— 检查无效对象
select count(*) from dba_objects where status = ‘INVALID’;

exit
EOF

echo “$(date): DBUA monitor completed.” >> $LOG_FILE

# 发送报告
mail -s “DBUA Monitor Report – $DATE” admin@fgedu.net.cn < $LOG_FILE # 2. 设置脚本权限 $ chmod +x /home/oracle/scripts/monitor_dbua.sh # 3. 测试脚本 $ /home/oracle/scripts/monitor_dbua.sh # 4. 设置定期监控 $ crontab -e # 每小时监控DBUA状态 0 * * * * /home/oracle/scripts/monitor_dbua.sh >> /home/oracle/dbua_monitor/cron.log 2>&1

3.3 DBUA升级故障处理

3.3.1 DBUA升级常见问题

# 问题1:DBUA无法启动

# 错误信息
ERROR: Cannot start DBUA

# 解决方案
# 1. 检查DISPLAY环境变量
$ echo $DISPLAY
localhost:0.0

# 2. 设置DISPLAY环境变量
$ export DISPLAY=localhost:0.0

# 3. 检查X Window系统
$ xhost +
access control disabled, clients can connect from any host

# 4. 重新启动DBUA
$ dbua

# 问题2:DBUA升级失败

# 错误信息
ERROR: Upgrade failed

# 解决方案
# 1. 查看升级日志
$ cat /oracle/app/oracle/cfgtoollogs/dbua/FGEDUDB/upgrade.log

# 2. 检查数据库状态
SQL> select status from v$instance;

# 3. 恢复备份
RMAN> restore database;
RMAN> recover database;

# 4. 重新运行DBUA
$ dbua

# 问题3:DBUA回滚失败

# 错误信息
ERROR: Rollback failed

# 解决方案
# 1. 查看回滚日志
$ cat /oracle/app/oracle/cfgtoollogs/dbua/FGEDUDB/rollback.log

# 2. 手动恢复数据库
RMAN> startup nomount;
RMAN> restore controlfile from ‘/backup/control_file_backup’;
RMAN> alter database mount;
RMAN> restore database;
RMAN> recover database;
RMAN> alter database open resetlogs;

风哥提示:DBUA是推荐的升级方式,建议掌握DBUA使用方法。学习交流加群风哥QQ113257174

Part04-生产案例与实战讲解

4.1 DBUA升级案例

在生产环境中使用DBUA升级的完整案例:

4.1.1 场景描述

某企业需要将Oracle数据库从12.2升级到19c,使用DBUA进行升级。

4.1.2 分析步骤

# 1. 创建DBUA自动化脚本
$ vi /home/oracle/scripts/auto_dbua.sh

#!/bin/bash
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
# DBUA自动化脚本

export ORACLE_HOME=/oracle/app/oracle/product/19c/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH

LOG_DIR=”/home/oracle/dbua”
mkdir -p $LOG_DIR

DATE=$(date +%Y%m%d_%H%M%S)
LOG_FILE=”$LOG_DIR/dbua_$DATE.log”

echo “========================================” > $LOG_FILE
echo “DBUA Upgrade Report” >> $LOG_FILE
echo “Date: $(date)” >> $LOG_FILE
echo “========================================” >> $LOG_FILE

# 运行DBUA
echo “” >> $LOG_FILE
echo “Running DBUA…” >> $LOG_FILE
dbua -silent -responseFile /home/oracle/dbua.rsp >> $LOG_FILE

# 验证升级结果
echo “” >> $LOG_FILE
echo “Verifying upgrade…” >> $LOG_FILE
sqlplus -s / as sysdba <> $LOG_FILE
set linesize 200
set pagesize 100

select * from v\$version;
select comp_name, version, status from dba_registry;
select count(*) from dba_objects where status = ‘INVALID’;
EOF

echo “” >> $LOG_FILE
echo “DBUA upgrade completed at $(date)” >> $LOG_FILE

# 发送报告
mail -s “DBUA Upgrade Report – $DATE” admin@fgedu.net.cn < $LOG_FILE # 2. 设置脚本权限 $ chmod +x /home/oracle/scripts/auto_dbua.sh # 3. 测试脚本 $ /home/oracle/scripts/auto_dbua.sh

4.2 DBUA升级故障处理

在DBUA升级故障处理过程中的方法和技巧:

4.2.1 故障处理流程

# DBUA升级故障处理流程

# 1. 识别问题
# – 查看DBUA日志
# – 查看升级日志
# – 检查数据库状态

# 2. 收集信息
# – 收集错误信息
# – 收集诊断数据
# – 收集系统信息

# 3. 分析原因
# – 分析错误原因
# – 分析升级过程
# – 分析配置问题

# 4. 制定方案
# – 制定修复方案
# – 制定回滚方案
# – 制定预防措施

# 5. 执行修复
# – 执行修复操作
# – 验证修复结果
# – 记录修复过程

# 示例:处理DBUA升级失败

# 1. 识别问题
$ cat /oracle/app/oracle/cfgtoollogs/dbua/FGEDUDB/upgrade.log

# 2. 收集信息
SQL> select * from dba_registry;

# 3. 分析原因
— 组件升级失败

# 4. 制定方案
— 恢复备份,重新升级

# 5. 执行修复
RMAN> restore database;
RMAN> recover database;
$ dbua

4.3 DBUA升级优化

优化DBUA升级配置的最佳实践:

4.3.1 优化DBUA升级管理

# 1. 创建DBUA升级管理存储过程
SQL> create or replace procedure manage_dbua_results(
p_upgrade_date in date,
p_source_version in varchar2,
p_target_version in varchar2,
p_upgrade_status in varchar2
) as
begin
dbms_output.put_line(‘— DBUA Results Management —‘);
dbms_output.put_line(‘Upgrade Date: ‘ || to_char(p_upgrade_date, ‘YYYY-MM-DD HH24:MI:SS’));
dbms_output.put_line(‘Source Version: ‘ || p_source_version);
dbms_output.put_line(‘Target Version: ‘ || p_target_version);
dbms_output.put_line(‘Upgrade Status: ‘ || p_upgrade_status);

— 可以扩展为记录到表中
end manage_dbua_results;
/

Procedure created.

# 2. 执行管理存储过程
SQL> set serveroutput on
SQL> exec manage_dbua_results(sysdate, ‘12.2.0.1’, ‘19.3.0.0’, ‘SUCCESS’);

— DBUA Results Management —
Upgrade Date: 2026-03-31 10:00:00
Source Version: 12.2.0.1
Target Version: 19.3.0.0
Upgrade Status: SUCCESS

PL/SQL procedure successfully completed.

# 3. 创建DBUA升级历史表
SQL> create table dbua_history (
id number primary key,
upgrade_date date,
source_version varchar2(50),
target_version varchar2(50),
upgrade_status varchar2(50),
upgrade_duration number,
notes varchar2(4000)
);

Table created.

SQL> create sequence dbua_history_seq;

Sequence created.

# 4. 记录升级历史
SQL> insert into dbua_history values (
dbua_history_seq.nextval,
sysdate,
‘12.2.0.1’,
‘19.3.0.0’,
‘SUCCESS’,
120,
‘DBUA upgrade from 12.2 to 19c’
);

1 row created.

SQL> commit;

Commit complete.

# 5. 查看升级历史趋势
SQL> column upgrade_date format a20
SQL> select upgrade_date, source_version, target_version, upgrade_status
from dbua_history
order by upgrade_date desc
fetch first 12 rows only;

UPGRADE_DATE SOURCE_VERSION TARGET_VERSION UPGRADE_STATUS
——————– ————– ————– —————
2026-03-31 10:00:00 12.2.0.1 19.3.0.0 SUCCESS
2026-03-30 10:00:00 12.1.0.2 19.3.0.0 SUCCESS
2026-03-29 10:00:00 11.2.0.4 19.3.0.0 SUCCESS

生产环境建议:DBUA升级优化需要建立完善的管理流程,建议充分测试、备份数据、记录结果。更多学习教程公众号风哥教程itpux_com

Part05-风哥经验总结与分享

5.1 DBUA升级总结

Oracle DBUA是推荐的升级方式,具有以下特点:

  • 图形化界面:提供图形化操作界面
  • 自动检查:自动执行预升级检查
  • 自动升级:自动执行升级过程
  • 自动验证:自动验证升级结果
  • 回滚支持:支持升级回滚

5.2 DBUA升级检查清单

Oracle DBUA升级检查清单:

  • 充分测试:在测试环境中充分测试
  • 备份数据:升级前备份数据
  • 文档记录:记录升级过程
  • 回滚方案:制定回滚方案
  • 经验总结:总结升级经验
  • 定期检查:定期检查升级状态

5.3 DBUA升级工具推荐

Oracle DBUA升级工具推荐:

  • DBUA:数据库升级助手
  • preupgrd.sql:预升级检查工具
  • RMAN:备份恢复工具
  • Data Pump:数据迁移工具
  • Shell脚本:自动化升级过程
风哥提示:DBUA是推荐的升级方式,建议掌握DBUA使用方法。from:www.itpux.com www.fgedu.net.cn

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息