OS환경 : Oracle Linux 7.6 (64bit)
DB 환경 : Oracle Database 18.3.0.0, 19.3.0.0
방법 : Oracle Linux 7.6에 Oracle 18c 에서 Oracle 19c로 AutoUpgrade
AutoUpgrade 란?
Oracle Database AutoUpgrade 유틸리티는 데이터베이스를 자동으로 업그레이드 할 수있는 새로운 도구임
업그레이드 시작 전, 업그레이드 배포 중 및 업그레이드 후 확인 및 구성 마이그레이션 중에 업그레이드 프로세스를 자동화하도록 설계되었음
자동 업그레이드를 사용하는 경우 단일 데이터베이스 파일(config.txt 등)을 사용하여 각 데이터베이스 배포에 필요한대로 사용자 지정하여 여러 Oracle Database 배포를 동시에 업그레이드 할 수 있음
여기에는 자동 재시도 및 fallback, 향후 특정 시점에 대한 업그레이드 예약 기능 및 원하는대로 초기화 매개 변수를 설정, 변경 또는 제거하는 기능이 포함됨
하나의 명령으로 수백 개의 데이터베이스를 업그레이드하고 맞춤형 높은 유지 보수 업그레이드 솔루션을 대체하여 시간과 비용을 절약함
AutoUpgrade Tool은 지원 버전(mos 2485457.1)
1 2 3 | Oracle Database 19c (19.3 이상) Oracle Database 18c (18.5 이상) Oracle Database 12c Release 2 (12.2 + DBJAN2019RU 이상) |
자동 업그레이드 처리 모드 워크 플로우 처리
자동 업그레이드가 워크 플로 모드를 처리하는 방법을 이해하려면 배포 처리 모드가 처리되는 방법을 보여주는 다음 그림을 검토해야함
1. DBA는 config.txt 파일에 dbname과 oracle sid, start time(업그레이드 시작시간), source home(기존 db버전), target home(업그레이드 db버전), log directory(업그레이드 로그파일위치) 등을 설정해주여야함
이 파일 정보가 부트 스트랩 관리자로 전달됨
2. 업그레이드 부트 스트랩 관리자가 config.txt 파일을 처리하고 필수 구성 요소를 시작함
3. 업그레이드 작업 관리자는 각 job을 준비하고 제출함
4. 각 job은 자체 스레드에서 실행되며 나머지 작업과 별개로 실행되므로 별도의 업그레이드 작업을 실행하여 성능을 최대화하고 위험을 줄 일수 있음
자동 업그레이드 처리 모드 단계
업그레이드 작업을 위해 자동 업그레이드가 실행되는 단계는 선택한 처리 모드에 따라 다름
네 가지 자동 업그레이드 모드가 있음
각 모드에 대해 자동 업그레이드 단계가 순서대로 수행됨
각 모드마다 단계의 차이점에 유의해야함
Analyze 모드 : 설정, 사전 확인
Fixups 모드 : 설정, 사전 검사 및 사전 수정
Deploy 모드 : 설정, 사전 업그레이드, 사전 확인, 보장 된 복구 지점 (GRP), 사전 수정, 드레인, DB (데이터베이스) 업그레이드, 사후 확인 및 사후 업그레이드
업그레이드 전 (업그레이드 단계) 또는 업그레이드 후 (업그레이드 후 단계) 또는 업그레이드 전후에 고유 한 스크립트를 실행할 수 있음
Upgrade 모드 : 설정, DB (데이터베이스) 업그레이드, 사후 점검 및 사후 수정
Oracle 18c 에서 Oracle 19c로 AutoUpgrade 시나리오
기본 정보
서버(node) 이름 : ORACLESV
dbname, sid : orcl
db 버전 : 18.3.0.0
기존 db 버전 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | SQL> select instance_name, version, status from v$instance; INSTANCE_NAME VERSION STATUS ---------------- ----------------- ------------ orcl 18.0.0.0.0 OPEN SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- BANNER_FULL ---------------------------------------------------------------------------------------------------------------------------------------------------------------- BANNER_LEGACY CON_ID -------------------------------------------------------------------------------- ---------- Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production Version 18.3.0.0.0 Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production 0 |
18.3 버전임
샘플 데이터 생성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | SQL> create user imsi identified by imsi account unlock quota unlimited on users; SQL> grant resource, connect to imsi; SQL> conn imsi/imsi SQL> create table imsi_tab (col number); SQL> declare type tbl_ins is table of imsi_tab%rowtype index by binary_integer; w_ins tbl_ins; begin for i in 1..10000 loop w_ins(i).col :=i; end loop; forall i in 1..10000 insert into imsi_tab values w_ins(i); commit; end; / SQL> select count (*) from imsi_tab; COUNT(*) ---------- 10000 |
오라클 19c 파일 업로드, 압축해제 및 엔진 설치
1 2 3 4 5 6 7 8 | # mkdir -p /app/oracle/product/19.0.0/db_1 # cp /app/media/LINUX.X64_193000_db_home.zip /app/oracle/product/19.0.0/db_1/ # chown -R oracle:dba /app/oracle/product/19.0.0/db_1 # chown oracle:dba /app/oracle/product/19.0.0/db_1/LINUX.X64_193000_db_home.zip # su - oracle $ cd /app/oracle/product/19.0.0/db_1/ $ unzip LINUX.X64_193000_db_home.zip $ ./runInstaller |
Set Up Software Only 선택
Single instance database installation 선택
Enterprise Edition 선택
Oracle base 경로 설정(경로 본인설치 경로에 맞게 설치)
oraInventory 경로 선택(경로 본인설치 경로에 맞게 설치)
그룹 권한 선택
./runinstaller 실행후 자동으로 root 스크립트 실행을 위한 root 패스워드 입력(root.sh 등)
사전 요구사항 체크중
Install 선택
설치 중
root 스크립트를 돌리기 전 확인차 물어보는 메세지 Yes 선택
db 소프트웨어(엔진) 설치 완료 Close 선택
19c 엔진 설치 완료
최신버전의 autoupgrade.jar 파일 가져오기 - 자동 업그레이드 도구 (문서 ID 2485457.1)
Oracle Database 18c (18.3) 이상 Oracle 홈에는 autoupgrade.jar 파일이 기본적으로 존재함
그러나 AutoUpgrade를 사용하기 전에 MOS에서 최신 버전을 다운로드하고
$ORACLE_HOME/rdbms/admin에 이미 존재하는 기존파일을 최신 파일로 교체 할 것을 권장함
(OPatch 적용 전 최신 OPatch 파일p6880880 을 가지고 와서 적용하는것처럼)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 파일 업로드 /app/media/autoupgrade.jar 권한부여 # chown oracle:dba autoupgrade.jar 기존 autoupgrade.jar 파일 백업 $ mv $ORACLE_HOME/rdbms/admin/autoupgrade.jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar_old 최신 autoupgrade.jar 파일 복사 $ cp /app/media/autoupgrade.jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar 확인 $ ls -al /home/oracle/ total 3.3M -rw-r--r--. 1 oracle dba 117 Nov 23 11:04 afiedt.buf -rw-r--r--. 1 oracle dba 3.3M Mar 22 00:13 autoupgrade.jar |
autoupgrade.jar 명령의 mode 인수
analyze: 데이터베이스를 분석함
fixups: 소스 데이터베이스의 오류 수정함
deploy: 분석에서 사후 업그레이드까지 데이터베이스에 대한 모든 작업을 수행함
upgrade: 대상 Oracle 홈에서 업그레이드를 수행함
config파일 생성
1 2 3 4 | $ cd ~ $ $ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -create_sample_file config Created sample configuration file /home/oracle/sample_config.cfg $ cp sample_config.cfg config.txt |
config 파일 수정
원본
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | $ cat config.txt # # sample config file # # build version 19.7.5 # build date 2020/02/11 15:28:49 # # # 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/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/upg_logs/employee upg1.upgrade_node=oel7 upg1.target_version=19 #upg1.run_utlrp=yes #upg1.timezone_upg=yes # # Database number 2 # #upg2.dbname=database name #upg2.start_time=23/03/2020 17:21:11 #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=oel7 # 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] |
config.txt 파일 수정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $ cat config.txt global.autoupg_log_dir=/home/oracle/upg_logs # # Database number 1 # upg1.dbname=orcl upg1.start_time=NOW upg1.source_home=/app/oracle/product/18.1.0/db_1 upg1.target_home=/app/oracle/product/19.0.0/db_1 upg1.sid=orcl upg1.log_dir=/home/oracle/upg_logs/orcl upg1.upgrade_node=ORACLESV upg1.target_version=19 #upg1.run_utlrp=yes #upg1.timezone_upg=yes |
global.autoupg_log_dir, Database number 1의 일부 내용만 수정함
대상 db가 여러개라면 Database number 2, 3 등도 수정하면됨
자동 업그레이드 전 분석
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | $ $ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config config.txt -mode analyze Autoupgrade tool launched with default options +--------------------------------+ | Starting AutoUpgrade execution | +--------------------------------+ 1 databases will be analyzed Enter some command, type 'help' or 'exit' to quit upg> status ---------------- Config ------------------- User configuration file [/home/oracle/config.txt] General logs location [/home/oracle/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: orcl SETUP <1 min PRECHECKS <1 min (IN PROGRESS) ------------ Resources ---------------- Threads in use [20] JVM used memory [27] MB CPU in use [13%] Processes in use [14] |
실행중인 job 확인(analyze 작업)
Loading DB info -> Remaining 에서 숫자가 점점 작아짐 0이되면 완료됨
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | upg> lsj -p +----+-------+---------+---------+-------+--------------+--------+--------+---------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+---------------+ | 100| orcl|PRECHECKS|PREPARING|RUNNING|20/03/23 16:24| N/A|16:24:43|Loading DB info| +----+-------+---------+---------+-------+--------------+--------+--------+---------------+ Total jobs 1 upg> lsj -p +----+-------+---------+---------+-------+--------------+--------+--------+---------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+---------------+ | 101| orcl|PRECHECKS|PREPARING|RUNNING|20/03/23 18:06| N/A|18:07:00|Remaining 72/72| +----+-------+---------+---------+-------+--------------+--------+--------+---------------+ . . upg> lsj -p +----+-------+---------+---------+-------+--------------+--------+--------+--------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+--------------+ | 101| orcl|PRECHECKS|PREPARING|RUNNING|20/03/23 18:06| N/A|18:07:06|Remaining 1/72| +----+-------+---------+---------+-------+--------------+--------+--------+--------------+ |
조금 기다리면 완료됨
1 2 3 4 5 6 7 8 9 | 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 orcl |
help로 다른 명령 확인 가능
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | upg> help exit // To close and exit help // Display help lsj [(-r|-f|-p|-e) | -n <number>] // list jobs by status up to n elements. -f Filter by finished jobs. -r Filter by running jobs. -e Filter by jobs with errors. -p Filter by jobs being prepared. -n <number> Display up to n jobs. lsr // Displays the restoration queue lsa // Display the abort queue tasks // Displays tasks running clear // Clean terminal resume -job <number> // Restarts a previous job that was running. status [-job <number> [-long]]// List all the jobs or a specific job restore -job <number> [force] // Restores database to its state prior upgrade . // force will do it even if the job is not in abort or error state restore all_failed // Restores all failed jobs to its previous state prior the upgrade logs // Displays all the log locations abort -job <number> // Aborts the specified job h[ist] // Display the command line history /[<number>] // Executes the command specified from the history, the default is the last command |
관련 로그 확인
1 2 3 4 5 6 | $ ls -al /home/oracle/upg_logs/orcl/orcl total 8 drwx------. 4 oracle dba 29 Mar 23 16:24 . drwx------. 3 oracle dba 18 Mar 23 16:24 .. drwx------. 3 oracle dba 4096 Mar 23 16:25 100 drwx------. 2 oracle dba 4096 Mar 23 16:24 temp |
analyze 작업의 job number 100 디렉토리로 이동
1 2 3 4 5 6 7 8 9 | $ cd /home/oracle/upg_logs/orcl/orcl/100 $ ls -al total 84 drwx------. 3 oracle dba 4096 Mar 23 16:25 . drwx------. 4 oracle dba 29 Mar 23 16:24 .. -rwx------. 1 oracle dba 68963 Mar 23 16:25 autoupgrade_20200323.log -rwx------. 1 oracle dba 489 Mar 23 16:25 autoupgrade_20200323_user.log -rwx------. 1 oracle dba 264 Mar 23 16:25 autoupgrade_err.log drwx------. 2 oracle dba 4096 Mar 23 16:25 prechecks |
로그 파일 확인
autoupgrade_20200323.log : db 업그레이드에 관련되서 db_platform이 맞는지 등을 모두 검사함(길어서 다보기힘듦)
autoupgrade_20200323_user.log : 경고 메세지가 기록됨
1 2 3 4 5 6 7 8 9 10 11 12 13 | 2020-03-23 16:24:41.780 INFO build.hash:04dd9f2 build.version:19.7.5 build.date:2020/02/11 15:28:49 build.max_target_version:19 build.type:production build.label:HEAD 2020-03-23 16:25:07.289 INFO Analyzing orcl, 72 checks will run using 2 threads 2020-03-23 16:25:34.992 WARNING The following checks have ERROR severity and no fixup is available or the fixup failed to resolve the issue. Please fix them manually before continuing: orcl FLASH_RECOVERY_AREA_SETUP orcl ARCHIVE_MODE_ON |
=> 수동으로 FRA영역을 설정하고 아카이브모드로 전환해주라고 나옴
prechecks 폴더 : checklist와 로그들이 남아있음
1 2 3 4 5 6 7 8 9 10 11 | $ cd prechecks/ $ ls -al total 192 drwx------. 2 oracle dba 4096 Mar 23 16:25 . drwx------. 3 oracle dba 4096 Mar 23 16:29 .. -rwx------. 1 oracle dba 2380 Mar 23 16:25 orcl_checklist.cfg -rwx------. 1 oracle dba 8505 Mar 23 16:25 orcl_checklist.json -rwx------. 1 oracle dba 8048 Mar 23 16:25 orcl_checklist.xml -rwx------. 1 oracle dba 23814 Mar 23 16:25 orcl_preupgrade.html -rwx------. 1 oracle dba 8315 Mar 23 16:25 orcl_preupgrade.log -rwx------. 1 oracle dba 126786 Mar 23 16:25 prechecks_orcl.log |
로그에 나온 내용 조치
아카이브 로그모드로 변경
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | 아카이브 경로 생성 $ mkdir -p /home/oracle/arch 기존 아카이브 모드 확인 SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination /app/oracle/product/18.1.0/db_1/dbs/arch Oldest online log sequence 2 Current log sequence 4 아카이브 포멧 변경 SQL> alter system set log_archive_format = '%t%s%r.arc' scope=spfile; System altered. 아카이브 사용안하는 경로 수정 SQL> alter system set log_archive_dest = '' scope = spfile; System altered. 아카이브 사용 경로 수정 SQL> alter system set log_archive_dest_1 = 'location=/home/oracle/arch' scope = spfile; System altered. db 종료 SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. mount로 startup SQL> startup mount; ORACLE instance started. Total System Global Area 1660943808 bytes Fixed Size 8658368 bytes Variable Size 1056964608 bytes Database Buffers 587202560 bytes Redo Buffers 8118272 bytes Database mounted. 아카이브 모드로 변경 SQL> alter database archivelog; Database altered. db open SQL> alter database open; Database altered. 아카이브 모드 확인 SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /home/oracle/arch Oldest online log sequence 2 Next log sequence to archive 4 Current log sequence 4 |
FRA 영역 설정
1 2 3 4 5 6 7 8 9 10 11 12 | fra 경로 생성 $ mkdir -p /home/oracle/fra fra 경로 사이즈 설정 SQL> alter system set db_recovery_file_dest_size = 10G; System altered. fra 경로 설정 SQL> alter system set db_recovery_file_dest = '/home/oracle/fra'; System altered. |
자동 업그레이드 전 재분석
1 2 3 4 5 6 7 8 9 10 11 12 | $ $ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config config.txt -mode analyze . . Job 101 completed ------------------- Final Summary -------------------- Number of databases [ 1 ] Jobs finished successfully [1] Jobs failed [0] Jobs pending [0] ------------- JOBS FINISHED SUCCESSFULLY ------------- Job 101 for orcl |
분석완료
로그 확인
1 2 3 4 5 6 7 8 9 | $ cd /home/oracle/upg_logs/orcl/orcl/101/ $ ls -al total 92 drwx------. 3 oracle dba 4096 Mar 23 18:07 . drwx------. 5 oracle dba 40 Mar 23 18:06 .. -rwx------. 1 oracle dba 78863 Mar 23 18:07 autoupgrade_20200323.log -rwx------. 1 oracle dba 251 Mar 23 18:06 autoupgrade_20200323_user.log -rwx------. 1 oracle dba 0 Mar 23 18:06 autoupgrade_err.log drwx------. 2 oracle dba 4096 Mar 23 18:07 prechecks |
경고 메세지 로그 확인
1 2 3 4 5 6 7 8 9 10 | $ cat autoupgrade_20200323_user.log 2020-03-23 18:06:27.937 INFO build.hash:04dd9f2 build.version:19.7.5 build.date:2020/02/11 15:28:49 build.max_target_version:19 build.type:production build.label:HEAD 2020-03-23 18:06:44.270 INFO Analyzing orcl, 72 checks will run using 2 threads |
아카이브로그 모드와 fra 설정 후 더이상 경고 메세지가 나오지 않음
업그레이드 전 db 수정 작업
1 | $ $ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config config.txt -mode fixups |
실행중인 job 확인(fixups 작업)
lsh -p 명령을 확인해보면 STAGE,OPERATION,MESSAGE의 값들이
PRECHECKS,PREPARING Remaining 이 끝나면 PREFIXUPS,EXECUTING Remaining으로 변경됨
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | upg> lsj -p +----+-------+---------+---------+-------+--------------+--------+--------+--------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+--------------+ | 102| orcl|PRECHECKS|PREPARING|RUNNING|20/03/23 18:23| N/A|18:24:33|Remaining 2/72| +----+-------+---------+---------+-------+--------------+--------+--------+--------------+ upg> lsj -p +----+-------+---------+---------+-------+--------------+--------+--------+-------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+-------------+ | 102| orcl|PREFIXUPS|EXECUTING|RUNNING|20/03/23 18:23| N/A|18:24:40|Remaining 4/4| +----+-------+---------+---------+-------+--------------+--------+--------+-------------+ upg> lsj -p +----+-------+---------+---------+-------+--------------+--------+--------+-------------+ |JOB#|DB NAME| STAGE|OPERATION| STATUS| START TIME|END TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+-------------+ | 102| ORCL18|PREFIXUPS|EXECUTING|RUNNING|20/03/22 00:21| N/A|00:22:03|Remaining 3/3| +----+-------+---------+---------+-------+--------------+--------+--------+-------------+ Total jobs 1 |
조금 기다리면 완료됨
1 2 3 4 5 6 7 8 9 | Job 102 completed ------------------- Final Summary -------------------- Number of databases [ 1 ] Jobs finished successfully [1] Jobs failed [0] Jobs pending [0] ------------- JOBS FINISHED SUCCESSFULLY ------------- Job 102 for orcl |
로그 파일 확인
1 2 3 4 5 6 7 8 9 10 | $ cd /home/oracle/upg_logs/orcl/orcl/102/ $ ls -al total 160 drwx------. 4 oracle dba 4096 Mar 23 18:34 . drwx------. 6 oracle dba 51 Mar 23 18:23 .. -rwx------. 1 oracle dba 149046 Mar 23 18:34 autoupgrade_20200323.log -rwx------. 1 oracle dba 1015 Mar 23 18:34 autoupgrade_20200323_user.log -rwx------. 1 oracle dba 0 Mar 23 18:23 autoupgrade_err.log drwx------. 2 oracle dba 4096 Mar 23 18:24 prechecks drwx------. 2 oracle dba 58 Mar 23 18:34 prefixups |
여기는 prefixups 라는 폴더가 있음
해당 폴더 확인
1 2 3 4 5 6 7 | $ cd prefixups $ ls -al total 148 drwx------. 2 oracle dba 58 Mar 23 18:34 . drwx------. 4 oracle dba 4096 Mar 23 18:34 .. -rwx------. 1 oracle dba 135462 Mar 23 18:34 prechecks_orcl.log -rwx------. 1 oracle dba 5479 Mar 23 18:33 prefixups_orcl.log |
2가지 파일이 있는데 prefixups.log 를 확인
prefixups_orcl.log 파일 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | $ cat prefixups_orcl.log 2020-03-23 18:24:39.776 INFO Starting log for orcl - Utilities.createLogger 2020-03-23 18:24:40.040 INFO Running FIXUP [DICTIONARY_STATS][orcl][PLSQL][DECLARE BEGIN SYS.DBMS_STATS.GATHER_INDEX_STATS('SYS', 'I_OBJ#'); SYS.DBMS_STATS.GATHER_SCHEMA_STATS('SYS'); SYS.DBMS_STATS.GATHER_SCHEMA_STATS('SYSTEM'); END; / ] - FixUpTrigger.executeFixUp . . 2020-03-23 18:33:25.423 INFO Adding parameter job_queue_processes='0' to /home/oracle/upg_logs/orcl/orcl/temp/during_upgrade_pfile_orcl.ora - PFileManager.addParameterToPFile 2020-03-23 18:33:25.423 INFO Finished FIXUP [MANDATORY_UPGRADE_CHANGES][orcl][SUCCESSFUL] - FixUpTrigger.executeFixUp 2020-03-23 18:33:25.453 INFO Running FIXUP [PURGE_RECYCLEBIN][orcl][PLSQL][PURGE DBA_RECYCLEBIN / ] - FixUpTrigger.executeFixUp 2020-03-23 18:33:25.476 INFO Begin [/app/oracle/product/18.1.0/db_1/bin/sqlplus, -silent, /, as, sysdba] - ExecuteProcess.startSqlPlusProcess 2020-03-23 18:33:25.476 INFO Begin Setting Oracle Environment - ExecuteProcess.startSqlPlusProcess 2020-03-23 18:33:25.476 INFO [(SQLPATH=/home/oracle/upg_logs/orcl/orcl), (ORACLE_SID=orcl), (ORACLE_UNQNAME=orcl), (ORACLE_PATH=/home/oracle/upg_logs/orcl/orcl), (ORACLE_BASE=/app/oracle), (TWO_TASK=N/A), (ORACLE_HOME=/app/oracle/product/18.1.0/db_1), (TNS_ADMIN=N/A), (PERL5LIB=N/A)] - ExecutionEnv.addEnvToProcess 2020-03-23 18:33:25.476 INFO Starting - ExecuteProcess.setLibsForSqlplus 2020-03-23 18:33:25.477 INFO Finished - ExecuteProcess.setLibsForSqlplus 2020-03-23 18:33:25.479 INFO End Setting Oracle Environment - ExecuteProcess.startSqlPlusProcess 2020-03-23 18:33:25.479 INFO Begin Creating Process - ExecuteProcess.startSqlPlusProcess 2020-03-23 18:33:25.501 INFO End Creating Process - ExecuteProcess.startSqlPlusProcess 2020-03-23 18:33:25.502 INFO Executing SQL [PURGE DBA_RECYCLEBIN / ] in [orcl, container:null] - ExecuteSql$SQLClient.run 2020-03-23 18:33:25.880 INFO # PURGE_RECYCLEBIN - Check.runFix 2020-03-23 18:33:25.880 INFO Finished FIXUP [PURGE_RECYCLEBIN][orcl][SUCCESSFUL] - FixUpTrigger.executeFixUp |
sys의 특정 오브젝트와 특정 인덱스 통계정보를 수집하고 recyclebin을 purge하는 등 업그레이드 전 정리작업을 함
spfile로 pfile 생성 후 업그레이드 전 파라미터 파일 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | SQL> create pfile from spfile; $ cat $ORACLE_HOME/dbs/initorcl.ora orcl.__data_transfer_cache_size=0 orcl.__db_cache_size=452984832 orcl.__inmemory_ext_roarea=0 orcl.__inmemory_ext_rwarea=0 orcl.__java_pool_size=50331648 orcl.__large_pool_size=33554432 orcl.__oracle_base='/app/oracle'#ORACLE_BASE set from environment orcl.__pga_aggregate_target=721420288 orcl.__sga_target=939524096 orcl.__shared_io_pool_size=50331648 orcl.__shared_pool_size=335544320 orcl.__streams_pool_size=0 *.audit_file_dest='/app/oracle/admin/orcl/adump' *.audit_trail='db' *.compatible='18.0.0' *.control_files='/app/oracle/oradata/ORCL/control01.ctl','/app/oracle/oradata/ORCL/control02.ctl' *.db_block_size=8192 *.db_name='orcl' *.db_recovery_file_dest_size=2147483648 *.db_recovery_file_dest='/home/oracle/fra' *.diagnostic_dest='/app/oracle' *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' *.local_listener='LISTENER_ORCL' *.log_archive_dest='' *.log_archive_dest_1='location=/home/oracle/arch' *.log_archive_format='%t%s%r.arc' *.memory_target=1569m *.nls_language='AMERICAN' *.nls_territory='AMERICA' *.open_cursors=300 *.processes=300 *.remote_login_passwordfile='EXCLUSIVE' *.undo_tablespace='UNDOTBS1' |
다시 업그레이드 배치 작업시작
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | $ $ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config config.txt -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> lsj -p +----+-------+---------+---------+-------+--------------+--------+--------+---------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+---------------+ | 103| orcl|PRECHECKS|PREPARING|RUNNING|20/03/24 00:32| N/A|00:32:34|Loading DB info| +----+-------+---------+---------+-------+--------------+--------+--------+---------------+ Total jobs 1 upg> lsj -p +----+-------+---------+---------+-------+--------------+--------+--------+---------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+---------------+ | 103| orcl|PREFIXUPS|EXECUTING|RUNNING|20/03/24 00:32| N/A|00:33:27|Loading DB info| +----+-------+---------+---------+-------+--------------+--------+--------+---------------+ Total jobs 1 |
작업중 에러발생 시 에러 조치 후 resume -job 명령으로 다시 시작 시키면됨
에러 발생 예시(https://positivemh.tistory.com/537)
작업확인
중간에 db가 자동종료됨
1 2 3 4 5 6 7 | upg> lsj -p +----+-------+-----+---------+-------+--------------+--------+--------+----------------+ |Job#|DB_NAME|STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+-----+---------+-------+--------------+--------+--------+----------------+ | 103| orcl|DRAIN|EXECUTING|RUNNING|20/03/24 00:32| N/A|00:45:17|Shutting Down DB| +----+-------+-----+---------+-------+--------------+--------+--------+----------------+ Total jobs 1 |
작업확인
1 2 3 4 5 6 7 | upg> lsj -p +----+-------+---------+---------+-------+--------------+--------+--------+-----------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+-----------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:02:27|0%Upgraded | +----+-------+---------+---------+-------+--------------+--------+--------+-----------+ Total jobs 1 |
MESSAGE에 0%Upgraded로 퍼센트가 표시됨
작업확인
업그레이드 중에는 startup migrate 모드로 OPEN 됨(alert 확인)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | upg> / +----+-------+---------+---------+-------+--------------+--------+--------+-----------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+-----------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:05:31|8%Upgraded | +----+-------+---------+---------+-------+--------------+--------+--------+-----------+ upg> / +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+------------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:08:34|14%Upgraded | +----+-------+---------+---------+-------+--------------+--------+--------+------------+ upg> / +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+------------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:11:36|21%Upgraded | +----+-------+---------+---------+-------+--------------+--------+--------+------------+ upg> / +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+------------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:17:41|23%Upgraded | +----+-------+---------+---------+-------+--------------+--------+--------+------------+ upg> / +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+------------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:20:44|39%Upgraded | +----+-------+---------+---------+-------+--------------+--------+--------+------------+ upg> / +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+------------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:23:46|44%Upgraded | +----+-------+---------+---------+-------+--------------+--------+--------+------------+ upg> / +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+------------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:26:49|49%Upgraded | +----+-------+---------+---------+-------+--------------+--------+--------+------------+ upg> / +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+------------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:32:54|64%Upgraded | +----+-------+---------+---------+-------+--------------+--------+--------+------------+ upg> / +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+------------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:35:56|73%Upgraded | +----+-------+---------+---------+-------+--------------+--------+--------+------------+ upg> / +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+------------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:38:58|75%Upgraded | +----+-------+---------+---------+-------+--------------+--------+--------+------------+ upg> / +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+------------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:42:01|81%Upgraded | +----+-------+---------+---------+-------+--------------+--------+--------+------------+ upg> / +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+------------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:45:03|91%Upgraded | +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |
업그레이드 완료
업그레이드 완료 후 nomal OPEN 후 INVALID OBJECT 확인 및 컴파일을 위해 UTLRP를 실행함 (alert 확인)
UTLRP 시작
1 2 3 | alert log 2020-03-24T01:51:18.995080+09:00 SERVER COMPONENT id=UTLRP_BGN: timestamp=2020-03-24 01:51:18 |
작업확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | upg> / +----+-------+---------+---------+-------+--------------+--------+--------+-----------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+-----------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:51:10|0%Compiled | +----+-------+---------+---------+-------+--------------+--------+--------+-----------+ upg> / +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+------------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:54:14|58%Compiled | +----+-------+---------+---------+-------+--------------+--------+--------+------------+ upg> / +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+--------------+--------+--------+------------+ | 103| orcl|DBUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|01:57:17|99%Compiled | +----+-------+---------+---------+-------+--------------+--------+--------+------------+ |
UTLRP 종료
1 2 3 | alert log 2020-03-24T02:00:35.375973+09:00 SERVER COMPONENT id=UTLRP_END: timestamp=2020-03-24 02:00:35 |
작업확인
UTLRP 종료 후 재기동됨
1 2 3 4 5 6 | upg> / +----+-------+---------+---------+--------+--------------+--------+--------+-------------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+--------+--------------+--------+--------+-------------------+ | 103| orcl|DBUPGRADE|EXECUTING|FINISHED|20/03/24 00:32| N/A|02:00:57|Restarting Database| +----+-------+---------+---------+--------+--------------+--------+--------+-------------------+ |
작업확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 재기동 이후 POSTCHECKS, PREPARING, Loading DB info upg> / +----+-------+----------+---------+-------+--------------+--------+--------+---------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+----------+---------+-------+--------------+--------+--------+---------------+ | 103| orcl|POSTCHECKS|PREPARING|RUNNING|20/03/24 00:32| N/A|02:02:02|Loading DB info| +----+-------+----------+---------+-------+--------------+--------+--------+---------------+ 이후 POSTCHECKS, PREPARING, Remaining upg> / +----+-------+----------+---------+-------+--------------+--------+--------+--------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+----------+---------+-------+--------------+--------+--------+--------------+ | 103| orcl|POSTCHECKS|PREPARING|RUNNING|20/03/24 00:32| N/A|02:03:07|Remaining 5/10| +----+-------+----------+---------+-------+--------------+--------+--------+--------------+ 이후 POSTFIXUPS, EXECUTING, Remaining upg> / +----+-------+----------+---------+-------+--------------+--------+--------+-------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+----------+---------+-------+--------------+--------+--------+-------------+ | 103| orcl|POSTFIXUPS|EXECUTING|RUNNING|20/03/24 00:32| N/A|02:03:15|Remaining 3/3| +----+-------+----------+---------+-------+--------------+--------+--------+-------------+ 이후 재기동 이후 POSTFIXUPS, EXECUTING, Loading DB info upg> +----+-------+----------+---------+-------+--------------+--------+--------+---------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+----------+---------+-------+--------------+--------+--------+---------------+ | 103| orcl|POSTFIXUPS|EXECUTING|RUNNING|20/03/24 00:32| N/A|02:09:00|Loading DB info| +----+-------+----------+---------+-------+--------------+--------+--------+---------------+ 이후 POSTUPGRADE, EXECUTING, Creating final SPFILE upg> / +----+-------+-----------+---------+-------+--------------+--------+--------+--------------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|END_TIME| UPDATED| MESSAGE| +----+-------+-----------+---------+-------+--------------+--------+--------+--------------------+ | 103| orcl|POSTUPGRADE|EXECUTING|RUNNING|20/03/24 00:32| N/A|02:10:10|Creating final SPFIL| +----+-------+-----------+---------+-------+--------------+--------+--------+--------------------+ |
업그레이드 완료
1 2 3 4 5 6 7 8 9 | upg> Job 103 completed ------------------- Final Summary -------------------- Number of databases [ 1 ] Jobs finished successfully [1] Jobs failed [0] Jobs pending [0] ------------- JOBS FINISHED SUCCESSFULLY ------------- Job 103 for orcl |
.bash_profile 의 ORACLE_HOME 변경
1 2 3 4 5 6 | $ vi .bash_profile 기존 export ORACLE_HOME=$ORACLE_BASE/product/18.1.0/db_1; 변경 export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_1; 변경 후 저장 |
적용
1 | $ . ./.bash_profile |
업그레이드 후 db 버전 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | SQL> select instance_name, version, status from v$instance; INSTANCE_NAME VERSION STATUS ---------------- ----------------- ------------ orcl 19.0.0.0.0 OPEN SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- BANNER_FULL ---------------------------------------------------------------------------------------------------------------------------------------------------------------- BANNER_LEGACY CON_ID -------------------------------------------------------------------------------- ---------- Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production 0 |
정상적으로 업그레이드 됨
샘플 데이터 확인
1 2 3 4 5 6 7 | SQL> conn imsi/imsi Connected. SQL> select count (*) from imsi_tab; COUNT(*) ---------- 10000 |
데이터 정상적으로 확인됨
spfile로 pfile 생성 후 업그레이드 후 파라미터 파일 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | SQL> create pfile from spfile; $ cat $ORACLE_HOME/dbs/initorcl.ora orcl.__data_transfer_cache_size=0 orcl.__db_cache_size=637534208 orcl.__inmemory_ext_roarea=0 orcl.__inmemory_ext_rwarea=0 orcl.__java_pool_size=16777216 orcl.__large_pool_size=16777216 orcl.__oracle_base='/app/oracle'#ORACLE_BASE set from environment orcl.__pga_aggregate_target=671088640 orcl.__sga_target=989855744 orcl.__shared_io_pool_size=50331648 orcl.__shared_pool_size=251658240 orcl.__streams_pool_size=0 orcl.__unified_pga_pool_size=0 *.audit_file_dest='/app/oracle/admin/orcl/adump' *.audit_trail='db' *.compatible='18.0.0' *.control_files='/app/oracle/oradata/ORCL/control01.ctl','/app/oracle/oradata/ORCL/control02.ctl' *.db_block_size=8192 *.db_name='orcl' *.db_recovery_file_dest='/home/oracle/fra' *.db_recovery_file_dest_size=2147483648 *.diagnostic_dest='/app/oracle' *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' *.local_listener='LISTENER_ORCL' *.log_archive_dest_1='location=/home/oracle/arch' *.log_archive_format='%t%s%r.arc' *.memory_target=1645215744 *.nls_language='AMERICAN' *.nls_territory='AMERICA' *.open_cursors=300 *.processes=300 *.remote_login_passwordfile='EXCLUSIVE' *.undo_tablespace='UNDOTBS1' |
파라미터 파일 변경 사항 확인
sga영역의 값 빼고는 변한부분이 없음
업그레이드시 따로 파라미터를 추가하고 싶은 경우
가이드를 보고 add_after_upgrade_pfile 등 명령으로 변경하면됨
autoupgrade deploy 명령 이후 소요시간
약 2시간 10분(트러블슈팅 시간 포함)
요약
12.2부터 config.txt 파일 설정과 이 3줄의 명령만으로 db를 업그레이드 할 수 있음
1 2 3 | $ $ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config config.txt -mode analyze $ $ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config config.txt -mode fixups $ $ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config config.txt -mode deploy |
+ OPatch 확인
1 2 3 4 5 6 7 | $ $ORACLE_HOME/OPatch/opatch lspatches 27908644;UPDATE 18.3 DATABASE CLIENT JDK IN ORACLE HOME TO JDK8U171 27923415;OJVM RELEASE UPDATE: 18.3.0.0.180717 (27923415) 28090553;OCW RELEASE UPDATE 18.3.0.0.0 (28090553) 28090523;Database Release Update : 18.3.0.0.180717 (28090523) OPatch succeeded |
db 버전 업그레이드만 되고 OPatch는 안됨(기존 업그레이드와 동일)
필요시 OPatch로 RUR 적용하면됨
참조
문제 발생 시 복구 명령
1 | $ $ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config config.txt -mode analyze -clear_recovery_data |
로그파일 구조
자동 업그레이드 로그 파일 기본 경로
자동 업그레이드 로그 파일 경로는 config.txt 파일의 전역 매개 변수를 사용하여 설정됨(global.autoupgr_log_dir)
/cfgtoollogs/upgrade/auto
자동 구성 도구 로그 디렉토리 ( /cfgtoollogs/upgrade/auto)에는 AutoUpgrade 작업 관리자가 처리하는 각 작업에 대한 특정 정보를 제공하는 세 개의 추적 로그 파일이 있음
autoupgrade.log: 작업 실행 중 발생하는 모든 문제를 식별하는 작업에 대한 자세한 로그를 제공함
autoupgrade_usr.log: 가독성을 높이기 위해 형식화 된 작업 정보를 포함
autoupgrade_err.log: 작업 실행시 발생하는 예기치 않은 예외에 대한 보고서임
/config_files
config_files디렉토리는 자동 업그레이드 내부 런타임 구성 및 전역 임시 파일이 포함되어 있음
/status
/status디렉토리는 JSON 작업 상태 파일이 포함되어 있음, 여기에는 두 개의 디렉토리가 있음
status.json:이 디렉토리에는 JSON 파일 형식으로 완료된 모든 작업의 최종 작업 상태가 포함됨
progress.json:이 디렉토리에는 현재 JSON 파일 형식으로 실행중인 모든 작업의 진행률이 포함됨
디렉토리의 각 모듈에는 수행 한 작업에 대한 상태 파일이 존재함
모듈은 다음과 같은 형식으로 표시됨
여기서 접 두부 dbname는 데이터베이스 이름이고 operation은 수행 된 업그레이드 작업이며 끝부분 status는 해당 작업의 완료 상태임
1 | dbname_operation-name.status |
해당 작업의 성공 또는 실패는 접미사로 표시됨
접미사 .success는 해당 작업의 성공적인 성능을 나타내고 .failure는 해당 작업 의 실패를 나타냄
예를 들어 다음 모듈 이름은 데이터베이스에서 사전 검사 작업이 성공적으로 실행되었음을 나타냄
1 | sales_prechecks.success |
작업 모듈 이름은 다음 중 하나 일 수 있음
preupgrade: 사용자 정의 스크립트를 실행할 수있는 업그레이드 전 단계
prechecks: 업그레이드를 시작하기 전에 업그레이드 확인이 완료된 단계
grp: 복원 지점 보장 (Oracle Flashback 기술 사용)
prefixups: 업그레이드를 시작하기 전에 사전 업그레이드 수정 사항이 실행됨
drain: 업그레이드를 시작하기 전에 기존 작업이 완료되거나 마이그레이션되는 단계
dbupgrade: 업그레이드가 수행되는 단계
postchecks: 업그레이드가 완료된 후 업그레이드 후 검사가 실행되는 단계
postfixups: 업그레이드 후 수정이 실행되는 단계
postupgrade: 사용자 정의 사후 업그레이드 스크립트를 실행할 수있는 단계
참조 :
https://mikedietrichde.com/2019/06/13/create-and-adjust-the-config-file-for-autoupgrade-19c/
Doc ID 2573304.1
https://blog.pythian.com/how-reliable-is-autoupgrade-jar-analyze-mode/
http://www.luxoug.org/new-feature-19c-autoupgrade/
'ORACLE > Install' 카테고리의 다른 글
Oracle 19c SINGLE OPatch Release Update 적용 가이드 (2) | 2020.04.24 |
---|---|
Oracle Linux 7.6에 Oracle 19c RPM 설치 가이드 (2) | 2020.04.10 |
Oracle Linux 6.8에 Oracle 11g R2 환경 OS Watcher 설치 가이드 (0) | 2020.03.11 |
Oracle 19c RAC OPatch Release Update 적용 가이드 (6) | 2020.03.08 |
Oracle Linux 7.6에 Oracle 19c RAC 설치 가이드_Part 2 (22) | 2020.03.02 |