Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

Windows용 Oracle 11을 19c로 업그레이드 - 2부

Oracle® 19c Database는 시장과 기업에서 널리 채택된 자동화 데이터베이스의 최신 릴리스입니다. 안정성은 Oracle Database 12c(릴리스 12.2) 제품군의 Oracle Database 19c 구성 요소에서 중요한 요소입니다. 2부로 구성된 이 블로그 게시물 시리즈에서는 버전 19c의 설치 및 업그레이드에 대해 설명합니다.

소개

2부로 구성된 시리즈 중 이 부분은 Windows®에서 Oracle Database를 11.2.0.4에서 19c로 업그레이드하는 데 중점을 둡니다. 이 수동 방법은 DBUA(Database Upgrade Assistant)를 사용하지 않습니다.

설치 단계는 이 시리즈의 1부를 참조하십시오. 19c Oracle 홈 디렉토리에 바이너리를 설치했습니다.ORACLE_HOME=d:\app\product\19.0.0\dbhome_1 .

Oracle Database를 19c로 업그레이드하려면 다음 단계를 따르십시오.

참고 :업그레이드 과정에서 문제가 발생할 경우를 대비하여 업그레이드하기 전에 유효한 백업이 있어야 합니다.

1단계:설치 파일 준비

업그레이드를 진행할 수 있도록 19.3 RDBMS(관계형 데이터베이스 관리 시스템) 설치 파일을 준비합니다.

2단계:사전 업그레이드 단계

다음 단계를 실행하여 사전 업그레이드 프로세스를 완료하십시오.

2.0단계:준비
  1. metalink note 884522.1을 사용하여 Oracle Database Pre-Upgrade Utility를 다운로드하십시오. 사전 업그레이드 도구를 실행하려면 다음 코드를 실행하십시오.

    set ORACLE_HOME=d:\app\product\11.2.0.4\dbhome_1set ORACLE_BASE=d:\appset ORACLE_SID=ABCset PATH=%ORACLE_HOME%\bin;%PATH%%ORACLE_HOME%\jdk\bin\java -jar \ preupgrade.jar 터미널 텍스트 -u sys -p

  2. d:\app\cfgtoollogs\ABC\preupgrade\preupgrade.txt에서 출력을 확인하십시오. , 사전 업그레이드 로그 파일을 검토하고 오류를 수정하십시오.

  3. AUTOFIXUP을 사용하여 모든 부품에 대해 사전 업그레이드 수정 스크립트를 실행할 수 있습니다. 로그에서. 예를 들어, d:\app\cfgtoologs\ABC\preupgrade\preupgrade_fixups.sql을 실행하려면 , 다음 코드를 실행:

    CD 디:
    cd d:\app\cfgtoollogs\ABC\preupgradesqlplus sys/ as sysdba @preupgrade_fixups.sql

  4. preupgrade_fixups.sql의 출력을 검토합니다. 나머지 수동 단계를 수행합니다.

2.1단계:pfile 백업

다음 명령을 실행하여 pfile을 백업합니다. :

SQL> create pfile='d:\app\init_ABC.ora' from spfile;
2.2단계:잘못된 개체 제거

utlrp.sql 실행 SQL Plus에서 스크립트를 사용하여 유효하지 않은 개체를 컴파일합니다. sys/system schema에 잘못된 개체가 남아 있지 않은지 확인 . 나중에 업그레이드 후 단계에서 일치하도록 다른 모든 잘못된 개체를 별도의 테이블에 저장합니다.

SQL>@?/rdbms/admin/utlrp.sql
SQL> create table system.invalids_before_upgrade as select * From dba_invalid_objects;
2.3단계:EM 저장소 제거

다음 단계를 사용하여 EM 저장소를 제거하십시오.

emremove.sql 복사 19c 홈에서 11 g 홈으로 스크립트:

copy d:\app\product\19.0.0\dbhome_1\rdbms\admin\emremove.sql  d:\app\product\11.2.0.4\dbhome_1\rdbms\admin
cd d:\app\product\11.2.0.4\dbhome_1\rdbms\admin
sqlplus sys/<password> as sysdba
SET ECHO ON;
SET SERVEROUTPUT ON;
@emremove.sql  
2.4단계:OLAP 카탈로그 제거

다음 단계를 사용하여 OLAP 카탈로그를 제거하십시오.

cd d:\app\product\11.2.0.4\dbhome_1\olap\admin\
sqlplus sys/<password> as sysdba @catnoamd.sql
2.5단계:APEX 제거

APEX(Application Express)를 사용하지 않는 경우 다음 명령을 실행하여 제거할 수 있습니다.

cd d:\app\product\11.2.0.4\dbhome_1\apex
sqlplus sys/<password> as sysdba @apxremov.sql
drop package htmldb_system;
drop public synonym htmldb_system;
2.6단계:RECYCLEBIN 제거

다음 명령을 사용하여 DBA RECYCLEBIN을 제거합니다.

PURGE DBA_RECYCLEBIN;
2.7단계:사전 통계 수집

다음 명령을 사용하여 사전 통계를 수집합니다.

EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;

모든 것이 준비되었는지 확인하기 위해 사전 업그레이드 도구를 다시 실행하십시오.

3.0단계:업그레이드 단계

업그레이드를 수행하려면 다음 업그레이드 단계를 실행하십시오.

3.1단계:업그레이드 수행

업그레이드하려면 다음 단계를 실행하십시오.

  1. Oracle 11g 데이터베이스를 종료합니다.

  2. Oracle 데이터베이스를 종료한 후 관리자 옵션으로 CMD를 열고 명령 프롬프트에서 다음 단계를 실행하여 모든 Oracle 11g Windows 서비스를 제거합니다.

    set ORACLE_HOME=d:\app\product\19.0.0\dbhome_1set PATH=%ORACLE_HOME%\bin;%PATH%set ORACLE_SID=ABCsc 삭제 OracleJobSchedulerABCsc 삭제 OracleMTSRecoveryServicesc 삭제 OracleServiceABCsc 삭제 OracleVssWriterABC

  3. 다음 명령을 실행하여 Oracle 19c Windows 서비스를 생성합니다.

    d:\app\product\19.0.0\dbhome_1\bin\ORADIM -NEW -SID ABC -SYSPWD ********* -STARTMODE 자동 -PFILE D:\app\product\19.0.0\dbhome_1\ 데이터베이스\INITABC.ORA

  4. 프로세스가 Oracle 19c Windows 서비스를 생성한 후 서비스를 시작합니다.

3.2단계:Oracle 데이터베이스 시작

업그레이드 모드에서 19C 환경에서 Oracle Database를 시작합니다.

Oracle Database가 업그레이드 모드에서 시작된 후 다음 단계를 수행하십시오.

  1. 다음 명령을 실행하십시오.

    CD d:\app\product\19.0.0\dbhome_1\bin

  2. dbupgrade 실행 Windows 명령 프롬프트에서 유틸리티.

  3. 업그레이드가 완료되면 데이터베이스를 시작하고 다음 명령을 실행합니다.

    SQL> @?\rdbms\admin\utlrp.sql

4.0단계:업그레이드 후 단계

업그레이드에 성공하면 업그레이드 후 수정 스크립트를 실행합니다.

d:\ cd d:\app\cfgtoollogs\ABC\preupgrade
sqlplus sys/<password> as sysdba @postupgrade_fixups.sql
4.1단계:시간대 업그레이드

업그레이드 후 수정 스크립트를 실행한 후 다음 명령을 실행하여 표준 시간대를 업그레이드하세요.

sqlplus / as sysdba <<EOF
-- Check current settings.
SELECT * FROM v$timezone_file;
SHUTDOWN IMMEDIATE;
STARTUP UPGRADE;
-- Begin upgrade to the latest version.
SET SERVEROUTPUT ON
DECLARE
  l_tz_version PLS_INTEGER;
BEGIN
  l_tz_version := DBMS_DST.get_latest_timezone_version;
  DBMS_OUTPUT.put_line('l_tz_version=' || l_tz_version);
  DBMS_DST.begin_upgrade(l_tz_version);
END;
/
SHUTDOWN IMMEDIATE;
STARTUP;
-- Do the upgrade.
SET SERVEROUTPUT ON
DECLARE
  l_failures  
  PLS_INTEGER;
BEGIN
  DBMS_DST.upgrade_database(l_failures);
  DBMS_OUTPUT.put_line('DBMS_DST.upgrade_database : l_failures=' || l_failures);
  DBMS_DST.end_upgrade(l_failures);
  DBMS_OUTPUT.put_line('DBMS_DST.end_upgrade : l_failures=' || l_failures);
END;
/
-- Validate time zone.
SELECT * FROM v$timezone_file;

COLUMN property_name FORMAT A30
COLUMN property_value FORMAT A20

SELECT property_name, property_value
FROM   database_properties
WHERE  property_name LIKE 'DST_%'
ORDER BY property_name;
exit;
SQL> select TZ_VERSION from registry$database; 

TZ_VERSION 이전 버전을 표시하려면 다음 명령을 실행하십시오.

SQL>update registry$database set TZ_VERSION = (select version FROM v$timezone_file);
SQL>commit;
SQL>select TZ_VERSION from registry$database;
TZ_VERSION
----------
32
4.2단계:개체 통계 수집

다음 명령을 실행하여 고정 개체 통계를 수집합니다.

sqlplus / as sysdba <<EOF
EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
exit;
4.3단계 :사전 통계 수집

다음 명령문을 실행하여 업그레이드 후 사전 통계를 수집하십시오.

EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;
4.4단계:수정된 문제 확인

utlusts.sql 실행 남아 있는 문제가 없는지 확인:

d:\app\product\19.0.0\dbhome_1\rdbms\admin\utlusts.sql TEXT  
4.5단계:유효하지 않은 개체 비교

모든 유효하지 않은 개체를 2.2단계에서 저장한 목록과 일치시킵니다.

4.6단계:정리

업그레이드를 완료하려면 다음 단계를 수행하십시오.

  1. listener.ora 복사 , tnsnames.orasqlnet.ora Oracle11g Oracle 홈 디렉토리에서 Oracle 19c Oracle 홈 디렉토리로 변경하고 oracle_home 그에 따라 매개변수를 지정합니다.

  2. 이 모든 파일을 d:\app\product\19.0.0\dbhome_1\network\admin에 배치합니다. .

참고 :compatible=11.2.0.4 유지 OracleDatabase를 11g로 다운그레이드해야 하는 경우를 대비하여

결론

이전 단계는 Windows 버전 11.2.0.4에서 Oracle Database를 19c로 쉽게 업그레이드하는 데 도움이 됩니다.

데이터베이스 서비스에 대해 자세히 알아보십시오.

피드백 탭을 사용하여 의견을 작성하거나 질문하십시오. 저희와 대화를 시작할 수도 있습니다.