在 Linux 下升级 Oracle 数据库,通常分为 小版本升级(Patch / PSU) 和 大版本升级(如 11g → 12c → 19c)。下面我按 常见场景 给你一个清晰、可操作的升级思路。
uname -a
cat /etc/os-release
sqlplus / as sysdba
SELECT * FROM v$version;
ORACLE_HOME 和 pfile/spfile/etc/oratab、/etc/oracle适用于:
11.2.0.4 → 11.2.0.4 PSU
19.3 → 19.18
lsnrctl stop
sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
unzip p6880880*.zip -d $ORACLE_HOME
$ORACLE_HOME/OPatch/opatch version
cd patch_dir
$ORACLE_HOME/OPatch/opatch apply
cd $ORACLE_HOME/sqlpatch
sqlplus / as sysdba
@catbundle.sql PSU apply
startup
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
dbua
按向导完成升级
runInstaller
$NEW_ORACLE_HOME/jdk/bin/java -jar \
$NEW_ORACLE_HOME/rdbms/admin/preupgrade.jar
按提示修复问题
shutdown immediate;
export ORACLE_HOME=$NEW_ORACLE_HOME
sqlplus / as sysdba
STARTUP UPGRADE;
@?/rdbms/admin/catupgrd.sql
SHUTDOWN IMMEDIATE;
STARTUP;
@?/rdbms/admin/utlrp.sql
SELECT COMP_NAME, STATUS FROM DBA_REGISTRY;
SELECT * FROM v$timezone_file;
检查监听、参数、账号、性能。
/tmp 空间不足preupgrade如果你能告诉我:
我可以给你 精确到命令的升级方案。