AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Amazon RDS for Oracle에서 주 버전 업그레이드를 수행할 때 고려해야 하는 요소는 무엇입니까?
Oracle을 실행하는 Amazon Relational Database Service(Amazon RDS) DB 인스턴스가 있습니다. 주 버전 업그레이드를 수행할 때 고려해야 할 요소를 알고 싶습니다.
간략한 설명
Amazon RDS가 새 버전의 Oracle 데이터베이스를 지원하기 시작하면, 상위 버전을 선택한 다음 주 버전 업그레이드를 수행하여 기존 Oracle 데이터베이스 버전을 업그레이드할 수 있습니다. 주 버전에는 업데이트, 새로운 기능, 보안 수정 사항, 최적화 프로그램 개선 사항 및 성능 개선이 포함될 수 있습니다. 프로덕션 데이터베이스를 업그레이드하기 전에, 비프로덕션 환경에서 새 버전의 Oracle 데이터베이스에 대해 애플리케이션의 기능, 호환성 및 성능을 테스트하는 것이 가장 모범 사례입니다.
참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우, 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.
해결 방법
업그레이드 전
다음은 주 버전 업그레이드를 수행하기 전에 유의해야 할 몇 가지 사항입니다.
업그레이드 경로: 현재 Oracle 데이터베이스 버전에서 의도한 주 버전의 Oracle 데이터베이스로의 지원되는 업그레이드 경로를 확인합니다. 다음 AWS Command Line Interface(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 12.1.0.2.v10 인스턴스가 있다고 가정합니다. RDS for Oracle 인스턴스를 업그레이드할 수 있는 모든 유효한 주 버전에 대해 알아보려면 다음 명령을 실행합니다.
Windows의 경우:
aws rds describe-db-engine-versions --engine oracle-ee --engine-version 12.1.0.2.v10 --query "DBEngineVersions[*].ValidUpgradeTarget[?IsMajorVersionUpgrade==`true`].EngineVersion"
Linux, macOS 또는 Unix의 경우:
aws rds describe-db-engine-versions --engine oracle-ee --engine-version 12.1.0.2.v10 --query 'DBEngineVersions[*].ValidUpgradeTarget[?IsMajorVersionUpgrade==`true`].EngineVersion'
인스턴스 클래스: 현재의 인스턴스 클래스가 업그레이드할 주 버전에서 지원되는지 확인합니다. RDS for Oracle에서 지원하는 인스턴스 클래스에 대한 자세한 내용은지원되는 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 12.2.0.1.ru-2020-10.r 1인스턴스로 업그레이드하려고 한다고 가정해 보겠습니다. 특정 리전에서 주 버전을 지원하는 인스턴스 클래스에 대해 알아보려면 다음 명령을 실행합니다.
aws rds describe-orderable-db-instance-options --engine oracle-ee --engine-version 12.2.0.1.ru-2020-10.rur-2020-10.r1 --region us-east-1 --query "OrderableDBInstanceOptions[*].DBInstanceClass"
명령에서 us-east-1을 선택한 리전으로 바꿔야 합니다.
클라이언트 호환성: Oracle 클라이언트/드라이버 버전이 새 주 버전과 호환되는지 확인합니다. 주 버전 업그레이드와 함께 드라이버를 업그레이드해야 하는지 확인합니다. 상호 운용성에 대한 자세한 내용은, Oracle Database 클라이언트 및 Oracle Database 상호 운용성에 대한 Oracle 설명서를 참조하십시오.
업그레이드 방법: 다음 방법 중 하나로 주 버전 업그레이드를 수행할 수 있습니다.
- RDS 인스턴스를 수정하고 새 주 버전을 적용합니다.
참고: 이 방법에는 약간의 가동 중지 시간이 포함됩니다. - 주 버전으로 새 RDS 인스턴스를 생성하고, AWS DMS(AWS 데이터 마이그레이션 서비스)를 사용하여 데이터를 마이그레이션합니다.
참고: AWS DMS는 최소한의 접근 방식을 사용하여 데이터를 마이그레이션하고 데이터를 효율적으로 마이그레이션하는 데 필요한 객체만 생성합니다. AWS DMS는 테이블, 기본 키 및 경우에 따라 고유 인덱스를 생성하지만, 소스에서 데이터를 효율적으로 마이그레이션하는 데 필요하지 않은 다른 객체는 생성하지 않습니다. 예를 들어, AWS DMS는 보조 인덱스, 기본이 아닌 키 제약 조건 또는 데이터 기본값을 생성하지 않습니다. 자세한 내용은, AWS DMS의 상위 수준 보기를 참조하십시오.
사용 사례에 따라 업그레이드를 수행하려면 다음 방법 중 하나를 선택합니다.
사용자 지정 파라미터 그룹: 인스턴스에 사용자 지정 파라미터 그룹이 있는 경우, 새 주 버전에 대한 새 파라미터 그룹을 생성하고 사용자 지정 파라미터를 적절하게 설정합니다. 현재 사용 중인 사용자 지정 파라미터를 식별하려면 기존 사용자 지정 파라미터 그룹을 현재 버전의 기본 파라미터 그룹과 비교합니다.
사용자 지정 옵션 그룹: 인스턴스에 사용자 지정 옵션 그룹이 있는 경우, 주 버전에 대한 새 사용자 지정 옵션 그룹을 생성합니다. 옵션 그룹에 표준 시간대 또는 Oracle 투명 데이터 암호화와 같은 지속 또는 영구 옵션이 있는 경우, 동일한 지속 또는 영구 옵션이 새 사용자 지정 옵션 그룹에 포함되어야 합니다. 주 버전 업그레이드와 함께 표준 시간대 파일 버전을 데이터베이스 인스턴스에서 사용 가능한 최신 버전으로 업그레이드하려면, 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 절차를 사용하여 감사 추적을 삭제할 수도 있습니다.
암호: 다음 쿼리를 실행하여 이전 버전의 암호를 사용하고 있지 않은지 확인합니다.
SQL> SELECT USERNAME,PASSWORD_VERSIONS FROM DBA_USERS;
쿼리 결과에서 사용자가 10g 버전의 암호만 사용하는 경우, 새 버전의 암호로 사용자를 다시 만들 수 있는지 확인합니다. 사용자 암호 버전을 수정할 수 없는 경우, 연결 오류를 방지하기 위해 SQLNET.ALLOWED_LOGON_VERSION_SERVER 파라미터를 적절하게 설정하십시오.
RDS for Oracle 인스턴스에 sqlnetora.sqlnet.allowed_logon_version_server 파라미터가 정의되어 있는 경우 이 파라미터는 데이터베이스 서버에 연결할 때 허용되는 인증 프로토콜의 최소 버전을 나타냅니다. 8로 설정하면, 대부분의 암호 버전이 허용되며, DBA_USERS.PASSWORD_VERSIONS 값 10G, 11G 및 12C를 조합할 수 있습니다.
Oracle RDS 인스턴스에 sqlnetora.sqlnet.allowed_logon_version_client 파라미터가 정의되어 있는 경우 이 파라미터는 데이터베이스가 클라이언트 역할을 할 때 사용되는 최소 인증 프로토콜을 나타냅니다.
자세한 내용은대소문자를 구분하지 않는 암호 버전을 사용하여 계정 확인에 대한 Oracle 설명서를 참조하십시오.
DBMS_JOB: Oracle 데이터베이스12c Release 2의 업그레이드와 함께 DBMS_JOB 패키지가 중단되었습니다. 버전 19c로 업그레이드하는 경우, 업그레이드 전에 모든 DBMS_JOB 작업을 DBMS_SCHEDULER 작업으로 변환하는 것이 모범 사례입니다. 업그레이드 중에, Oracle은 DBMS_JOB 작업을 DBMS_SCHEDULER 작업으로 변환합니다. 자세한 내용은DBMS_JOB 지원에 대한 Oracle 설명서를 참조하십시오. DBMS_JOB 항목 수가 많은 경우, 업그레이드 시간이 더 오래 걸릴 수 있습니다.
FreeStorageSpace: 인스턴스가 스토리지 용량에 근접하지 않은지 확인합니다. FreeStorageSpace CloudWatch 지표를 확인하여, 업그레이드를 성공적으로 완료하는 데 사용할 수 있는 여유 스토리지 공간이 있는지 확인합니다. 자세한 내용은, Amazon RDS의 여유 스토리지 공간을 모니터링하고, 스토리지가 가득 차는 문제를 방지하기 위해 CloudWatch 알람을 생성하려면 어떻게 해야 하나요?를 참조하세요.
유지 관리 작업: Amazon 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
쿼리에서 다음과 같이 값을 변경합니다.
- RDS for Oracle 인스턴스 이름이 있는 example-instance-name.
- 선택한 리전이 있는 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-OWNER
예:
--To disable AUDIT_USERS trigger in MYADMIN schema SQL> ALTER TRIGGER MYADMIN.AUDIT_USERS DISABLE;
업그레이드 중
업그레이드를 시작한 후, Amazon RDS 콘솔에서 다음을 확인하여 업그레이드 진행 상황을 모니터링할 수 있습니다.
- 인스턴스의 로그 및 이벤트 탭 아래에 있는 경고 로그
- 인스턴스의 로그 및 이벤트 탭 아래에 있는최근 이벤트
업그레이드 후
- 데이터베이스에 연결한 후, 다음 쿼리를 실행하여 패치 버전을 확인합니다.
SQL> SELECT * FROM sys.registry$history; SQL> SELECT INSTALL_ID,PATCH_ID,ACTION,STATUS,ACTION_TIME,DESCRIPTION FROM DBA_REGISTRY_SQLPATCH;
- Amazon RDS는 패치를 적용한 후 1시간 이내에 lsinventory-dbv.txt 파일을 업데이트합니다. Amazon RDS 콘솔에 있는 인스턴스의로그 및 이벤트 탭에서 이 파일을 다운로드할 수 있습니다. Isinventory-dbv.txt 파일을 읽어 적용된 패치를 확인합니다.
- 다음 질의를 실행하여 사전 통계 및 고정 객체 통계를 수집합니다.
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> EXEC DBMS_UTILITY.compile_schema(schema => 'ADMIN', compile_all => false);
- 업그레이드 후, 새 주 버전의 최적기 기능으로 인해 쿼리 성능 문제가 발생하는 경우, OPTIMIZER_FEATURES_ENABLE 파라미터를 사용하는 것이 좋습니다. 세션 수준 및 시스템 수준에서 이 파라미터를 변경할 수 있습니다. 예를 들어, 릴리스 18.1에서 릴리스 19.1로 데이터베이스를 업그레이드하지만, 릴리스 18.1 최적기 동작을 유지하려는 경우, OPTIMIZER_FEATURES_ENABLE 파라미터의 값을 18.1.0으로 설정하면 됩니다.
