

# Amazon RDS for Oracle에서 마이너 버전 업그레이드 사전 확인 실행
<a name="USER_UpgradeDBInstance.Oracle.Precheck"></a>

Amazon RDS for Oracle은 DB 마이너 버전 업그레이드를 수행하기 전에, DB 인스턴스가 업그레이드를 완료할 수 있는 상태인지 확인합니다. 확인 과정에서 문제가 발견되면, 해당 문제를 해결하기 전까지는 업그레이드를 진행할 수 없습니다.

업그레이드를 시작하지 않고도 언제든지 이러한 확인을 직접 실행할 수 있습니다. 이를 통해 유지 관리 기간이 도래하기 전에 문제를 미리 찾아 해결할 수 있습니다. 확인을 실행하려면 Amazon RDS 프로시저인 `rdsadmin.rdsadmin_precheck_tasks.precheck_minor_upgrade`를 사용하세요. 사전 확인은 읽기 전용 작업으로, 데이터나 구성을 변경하지 않습니다.

이 프로시저는 태스크 ID를 반환합니다. 사전 확인 결과는 BDUMP 디렉터리에 있는 `dbtask-{{task_id}}.log`라는 이름의 로그 파일에 기록됩니다. 로그 파일을 다운로드하려면 [데이터베이스 로그 파일 다운로드](USER_LogAccess.Procedural.Downloading.md) 섹션을 참조하세요.

**참고**  
사전 확인은 기본 DB 인스턴스에서 실행하세요. 읽기 복제본에서 사전 확인을 실행하는 것은 지원되지 않습니다.

**Topics**
+ [마이너 버전 업그레이드 사전 확인 실행](#USER_UpgradeDBInstance.Oracle.Precheck.Running)
+ [사전 확인 결과 보기](#USER_UpgradeDBInstance.Oracle.Precheck.Viewing)
+ [사전 확인 결과 해석](#USER_UpgradeDBInstance.Oracle.Precheck.Interpreting)
+ [사전 확인 항목](#USER_UpgradeDBInstance.Oracle.Precheck.Checks)
+ [사전 확인 실행 시점](#USER_UpgradeDBInstance.Oracle.Precheck.When)

## 마이너 버전 업그레이드 사전 확인 실행
<a name="USER_UpgradeDBInstance.Oracle.Precheck.Running"></a>

DB 인스턴스가 DB 마이너 버전 업그레이드를 수행할 준비가 되었는지 확인하려면 `rdsadmin.rdsadmin_precheck_tasks.precheck_minor_upgrade` 프로시저를 실행하세요. 프로시저에는 파라미터가 없습니다. 다음 쿼리를 실행하면 사전 확인이 시작되고 태스크 ID가 반환됩니다.

```
SQL> SELECT rdsadmin.rdsadmin_precheck_tasks.precheck_minor_upgrade() AS task_id FROM DUAL;

TASK_ID
------------------
1784924903020-9
```

태스크 ID를 SQL 클라이언트 변수에 저장한 다음, 해당 변수를 다른 문에서 사용할 수도 있습니다.

```
SQL> VAR task_id VARCHAR2(80);
SQL> EXEC :task_id := rdsadmin.rdsadmin_precheck_tasks.precheck_minor_upgrade();

PL/SQL procedure successfully completed.
```

사전 확인은 백그라운드에서 실행됩니다. 로그의 마지막 라인에 `The task finished successfully.` 또는 `The task failed.`라는 문구가 나타나면 작업이 완료된 것입니다.

## 사전 확인 결과 보기
<a name="USER_UpgradeDBInstance.Oracle.Precheck.Viewing"></a>

로그 파일을 읽으려면 Amazon RDS 프로시저 `rdsadmin.rds_file_util.read_text_file`을 실행합니다. 파일 이름에 태스크 ID를 포함합니다. 다음 예시는 어떠한 확인 항목에서도 문제가 발견되지 않은 사전 확인 결과를 보여줍니다.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
-------------------------------------------------------------------------------------------------------------------------
2026-08-28 18:30:20.461 UTC [INFO ] Starting minor version upgrade precheck...
2026-08-28 18:30:20.461 UTC [INFO ] NOTE: This precheck validates against the current engine version's known checks. Target-version-specific checks (e.g., autoupgrade) are not included.
2026-08-28 18:30:20.470 UTC [INFO ] CHECK: FreeStorageSpace - PASSED
2026-08-28 18:30:20.515 UTC [INFO ] CHECK: SystemTablespace - PASSED
2026-08-28 18:30:20.523 UTC [INFO ] CHECK: AuditTablespace - PASSED
2026-08-28 18:30:20.541 UTC [INFO ] CHECK: RedoApplyLag - SKIPPED: the DB instance has no read replicas
2026-08-28 18:30:20.612 UTC [INFO ] CHECK: MdsysUser - PASSED
2026-08-28 18:30:20.688 UTC [INFO ] CHECK: ConflictingSynonyms - PASSED
2026-08-28 18:30:20.731 UTC [INFO ] CHECK: WorkspaceManager - PASSED
2026-08-28 18:30:20.790 UTC [INFO ] CHECK: SchemaVersionRegistry - PASSED
2026-08-28 18:30:20.846 UTC [INFO ] CHECK: XmlDbSchema - PASSED
2026-08-28 18:30:20.903 UTC [INFO ] CHECK: ApexStatus - PASSED
2026-08-28 18:30:20.955 UTC [INFO ] CHECK: CtxsysSequences - PASSED
2026-08-28 18:30:21.304 UTC [INFO ] CHECK: InvalidSystemObjects - PASSED
2026-08-28 18:30:21.549 UTC [INFO ] CHECK: InvalidTriggers - PASSED
2026-08-28 18:30:21.601 UTC [INFO ] CHECK: PendingDistributedTransactions - PASSED
2026-08-28 18:30:21.602 UTC [INFO ] Summary: 13 passed, 1 skipped, 0 warnings, 0 errors, 0 blockers
2026-08-28 18:30:21.602 UTC [INFO ] Result: PASSED
2026-08-28 18:30:21.602 UTC [INFO ] The task finished successfully.
```

BDUMP 디렉터리에 있는 파일을 나열하려면 다음 쿼리를 실행합니다.

```
SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP')) order by mtime;
```

`rdsadmin.rds_file_util.read_text_file` 프로시저에 대한 자세한 내용은 [DB 인스턴스 디렉터리의 파일 목록 읽기](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles) 섹션을 참조하세요.

## 사전 확인 결과 해석
<a name="USER_UpgradeDBInstance.Oracle.Precheck.Interpreting"></a>

로그에는 확인 항목당 하나의 `CHECK:` 라인이 표시되며, 그 뒤에 `Summary:` 라인과 `Result:` 라인이 이어집니다. 실행되는 확인 항목은 엔진 버전, 데이터베이스 아키텍처, DB 인스턴스 구성에 따라 다릅니다. 각 확인 항목은 다음 결과 중 하나를 보고합니다.

`PASSED`  
확인 과정에서 문제가 발견되지 않았습니다.

`FAILED [BLOCKER]`  
확인 과정에서 DB 마이너 버전 업그레이드 전 반드시 해결해야 하는 문제가 발견되었습니다. 해당 라인에 문제 내용과 조치 방법이 설명되어 있습니다.

`WARN`  
확인 과정에서 검토가 필요한 사항이 발견되었습니다. 경고가 발생하더라도 업그레이드가 차단되지는 않습니다.

`SKIPPED`  
해당 DB 인스턴스에 적용되지 않는 확인 항목입니다. 해당 라인에 그 이유가 표시됩니다.

`ERROR`  
확인 작업을 완료하지 못했습니다. 사전 확인을 다시 실행하세요.

앞선 확인에서 실패가 발생하더라도 모든 확인 작업이 실행되므로, 단 한 번의 실행으로 사전 확인이 찾아낸 모든 문제를 파악할 수 있습니다. 하나의 확인 항목이라도 `FAILED [BLOCKER]` 또는 `ERROR`를 보고하면 로그에 `Result: FAILED`가 표시됩니다. 그렇지 않은 경우에는 `Result: PASSED`가 표시됩니다.

다음 예시는 하나의 문제가 발견된 사전 확인 결과를 보여줍니다.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
-------------------------------------------------------------------------------------------------------------------------
2026-08-28 18:57:39.105 UTC [INFO ] Starting minor version upgrade precheck...
2026-08-28 18:57:39.105 UTC [INFO ] NOTE: This precheck validates against the current engine version's known checks. Target-version-specific checks (e.g., autoupgrade) are not included.
2026-08-28 18:57:39.112 UTC [INFO ] CHECK: FreeStorageSpace - PASSED
2026-08-28 18:57:39.125 UTC [INFO ] CHECK: SystemTablespace - PASSED
2026-08-28 18:57:39.133 UTC [INFO ] CHECK: AuditTablespace - PASSED
2026-08-28 18:57:39.150 UTC [INFO ] CHECK: RedoApplyLag - SKIPPED: the DB instance has no read replicas
2026-08-28 18:57:39.221 UTC [INFO ] CHECK: MdsysUser - PASSED
2026-08-28 18:57:39.297 UTC [INFO ] CHECK: ConflictingSynonyms - PASSED
2026-08-28 18:57:39.340 UTC [INFO ] CHECK: WorkspaceManager - PASSED
2026-08-28 18:57:39.399 UTC [INFO ] CHECK: SchemaVersionRegistry - PASSED
2026-08-28 18:57:39.455 UTC [INFO ] CHECK: XmlDbSchema - PASSED
2026-08-28 18:57:39.512 UTC [INFO ] CHECK: ApexStatus - PASSED
2026-08-28 18:57:39.564 UTC [INFO ] CHECK: CtxsysSequences - PASSED
2026-08-28 18:57:39.913 UTC [INFO ] CHECK: InvalidSystemObjects - PASSED
2026-08-28 18:57:40.097 UTC [ERROR] CHECK: InvalidTriggers - FAILED [BLOCKER]: The DB instance has triggers that aren't valid. Fix or disable them.
2026-08-28 18:57:40.151 UTC [INFO ] CHECK: PendingDistributedTransactions - PASSED
2026-08-28 18:57:40.152 UTC [INFO ] Summary: 12 passed, 1 skipped, 0 warnings, 0 errors, 1 blocker
2026-08-28 18:57:40.152 UTC [INFO ] RDS can't upgrade the DB instance. Resolve the blockers listed above, and then try again.
2026-08-28 18:57:40.152 UTC [INFO ] Result: FAILED
2026-08-28 18:57:40.152 UTC [INFO ] The task failed.
```

로그에 보고된 각 문제를 해결한 다음, 사전 확인을 다시 실행하여 DB 인스턴스가 확인을 통과하는지 확인하세요.

## 사전 확인 항목
<a name="USER_UpgradeDBInstance.Oracle.Precheck.Checks"></a>

다음 표는 각 확인 항목과 실패 발생 조건을 나열한 것입니다. 확인 항목에서 실패가 발생하면 로그의 해당 라인에 문제 내용과 해결 방법이 설명됩니다.



| Check]를 선택합니다 | 실패 발생 조건 | 
| --- | --- | 
| FreeStorageSpace | DB 인스턴스의 여유 스토리지가 768MB 미만입니다. | 
| SystemTablespace | SYSTEM 또는 SYSAUX 테이블스페이스의 여유 공간이 300MB 미만이거나 자동 확장이 설정되어 있지 않습니다. CDB의 경우 사전 확인 시 각 컨테이너가 확인됩니다. | 
| AuditTablespace | 감사 테이블스페이스의 여유 공간이 300MB 미만이거나 자동 확장이 설정되어 있지 않습니다. | 
| RedoApplyLag | 읽기 복제본의 redo 적용 지연이 5분을 초과합니다. DB 인스턴스에 읽기 복제본이 없으면 확인을 건너뜁니다. | 
| MdsysUser | MDSYS 사용자가 Oracle에서 관리되지 않습니다. | 
| ConflictingSynonyms | 동의어가 새 Oracle 버전에서 예약한 이름을 사용하고 있습니다. | 
| WorkspaceManager | Workspace Manager(WMSYS) 객체가 존재합니다. | 
| SchemaVersionRegistry | 하나 이상의 SCHEMA\_VERSION\_REGISTRY 뷰가 유효하지 않습니다. | 
| XmlDbSchema | 하나 이상의 XML DB 스키마 객체가 유효하지 않습니다. | 
| ApexStatus | APEX 구성 요소가 VALID 상태가 아닙니다. | 
| CtxsysSequences | CTXSYS 스키마에 3개의 Oracle Text 시퀀스(DR\_ID\_SEQ, MESG\_ID\_SEQ, THS\_SEQ)가 없습니다. CDB의 경우 확인을 건너뜁니다. | 
| InvalidSystemObjects | Oracle에서 관리되는 객체가 유효하지 않습니다. | 
| InvalidTriggers | 트리거가 유효하지 않습니다. | 
| PendingDistributedTransactions | 분산 트랜잭션이 해결되지 않았습니다. | 

## 사전 확인 실행 시점
<a name="USER_UpgradeDBInstance.Oracle.Precheck.When"></a>

여유 스토리지 용량이나 읽기 복제본의 지연 등 일부 조건은 시간이 지나면서 계속 변합니다. 따라서 업그레이드를 진행하기 직전에 사전 확인을 실행하세요. DB 인스턴스에서 자동 마이너 버전 업그레이드를 사용한다면, 보류 중인 유지 관리 알림을 받은 후 유지 관리 기간이 시작되기 전에 사전 확인을 실행합니다.

확인 대상이 되는 조건에 영향을 주는 변경 작업을 수행했다면 사전 확인을 다시 실행하세요. 예를 들어 스토리지를 추가하거나, 테이블스페이스를 변경하거나, 객체를 삭제 또는 재컴파일하거나, 분산 트랜잭션을 해결한 후에는 사전 확인을 다시 실행해야 합니다. 이러한 조건에 영향을 주지 않는 변경 작업은 확인 결과에 아무런 변화를 주지 않습니다. 예를 들어 백업을 수행하거나 DB 인스턴스 클래스를 변경하더라도 확인 결과는 달라지지 않습니다.

**참고**  
사전 확인은 현재 엔진 버전을 기준으로 확인 항목들을 실행합니다. 업그레이드 대상이 될 다음 버전에서 요구하는 사항들은 확인 항목에 포함되지 않습니다.