내용으로 건너뛰기

Amazon RDS for Oracle에서 메이저 버전 업그레이드를 수행할 때 알아야 할 사항은 무엇입니까?

9분 분량
0

Oracle을 실행하는 Amazon Relational Database Service(Amazon RDS) 인스턴스가 있습니다. 메이저 버전 업그레이드를 수행하면 어떻게 되는지 알고 싶습니다.

간략한 설명

Amazon RDS에서 새 버전의 Oracle 데이터베이스를 지원하는 경우 현재 Oracle 데이터베이스 버전을 이후 버전으로 업그레이드할 수 있습니다. 그런 다음 메이저 버전 업그레이드를 수행할 수 있습니다. 메이저 버전에는 업데이트, 새로운 기능, 보안 수정 사항, 옵티마이저 개선 사항 및 성능 개선 사항이 포함될 수 있습니다. 프로덕션 데이터베이스를 업그레이드하기 전에 비프로덕션 환경에서 새 버전의 Oracle 데이터베이스를 기준으로 애플리케이션의 기능, 호환성 및 성능을 테스트하는 것이 모범 사례입니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

업그레이드 전

메이저 버전 업그레이드를 수행하기 전에는 다음 사항을 참고하십시오.

업그레이드 경로

현재 Oracle 데이터베이스 버전에서 이후 Oracle 데이터베이스 메이저 버전으로 업그레이드할 때 지원되는 경로를 확인합니다. 유효한 업그레이드 경로를 확인하려면 다음 AWS CLI 명령을 실행합니다.

Windows의 경우:

aws rds describe-db-engine-versions --engine engine-edition --engine-version current-
engine-version --query "DBEngineVersions[*].ValidUpgradeTarget[?
IsMajorVersionUpgrade==`true`].EngineVersion"

Linux, macOS 또는 Unix의 경우:

aws rds describe-db-engine-versions --engine engine-edition --engine-version current-
engine-version --query 'DBEngineVersions[*].ValidUpgradeTarget[?
IsMajorVersionUpgrade==`true`].EngineVersion'

참고: 위 명령에서 engine-edition은 데이터베이스 엔진 에디션으로, 현재 엔진 버전은 데이터베이스 엔진 버전으로, current-engine-version은 최신 버전의 데이터베이스 엔진으로 바꿔야 합니다.

예를 들어 Amazon RDS for Oracle 19.0.0.0.ru-2024-04.rur-2024-04.r1 인스턴스가 있는 경우 RDS for Oracle 인스턴스를 업그레이드할 수 있는 유효한 메이저 버전을 모두 알아보려면 다음 명령을 실행하십시오.

Windows의 경우:

aws rds describe-db-engine-versions --engine oracle-ee-cdb --engine-version 19.0.0.0.ru-2024-04.rur-2024-04.r1 --query "DBEngineVersions[*].ValidUpgradeTarget[?
IsMajorVersionUpgrade==`true`].EngineVersion"

Linux, macOS 또는 Unix의 경우:

aws rds describe-db-engine-versions --engine oracle-ee-cdb --engine-version 19.0.0.0.ru-2024-04.rur-2024-04.r1 --query 'DBEngineVersions[*].ValidUpgradeTarget[?
IsMajorVersionUpgrade==`true`].EngineVersion'

참고: Amazon RDS for Oracle은 19c CDB에서 21c로의 메이저 버전 업그레이드를 지원합니다. Amazon RDS for Oracle은 CDB가 아닌 버전(12.1, 12.2, 19c)에서 21c로의 메이저 버전 업그레이드를 지원하지 않습니다. 이 문제를 해결하려면 먼저 Oracle 데이터베이스 19c CDB 이외 버전을 Oracle 데이터베이스 19c CDB로 전환하십시오. 그런 다음 Oracle 데이터베이스 19c CDB를 Oracle 데이터베이스 21c CDB로 업그레이드합니다. 자세한 내용은 Oracle DB 업그레이드에 대한 고려 사항RDS for Oracle CDB 이외 버전을 CDB로 전환을 참조하십시오.

인스턴스 클래스

현재 인스턴스 클래스가 업그레이드하려는 메이저 버전에서 지원되는지 확인하십시오. RDS for Oracle에서 지원하는 인스턴스 클래스에 대한 자세한 내용은 지원되는 RDS for Oracle DB 인스턴스 클래스를 참조하십시오. 지원되는 인스턴스 클래스를 확인하려면 다음 AWS CLI 명령을 실행합니다.

Windows의 경우:

aws rds describe-orderable-db-instance-options --engine engine-edition --engine-version new-engine-version --region example-region --query "OrderableDBInstanceOptions[*].DBInstanceClass"

Linux, macOS 또는 Unix의 경우:

aws rds describe-orderable-db-instance-options --engine engine-edition --engine-version new-engine-version --region example-region --query 'OrderableDBInstanceOptions[*].DBInstanceClass'

이전 명령의 다음 값을 반드시 바꿔야 합니다.

  • engine-edition을 데이터베이스 엔진 에디션으로
  • new-engine-version을 업그레이드하려는 새 버전으로
  • example-region을 사용 중인 리전으로

예를 들어 RDS for Oracle 19.0.0.0.ru-2024-04.rur-2024-04.r1 인스턴스로 업그레이드하려고 한다고 가정해 보겠습니다. 특정 리전의 메이저 버전을 지원하는 인스턴스 클래스에 대해 알아보려면 다음 명령어를 실행하십시오.

aws rds describe-orderable-db-instance-options --engine oracle-ee-cdb --engine-version 19.0.0.0.ru-2024-04.rur-2024-04.r1 --region us-east-1 --query "OrderableDBInstanceOptions[*].DBInstanceClass"

명령의 us-east-1을 선택한 리전으로 바꿔야 합니다.

클라이언트 호환성

Oracle 클라이언트 또는 드라이버 버전이 새 메이저 버전과 호환되는지 확인합니다. 메이저 버전 업그레이드와 함께 드라이버도 업그레이드해야 하는지 확인합니다. 상호 운용성에 대한 자세한 내용은 Oracle 웹 사이트에서 Oracle Database Client and Oracle Database interoperability를 참조하십시오.

업그레이드 방법

다음 방법 중 하나를 사용하여 메이저 버전 업그레이드를 수행할 수 있습니다.

  • RDS 인스턴스를 수정하고 새 메이저 버전을 적용합니다.
    참고: 이 방법은 약간의 가동 중지 시간이 수반됩니다.
  • 메이저 버전으로 새 RDS 인스턴스를 생성한 다음 AWS Data Migration Service(AWS DMS)를 사용하여 데이터를 마이그레이션합니다.
    참고: AWS DMS는 미니멀리즘 접근 방식을 사용하여 데이터를 마이그레이션하고 데이터를 효율적으로 마이그레이션하는 데 필요한 객체만 생성합니다. AWS DMS는 테이블, 프라이머리 키, 경우에 따라 고유 인덱스를 생성합니다. 하지만 소스에서 데이터를 효율적으로 마이그레이션하는 데 필요하지 않은 다른 객체는 생성하지 않습니다. 예를 들어, AWS DMS는 보조 인덱스, 비프라이머리 키 제약 조건 또는 데이터 기본값을 생성하지 않습니다. 자세한 내용은 AWS DMS의 개요를 참조하십시오.

사용자 지정 파라미터 그룹

인스턴스에 사용자 지정 파라미터 그룹이 있는 경우 먼저 새 메이저 버전에 대한 새 파라미터 그룹을 생성합니다. 그런 다음 필요에 따라 사용자 지정 파라미터를 설정합니다. 현재 사용 중인 커스텀 파라미터를 식별하려면 현재 버전의 기본 파라미터 그룹과 현재 커스텀 파라미터 그룹을 비교하십시오.

사용자 지정 옵션 그룹

인스턴스에 사용자 지정 옵션 그룹이 있는 경우 메이저 버전에 대한 새 사용자 지정 옵션 그룹을 생성하십시오. 옵션 그룹에 지속적 또는 영구적 옵션이 있는 경우 새 사용자 지정 옵션 그룹에 동일한 옵션이 포함되어야 합니다. 시간대 파일 버전을 사용 가능한 최신 버전으로 업그레이드하려면 TIMEZONE_FILE_AUTOUPGRADE 옵션을 새 사용자 지정 옵션 그룹에 추가합니다.

사전 통계

사전 통계 및 고정 객체 통계는 업그레이드 중 인스턴스 가동 중지 시간을 줄일 수 있습니다. 통계를 수집하려면 다음 명령을 실행합니다.

SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
SQL> EXEC DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

유효하지 않은 객체

데이터베이스에 유효하지 않은 객체가 포함되어 있지 않은지 확인합니다. 유효하지 않은 객체가 있는지 확인하려면 다음 명령을 실행합니다.

SQL> SELECT OWNER, STATUS, COUNT (*) FROM DBA_OBJECTS GROUP BY OWNER, STATUS;

출력에 유효하지 않은 객체가 표시되면 유효하지 않은 객체를 확인한 후 다음 명령을 실행합니다.

SQL> SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM DBA_OBJECTS WHERE STATUS != 'VALID';

스키마에서 유효하지 않은 객체의 목록을 컴파일하려면 다음 명령을 실행합니다.

SQL> EXEC DBMS_UTILITY.compile_schema(schema => 'ADMIN', compile_all => false);

쿼리의 ADMIN을 스키마 이름으로 바꿔야 합니다.

감사 추적

감사 추적이 길지 않은지 확인하십시오. 감사 추적이 길면 업그레이드 전 검사 및 업그레이드가 더 오래 걸릴 수 있습니다. 자세한 내용은 Oracle을 실행 중인 Amazon RDS DB 인스턴스에서 sys.aud$ 테이블을 자르려면 어떻게 해야 합니까?를 참조하십시오. DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL 프로시저를 사용하여 감사 추적을 삭제합니다. 자세한 내용은 Oracle 웹 사이트의 CLEAN_AUDIT_TRAIL Procedure를 참조하십시오.

암호

이전 버전의 암호를 사용하고 있지 않은지 확인하려면 다음 명령을 실행합니다.

SQL> SELECT USERNAME,PASSWORD_VERSIONS FROM DBA_USERS;

사용자가 10g 버전의 암호를 사용하는 경우 새 버전의 암호로 사용자를 다시 생성할 수 있는지 확인합니다. 최신 암호 버전을 사용하는 것이 모범 사례입니다. 사용자의 암호 버전을 수정할 수 없는 경우 연결 오류를 방지하기 위해 필요에 따라 SQLNET.ALLOWED_LOGON_VERSION_SERVER 파라미터를 설정하십시오.

sqlnetora.sqlnet.allowed_logon_version_server 파라미터는 데이터베이스 서버에 연결할 때 허용되는 인증 프로토콜의 최소 버전을 나타냅니다. 자세한 내용은 Oracle 웹 사이트의 SQLNET.ALLOWED_LOGON_VERSION_SERVER를 참조하십시오. 8로 설정하면 대부분의 암호 버전을 사용할 수 있으며 DBA_USERS.PASSWORD_VERSIONS 값 10G, 11G 및 12C를 원하는 대로 조합하여 사용할 수도 있습니다.

sqlnetora.sqlnet.allowed_logon_version_client 파라미터는 데이터베이스가 클라이언트 역할을 할 때 사용되는 최소 인증 프로토콜을 나타냅니다. 자세한 내용은 Oracle 웹 사이트에서 SQLNET.ALLOWED_LOGON_VERSION_CLIENT대소문자를 구분하지 않는 암호 버전을 사용하는 계정 확인을 참조하십시오.

DBMS_JOB

DBMS_JOB 패키지는 Oracle 데이터베이스 12c 릴리스 2의 업그레이드와 함께 중단되었습니다. 버전 19c로 업그레이드하기 전에 모든 DBMS_JOB 작업을 DBMS_SCHEDULER 작업으로 변환하는 것이 모범 사례입니다. 업그레이드 중에 Oracle은 DBMS_JOB 작업을 DBMS_SCHEDULER 작업으로 변환합니다. 자세한 내용은 Oracle 웹 사이트의 DBMS_JOB 지원을 참조하십시오. DBMS_JOB 항목이 많으면 업그레이드 시간이 더 오래 걸릴 수 있습니다.

FreeStorageSpace

인스턴스가 스토리지 용량에 근접하지 않았는지 확인합니다. 업그레이드에 사용할 수 있는 여유 스토리지 공간이 충분한지 확인하려면 FreeStorageSpace CloudWatch 지표를 확인하십시오. 자세한 내용은 Amazon RDS의 여유 스토리지 공간을 모니터링하고 스토리지가 가득 차는 문제를 방지하기 위해 CloudWatch 경보를 생성하려면 어떻게 해야 합니까?를 참조하십시오.

유지 관리 작업

Amazon Aurora 및 RDS 콘솔에서 인스턴스에 보류 중인 유지 관리 작업이 있는지 확인합니다. 보류 중인 이러한 유지 관리 작업은 업그레이드 기간 동안 적용됩니다. 다중 AZ 인스턴스의 경우 운영 체제 업데이트가 필요하지 않으면 기본 및 예비 업그레이드가 동시에 수행됩니다. 운영 체제 업데이트가 필요한 경우에는 Amazon RDS가 다중 AZ 배포에서 Oracle 업그레이드에 설명된 대로 업그레이드를 적용합니다.

수동 스냅샷

RDS for Oracle 데이터베이스 인스턴스의 수동 스냅샷을 생성하는 것이 모범 사례입니다.

  • Amazon RDS에서 지원하는 버전이면 스냅샷을 사용하여 이전 버전으로 롤백할 수 있습니다.
  • 메이저 버전 업그레이드는 일반적으로 자동 스냅샷을 생성합니다. Amazon Elastic Block Store(Amazon EBS) 스냅샷은 증분식이기 때문에 새 스냅샷은 백업해야 할 변경 사항이 더 적습니다. 수동 스냅샷을 생성하면 자동 스냅샷을 생성하는 데 필요한 시간과 업그레이드를 완료하는 데 필요한 총 시간을 줄일 수 있습니다.

현재 구성

인스턴스의 현재 구성을 보고 출력을 저장하려면 다음 명령을 실행합니다. 출력에는 현재 RDS for Oracle 인스턴스에 연결된 옵션 그룹, 파라미터 그룹, 보안 그룹 및 태그에 대한 정보가 표시됩니다. 롤백하여 스냅샷에서 복원을 수행하거나 특정 시점 복구를 수행하려면 다음 명령에서 검색한 정보를 사용하십시오.

> aws rds describe-db-instances --db-instance-identifier example-instance-name --region example-region

쿼리에서 다음 값을 바꿔야 합니다.

  • example-instance-name을 RDS for Oracle 인스턴스의 이름으로
  • example-region을 원하는 리전으로

실행 취소 테이블스페이스

업그레이드 중에 크기 조정 작업을 방지하려면 실행 취소 테이블스페이스가 올바른 크기로 설정되었는지 확인하십시오.

트리거

다음 명령을 실행하여 로그온, 로그오프 및 시작 트리거를 나열합니다.

SQL> SELECT OWNER, TRIGGER_NAME, TRIGGER_TYPE, TRIGGERING_EVENT, TABLE_OWNER, STATUS, ACTION_TYPE, TRIGGER_BODY FROM DBA_TRIGGERS WHERE TRIGGERING_EVENT LIKE '%LOGO%' or TRIGGERING_EVENT LIKE '%STARTUP%';

트리거가 유효하고 제대로 작동하는지 확인합니다. 트리거가 유효하고 잘 컴파일되더라도 런타임에 오류를 유발하여 데이터베이스 재부팅을 방해할 수 있습니다. 실행 시 오류를 유발하는 로그온, 로그오프 또는 시작 트리거가 있는지 확인하십시오.

이러한 트리거를 비활성화하려면 다음 명령을 실행합니다.

SQL> ALTER TRIGGER EXAMPLE-OWNER.EXAMPLE-TRIGGER DISABLE;

명령에서 다음 값을 바꿔야 합니다.

  • EXAMPLE-OWNER를 트리거를 생성한 스키마의 이름으로
  • EXAMPLE-TRIGGER를 트리거의 이름으로

예를 들면 다음과 같습니다.

--To disable AUDIT_USERS trigger in MYADMIN schema
SQL> ALTER TRIGGER MYADMIN.AUDIT_USERS DISABLE;

업그레이드 중

업그레이드를 시작한 후 업그레이드 진행 상황을 모니터링하고 Aurora 및 RDS 콘솔에서 다음을 확인합니다.

  • 인스턴스의 로그 및 이벤트 탭 아래에 있는 알림 로그
  • 인스턴스의 로그 및 이벤트 탭 아래에 있는 최근 이벤트

업그레이드 후

  1. 데이터베이스에 연결한 후 패치 버전을 확인하려면 다음 명령을 실행합니다.

    SQL> SELECT * FROM sys.registry$history;
    SQL> SELECT INSTALL_ID,PATCH_ID,ACTION,STATUS,ACTION_TIME,DESCRIPTION FROM
    DBA_REGISTRY_SQLPATCH;
  2. 패치를 적용한 후 한 시간 이내에 Amazon RDS가 lsinventory-dbv.txt 파일을 업데이트합니다. Aurora 및 RDS 콘솔에 있는 인스턴스의 로그 및 이벤트 탭에서 이 파일을 다운로드합니다. 적용된 패치를 확인하려면 Isinventory-dbv.txt 파일을 참조하십시오.

  3. 사전 및 고정 객체 통계를 수집하려면 다음 명령을 실행하십시오.

    SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;SQL> EXEC
    DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
  4. 유효하거나 유효하지 않은 객체 수가 업그레이드 전의 객체 수와 일치하는지 확인하려면 다음 명령을 실행하십시오.

    SQL> SELECT OWNER, STATUS, COUNT(*) from DBA_OBJECTS GROUP BY OWNER, STATUS;
  5. 스키마에서 유효하지 않은 모든 객체를 컴파일하려면 다음 명령을 실행하십시오.

    SQL> EXEC DBMS_UTILITY.compile_schema(schema => 'ADMIN', compile_all => false);
  6. 새 메이저 버전의 옵티마이저 기능 때문에 업그레이드 후 명령 성능 문제가 발생하는 경우 OPTIMIZER_FEATURES_ENABLE 파라미터를 사용하는 것이 좋습니다. 자세한 내용은 Oracle 웹 사이트의 OPTIMIZER_FEATURES_ENABLE을 참조하십시오. 세션 수준 및 시스템 수준에서 이 파라미터를 변경할 수 있습니다. 예를 들어 데이터베이스를 릴리스 18.1에서 릴리스 19.1로 업그레이드하되, 릴리스 18.1 옵티마이저 동작은 유지하려는 경우 OPTIMIZER_FEATURES_ENABLE 파라미터의 값을 18.1.0으로 설정합니다.

관련 정보

RDS for Oracle DB 엔진 업그레이드

AWS 공식업데이트됨 2년 전