千家信息网

Oracle 12C升级到18C

发表于:2024-11-16 作者:千家信息网编辑
千家信息网最后更新 2024年11月16日,Oracle 12C 升级 到 18C一:版本检查二: 准备18C 安装包三:创建目录四:安装Oracle 软件五:升级前检查六:升级七:验证八:问题环境说明:OS:Red Hat Enterpris
千家信息网最后更新 2024年11月16日Oracle 12C升级到18C

Oracle 12C 升级 18C

一:版本检查

二: 准备18C 安装包

三:创建目录

四:安装Oracle 软件

五:升级前检查

六:升级

七:验证

八:问题

环境说明:

OS:Red Hat Enterprise Linux Server release 7.5 (Maipo)

DB:Oracle 12.2.0.1.0 升级到 Oracle 18.3.0.0

一:版本检测 Oracle DB 18c - 手动升级到 Non-CDB Oracle Database 18c 的完整核对清单 (Doc ID 2469647.1)

准备 18C 安装包

--- LINUX.X64_180000_db_home.zip

[root@cjcos package]# pwd

/package

[root@cjcos package]# ll -rth

total 7.5G

drwxr-xr-x. 2 oracle oinstall 42 Jan 16 12:05 Oracle_1903_for_Linux

-rw-r--r-- 1 oracle oinstall 3.3G Jan 19 10:36 linuxx64_12201_database.zip

-rw-r--r-- 1 oracle oinstall 4.3G Jan 19 10:55 LINUX.X64_180000_db_home.zip

:创建目录

[root@cjcos yum.repos.d]# mkdir -p /u01/app/oracle 18

[root@cjcos yum.repos.d]# chown -R oracle:oinstall /u01/app/oracle 18

[root@cjcos yum.repos.d]# chmod -R 775 /u01/app

[root@cjcos yum.repos.d]# su - oracle

[oracle@cjcos ~]$ mkdir -p /u01/app/oracle 18 /product/1 8 .0.0/dbhome_1

[oracle@cjcos ~]$ cd /u01/app/oracle 18 /product/1 8 .0.0/dbhome_1

四:安装Oracle 软件

[oracle@cjcos dbhome_1]$ pwd

/u01/app/oracle18/product/18.0.0/dbhome_1

[oracle@cjcos dbhome_1]$ unzip -q /package/LINUX.X64_180000_db_home.zip

[root@cjcos ~]# xhost +

access control disabled, clients can connect from any host

[oracle@cjcos dbhome_1]$ cd /package/database/

[oracle@cjcos database]$ ./runInstaller

[root@cjcos ~]# /u01/app/oracle18/product/18.0.0/dbhome_1/root.sh

五:升级前检查

停机扩大内存到10G

[ root@cjcos ~]# free -m

total used free shared buff/cache available

Mem: 9740 335 9088 9 317 9318

Swap: 4991 0 4991

[oracle@cjcos ~]$ export ORACLE_BASE=/u01/app/oracle12

[oracle@cjcos ~]$ export ORACLE_HOME=$ORACLE_BASE/product/12.0.0/dbhome_1

[oracle@cjcos ~]$ export ORACLE_SID=cjcdb01

[oracle@cjcos ~]$ /u01/app/oracle18/product/18.0.0/dbhome_1/jdk/bin/java -jar /u01/app/oracle18/product/18.0.0/dbhome_1/rdbms/admin/preupgrade.jar

==================

PREUPGRADE SUMMARY

==================

/u01/app/oracle12/cfgtoollogs/cjcdb01/preupgrade/preupgrade.log

/u01/app/oracle12/cfgtoollogs/cjcdb01/preupgrade/preupgrade_fixups.sql

/u01/app/oracle12/cfgtoollogs/cjcdb01/preupgrade/postupgrade_fixups.sql

Execute fixup scripts across the entire CDB:

Before upgrade:

1. Execute preupgrade fixups with the below command

$ORACLE_HOME/perl/bin/perl -I$ORACLE_HOME/perl/lib -I$ORACLE_HOME/rdbms/admin $ORACLE_HOME/rdbms/admin/catcon.pl -l /u01/app/oracle12/cfgtoollogs/cjcdb01/preupgrade/ -b preup_cjcdb01 /u01/app/oracle12/cfgtoollogs/cjcdb01/preupgrade/preupgrade_fixups.sql

2. Review logs under /u01/app/oracle12/cfgtoollogs/cjcdb01/preupgrade/

After the upgrade:

1. Execute postupgrade fixups with the below command

$ORACLE_HOME/perl/bin/perl -I$ORACLE_HOME/perl/lib -I$ORACLE_HOME/rdbms/admin $ORACLE_HOME/rdbms/admin/catcon.pl -l /u01/app/oracle12/cfgtoollogs/cjcdb01/preupgrade/ -b postup_cjcdb01 /u01/app/oracle12/cfgtoollogs/cjcdb01/preupgrade/postupgrade_fixups.sql

2. Review logs under /u01/app/oracle12/cfgtoollogs/cjcdb01/preupgrade/

Preupgrade complete: 2020-01-19T14:58:18


[oracle@cjcos preupgrade]$ vi preupgrade.log

[oracle@cjcos preupgrade]$ pwd

/u01/app/oracle12/cfgtoollogs/cjcdb01/preupgrade

[oracle@cjcos preupgrade]$ vim preupgrade.log

六:升级

[oracle@cjcos ~]$ cd /u01/app/oracle18/product/18.0.0/dbhome_1/bin/

[oracle@cjcos bin]$ ./dbua

SQL> conn / as sysdba

SQL> EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;

SQL> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

SQL> alter session set container=cjcpdb01;

SQL> EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;

SQL> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

七:验证

设置环境变量

[oracle@cjcos ~]$ vi .bash_profile

export PATH

#export ORACLE_BASE=/u01/app/oracle

#export ORACLE_BASE=/u01/app/oracle12

export ORACLE_BASE=/u01/app/oracle18

#export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1

#export ORACLE_HOME=$ORACLE_BASE/product/12.0.0/dbhome_1

export ORACLE_HOME=$ORACLE_BASE/product/18.0.0/dbhome_1

#export ORACLE_SID=cjcdb

export ORACLE_SID=cjcdb01

# export ORACLE_SID=cjcdb02

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

[oracle@cjcos ~]$ source .bash_profile

监听状态

[oracle@cjcos ~]$ lsnrctl status

[oracle@cjcos admin]$ pwd

/u01/app/oracle12/product/12.0.0/dbhome_1/network/admin

[oracle@cjcos admin]$ vim tnsnames.ora

八:问题

一开始在Oracle Linux Server release 6.3 系统上,将11.2.0.4.0升级到12.2.0.1.0正常,再将12.2.0.1.0升级到18.3.0.0.0时,升级任务到70%,会报错 ORA-03114:

root@cjc cjcdb]# pwd

/u01/app/oracle18/cfgtoollogs/dbua/upgrade2020-01-16_10-06-36AM/cjcdb

[root@cjc cjcdb]# vim catupgrdcjcpdb0.log

尝试手动升级PDB

[oracle@cjc ~]$ source .bash_profile

[oracle@cjc ~]$ $ORACLE_HOME/bin/dbupgrade -c cjcpdb

报错如下:

CJCPDB(3):Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x4] [PC:0x599B586, joevm_invokevirtual()+1414] [flags: 0x0, count: 1]

2020-01-16T14:49:57.835919+08:00

Errors in file /u01/app/oracle18/diag/rdbms/cjcdb/cjcdb/trace/cjcdb_ora_1102.trc (incident=14465) (PDBNAME=CJCPDB):

ORA-07445: exception encountered: core dump [joevm_invokevirtual()+1414] [SIGSEGV] [ADDR:0x4] [PC:0x599B586] [Address not mapped to object] []

CJCPDB(3):Incident details in: /u01/app/oracle18/diag/rdbms/cjcdb/cjcdb/incident/incdir_14465/cjcdb_ora_1102_i14465.trc

CJCPDB(3):Use ADRCI or Support Workbench to package the incident.

See Note 411.1 at My Oracle Support for error and packaging details.

2020-01-16T14:50:09.995817+08:00

Dumping diagnostic data in directory=[cdmp_20200116145009], requested by (instance=1, osid=1102), summary=[incident=14465].

尝试重启PDB

解决方案:

尝试多次安装均出现相同的问题,怀疑和操作系统版本过低,或操作系统内存过低有关,更换操作系统版本 Red Hat Enterprise Linux Server release 7.5 (Maipo) 并将内存由 4G 调大到 10G ,再次执行升级问题消失;

欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!


0