

# RDS for Oracle 고급 기능 구성
<a name="CHAP_Oracle.advanced-features"></a>

RDS for Oracle은 HugePages, 인스턴스 스토어 및 확장 데이터 유형을 비롯한 다양한 고급 기능을 지원합니다.

**Topics**
+ [RDS for Oracle 인스턴스 스토어에 임시 데이터 저장](CHAP_Oracle.advanced-features.instance-store.md)
+ [RDS for Oracle 인스턴스에 HugePages 활성화](Oracle.Concepts.HugePages.md)
+ [RDS for Oracle에서 확장 데이터 유형 활성화](Oracle.Concepts.ExtendedDataTypes.md)

# RDS for Oracle 인스턴스 스토어에 임시 데이터 저장
<a name="CHAP_Oracle.advanced-features.instance-store"></a>

Oracle DB 클래스에 지원되는 RDS에서 임시 테이블스페이스 및 데이터베이스 스마트 플래시 캐시(플래시 캐시)에 인스턴스 스토어를 사용하세요.

**Topics**
+ [RDS for Oracle 인스턴스 스토어 개요](#CHAP_Oracle.advanced-features.instance-store.overview)
+ [RDS for Oracle 인스턴스 스토어 활성화](#CHAP_Oracle.advanced-features.instance-store.Enable)
+ [RDS for Oracle 인스턴스 스토어 구성](CHAP_Oracle.advanced-features.instance-store.configuring.md)
+ [Oracle 읽기 전용 복제본에서 인스턴스 스토어로 작업하기](CHAP_Oracle.advanced-features.instance-store.replicas.md)
+ [인스턴스 스토어와 Amazon EBS에 임시 테이블스페이스 그룹 구성](CHAP_Oracle.advanced-features.instance-store.temp-ebs.md)
+ [RDS for Oracle 인스턴스 스토어 제거](#CHAP_Oracle.advanced-features.instance-store.Disable)

## RDS for Oracle 인스턴스 스토어 개요
<a name="CHAP_Oracle.advanced-features.instance-store.overview"></a>

**인스턴스 스토어는 RDS for Oracle DB 인스턴스에 블록 수준의 임시 스토리지를 제공합니다. 자주 변경되는 정보를 임시로 저장하는 데 인스턴스 스토어를 사용할 수 있습니다.

인스턴스 스토어는 호스트 컴퓨터에 물리적으로 연결된 NVMe 디바이스를 기반으로 합니다. 이 스토리지는 짧은 지연 시간, 임의 I/O 성능, 순차 읽기 처리량에 최적화되어 있습니다.

인스턴스 스토어의 크기는 DB 인스턴스 유형에 따라 다릅니다. 인스턴스 스토어 유형에 대한 자세한 내용은 **Linux 인스턴스용 Amazon Elastic Compute Cloud 사용 설명서의 [Amazon EC2 인스턴스 스토어](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) 섹션을 참조하세요.

**Topics**
+ [RDS for Oracle 인스턴스 스토어의 데이터 유형](#CHAP_Oracle.advanced-features.instance-store.overview.uses)
+ [RDS for Oracle 인스턴스 스토어의 이점](#CHAP_Oracle.advanced-features.instance-store.overview.benefits)
+ [RDS for Oracle 인스턴스 스토어가 지원되는 인스턴스 클래스](#CHAP_Oracle.advanced-features.instance-store.overview.instance-classes)
+ [RDS for Oracle 인스턴스 스토어가 지원되는 엔진 버전](#CHAP_Oracle.advanced-features.instance-store.overview.db-versions)
+ [RDS for Oracle 인스턴스 스토어가 지원되는 AWS 리전](#CHAP_Oracle.advanced-features.instance-store.overview.regions)
+ [RDS for Oracle 인스턴스 스토어의 비용](#CHAP_Oracle.advanced-features.instance-store.overview.cost)

### RDS for Oracle 인스턴스 스토어의 데이터 유형
<a name="CHAP_Oracle.advanced-features.instance-store.overview.uses"></a>

다음 유형의 RDS for Oracle 임시 데이터를 인스턴스 스토어에 배치할 수 있습니다.

임시 테이블스페이스  
Oracle Database는 임시 테이블스페이스를 사용하여 메모리에 들어가지 않는 중간 쿼리 결과를 저장합니다. 쿼리가 클수록 일시적으로 캐시해야 하지만 유지할 필요는 없는 많은 양의 중간 데이터가 생성될 수 있습니다. 특히 임시 테이블스페이스는 정렬, 해시 집계 및 조인에 유용합니다. RDS for Oracle DB 인스턴스가 Enterprise Edition 또는 Standard Edition 2를 사용하는 경우 인스턴스 스토어에 임시 테이블스페이스를 배치할 수 있습니다.

플래시 캐시  
플래시 캐시는 통상적인 경로에서의 단일 블록 랜덤 읽기 성능을 향상시킵니다. 가장 좋은 방법은 활성 데이터 세트의 대부분을 수용할 수 있도록 캐시의 크기를 조정하는 것입니다. RDS for Oracle DB 인스턴스가 Enterprise Edition을 사용하는 경우 인스턴스 스토어에 플래시 캐시를 배치할 수 있습니다.

기본적으로 인스턴스 스토어는 임시 테이블스페이스용으로 구성되며 플래시 캐시에 대해서는 구성되지 않습니다. Oracle 데이터 파일과 데이터베이스 로그 파일을 인스턴스 스토어에 배치할 수 없습니다.

### RDS for Oracle 인스턴스 스토어의 이점
<a name="CHAP_Oracle.advanced-features.instance-store.overview.benefits"></a>

손실되어도 되는 임시 파일 및 캐시를 저장하기 위해 인스턴스 스토어를 사용하는 것을 고려해 볼 수 있습니다. DB 성능을 개선하고 싶거나 워크로드 증가로 인해 Amazon EBS 스토리지의 성능 문제가 발생하는 경우 인스턴스 스토어를 지원하는 인스턴스 클래스로 확장하는 것을 고려해 보세요.

임시 테이블스페이스와 플래시 캐시를 인스턴스 스토어에 배치하면 다음과 같은 이점을 얻을 수 있습니다.
+ 읽기 지연 시간이 단축됨
+ 처리량이 향상됨
+ Amazon EBS 볼륨의 로드가 감소함
+ Amazon EBS 로드 감소로 스토리지 및 스냅샷 비용이 절감됨
+ 높은 IOPS를 프로비저닝할 필요가 줄어들어 전체 비용이 절감될 수 있음

 임시 테이블스페이스를 인스턴스 스토어에 배치하면 임시 공간을 사용하는 쿼리의 성능을 즉시 높일 수 있습니다. 인스턴스 스토어에 플래시 캐시를 배치하면 캐시된 블록 읽기는 일반적으로 Amazon EBS 읽기보다 지연 시간이 훨씬 짧습니다. 플래시 캐시는 성능 이점을 제공하기 전에 '워밍업'되어야 합니다. 데이터베이스는 블록이 데이터베이스 버퍼 캐시에서 노후화됨에 따라 플래시 캐시에 블록을 쓰기 때문에 캐시가 저절로 워밍업됩니다.

**참고**  
캐시 관리로 인해 플래시 캐시가 성능 오버헤드를 유발하는 경우도 있습니다. 프로덕션 환경에서 플래시 캐시를 켜기 전에 테스트 환경에서 워크로드를 분석하고 캐시를 테스트하는 것이 좋습니다.

### RDS for Oracle 인스턴스 스토어가 지원되는 인스턴스 클래스
<a name="CHAP_Oracle.advanced-features.instance-store.overview.instance-classes"></a>

Amazon RDS는 다음 DB 인스턴스 클래스에 인스턴스 스토어를 지원합니다.
+ db.m5d
+ db.m6id
+ db.r5d
+ db.r6id
+ db.x2idn
+ db.x2iedn

RDS for Oracle은 BYOL 라이선스 모델에 대한 위의 DB 인스턴스 클래스만 지원합니다. 자세한 내용은 [지원되는 RDS for Oracle DB 인스턴스 클래스](Oracle.Concepts.InstanceClasses.md#Oracle.Concepts.InstanceClasses.Supported) 및 [EE 및 SE2용 기존 보유 라이선스 사용(BYOL)](Oracle.Concepts.Licensing.md#Oracle.Concepts.Licensing.BYOL)(을)를 참조하세요.

지원되는 DB 인스턴스 유형에 대한 총 인스턴스 스토리지를 확인하려면 AWS CLI에서 다음 명령을 실행합니다.

**Example**  

```
aws ec2 describe-instance-types \
  --filters "Name=instance-type,Values=*5d.*large*,*6id.*large*" \
  --query "InstanceTypes[?contains(InstanceType,'m5d')||contains(InstanceType,'r5d')||contains(InstanceType,'m6id')||contains(InstanceType,'r6id')][InstanceType, InstanceStorageInfo.TotalSizeInGB]" \
  --output table
```

위 명령은 인스턴스 스토어의 원시 디바이스 크기를 반환합니다. RDS for Oracle은 이 공간의 일부를 구성에 사용합니다. 임시 테이블스페이스 또는 플래시 캐시에 사용할 수 있는 인스턴스 스토어의 공간이 약간 더 작습니다.

### RDS for Oracle 인스턴스 스토어가 지원되는 엔진 버전
<a name="CHAP_Oracle.advanced-features.instance-store.overview.db-versions"></a>

다음 RDS for Oracle 엔진 버전에 인스턴스 스토어가 지원됩니다.
+ 21.0.0.0.ru-2022-01.rur-2022-01.r1 이상의 Oracle Database 21c 버전
+ 19.0.0.0.ru-2021-10.rur-2021-10.r1 이상의 Oracle Database 19c 버전

### RDS for Oracle 인스턴스 스토어가 지원되는 AWS 리전
<a name="CHAP_Oracle.advanced-features.instance-store.overview.regions"></a>

인스턴스 스토어는 이러한 인스턴스 유형 중 하나 이상이 지원되는 모든 AWS 리전에서 사용 가능합니다. db.m5d 및 db.r5d 인스턴스 클래스에 대한 자세한 내용은 [DB 인스턴스 클래스](Concepts.DBInstanceClass.md) 섹션을 참조하세요. Amazon RDS for Oracle에서 지원하는 인스턴스 클래스에 대한 자세한 내용은 [RDS for Oracle DB 인스턴스 클래스](Oracle.Concepts.InstanceClasses.md) 섹션을 참조하세요.

### RDS for Oracle 인스턴스 스토어의 비용
<a name="CHAP_Oracle.advanced-features.instance-store.overview.cost"></a>

인스턴스 스토어의 비용은 인스턴스 스토어가 활성화된 인스턴스의 비용에 포함됩니다. RDS for Oracle DB 인스턴스에서 인스턴스 스토어를 활성화해도 추가 비용이 발생하지 않습니다. 인스턴스 스토어가 활성화된 인스턴스에 대한 자세한 내용은 [RDS for Oracle 인스턴스 스토어가 지원되는 인스턴스 클래스](#CHAP_Oracle.advanced-features.instance-store.overview.instance-classes) 섹션을 참조하세요.

## RDS for Oracle 인스턴스 스토어 활성화
<a name="CHAP_Oracle.advanced-features.instance-store.Enable"></a>

RDS for Oracle 임시 데이터에 인스턴스 스토어를 활성화하려면 다음 중 하나를 수행합니다.
+ 지원되는 인스턴스 클래스를 사용하여 RDS for Oracle DB 인스턴스를 생성합니다. 자세한 내용은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요.
+ 지원되는 인스턴스 클래스를 사용하도록 RDS for Oracle DB 인스턴스를 수정합니다. 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.

# RDS for Oracle 인스턴스 스토어 구성
<a name="CHAP_Oracle.advanced-features.instance-store.configuring"></a>

기본적으로 인스턴스 스토어 공간의 100%가 임시 테이블스페이스에 할당됩니다. 플래시 캐시 및 임시 테이블스페이스에 공간을 할당하도록 인스턴스 스토어를 구성하려면 인스턴스의 파라미터 그룹에서 다음 파라미터를 설정합니다.

**db\$1flash\$1cache\$1size=\$1DBInstanceStore\$1\$10,2,4,6,8,10\$1/10\$1**  
이 파라미터는 플래시 캐시에 할당된 스토리지 공간의 양을 지정합니다. 이 파라미터는 Oracle Database Enterprise Edition에서만 유효합니다. 기본값은 `{DBInstanceStore*0/10}`입니다. `db_flash_cache_size`에 0이 아닌 값을 설정한 경우, 사용자가 인스턴스를 재시작한 후 RDS for Oracle 인스턴스에서 플래시 캐시를 활성화합니다.

**rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$1\$10,2,4,6,8,10\$1/10\$1**  
이 파라미터는 임시 테이블스페이스에 할당된 스토리지 공간의 양을 지정합니다. 기본값은 `{DBInstanceStore*10/10}`입니다. 이 파라미터는 Oracle Database Enterprise Edition의 경우 수정 가능하며 Standard Edition 2의 경우 읽기 전용입니다. `rds.instance_store_temp_size`에 0이 아닌 값을 설정한 경우 Amazon RDS가 임시 테이블스페이스를 위해 인스턴스 스토어에 공간을 할당합니다.  
인스턴스 스토어를 사용하지 않는 DB 인스턴스에 대해 `db_flash_cache_size` 및 `rds.instance_store_temp_size` 파라미터를 설정할 수 있습니다. 이 경우 두 설정 모두 `0`으로 평가되어 기능이 비활성화니다. 이 경우 서로 다른 크기의 인스턴스 및 인스턴스 스토어를 사용하지 않는 인스턴스에 동일한 파라미터 그룹을 사용할 수 있습니다. 이러한 파라미터를 수정할 경우 관련 인스턴스를 재부팅하여 변경 사항을 적용해야 합니다.  
임시 테이블스페이스에 공간을 할당하는 경우 Amazon RDS는 임시 테이블스페이스를 자동으로 생성하지 않습니다. 인스턴스 스토어에 임시 테이블스페이스를 생성하는 방법을 알아보려면 [인스턴스 스토어에 임시 테이블스페이스 생성](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store) 섹션을 참조하세요.

위 파라미터의 합산 값은 10/10 또는 100%를 초과할 수 없습니다. 다음 테이블에는 올바른 파라미터 설정과 잘못된 파라미터 설정이 나와 있습니다.


| db\$1flash\$1cache\$1size 설정 | rds.instance\$1store\$1temp\$1size 설정 | 설명 | 
| --- | --- | --- | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$10/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$110/10\$1  |  이는 Oracle Database의 모든 버전에 올바른 구성입니다. Amazon RDS가 인스턴스 스토어 공간의 100%를 임시 테이블스페이스에 할당합니다. 이 값이 기본값입니다.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$110/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$10/10\$1  |  Oracle Database Enterprise Edition에서만 올바른 구성입니다. Amazon RDS가 인스턴스 스토어 공간의 100%를 플래시 캐시에 할당합니다.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$12/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$18/10\$1  |  Oracle Database Enterprise Edition에서만 올바른 구성입니다. Amazon RDS가 인스턴스 스토어 공간의 20%를 플래시 캐시에 할당하고, 인스턴스 스토어 공간의 80%를 임시 테이블스페이스에 할당합니다.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$16/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$14/10\$1  |  Oracle Database Enterprise Edition에서만 올바른 구성입니다. Amazon RDS가 인스턴스 스토어 공간의 60%를 플래시 캐시에 할당하고, 인스턴스 스토어 공간의 40%를 임시 테이블스페이스에 할당합니다.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$12/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$14/10\$1  | Oracle Database Enterprise Edition에서만 올바른 구성입니다. Amazon RDS가 인스턴스 스토어 공간의 20%를 플래시 캐시에 할당하고, 인스턴스 스토어 공간의 40%를 임시 테이블스페이스에 할당합니다. | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$18/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$18/10\$1  |  인스턴스 스토어 공간의 합산 비율이 100%를 초과하기 때문에 잘못된 구성입니다. 이러한 경우 Amazon RDS가 시도에 실패합니다.  | 

## DB 인스턴스 유형 변경 시 고려 사항
<a name="CHAP_Oracle.advanced-features.instance-store.configuring.modifying"></a>

DB 인스턴스 유형을 변경하면 인스턴스 스토어의 플래시 캐시 또는 임시 테이블스페이스 구성에 영향을 미칠 수 있습니다. 다음과 같은 수정 사항과 그 효과를 고려하세요.

**인스턴스 스토어를 지원하는 DB 인스턴스를 스케일 업하거나 스케일 다운합니다.**  
다음 값이 인스턴스 스토어의 새로운 크기에 비례하여 증가하거나 감소합니다.  
+ 플래시 캐시의 새로운 크기
+ 인스턴스 스토어에 있는 임시 테이블스페이스에 할당된 공간
예를 들어 db.m5d.4xlarge 인스턴스의 `db_flash_cache_size={DBInstanceStore*6/10}` 설정은 약 340GB의 플래시 캐시 공간을 제공합니다. 인스턴스 유형을 db.m5d.8xlarge로 스케일 업하면 플래시 캐시 공간이 약 680GB로 늘어납니다.

**인스턴스 스토어를 사용하지 않는 DB 인스턴스를 인스턴스 스토어를 사용하는 인스턴스로 수정합니다.**  
`db_flash_cache_size`를 `0`보다 큰 값으로 설정하면 플래시 캐시가 구성됩니다. `rds.instance_store_temp_size`를 `0`보다 큰 값으로 설정하면 임시 테이블스페이스에서 사용할 수 있도록 인스턴스 스토어 공간이 할당됩니다. RDS for Oracle은 인스턴스 스토어로 임시 파일을 자동으로 이동하지 않습니다. 할당된 공간 사용에 대한 자세한 내용은 [인스턴스 스토어에 임시 테이블스페이스 생성](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store) 또는 [읽기 전용 복제본의 인스턴스 스토어에 임시 파일 추가](Appendix.Oracle.CommonDBATasks.using-tempfiles.md#Appendix.Oracle.CommonDBATasks.adding-tempfile-replica) 섹션을 참조하세요.

**인스턴스 스토어를 사용하는 DB 인스턴스를 인스턴스 스토어를 사용하지 않는 인스턴스로 수정합니다.**  
이 경우 RDS for Oracle은 플래시 캐시를 제거합니다. RDS는 현재 Amazon EBS 볼륨의 인스턴스 스토어에 있는 임시 파일을 다시 생성합니다. 새로운 임시 파일의 최대 크기는 `rds.instance_store_temp_size` 파라미터 이전 크기입니다.

# Oracle 읽기 전용 복제본에서 인스턴스 스토어로 작업하기
<a name="CHAP_Oracle.advanced-features.instance-store.replicas"></a>

읽기 전용 복제본은 인스턴스 스토어의 플래시 캐시와 임시 테이블스페이스를 지원합니다. 플래시 캐시는 기본 DB 인스턴스와 동일한 방식으로 작동하지만, 임시 테이블스페이스의 경우 다음과 같은 차이점이 있습니다.
+ 읽기 전용 복제본에 임시 테이블스페이스를 생성할 수 없습니다. 기본 인스턴스에서 새 임시 테이블스페이스를 생성하는 경우 RDS for Oracle은 임시 파일 없이 테이블스페이스 정보를 복제합니다. 새 임시 파일을 추가하려면 다음 방법 중 하나를 사용합니다.
  + Amazon RDS 프로시저 `rdsadmin.rdsadmin_util.add_inst_store_tempfile`을 사용합니다. RDS for Oracle은 읽기 전용 복제본의 인스턴스 스토어에 임시 파일을 생성하여 지정된 임시 테이블스페이스에 임시 파일을 추가합니다.
  + `ALTER TABLESPACE … ADD TEMPFILE` 명령을 실행합니다. RDS for Oracle은 임시 파일을 Amazon EBS 스토리지에 저장합니다.
**참고**  
임시 파일 크기 및 스토리지 유형은 기본 DB 인스턴스와 읽기 전용 복제본에서 다를 수 있습니다.
+ 기본 임시 테이블스페이스 설정은 기본 DB 인스턴스에서만 관리할 수 있습니다. RDS for Oracle은 이 설정을 모든 읽기 전용 복제본에 복제합니다.
+ 임시 테이블스페이스 그룹은 기본 DB 인스턴스에서만 구성할 수 있습니다. RDS for Oracle은 이 설정을 모든 읽기 전용 복제본에 복제합니다.

# 인스턴스 스토어와 Amazon EBS에 임시 테이블스페이스 그룹 구성
<a name="CHAP_Oracle.advanced-features.instance-store.temp-ebs"></a>

인스턴스 스토어와 Amazon EBS 모두에 임시 테이블스페이스를 포함하도록 임시 테이블스페이스 그룹을 구성할 수 있습니다. 이 방법은 `rds.instance_store_temp_size`의 최대 설정에서 허용하는 것보다 더 큰 임시 저장소가 필요한 경우에 유용합니다.

인스턴스 스토어와 Amazon EBS 모두에 임시 테이블스페이스 그룹을 구성하면 두 테이블스페이스의 성능 특성이 크게 달라집니다. Oracle Database는 내부 알고리즘을 기반으로 쿼리를 제공할 테이블스페이스를 선택합니다. 따라서 비슷한 쿼리의 성능이 달라질 수 있습니다.

일반적으로 다음과 같이 인스턴스 스토어에 임시 테이블스페이스를 생성합니다.

1. 인스턴스 스토어에 임시 테이블스페이스를 생성합니다.

1. 새 테이블스페이스를 데이터베이스 기본 임시 테이블스페이스로 설정합니다.

인스턴스 스토어의 테이블스페이스 크기가 충분하지 않은 경우 다음과 같이 추가 임시 스토리지를 생성할 수 있습니다.

1. 인스턴스 스토어의 임시 테이블스페이스를 임시 테이블스페이스 그룹에 할당합니다.

1. Amazon EBS에 임시 테이블스페이스가 없는 경우 새 임시 테이블스페이스를 생성합니다.

1. Amazon EBS의 임시 테이블스페이스를 인스턴스 스토어 테이블스페이스가 포함된 동일한 테이블스페이스 그룹에 할당합니다.

1. 새 테이블스페이스를 데이터베이스 기본 임시 테이블스페이스로 설정합니다.

다음 예에서는 인스턴스 스토어의 임시 테이블스페이스 크기가 애플리케이션 요구 사항을 충족하지 않는다고 가정합니다. 이 예에서는 인스턴스 스토어에 임시 테이블스페이스 `temp_in_inst_store`를 생성하여 테이블스페이스 그룹 `temp_group`에 할당하고 이 그룹에 이름이 `temp_in_ebs`인 기존 Amazon EBS 테이블스페이스를 추가하고 이 그룹을 기본 임시 테이블스페이스로 설정합니다.

```
SQL> EXEC rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace('temp_in_inst_store');

PL/SQL procedure successfully completed.

SQL> ALTER TABLESPACE temp_in_inst_store TABLESPACE GROUP temp_group;

Tablespace altered.

SQL> ALTER TABLESPACE temp_in_ebs TABLESPACE GROUP temp_group;

Tablespace altered.

SQL> EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace('temp_group');

PL/SQL procedure successfully completed.

SQL> SELECT * FROM DBA_TABLESPACE_GROUPS;

GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_GROUP                     TEMP_IN_EBS
TEMP_GROUP                     TEMP_IN_INST_STORE

SQL> SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';

PROPERTY_VALUE
--------------
TEMP_GROUP
```

## RDS for Oracle 인스턴스 스토어 제거
<a name="CHAP_Oracle.advanced-features.instance-store.Disable"></a>

인스턴스 스토어를 제거하려면 db.m5 또는 db.r5 등 인스턴스 스토어를 지원하지 않는 인스턴스 유형을 사용하도록 RDS for Oracle DB 인스턴스를 수정합니다.

# RDS for Oracle 인스턴스에 HugePages 활성화
<a name="Oracle.Concepts.HugePages"></a>

Amazon RDS for Oracle은 Linux 커널 HugePages를 지원해 데이터베이스 확장성을 높입니다. HugePages를 사용하면 페이지 표가 작아지고 메모리 관리에 사용되는 CPU 시간이 줄어 대용량 데이터베이스 인스턴스의 성능이 높아집니다. 자세한 내용은 Oracle 문서의 [Overview of HugePages](https://docs.oracle.com/database/121/UNXAR/appi_vlm.htm#UNXAR400) 단원을 참조하세요.

HugePages는 지원되는 모든 버전의 RDS for Oracle에서 사용할 수 있습니다.

 `use_large_pages` 파라미터는 DB 인스턴스에서 HugePages의 활성화 여부를 제어합니다. 이 파라미터는 `ONLY`, `FALSE` 또는 `{DBInstanceClassHugePagesDefault}`로 설정할 수 있습니다. Oracle용 기본 DB 파라미터 그룹에서는 `use_large_pages` 파라미터가 `{DBInstanceClassHugePagesDefault}`로 설정됩니다.

DB 인스턴스에서 HugePages의 자동 활성화 여부를 제어하기 위해 파라미터 그룹에서 `DBInstanceClassHugePagesDefault` 수식 변수를 사용할 수 있습니다. 값은 다음과 같이 결정합니다.
+ 다음 표에서 언급한 DB 인스턴스 클래스의 경우 `DBInstanceClassHugePagesDefault`는 항상 `FALSE`가 기본값이며 `use_large_pages`는 `FALSE`로 평가됩니다. 이때는 DB 인스턴스 클래스의 메모리 크기가 14GiB 이상이라면 이러한 DB 인스턴스 클래스의 HugePages를 수동으로 활성화할 수 있습니다.
+ 다음 표에서 언급하지 않은 DB 인스턴스 클래스의 경우 DB 인스턴스 클래스의 메모리가 14GiB 미만이면 `DBInstanceClassHugePagesDefault`는 항상 `FALSE`로 평가됩니다. 또한 `use_large_pages`는 `FALSE`로 평가됩니다.
+ 다음 표에서 언급하지 않은 DB 인스턴스 클래스의 경우 인스턴스 클래스의 메모리가 14GiB 이상에서 100GiB 미만이면 `DBInstanceClassHugePagesDefault`의 기본값이 `TRUE`로 평가됩니다. 또한 `use_large_pages`는 `ONLY`로 평가됩니다. `use_large_pages`를 `FALSE`로 설정하면 HugePages를 수동으로 비활성화할 수 있습니다.
+ 다음 표에서 언급하지 않은 DB 인스턴스 클래스의 경우 인스턴스 클래스의 메모리가 100GiB 이상이면 `DBInstanceClassHugePagesDefault`는 항상 `TRUE`로 평가됩니다. 또한 `use_large_pages`는 `ONLY`로 평가되며 HugePages는 비활성화할 수 없습니다.

다음 DB 인스턴스 클래스의 경우, HugePages가 기본적으로 활성화되지 않습니다.


****  

| DB 인스턴스 클래스 패밀리 | HugePages가 기본적으로 활성화되지 않는 DB 인스턴스 클래스 | 
| --- | --- | 
|  db.m5  |  db.m5.large  | 
|  db.m4  |  db.m4.large, db.m4.xlarge, db.m4.2xlarge, db.m4.4xlarge, db.m4.10xlarge  | 
|  db.t3  |  db.t3.micro, db.t3.small, db.t3.medium, db.t3.large  | 

DB 인스턴스 클래스에 대한 자세한 내용은 [ DB 인스턴스 클래스의 하드웨어 사양](Concepts.DBInstanceClass.Summary.md) 단원을 참조하세요.

신규 또는 기존 DB 인스턴스에 HugePages를 수동으로 활성화하려면 `use_large_pages` 파라미터를 `ONLY`로 설정합니다. Oracle Automatic Memory Management(AMM)에 HugePages를 사용할 수 없습니다. 파라미터 `use_large_pages`를 `ONLY`로 설정하면 `memory_target` 및 `memory_max_target`도 `0`으로 설정해야 합니다. DB 인스턴스를 위한 DB 파라미터를 설정하는 자세한 방법은 [Amazon RDS의 파라미터 그룹](USER_WorkingWithParamGroups.md) 단원을 참조하세요.

`sga_target`, `sga_max_size`, `pga_aggregate_target` 파라미터도 설정할 수 있습니다. 시스템 글로벌 영역(SGA)과 프로그램 글로벌 영역(PGA) 메모리 파라미터를 설정할 때 값을 모두 더합니다. 사용 가능한 인스턴스 메모리(`DBInstanceClassMemory`)에서 이 합산 값을 빼면 HugePages 할당 후 가용 메모리를 알 수 있습니다. 최소 2GiB 또는 총 가용 인스턴스 메모리의 10퍼센트 중에서 적은 용량을 비워두어야 합니다.

파라미터를 구성한 후 DB 인스턴스를 재부팅해야 변경 사항이 적용됩니다. 자세한 내용은 [ DB 인스턴스 재부팅](USER_RebootInstance.md) 섹션을 참조하세요.

**참고**  
장애 조치 없이 인스턴스를 재부팅할 때까지 Oracle DB 인스턴스는 SGA 관련 초기화 파라미터에 대한 변경 사항을 연기합니다. Amazon RDS 콘솔에서 **재부팅**을 선택하지만 **장애 조치로 재부팅**을 *선택하지 않습니다*. AWS CLI에서 `reboot-db-instance` 파라미터로 `--no-force-failover` 명령을 호출합니다. DB 인스턴스는 장애 조치 중이나 인스턴스를 다시 시작하는 기타 유지 관리 작업 중에는 SGA 관련 파라미터를 처리하지 않습니다.

다음은 HugePages를 수동으로 활성화할 수 있는 샘플 파라미터 구성입니다. 사용자의 필요에 맞게 값을 설정해야 합니다.

```
1. memory_target            = 0
2. memory_max_target        = 0
3. pga_aggregate_target     = {DBInstanceClassMemory*1/8}
4. sga_target               = {DBInstanceClassMemory*3/4}
5. sga_max_size             = {DBInstanceClassMemory*3/4}
6. use_large_pages          = ONLY
```

파라미터 그룹에서 파라미터 값이 다음과 같이 설정되어 있다고 가정합니다.

```
1. memory_target            = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
2. memory_max_target        = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
3. pga_aggregate_target     = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0)
4. sga_target               = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
5. sga_max_size             = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
6. use_large_pages          = {DBInstanceClassHugePagesDefault}
```

이 파라미터 그룹은 메모리가 100GiB 미만인 db.r4 DB 인스턴스 클래스에서 사용됩니다. 이렇게 파라미터를 설정하고 `use_large_pages`가 `{DBInstanceClassHugePagesDefault}`로 설정되면 db.r4 인스턴스에서 HugePages가 활성화됩니다.

또 다른 예제에서는 파라미터 그룹의 파라미터 값이 다음과 같이 설정되어 있다고 가정합니다.

```
1. memory_target           = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
2. memory_max_target       = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
3. pga_aggregate_target    = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0)
4. sga_target              = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
5. sga_max_size            = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
6. use_large_pages         = FALSE
```

위의 파라미터 그룹은 db.r4 DB 인스턴스 클래스와 db.r5 DB 인스턴스 클래스 모두에서 메모리가 100GiB 미만일 때 사용됩니다. 이 파라미터 설정을 사용하면 db.r4 및 db.r5 인스턴스에서 HugePages가 비활성화됩니다.

**참고**  
위의 파라미터 그룹이 메모리 크기가 100GiB 이상인 db.r4 DB 인스턴스 클래스 또는 db.r5 DB 인스턴스에서 사용될 경우에는 `FALSE`의 `use_large_pages` 설정이 `ONLY` 설정으로 재정의됩니다. 이때는 재정의에 대한 알림 메시지가 고객에게 전송됩니다.

DB 인스턴스에 HugePages가 활성화된 후 향상된 모니터링을 활성화하여 방대한 페이지 정보를 볼 수 있습니다. 자세한 내용은 [Enhanced Monitoring을 사용하여 OS 지표 모니터링](USER_Monitoring.OS.md) 단원을 참조하십시오.

# RDS for Oracle에서 확장 데이터 유형 활성화
<a name="Oracle.Concepts.ExtendedDataTypes"></a>

Amazon RDS for Oracle은 확장 데이터 유형을 지원합니다. 확장 데이터 유형의 경우 `VARCHAR2`, `NVARCHAR2`, `RAW` 데이터 유형의 최대 크기는 32,767바이트입니다. 확장 데이터 유형을 사용하려면 `MAX_STRING_SIZE` 파라미터를 `EXTENDED`로 설정하세요. 자세한 내용은 Oracle 설명서의 [확장 데이터 유형](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF55623) 단원을 참조하세요.

확장 데이터 유형을 사용하지 않을 경우 `MAX_STRING_SIZE` 파라미터를 `STANDARD`(기본값)로 유지하세요. 이 경우 `VARCHAR2` 및 `NVARCHAR2` 데이터 유형의 크기 제한은 4,000바이트이며 RAW 데이터 유형의 크기 제한은 2,000바이트입니다.

신규 또는 기존 DB 인스턴스에 대해 확장 데이터 유형을 활성화할 수 있습니다. 신규 DB 인스턴스의 경우 확장 데이터 형식을 활성화하면 일반적으로 DB 인스턴스 생성 시간이 길어집니다. 기존 DB 인스턴스의 경우 변환 과정 중 DB 인스턴스를 사용할 수 없습니다.

## 확장 데이터 유형에 대한 고려 사항
<a name="Oracle.Concepts.ExtendedDataTypes.considerations"></a>

DB 인스턴스에 확장 데이터 유형을 활성화할 때는 다음 사항을 고려하세요.
+ 신규 또는 기존 DB 인스턴스에 대해 확장 데이터 형식을 활성화하면 인스턴스를 재부팅해야만 변경 사항이 적용됩니다.
+ 확장 데이터 유형을 활성화하면 데이터 유형에 표준 크기를 사용하도록 DB 인스턴스를 변경할 수 없습니다. `MAX_STRING_SIZE` 파라미터를 `STANDARD`로 다시 설정하면 `incompatible-parameters` 상태가 됩니다.
+ 확장 데이터 유형을 사용하는 DB 인스턴스를 복원하면 `MAX_STRING_SIZE` 파라미터를 `EXTENDED`로 설정한 상태에서 파라미터 그룹을 지정해야 합니다. 복원 과정에서 `MAX_STRING_SIZE`를 `STANDARD`로 설정한 상태에서 기본값 파라미터 그룹 또는 기타 파라미터 그룹을 지정한 경우에는 `incompatible-parameters` 상태가 됩니다.
+ `incompatible-parameters` 설정 때문에 DB 인스턴스 상태가 `MAX_STRING_SIZE`가 되면 `MAX_STRING_SIZE` 파라미터를 `EXTENDED`로 설정하고 DB 인스턴스를 재부팅해야만 DB 인스턴스를 사용 가능합니다.

## 신규 DB 인스턴스에 확장 데이터 유형 활성화
<a name="Oracle.Concepts.ExtendedDataTypes.CreateDBInstance"></a>

`MAX_STRING_SIZE`를 `EXTENDED`로 설정한 DB 인스턴스를 생성하면 인스턴스가 기본값인 `STANDARD`로 설정된 `MAX_STRING_SIZE`을 표시합니다. 인스턴스를 재부팅하여 변경 사항을 활성화합니다.

**신규 DB 인스턴스에 확장 데이터 유형을 활성화하는 방법**

1. 파라미터 그룹의 `MAX_STRING_SIZE` 파라미터를 `EXTENDED`로 설정하세요.

   파라미터를 설정하려면 새 파라미터 그룹을 생성하거나 기존 DB 파라미터 그룹을 수정하면 됩니다.

   자세한 내용은 [Amazon RDS의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요.

1. RDS for Oracle DB 인스턴스를 새로 생성합니다.

   자세한 내용은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요.

1. `MAX_STRING_SIZE`를 `EXTENDED`로 설정한 파라미터 그룹과 DB 인스턴스를 연결합니다.

   자세한 내용은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요.

1. 파라미터 변경 사항을 적용하려면 DB 인스턴스를 재부팅하세요.

   자세한 내용은 [ DB 인스턴스 재부팅](USER_RebootInstance.md) 섹션을 참조하세요.

## 기존 DB 인스턴스에 확장 데이터 유형 활성화
<a name="Oracle.Concepts.ExtendedDataTypes.ModifyDBInstance"></a>

확장 데이터 유형을 활성화하도록 DB 인스턴스를 수정하면 RDS는 확장 크기를 사용하도록 데이터베이스의 데이터를 변환합니다. 변환 및 가동 중지는 파라미터를 변경한 다음에 데이터베이스를 재부팅할 때 발생합니다. 변환 과정 중에는 DB 인스턴스를 사용할 수 없습니다.

데이터 변환에 걸리는 시간은 DB 인스턴스 클래스, 데이터베이스 크기 및 마지막 DB 스냅샷의 시간에 따라 달라집니다. 가동 중지를 줄이려면 재부팅 직전에 스냅샷을 생성하는 것이 좋습니다. 이렇게 하면 변환 워크플로우 중에 발생하는 백업 시간이 단축됩니다.

**참고**  
확장 데이터 유형을 활성화한 후에는 변환 과정 중 시간인 특정 시점으로 복원을 수행할 수 없습니다. 변환 직전 또는 변환 직후 시간으로는 복원할 수 있습니다.

**기존 DB 인스턴스에 확장 데이터 유형을 활성화하는 방법**

1. 데이터베이스의 스냅샷을 만드십시오.

   데이터베이스에 잘못된 객체가 있는 경우 Amazon RDS는 이들 객체를 다시 컴파일하려고 합니다. Amazon RDS가 잘못된 객체를 다시 컴파일할 수 없는 경우 확장 데이터 유형으로의 변환은 실패할 수 있습니다. 변환에 문제가 있는 경우 스냅샷을 사용하면 데이터베이스를 복원할 수 있습니다. 변환하기 전에 항상 잘못된 객체가 있는지 점검하고 잘못된 객체를 수정하거나 제거하세요. 프로덕션 데이터베이스의 경우 먼저 DB 인스턴스의 복사본에서 변환 프로세스를 테스트하는 것이 좋습니다.

   자세한 내용은 [Amazon RDS의 단일 AZ DB 인스턴스에 대한 DB 스냅샷 생성](USER_CreateSnapshot.md) 섹션을 참조하세요.

1. 파라미터 그룹의 `MAX_STRING_SIZE` 파라미터를 `EXTENDED`로 설정하세요.

   파라미터를 설정하려면 새 파라미터 그룹을 생성하거나 기존 DB 파라미터 그룹을 수정하면 됩니다.

   자세한 내용은 [Amazon RDS의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요.

1. `MAX_STRING_SIZE`를 `EXTENDED`로 설정한 파라미터 그룹과 연결하도록 DB 인스턴스를 수정하세요.

   자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.

1. 파라미터 변경 사항을 적용하려면 DB 인스턴스를 재부팅하세요.

   자세한 내용은 [ DB 인스턴스 재부팅](USER_RebootInstance.md) 섹션을 참조하세요.