發(fā)布于:2021-02-08 15:10:20
0
376
0
自動升級實用程序是Oracle 19c中的一項新功能,旨在實現(xiàn)升級過程的自動化–這不僅包括數(shù)據(jù)庫升級,還包括升級前和升級后步驟的自動化。
考慮這樣一種情況,作為DBA,您需要升級的數(shù)據(jù)庫不是一個而是數(shù)百個,到目前為止,我們唯一的選擇是手動或通過DBUA實用程序升級這些數(shù)據(jù)庫中的每一個。
對于新的19c autoupgrade實用程序,我們要做的就是創(chuàng)建一個配置文件,其中包含需要升級的數(shù)據(jù)庫的詳細(xì)信息,然后使用基于Java的autoupgrade.jar文件。
Oracle 19c數(shù)據(jù)庫軟件中的$ ORACLE_HOME / rdbms / admin目錄中提供了autoupgrade.jar文件。但是,建議使用可以從MOS說明2485457.1下載的autoupgrade.jar文件。
該實用程序需要Java8,我們可以使用Oracle19c數(shù)據(jù)庫軟件home中提供的Java8。
[oracle@host02 admin]$ pwd
/u01/app/oracle/product/19.3.0/dbhome_1/rdbms/admin
[oracle@host02 admin]$ export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
[oracle@host02 admin]$ $ORACLE_HOME/jdk/bin/java -jar autoupgrade.jar -version
build.version 20190207
build.date 2019/02/07 12:35:56
build.label RDBMS_PT.AUTOUPGRADE_LINUX.X64_190205.1800
請注意從MOS下載的autoupgrade.jar文件版本的差異。
[oracle@host02 sf_software]$ cp autoupgrade.jar /home/oracle
[oracle@host02 sf_software]$ cd /home/oracle
[oracle@host02 ~]$ $ORACLE_HOME/jdk/bin/java -jar autoupgrade.jar -version
build.version 20190513
build.date 2019/05/13 16:59:48
autoupgrade實用程序可以在多種不同的模式下運(yùn)行。
分析
在升級之前對數(shù)據(jù)庫執(zhí)行只讀的升級前分析,并確定可能阻止成功升級的任何問題。在正常的數(shù)據(jù)庫操作過程中,我們可以在源Oracle數(shù)據(jù)庫home上以分析模式運(yùn)行AutoUpgrade。
Analyze模式生成一個報告,該報告通過運(yùn)行自動修復(fù)腳本或手動糾正操作來識別升級問題和如果不糾正可能發(fā)生的錯誤。
修正
在Fixup模式下,AutoUpgrade執(zhí)行與在Analyze模式下相同的檢查,但是在完成這些升級前檢查之后,它會運(yùn)行源數(shù)據(jù)庫的自動Fixup,為數(shù)據(jù)庫升級做準(zhǔn)備。
部署
在部署模式下,autoupgrade實用程序執(zhí)行數(shù)據(jù)庫的實際升級,還執(zhí)行許多升級后步驟,如重新編譯無效對象和時區(qū)DST升級等。
這是一個配置文件的示例,我將使用它將兩個12.2數(shù)據(jù)庫升級到oracle19c。
[oracle@host01 admin]$ cat /tmp/config.txt
#
# Global logging directory pertains to all jobs
#
global.autoupg_log_dir=/u02/app/oracle/autoupgrade # Top level logging directory (Required)
#
# Database 1
#
upg1.dbname=db1
upg1.source_home=/u02/app/oracle/product/12.2.0/dbhome_1
upg1.target_home=/u01/app/oracle/product/19.3.0/dbhome_1
upg1.sid=db1
upg1.start_time=09/06/2019 17:30:00
upg1.log_dir=/u02/app/oracle/autoupgrade/db1
upg1.upgrade_node=localhost
upg1.run_utlrp=yes
upg1.timezone_upg=yes
upg1.target_version=12.2
#
# Database 2
#
upg2.dbname=db2 # Database Name (Required)
upg2.source_home=/u02/app/oracle/product/12.2.0/dbhome_1 # Source Home (Required)
upg2.target_home=/u01/app/oracle/product/19.3.0/dbhome_1 # Target home (Required)
upg2.sid=db2 # Oracle Sid (Required)
upg2.start_time=09/06/2019 19:30:00 # Start time of the operation (Required)
upg2.log_dir=/u02/app/oracle/autoupgrade/db2 # Local logging directory (Required)
upg2.upgrade_node=localhost # Upgrade node that operation will run on (Required)
upg2.run_utlrp=yes # yes(default) to run utlrp as part of upgrade, no to skip it (Optional)
upg2.timezone_upg=yes # yes(default) to upgrade timezone if needed, no to skip it (Optional)
upg2.target_version=12.2 # Oracle Home Target version number (Required)
在分析模式下執(zhí)行自動升級。
自動升級控制臺使我們能夠監(jiān)視、管理和控制由自動升級實用程序啟動的作業(yè)。
例如,我們在控制臺提示符中使用'lsj'命令,它將列出正在運(yùn)行的升級作業(yè)以及進(jìn)度和狀態(tài)。
[oracle@host02 autoupgrade]$ $ORACLE_HOME/jdk/bin/java -jar /home/oracle/autoupgrade.jar -config /tmp/config.txt -mode analyze
Autoupgrade tool launched with default options
+--------------------------------+
| Starting AutoUpgrade execution |
+--------------------------------+
2 databases will be analyzed
Type 'help' to list console commands
upg> lsj
+----+-------+---------+---------+--------+--------------+--------+--------+---------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+--------+--------------+--------+--------+---------------+
| 104| DB1|PRECHECKS|PREPARING| RUNNING|19/06/09 16:57| N/A|16:57:45|Remaining 49/71|
| 105| DB2| SETUP|PREPARING|FINISHED|19/06/09 16:57| N/A|16:57:34| Scheduled|
+----+-------+---------+---------+--------+--------------+--------+--------+---------------+
Total jobs 2
upg> lsj
+----+-------+---------+---------+--------+--------------+--------+--------+---------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+--------+--------------+--------+--------+---------------+
| 104| DB1|PRECHECKS|PREPARING| RUNNING|19/06/09 16:57| N/A|16:57:51|Remaining 15/71|
| 105| DB2| SETUP|PREPARING|FINISHED|19/06/09 16:57| N/A|16:57:34| Scheduled|
+----+-------+---------+---------+--------+--------------+--------+--------+---------------+
Total jobs 2
upg> tasks
+---+--------------+-------------+
| ID| NAME| Job#|
+---+--------------+-------------+
| 1| main| WAITING|
| 30| jobs_mon| WAITING|
| 31| console| RUNNABLE|
| 32| queue_reader| WAITING|
| 33| cmd-0| WAITING|
| 44| job_manager-0| WAITING|
| 47| event_loop|TIMED_WAITING|
| 48| bqueue-104| WAITING|
| 50| checks-104| WAITING|
| 51|rep_checks-104|TIMED_WAITING|
|105| db1-puic-0| WAITING|
|106| db1-puic-1| WAITING|
|170| quickSQL| RUNNABLE|
+---+--------------+-------------+
upg> status
---------------- Config -------------------
User configuration file [/tmp/config.txt]
General logs location [/u02/app/oracle/autoupgrade # Top level logging directory (Required)/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 drop GRP abort time [3] minutes
------------------------ Jobs ------------------------
Total databases in configuration file [2]
Total Non-CDB being processed [2]
Total CDB being processed [0]
Jobs finished successfully [0]
Jobs finished/aborted [0]
jobs in progress [2]
------------ Resources ----------------
Threads in use [21]
JVM used memory [41] MB
CPU in use [13%]
Processes in use [14]
upg> Job 104 completed
Job 105 completed
------------------- Final Summary --------------------
Number of databases [ 2 ]
Jobs finished successfully [2]
Jobs failed [0]
Jobs pending [0]
------------- JOBS FINISHED SUCCESSFULLY -------------
Job 104 FOR DB1
Job 105 FOR DB2
[oracle@host02 autoupgrade]$
請注意為每個數(shù)據(jù)庫創(chuàng)建的日志文件–由于我們只使用Analyze選項運(yùn)行autoupgrade,因此創(chuàng)建的唯一目錄是prechecks directory。
對于已分析的每個數(shù)據(jù)庫,我們可以查看HTML文件,其中列出了預(yù)檢查警告和建議。
[oracle@host01 prechecks]$ pwd
/u02/app/oracle/autoupgrade/db1/db1/104/prechecks
[oracle@host01 prechecks]$ ls -l
total 180
-rwx------. 1 oracle oinstall 1967 May 21 00:29 db1_checklist.cfg
-rwx------. 1 oracle oinstall 1616 May 21 00:29 db1_checklist.json
-rwx------. 1 oracle oinstall 1892 May 21 00:29 db1_checklist.xml
-rwx------. 1 oracle oinstall 23354 May 21 00:29 db1_preupgrade.html
-rwx------. 1 oracle oinstall 7619 May 21 00:29 db1_preupgrade.log
-rwx------. 1 oracle oinstall 138146 May 21 00:29 prechecks_db1.log
[oracle@host01 prechecks]$ pwd
/u02/app/oracle/autoupgrade/db2/db2/105/prechecks
[oracle@host01 prechecks]$ ls -lrt
total 180
-rwx------. 1 oracle oinstall 138147 May 21 00:29 prechecks_db2.log
-rwx------. 1 oracle oinstall 1901 May 21 00:29 db2_checklist.xml
-rwx------. 1 oracle oinstall 1976 May 21 00:29 db2_checklist.cfg
-rwx------. 1 oracle oinstall 7543 May 21 00:29 db2_preupgrade.log
-rwx------. 1 oracle oinstall 1625 May 21 00:29 db2_checklist.json
-rwx------. 1 oracle oinstall 23230 May 21 00:29 db2_preupgrade.html