Oracle 12C升級到18C

chenoracle發表於2020-01-19

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)

Oracle 12C升級到18C

Oracle 12C升級到18C

準備 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

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

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

Oracle 12C升級到18C

五:升級前檢查

停機擴大記憶體到10G

Oracle 12C升級到18C

[ 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

Oracle 12C升級到18C

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

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 12C升級到18C Oracle 12C升級到18C

[oracle@cjcos preupgrade]$ vi preupgrade.log

[oracle@cjcos preupgrade]$ pwd

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

[oracle@cjcos preupgrade]$ vim preupgrade.log

Oracle 12C升級到18C

六:升級

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

[oracle@cjcos bin]$ ./dbua

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

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 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

七:驗證

設定環境變數

[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 12C升級到18C

Oracle 12C升級到18C

[oracle@cjcos admin]$ pwd

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

[oracle@cjcos admin]$ vim tnsnames.ora

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

Oracle 12C升級到18C

八:問題

一開始在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:

Oracle 12C升級到18C

Oracle 12C升級到18C

root@cjc cjcdb]# pwd

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

[root@cjc cjcdb]# vim catupgrdcjcpdb0.log

Oracle 12C升級到18C

嘗試手動升級PDB

[oracle@cjc ~]$ source .bash_profile

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

報錯如下:

Oracle 12C升級到18C

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

Oracle 12C升級到18C

解決方案:

嘗試多次安裝均出現相同的問題,懷疑和作業系統版本過低,或作業系統記憶體過低有關,更換作業系統版本 Red Hat Enterprise Linux Server release 7.5 (Maipo) 並將記憶體由 4G 調大到 10G ,再次執行升級問題消失;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2674050/,如需轉載,請註明出處,否則將追究法律責任。

相關文章