وبلاگ مسعود حاجی حسن پور

راهکار های عملی اوراکل

راهکار های عملی اوراکل

این وبلاگ جهت به اشتراک گذاری تجربیات و راهکار های عملی در زمینه پایگاه داده اوراکل می باشد.

دستاوردها
طبقه بندی موضوعی

Upgrade Oracle 11g to 19c using autoupgrade

autoupgrade

با سلام خدمت دوستان عزیز

همانجور که پیشتر گفته بودم امروز قصد دارم که آموزش بروز رسانی پایگاه داده Oracle 11g به Oracle 19c با استفاده از ابزار autoupgrade را برای شما بذارم.

پس در ادامه مطلب همراه من باشید که همراه با یک سناریو این کار را انجام دهیم.

ابزار های بروز رسانی پایگاه داده:

1- DBUA

این ابزار یکی از ابزار های گرافیکی ارایه شده توسط شرکت اوراکل برای بروز رسانی پایگاه داده میباشد، که مورد بحث ما نیست.

2- manual upgrade:

در این روش با استفاده با از command line پایگاه داده را به روز میکنیم. به تازگی شرکت اوراکل ابزاری به نام autoupgrade ارایه کرده که این فرایند را ساده و خطا یابی را آسان تر کرده است. کل مراحل اصلی بروز رسانی به صورت زیر میباشد

autoupgrade

مختصری در مورد autoupgrade:

فرایند بروز رسانی پایگاه داده تا قبل از autoupgrade یکی از چالشی ترین فرایند هایی بود که یک اوراکل DBA با آن رو به رو بوده است. در صورتی که DBA فرایند ها را به صورت دقیق انجام نمیداد احتمال رخداد خطا خیلی زیاد می بود. اما شرکت اوراکل از ژانویه 2019 در Release Updates, DBJAN2019RU برای پایگاه داده های 12.2c , 18.5c برنامه autoupgrade را عرضه کرد که DBA ها باید آن را از oracle suport دانلود میکردند و استفاده مینمودند. اما شرکت اوراکل از نسخه 19.3c به بعد autoupgrade را در فایل نصب قرار داده و دیگر نیاز به دانلود جدای آن نمیباشید. اما همچنان اورکل مانند OPatch پیشنهاد میکند که همواره از آخرین نسخه autoupgrade استفاده نمایید که از لینک زیر قابل دانلود می باشد.

My Oracle Support Document 2485457.1

اما قبل از شروع بروز رسانی بهتر هست که نگاهی به Compatibility Matrix داشته باشید که بدانید کدام نسخه ها قابل بروز رسانی به صورت مستقیم و کدام نسخه ها باید به صورت غیر مستقیم به 19c بروز رسانی شوند.

My Oracle Support Document 551141.1

در حقیقت autoupgrade یک jar فایل هست که تمامی این فرایند upgrade را اجرا و کنترول میکند. خوب به نظرم بهتره که سناریو رو شروع کنیم مابقی چیز ها رو توی سناریو توضیح خواهم داد.

 

پیش فرض ها:

پیشفرض من این است که شما یک ماشین OEL7 or OEL6 دارید که روی آن Oracle 11g نصب شده است و قصد دارید که آن را به 19c که هم اکنون به صورت software only نصب شده است بروز رسانی کنید.

1. check OS:

[oracle@uptest ~]$ cat /etc/oracle-release
Oracle Linux Server release 7.6

2. check Oracle 11g:

[oracle@uptest ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Sun Jun 28 00:22:01 2020

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>  select name, open_mode, log_mode, flashback_on from v$database;

NAME      OPEN_MODE            LOG_MODE     FLASHBACK_ON
--------- -------------------- ------------ ------------------
MASOUDB   READ WRITE           ARCHIVELOG   YES

من برای اینکه راحت بتوانم بین پایگاه داده ها جابجا بشوم یک فایل env19c ساخته ام که با صدا زدن آن environment variables پایگاه داده 19c را مقدار دهی میکنم.

[oracle@uptest ~]$ cat env19c
export DB_HOME=/u02/app/oracle/product/19/db_1
ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=$DB_HOME
export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

3. check Oracle 19c:

[oracle@uptest ~]$ . env19c
[oracle@uptest ~]$ ll $ORACLE_HOME/dbs
total 0
[oracle@uptest ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jun 28 00:35:03 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Connected to an idle instance.

SQL>

همانگونه که دیدید پایگاه داده ای بر روی 19c نداریم ولی باینری فایل ها نصب شده اند.

برای بروز رسانی پایگاه داده دقت کنید که همواره باید از پایگاه داد بکاپ تهیه کنید. ما نیز در اینجا با RMAN از پایگاه داده قبل از هر کاری یک نسخه پشتیبان تهیه میکنیم.

[oracle@uptest ~]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Sun Jun 28 00:55:56 2020

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: MASOUDB (DBID=1594539354)

RMAN> configure controlfile autobackup on;

using target database control file instead of recovery catalog
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored

RMAN> backup as compressed backupset incremental level 0 database tag='inc0' plus archivelog tag='arch' delete all input;


Starting backup at 28-JUN-20
current log archived
.
.
.
Finished backup at 28-JUN-20

Starting Control File and SPFILE Autobackup at 28-JUN-20
piece handle=/u01/app/oracle/fast_recovery_area/MASOUDB/autobackup/2020_06_28/o1_mf_s_1044233890_hhhq8lcv_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 28-JUN-20

کار بر روی Oracle 11g را تا همین جا فعلا متوقف میکنیم و اگر autougrade برای بروز رسانی میشکلی در prechecks به مانشان داد که prefixups نتواند آن را حل کند برمیگردیم به پایگاه داد و مشکل را حل میکنیم.

 

آماده سازی autoupgrade.jar:

اول از همه autoupgrade به سادگی یک jar فایل است که برای اجرای آن نیاز به java 8 به بالا می باشد. خوشبختانه اوراکل در نسخه 19.3c همراه با فایل نصب jdk 8.x را ارایه کرده هست که برای اجرای autoupgrade کافی میباشد. من برای راحتی کار JAVA_HOME را به environment variables اضافه و همچنین java  را در path  قرار دادم.

[oracle@uptest admin]$ export JAVA_HOME=/u02/app/oracle/product/19/db_1/jdk;
[oracle@uptest admin]$ export PATH=$JAVA_HOME/bin:$PATH;
[oracle@uptest admin]$ which java
/u02/app/oracle/product/19/db_1/jdk/bin/java
[oracle@uptest admin]$ java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

حالا چک میکنیم ببینیم آیا autoupgrade با این نسخه java کار میکند یا خیر

[oracle@uptest ~]$ java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -version
build.version 20190207
build.date 2019/02/07 12:35:56
build.label RDBMS_PT.AUTOUPGRADE_LINUX.X64_190205.1800


ولی همانجور که گفتم بهتر است همواره آخرین نسخه را استفاده کنید چون باگ های نسخه های قبلی را احتمالا برطرف کرده اند و امکانات بیشتری دارند

[oracle@uptest ~]$ cd $ORACLE_HOME/rdbms/admin
[oracle@uptest admin]$ mv autoupgrade.jar autoupgrade.jar.old
[oracle@uptest admin]$ cp ~/autoupgrade.jar .
[oracle@uptest admin]$ ll autoupgrade.jar*
-rw-r--r--. 1 oracle oinstall 2311549 Jun 28 12:31 autoupgrade.jar
-rw-r--r--. 1 oracle oinstall 3360892 Feb  8  2019 autoupgrade.jar.old

[oracle@uptest admin]$ java -jar autoupgrade.jar -version
build.hash 255dd7d
build.version 19.9.0
build.date 2020/04/23 15:01:36
build.max_target_version 19
build.supported_target_versions 12.2,18,19
build.type production

در بالا دیدیم که آخرین وژن autoupgrade هم با این نسخه java سازگار است. در صورت عدم سازگاری برای نمونه با خطا به صورت زیر مواجه خواهید شد.

$ORACLE_HOME/jdk/bin/java -jar autoupgrade.jar -version
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at ... 

ساخت config فایل:

برای شروع کار اول از همه یک پوشه به نام upgradeTo19c میسازیم که sample confg و لاگ های فرایند بروز رسانی در آنجا قرار گیرد. سپس یک نمونه از config فایل را در آن ایجاد میکنیم.

[oracle@uptest ~]$ mkdir upgradeTo19c
[oracle@uptest ~]$ java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -create_sample_file config ~/upgradeTo19c/config.cfg
Created sample configuration file /home/oracle/upgradeTo19c/config.cfg

نمونه فایل کانفیگ به شکل زیر است:

[oracle@uptest upgradeTo19c]$ cat config.cfg
#
# sample config file
#
# build version 19.9.0
# build date    2020/04/23 15:01:36
#
#
# Global configurations
#
# This directory will include the following
#   (1) AutoUpgrade's global directory
#   (2) Any logs, not directly tied to a job
#   (3) Config files
#   (4) progress.json and status.json
global.autoupg_log_dir=/home/oracle/upgradeTo19c/upg_logs


#
# Database number 1
#
upg1.dbname=employee
upg1.start_time=NOW
upg1.source_home=/u01/app/oracle/product/11.2.0/dbhome_1
upg1.target_home=/u01/app/oracle/product/19.1.0/dbhome_1
upg1.sid=emp
upg1.log_dir=/home/oracle/upgradeTo19c/upg_logs/employee
upg1.upgrade_node=uptest
upg1.target_version=19
#upg1.run_utlrp=yes
#upg1.timezone_upg=yes

#
# Database number 2
#
#upg2.dbname=database name
#upg2.start_time=28/06/2020 14:21:58
#upg2.source_home=Path to source version of Oracle database
#upg2.target_home=Path to target version of Oracle database
#upg2.sid=Value of Oracle SID
#upg2.log_dir=Path to log dir
#upg2.upgrade_node=uptest # To find out your node name run the hostname utility
#upg2.target_version=12.2
#upg2.run_utlrp=[yes|no]
#upg2.timezone_upg=[yes|no]

#
# You can have as many databases as desired
#
#upgN.dbname=database name
#upgN.start_time=dd/mm/yyyy hh:mm:ss | now
#upgN.source_home=Path to source version of Oracle database
#upgN.target_home=Path to target version of Oracle database
#upgN.sid=Value of Oracle SID
#upgN.log_dir=Path to log dir
#upgN.upgrade_node=upgrade_node # To find out your node name run the hostname utility
#upgN.target_version= 18
#upgN.run_utlrp=[yes|no]
#upgN.timezone_upg=[yes|no]

در فایل به upg1 , upg2 دقت کنید. autoupgrade این توانایی را دارد که به صورت همزمان چندین پایپگاه داده را به روز رسانی کند. از آنجا که ما فقط یک پایگاه داده برای بروز رسانی داریم فقط upg1 را با توجه به نیاز و محیط خودمان تغییر میدهیم.

global.autoupg_log_dir=/home/oracle/upgradeTo19c/upg_logs
upg1.dbname=masoudb
upg1.start_time=NOW
upg1.source_home=/u01/app/oracle/product/11.2.0.4/db_1
upg1.target_home=/u02/app/oracle/product/19/db_1/
upg1.sid=masoudb
upg1.log_dir=/home/oracle/upgradeTo19c/upg_logs/masoudb
upg1.upgrade_node=uptest
upg1.target_version=19
upg1.restoration=yes
upg1.run_utlrp=yes

کانفیگ upg1.restoration=yes درتنظیمات نیست ولی در پایگاه داد ای که Archivelog mode هست لازم است و باید در تنظیمات قرار گیرد.

سوئیچ های مختلف autoupgrade:

  • Analyze:

این سوئیچ فقط پایگاه داده را بررسی میکند که آیا برای بروز رسانی آماده هست یا خیر.

  • Fixups

این سوئیچ پایگاه داده را بررسی کرده در صورت وجود هر گونه مشکل آن را حل میکند تا پایگاه داده برای بروز رسانی آماده شود.

  • Deploy

این سوئیچ پایگاه داده را برروز رسانی میکند در صورت نیاز به رفع مشکل در پایگاه داده مبدا رفع مشکل نیز انجام میدهد.

  • upgrade

این سوئیچ پایگاه داده را در صورت عدم دسترسی به Oracle Home پایگاه داده مبدا بروز رسانی میکند.

 

آنالیز پایگاه داده مبدا برای بروز رسانی:

[oracle@uptest ~]$ . env19c
[oracle@uptest ~]$ java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config ~/upgradeTo19c/config.cfg -mode analyze
AutoUpgrade tool launched with default options
Processing config file ...
+--------------------------------+
| Starting AutoUpgrade execution |
+--------------------------------+
1 databases will be analyzed
Type 'help' to list console commands
upg> lsj
+----+-------+---------+---------+-------+--------------+--------+--------+--------------------+
|Job#|DB_NAME|    STAGE|OPERATION| STATUS|    START_TIME|END_TIME| UPDATED|             MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+--------+--------------------+
| 100|masoudb|PRECHECKS|PREPARING|RUNNING|20/06/28 19:49|     N/A|19:49:12|Loading database inf|
+----+-------+---------+---------+-------+--------------+--------+--------+--------------------+
Total jobs 1

upg> status
---------------- Config -------------------
User configuration file    [/home/oracle/upgradeTo19c/config.cfg]
General logs location      [/home/oracle/upgradeTo19c/upg_logs/cfgtoollogs/upgrade/auto]
Mode                       [ANALYZE]
DB upg fatal errors        ORA-00600,ORA-07445
DB Post upgrade abort time [60] minutes
DB upg abort time          [1440] minutes
DB restore abort time      [120] minutes
DB GRP abort time          [3] minutes
------------------------ Jobs ------------------------
Total databases in configuration file [1]
Total Non-CDB being processed         [1]
Total CDB being processed             [0]
Jobs finished successfully            [0]
Jobs finished/aborted                 [0]
Jobs in progress                      [1]
Jobs stage summary
    Job ID: 100
    DB name: masoudb
        SETUP             <1 min
        PRECHECKS         <1 min (IN PROGRESS)
------------ Resources ----------------
Threads in use                        [13]
JVM used memory                       [22] MB
CPU in use                            [13%]
Processes in use                      [13]

upg> Job 100 completed
------------------- Final Summary --------------------
Number of databases            [ 1 ]

Jobs finished successfully     [1]
Jobs failed                    [0]
Jobs pending                   [0]
------------- JOBS FINISHED SUCCESSFULLY -------------
Job 100 for masoudb

در بالا با autoupgrade دیتابیس مبدا (11g) را بررسی کردیم که آیا برای بروز رسانی آماده هست یا خیر. شاید به جرات بتوان گفت مهم ترین دستور lsj میباشد که لیست job ها و وضعیت آن ها را مشخص میکند.یکی از مهم ترین اطلاعاتی که lsj در اختیار ما قرار میدهد شماره #Job یا همان شماره job هست. سپس با دستور status به جزئیات job دسترسی پیدا میکنیم. توجه داشته باشید بعد از اینکه job به پایان رسید به صورت خودکار از upg خارج شده و OS برمیگردد.

بیایید یک نگاهی به لاگ آنالیزی که انجام شده بکنیم. اولا مسیر لاگها دارای فرمت زیر میباشند:

global.autoupg_log_dir/upg<n>.dbname/upg<n>.sid/Job#/STAGE

برای مثال ما به صورت زیر است:

/home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/100/prechecks

که دارای فایل های زیر میباشد:

[oracle@uptest prechecks]$ ls -l
-rwx------. 1 oracle oinstall   3785 Jun 28 19:49 masoudb_checklist.cfg
-rwx------. 1 oracle oinstall  16267 Jun 28 19:49 masoudb_checklist.json
-rwx------. 1 oracle oinstall  15553 Jun 28 19:49 masoudb_checklist.xml
-rwx------. 1 oracle oinstall  32944 Jun 28 19:49 masoudb_preupgrade.html
-rwx------. 1 oracle oinstall  15666 Jun 28 19:49 masoudb_preupgrade.log
-rwx------. 1 oracle oinstall 174854 Jun 28 19:49 prechecks_masoudb.log

در لینک زیر میتوانید فایل html را که پایگاه داده مبدا را آنالیز کرده ببینید

دریافت

درست هست که نتیجه آنالیز مشکلی نشان نمیدهد ولی همواره بهتر است که لاگ آنالیز را مطالعه کنید. و تمام ERROR ها را خودتان رفع کنید. اگر نمیخواهید فایل html را دانلود کنید به masoudb_preupgrade.log را میتوانید در console مشاهده کنید.

[checkname]          MIN_RECOVERY_AREA_SIZE
[stage]              PRECHECKS
[fixup_available]    YES
[runfix]             YES
[severity]           ERROR
[action]             Set DB_RECOVERY_FILE_DEST_SIZE initialization parameter to at least 8598 MB.  Check alert log during the upgrade to ensure there is remaining free space available in the recovery area.
[broken rule]        DB_RECOVERY_FILE_DEST_SIZE is set at 4182 MB.  There is currently 3598 MB of free space remaining, which may not be adequate for the upgrade.  Currently:  Fast recovery area :  /u01/app/oracle/fast_recovery_area   Limit              :  4182 MB   Used               :  583 MB   Available          :  3598 MB
[rule]               The database has archivelog and flashback enabled, and the upgrade process will need free space to generate archived and flashback logs to the recovery area specified by initialization parameter DB_RECOVERY_FILE_DEST.  The logs generated must not overflow the limit set by DB_RECOVERY_FILE_DEST_SIZE, as that can cause the upgrade to not proceed.

این تنها مشکلی هست که وجود دارد که این مشکل را حل میکنیم

[oracle@uptest prechecks]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Sun Jun 28 21:48:40 2020

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> sho parameter db_recovery_file_dest_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size           big integer 4182M

SQL> alter system set db_recovery_file_dest_size=10G scope=both;

System altered.

SQL> sho parameter db_recovery_file_dest_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size           big integer 10G

انجام بروز رسانی:

با دستور زیر شروع به انجام بروز رسانی میکنیم

[oracle@uptest ~]$ java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config ~/upgradeTo19c/config.cfg -mode deploy
AutoUpgrade tool launched with default options
Processing config file ...
+--------------------------------+
| Starting AutoUpgrade execution |
+--------------------------------+
1 databases will be processed
Type 'help' to list console commands
upg>

با دستور زیر وضعیت job را به جزئیات میتوان دید

upg> status
---------------- Config -------------------
User configuration file    [/home/oracle/upgradeTo19c/config.cfg]
General logs location      [/home/oracle/upgradeTo19c/upg_logs/cfgtoollogs/upgrade/auto]
Mode                       [DEPLOY]
DB upg fatal errors        ORA-00600,ORA-07445
DB Post upgrade abort time [60] minutes
DB upg abort time          [1440] minutes
DB restore abort time      [120] minutes
DB GRP abort time          [3] minutes
------------------------ Jobs ------------------------
Total databases in configuration file [1]
Total Non-CDB being processed         [1]
Total CDB being processed             [0]
Jobs finished successfully            [0]
Jobs finished/aborted                 [0]
Jobs in progress                      [1]
Jobs stage summary
    Job ID: 103
    DB name: masoudb
        SETUP             <1 min
        GRP               <1 min
        PREUPGRADE        <1 min
        PRECHECKS         <1 min
        PREFIXUPS         <1 min
        DRAIN             <1 min
        DBUPGRADE         <1 min (IN PROGRESS)
------------ Resources ----------------
Threads in use                        [39]
JVM used memory                       [142] MB
CPU in use                            [13%]
Processes in use                      [21]

همچنین بهتر است همواره وضعیت job را با lsj ببینید. در نظر داشته باشید که وضعیت job هر دو دقیقه یک بار بروز میشود

upg> lsj
+----+-------+---------+---------+-------+--------------+--------+--------+-----------+
|Job#|DB_NAME|    STAGE|OPERATION| STATUS|    START_TIME|END_TIME| UPDATED|    MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+--------+-----------+
| 103|masoudb|DBUPGRADE|EXECUTING|RUNNING|20/06/28 22:41|     N/A|22:49:12|6%Upgraded |
+----+-------+---------+---------+-------+--------------+--------+--------+-----------+
Total jobs 1

upg> lsj
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
|Job#|DB_NAME|    STAGE|OPERATION| STATUS|    START_TIME|END_TIME| UPDATED|     MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
| 103|masoudb|DBUPGRADE|EXECUTING|RUNNING|20/06/28 22:41|     N/A|22:55:17|21%Upgraded |
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
Total jobs 1

upg> lsj
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
|Job#|DB_NAME|    STAGE|OPERATION| STATUS|    START_TIME|END_TIME| UPDATED|     MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
| 103|masoudb|DBUPGRADE|EXECUTING|RUNNING|20/06/28 22:41|     N/A|23:04:24|39%Upgraded |
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
Total jobs 1

upg> lsj
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
|Job#|DB_NAME|    STAGE|OPERATION| STATUS|    START_TIME|END_TIME| UPDATED|     MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
| 103|masoudb|DBUPGRADE|EXECUTING|RUNNING|20/06/28 22:41|     N/A|23:22:37|60%Upgraded |
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
Total jobs 1

upg> lsj
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
|Job#|DB_NAME|    STAGE|OPERATION| STATUS|    START_TIME|END_TIME| UPDATED|     MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
| 103|masoudb|DBUPGRADE|EXECUTING|RUNNING|20/06/28 22:41|     N/A|23:28:41|75%Upgraded |
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
Total jobs 1

upg> lsj
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
|Job#|DB_NAME|    STAGE|OPERATION| STATUS|    START_TIME|END_TIME| UPDATED|     MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
| 103|masoudb|DBUPGRADE|EXECUTING|RUNNING|20/06/28 22:41|     N/A|23:34:45|91%Upgraded |
+----+-------+---------+---------+-------+--------------+--------+--------+------------+
Total jobs 1

upg> lsj
+----+-------+----------+---------+-------+--------------+--------+--------+--------------------+
|Job#|DB_NAME|     STAGE|OPERATION| STATUS|    START_TIME|END_TIME| UPDATED|             MESSAGE|
+----+-------+----------+---------+-------+--------------+--------+--------+--------------------+
| 103|masoudb|POSTFIXUPS|EXECUTING|RUNNING|20/06/28 22:41|     N/A|23:47:10|Loading database inf|
+----+-------+----------+---------+-------+--------------+--------+--------+--------------------+
Total jobs 1

و باز هم جزئیات بیشتر از مراحل job

upg> status -job 103
Progress
-----------------------------------
Start time:      20/06/28 22:41
Elapsed (min):   64
End time:        N/A
Last update:     2020-06-28T23:45:16.006
Stage:           POSTFIXUPS
Operation:       EXECUTING
Status:          RUNNING
Pending stages:  2
Stage summary:
    SETUP             <1 min
    GRP               <1 min
    PREUPGRADE        <1 min
    PRECHECKS         <1 min
    PREFIXUPS         <1 min
    DRAIN             <1 min
    DBUPGRADE         60 min
    POSTCHECKS        <1 min
    POSTFIXUPS        2 min (IN PROGRESS)

Job Logs Locations
-----------------------------------
Logs Base:    /home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb
Job logs:     /home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103
Stage logs:   /home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/postfixups
TimeZone:     /home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/temp

Additional information
-----------------------------------
Details:
+--------+--------------------+--------+
|DATABASE|               FIXUP|  STATUS|
+--------+--------------------+--------+
| masoudb|     POST_DICTIONARY|FINISHED|
| masoudb|  POST_FIXED_OBJECTS|FINISHED|
| masoudb|OLD_TIME_ZONES_EXIST| STARTED|
+--------+--------------------+--------+

Error Details:
None

لاگ فایل بروز رسانی در آدرس زیر میتوان یافت

[oracle@uptest ~]$ cat /home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/dbupgrade/autoupgrade20200628224120masoudb.log

Argument list for [/u02/app/oracle/product/19/db_1/rdbms/admin/catctl.pl]
For Oracle internal use only A = 1
Run in                       c = 0
Do not run in                C = 0
Input Directory              d = /u02/app/oracle/product/19/db_1/rdbms/admin
Echo OFF                     e = 1
Simulate                     E = 0
Forced cleanup               F = 0
Log Id                       i = 20200628224120masoudb
Child Process                I = 0
Log Dir                      l = /home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/dbupgrade
Priority List Name           L = 0
Upgrade Mode active          M = 0
SQL Process Count            n = 0
SQL PDB Process Count        N = 0
Open Mode Normal             o = 0
Start Phase                  p = 0
End Phase                    P = 0
Reverse Order                r = 0
AutoUpgrade Resume           R = 0
Script                       s = 0
Serial Run                   S = 0
RO User Tablespaces          T = 0
Display Phases               y = 0
Debug catcon.pm              z = 0
Debug catctl.pl              Z = 0

catctl.pl VERSION: [19.0.0.0.0]
           STATUS: [Production]
            BUILD: [RDBMS_19.3.0.0.0DBRU_LINUX.X64_190417]


/u02/app/oracle/product/19/db_1/rdbms/admin/orahome = [/u02/app/oracle/product/19/db_1]
/u02/app/oracle/product/19/db_1/bin/orabasehome = [/u02/app/oracle/product/19/db_1]
catctlGetOraBaseLogDir = [/u02/app/oracle/product/19/db_1]

Analyzing file /u02/app/oracle/product/19/db_1/rdbms/admin/catupgrd.sql

Log file directory = [/home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/dbupgrade]

catcon::set_log_file_base_path: ALL catcon-related output will be written to [/home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/dbupgrade/catupgrd20200628224120masoudb_catcon_15604.lst]

catcon::set_log_file_base_path: catcon: See [/home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/dbupgrade/catupgrd20200628224120masoudb*.log] files for output generated by scripts

catcon::set_log_file_base_path: catcon: See [/home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/dbupgrade/catupgrd20200628224120masoudb_*.lst] files for spool files, if any


Number of Cpus        = 4
Database Name         = masoudb
DataBase Version      = 11.2.0.4.0
Parallel SQL Process Count            = 4
Components in [masoudb]
    Installed [APEX APS CATALOG CATJAVA CATPROC CONTEXT JAVAVM ORDIM OWM SDO XDB XML XOQ]
Not Installed [DV EM MGW ODM OLS RAC WK]

------------------------------------------------------
Phases [0-107]         Start Time:[2020_06_28 22:43:22]
------------------------------------------------------
***********   Executing Change Scripts   ***********
Serial   Phase #:0    [masoudb] Files:1    Time: 168s
***************   Catalog Core SQL   ***************
Serial   Phase #:1    [masoudb] Files:5    Time: 89s
Restart  Phase #:2    [masoudb] Files:1    Time: 3s
***********   Catalog Tables and Views   ***********
Parallel Phase #:3    [masoudb] Files:19   Time: 23s
Restart  Phase #:4    [masoudb] Files:1    Time: 4s
*************   Catalog Final Scripts   ************
Serial   Phase #:5    [masoudb] Files:7    Time: 33s
*****************   Catproc Start   ****************
Serial   Phase #:6    [masoudb] Files:1    Time: 25s
*****************   Catproc Types   ****************
Serial   Phase #:7    [masoudb] Files:2    Time: 18s
Restart  Phase #:8    [masoudb] Files:1    Time: 4s
****************   Catproc Tables   ****************
Parallel Phase #:9    [masoudb] Files:67   Time: 34s
Restart  Phase #:10   [masoudb] Files:1    Time: 4s
*************   Catproc Package Specs   ************
Serial   Phase #:11   [masoudb] Files:1    Time: 113s
Restart  Phase #:12   [masoudb] Files:1    Time: 3s
**************   Catproc Procedures   **************
Parallel Phase #:13   [masoudb] Files:94   Time: 12s
Restart  Phase #:14   [masoudb] Files:1    Time: 3s
Parallel Phase #:15   [masoudb] Files:120  Time: 18s
Restart  Phase #:16   [masoudb] Files:1    Time: 4s
Serial   Phase #:17   [masoudb] Files:22   Time: 6s
Restart  Phase #:18   [masoudb] Files:1    Time: 5s
*****************   Catproc Views   ****************
Parallel Phase #:19   [masoudb] Files:32   Time: 26s
Restart  Phase #:20   [masoudb] Files:1    Time: 4s
Serial   Phase #:21   [masoudb] Files:3    Time: 22s
Restart  Phase #:22   [masoudb] Files:1    Time: 3s
Parallel Phase #:23   [masoudb] Files:25   Time: 271s
Restart  Phase #:24   [masoudb] Files:1    Time: 4s
Parallel Phase #:25   [masoudb] Files:12   Time: 180s
Restart  Phase #:26   [masoudb] Files:1    Time: 3s
Serial   Phase #:27   [masoudb] Files:1    Time: 0s
Serial   Phase #:28   [masoudb] Files:3    Time: 7s
Serial   Phase #:29   [masoudb] Files:1    Time: 0s
Restart  Phase #:30   [masoudb] Files:1    Time: 4s
***************   Catproc CDB Views   **************
Serial   Phase #:31   [masoudb] Files:1    Time: 2s
Restart  Phase #:32   [masoudb] Files:1    Time: 4s
Serial   Phase #:34   [masoudb] Files:1    Time: 0s
*****************   Catproc PLBs   *****************
Serial   Phase #:35   [masoudb] Files:293  Time: 35s
Serial   Phase #:36   [masoudb] Files:1    Time: 0s
Restart  Phase #:37   [masoudb] Files:1    Time: 4s
Serial   Phase #:38   [masoudb] Files:6    Time: 11s
Restart  Phase #:39   [masoudb] Files:1    Time: 4s
***************   Catproc DataPump   ***************
Serial   Phase #:40   [masoudb] Files:3    Time: 97s
Restart  Phase #:41   [masoudb] Files:1    Time: 4s
******************   Catproc SQL   *****************
Parallel Phase #:42   [masoudb] Files:13   Time: 184s
Restart  Phase #:43   [masoudb] Files:1    Time: 3s
Parallel Phase #:44   [masoudb] Files:11   Time: 17s
Restart  Phase #:45   [masoudb] Files:1    Time: 2s
Parallel Phase #:46   [masoudb] Files:3    Time: 4s
Restart  Phase #:47   [masoudb] Files:1    Time: 4s
*************   Final Catproc scripts   ************
Serial   Phase #:48   [masoudb] Files:1    Time: 17s
Restart  Phase #:49   [masoudb] Files:1    Time: 4s
**************   Final RDBMS scripts   *************
Serial   Phase #:50   [masoudb] Files:1    Time: 33s
************   Upgrade Component Start   ***********
Serial   Phase #:51   [masoudb] Files:1    Time: 2s
Restart  Phase #:52   [masoudb] Files:1    Time: 4s
**********   Upgrading Java and non-Java   *********
Serial   Phase #:53   [masoudb] Files:2    Time: 696s
*****************   Upgrading XDB   ****************
Restart  Phase #:54   [masoudb] Files:1    Time: 2s
Serial   Phase #:56   [masoudb] Files:3    Time: 51s
Serial   Phase #:57   [masoudb] Files:3    Time: 8s
Parallel Phase #:58   [masoudb] Files:10   Time: 7s
Parallel Phase #:59   [masoudb] Files:25   Time: 8s
Serial   Phase #:60   [masoudb] Files:4    Time: 16s
Serial   Phase #:61   [masoudb] Files:1    Time: 0s
Serial   Phase #:62   [masoudb] Files:32   Time: 9s
Serial   Phase #:63   [masoudb] Files:1    Time: 0s
Parallel Phase #:64   [masoudb] Files:6    Time: 10s
Serial   Phase #:65   [masoudb] Files:2    Time: 37s
Serial   Phase #:66   [masoudb] Files:3    Time: 137s
****************   Upgrading ORDIM   ***************
Restart  Phase #:67   [masoudb] Files:1    Time: 4s
Serial   Phase #:69   [masoudb] Files:1    Time: 5s
Parallel Phase #:70   [masoudb] Files:2    Time: 60s
Restart  Phase #:71   [masoudb] Files:1    Time: 3s
Parallel Phase #:72   [masoudb] Files:2    Time: 4s
Serial   Phase #:73   [masoudb] Files:2    Time: 5s
*****************   Upgrading SDO   ****************
Restart  Phase #:74   [masoudb] Files:1    Time: 4s
Serial   Phase #:76   [masoudb] Files:1    Time: 58s
Serial   Phase #:77   [masoudb] Files:2    Time: 7s
Restart  Phase #:78   [masoudb] Files:1    Time: 3s
Serial   Phase #:79   [masoudb] Files:1    Time: 35s
Restart  Phase #:80   [masoudb] Files:1    Time: 3s
Parallel Phase #:81   [masoudb] Files:3    Time: 76s
Restart  Phase #:82   [masoudb] Files:1    Time: 4s
Serial   Phase #:83   [masoudb] Files:1    Time: 11s
Restart  Phase #:84   [masoudb] Files:1    Time: 4s
Serial   Phase #:85   [masoudb] Files:1    Time: 20s
Restart  Phase #:86   [masoudb] Files:1    Time: 4s
Parallel Phase #:87   [masoudb] Files:4    Time: 117s
Restart  Phase #:88   [masoudb] Files:1    Time: 4s
Serial   Phase #:89   [masoudb] Files:1    Time: 5s
Restart  Phase #:90   [masoudb] Files:1    Time: 3s
Serial   Phase #:91   [masoudb] Files:2    Time: 20s
Restart  Phase #:92   [masoudb] Files:1    Time: 2s
Serial   Phase #:93   [masoudb] Files:1    Time: 3s
Restart  Phase #:94   [masoudb] Files:1    Time: 3s
*******   Upgrading ODM, WK, EXF, RUL, XOQ   *******
Serial   Phase #:95   [masoudb] Files:1    Time: 17s
Restart  Phase #:96   [masoudb] Files:1    Time: 2s
***********   Final Component scripts    ***********
Serial   Phase #:97   [masoudb] Files:1    Time: 3s
*************   Final Upgrade scripts   ************
Serial   Phase #:98   [masoudb] Files:1    Time: 134s
*******************   Migration   ******************
Serial   Phase #:99   [masoudb] Files:1    Time: 24s
***   End PDB Application Upgrade Pre-Shutdown   ***
Serial   Phase #:100  [masoudb] Files:1    Time: 2s
Serial   Phase #:101  [masoudb] Files:1    Time: 0s
Serial   Phase #:102  [masoudb] Files:1    Time: 43s
*****************   Post Upgrade   *****************
Serial   Phase #:103  [masoudb] Files:1    Time: 18s
****************   Summary report   ****************
Serial   Phase #:104  [masoudb] Files:1    Time: 2s
***   End PDB Application Upgrade Post-Shutdown   **
Serial   Phase #:105  [masoudb] Files:1    Time: 2s
Serial   Phase #:106  [masoudb] Files:1    Time: 0s
Serial   Phase #:107  [masoudb] Files:1     Time: 58s

------------------------------------------------------
Phases [0-107]         End Time:[2020_06_28 23:38:03]
------------------------------------------------------

Grand Total Time: 3282s

 LOG FILES: (/home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/dbupgrade/catupgrd20200628224120masoudb*.log)

Upgrade Summary Report Located in:
/home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/dbupgrade/upg_summary.log

Argument list for [/u02/app/oracle/product/19/db_1/rdbms/admin/catctl.pl]
For Oracle internal use only A = 1
Run in                       c = 0
Do not run in                C = 0
Input Directory              d = /home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/temp
Echo OFF                     e = 1
Simulate                     E = 0
Forced cleanup               F = 0
Log Id                       i = 20200628224120masoudb
Child Process                I = 0
Log Dir                      l = /home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/dbupgrade
Priority List Name           L = 0
Upgrade Mode active          M = 0
SQL Process Count            n = 0
SQL PDB Process Count        N = 0
Open Mode Normal             o = 0
Start Phase                  p = 0
End Phase                    P = 0
Reverse Order                r = 0
AutoUpgrade Resume           R = 0
Script                       s = 0
Serial Run                   S = 1
RO User Tablespaces          T = 0
Display Phases               y = 0
Debug catcon.pm              z = 0
Debug catctl.pl              Z = 0

catctl.pl VERSION: [19.0.0.0.0]
           STATUS: [Production]
            BUILD: [RDBMS_19.3.0.0.0DBRU_LINUX.X64_190417]


/u02/app/oracle/product/19/db_1/rdbms/admin/orahome = [/u02/app/oracle/product/19/db_1]
/u02/app/oracle/product/19/db_1/bin/orabasehome = [/u02/app/oracle/product/19/db_1]
catctlGetOraBaseLogDir = [/u02/app/oracle/product/19/db_1]

Analyzing file /home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/temp/masoudb_autocompile.sql

Log file directory = [/home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/dbupgrade]

catcon::set_log_file_base_path: ALL catcon-related output will be written to [/home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/dbupgrade/masoudb_autocompile20200628224120masoudb_catcon_22930.lst]

catcon::set_log_file_base_path: catcon: See [/home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/dbupgrade/masoudb_autocompile20200628224120masoudb*.log] files for output generated by scripts

catcon::set_log_file_base_path: catcon: See [/home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/dbupgrade/masoudb_autocompile20200628224120masoudb_*.lst] files for spool files, if any


Number of Cpus        = 4
Database Name         = masoudb
DataBase Version      = 19.0.0.0.0
Components in [masoudb]
    Installed [APEX APS CATALOG CATJAVA CATPROC CONTEXT JAVAVM ORDIM OWM SDO XDB XML XOQ]
Not Installed [DV EM MGW ODM OLS RAC WK]
PDB Serial Inclusion:[0] Exclusion:[0]
Running File In Serial Order FileName is /home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/temp/masoudb_autocompile.sql

Grand Total Time: 191s

همچنین وضعیت component هایی که بروز شدن در لاگ زیر در پایان قابل مشاهده می باشند

[oracle@uptest ~]$ cat /home/oracle/upgradeTo19c/upg_logs/masoudb/masoudb/103/dbupgrade/upg_summary.log

Oracle Database Release 19 Post-Upgrade Status Tool    06-28-2020 23:37:0
Database Name: MASOUDB

Component                               Current         Full     Elapsed Time
Name                                    Status          Version  HH:MM:SS

Oracle Server                          UPGRADED      19.3.0.0.0  00:25:19
JServer JAVA Virtual Machine           UPGRADED      19.3.0.0.0  00:06:57
Oracle XDK                             UPGRADED      19.3.0.0.0  00:01:01
Oracle Database Java Packages          UPGRADED      19.3.0.0.0  00:00:24
OLAP Analytic Workspace                UPGRADED      19.3.0.0.0  00:00:18
Oracle Text                            UPGRADED      19.3.0.0.0  00:01:13
Oracle Workspace Manager               UPGRADED      19.3.0.0.0  00:01:36
Oracle Real Application Clusters     OPTION OFF      19.3.0.0.0  00:00:00
Oracle XML Database                    UPGRADED      19.3.0.0.0  00:04:37
Oracle Multimedia                      UPGRADED      19.3.0.0.0  00:01:13
Spatial                                UPGRADED      19.3.0.0.0  00:06:09
Oracle OLAP API                        UPGRADED      19.3.0.0.0  00:00:14
Datapatch                                                        00:02:06
Final Actions                                                    00:02:37
Post Upgrade                                                     00:00:15

Total Upgrade Time: 00:52:46

اما در مرحله آخر باید پارامتر compatible را به 19.3.0.0.0 تغییر دهیم تا بتوانیم از قابلیت های این ورژن استفاده کرد. قبل از اینکه پارامتر را تغییر دهیم باید guaranteed restore point را حذف کنید

[oracle@uptest dbs]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jun 29 00:23:24 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> sho parameter compatible

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
compatible                           string      11.2.0.4
noncdb_compatible                    boolean     FALSE
SQL>
SQL> select name from v$restore_point;

NAME
--------------------------------------------------------------------------------
AUTOUPGRADE_9212_MASOUDB112040

SQL> drop restore point AUTOUPGRADE_9212_MASOUDB112040;

Restore point dropped.

SQL> alter system set compatible='19.3.0.0' scope=spfile;

System altered.

SQL> startup force;
ORACLE instance started.

Total System Global Area 2147481656 bytes
Fixed Size                  8898616 bytes
Variable Size             486539264 bytes
Database Buffers         1644167168 bytes
Redo Buffers                7876608 bytes
Database mounted.
Database opened.
SQL> sho parameter compatible

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
compatible                           string      19.3.0.0
noncdb_compatible                    boolean     FALSE

همانگونه که مشاهده نمودید پایگاه داده به درستی از 11g به 19c بروز رسانی شد.

برای اطلاعات بیشتر در مورد autoupgrade به سایت اوراکل در لینک زیر سر بزنید

Using AutoUpgrade for Oracle Database Upgrades

دوستان عزیز امیدوارم مطلب کاربردی بوده باشد.

شاد و پیروز باشید.

  • مسعود حاجی حسن پور

نظرات  (۱)

با سلام و خدا قوت
ممنون از مطلب مفید و کاربردی شما.
دو سوال داشتم،

1- آیا در اوراکل لینوکس 6 میتوان دیتابیس 19 را نصب کرد؟ چون در داکیومنتهای 19 نوشته که نیاز به اوراکل لینوکس 7.4 به بالا میباشد.

 

2-بعد از آپگرید 11 به 19 آیا دیتابیس آپگرید شده بصورت یک pdb خواهد بود؟ (نام cdb و pdb دیتابیس 19 چه خواهد بود)

پاسخ:
سلام سجاد جان،
ممنونم از نظری که دادی.
۱-من تا الان 19c را برروی OEL6.x نصب نکردم. از آنجایی که 19c چیزی جز 12.2.0.3 نیست، بدون توجه به پیشنهاد عدم نصب فکر میکنم جواب دهد. البته پیشنهاد بنده این هست که همواره certification matrix ها را دنبال کنید چون اگر بعد از چند وقت مشکلی بوجود آید، عدم دنبال کردن استاندارد ها توسط DBA قابل پذیرش نیست. ولی راه هست که پایگاه داده 11g که بر روی OEL6.x هست را به 19c که بر روی OEL7.x یا OEL8.x هست بروز کنید.

۲-دیتابیس بعد از بروز رسانی از 11g به صورت non-cdb باقی می ماند.

شاد و پیروز باشید. 

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی