Debian系统上Oracle数据库升级流程
备份数据库
升级前必须对现有数据库进行完整备份,推荐使用RMAN(Recovery Manager)。示例命令:
rman> configure controlfile autobackupon;
run {
allocate channel channel1 type disk;
backup database format '/soft/rmanbak/hellodb_%u';
backup current controlfile format '/soft/rmanbak/hellodb_ctl';
}
备份需覆盖数据文件、控制文件、归档日志等关键内容,确保升级失败时可恢复。
检查兼容性
安装必要依赖
Debian系统需安装编译工具和基础库,避免升级过程中出现依赖错误:
sudo apt update && sudo apt install -y gcc make binutils libc6-dev libstdc++6 alien
配置环境变量
以Oracle用户身份编辑~/.bash_profile,设置Oracle相关环境变量(需根据实际路径调整):
umask 022
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1 # 新版本路径
export ORACLE_SID=hellodb
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=AMERICAN_AMERICA.UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
source ~/.bash_profile
检查硬件资源
确保服务器满足新版本Oracle的内存、磁盘空间要求(如Oracle 19c及以上版本建议至少2GB内存、10GB以上空闲磁盘空间)。
安装新版本Oracle软件
下载新版本Oracle安装包(如12.2.0.1),解压后创建安装目录并授权:
mkdir -p /u01/app/oracle/product/12.2.0/dbhome_1
chown -R oracle:oinstall /u01/app/oracle/product/12.2.0/dbhome_1
chmod -R 775 /u01/app/oracle/product/12.2.0/dbhome_1
运行安装脚本(以Oracle用户身份):
su - oracle
cd /u01/app/oracle/product/12.2.0/dbhome_1/runInstaller
./runInstaller
按向导完成软件安装(无需创建数据库)。
启动DBUA工具
cd $ORACLE_HOME/bin
./dbua
按提示操作:
hellodb);关闭数据库实例
以Oracle用户身份停止数据库和监听:
sqlplus / as sysdba
SQL> shutdown immediate;
lsnrctl stop
运行预升级脚本
执行preupgrd.sql(位于新版本$ORACLE_HOME/rdbms/admin目录),修复配置问题:
sqlplus / as sysdba
@?/rdbms/admin/preupgrd.sql
根据脚本输出修复问题(如修改参数文件、调整目录权限)。
升级数据库实例
启动数据库到升级模式,运行升级脚本:
sqlplus / as sysdba
SQL> startup upgrade;
SQL> @?/rdbms/admin/catupgrd.sql # 执行升级
SQL> @?/rdbms/admin/utlrp.sql # 编译无效对象
SQL> shutdown immediate;
SQL> startup # 正常启动数据库
验证升级结果
检查数据字典版本、数据库状态及功能:
select * from v$version; -- 查看Oracle版本
select status from v$instance; -- 确认数据库状态为OPEN
清理旧版本文件
删除旧版本Oracle软件目录(如/u01/app/oracle/product/11.2.0/dbhome_1),释放磁盘空间。
更新监控与备份策略
测试应用程序
验证应用程序与升级后Oracle的兼容性(如SQL语法、存储过程、触发器),确保业务正常运行。
保留旧版本介质
保存旧版本Oracle安装包和升级脚本,便于后续回滚或故障排查。
$ORACLE_HOME、数据目录有读写权限(chown -R oracle:oinstall /u01/app/oracle)。libaio1),可通过sudo apt install libaio1补充。catdowngrd.sql回退到旧版本(需提前准备)。