

# RDS for Oracle에서 테이블스페이스 작업
<a name="Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles"></a>

RDS for Oracle에서 테이블스페이스를 사용할 수 있습니다. 이 테이블스페이스는 데이터베이스의 데이터를 저장하는 논리적 스토리지 단위입니다.

**중요**  
DB 인스턴스에 복제본이 있는 경우 세션 수준 변경 대신 파라미터 그룹 설정을 사용하여 기본 파일 위치를 관리하는 것이 좋습니다. 기본 인스턴스의 기본 파일 위치에 대한 세션 수준 변경 사항은 복제본에 자동으로 반영되지 않습니다. 파라미터 그룹 설정을 사용하면 기본 인스턴스와 복제본 인스턴스에서 일관된 파일 위치가 보장됩니다.

**Topics**
+ [RDS for Oracle에서 데이터베이스 파일 위치 지정](#Appendix.Oracle.CommonDBATasks.DatabaseFileLocations)
+ [RDS for Oracle에서 테이블스페이스 생성 및 크기 조정](#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles)
+ [RDS for Oracle에서 추가 스토리지 볼륨에 테이블스페이스 생성](#Appendix.Oracle.CommonDBATasks.CreatingTablespacesWithFileLocations)
+ [RDS for Oracle에서 기본 테이블스페이스 설정](#Appendix.Oracle.CommonDBATasks.SettingDefaultTablespace)
+ [RDS for Oracle에서 기본 임시 테이블스페이스 설정](#Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace)
+ [인스턴스 스토어에 임시 테이블스페이스 생성](#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store)

## RDS for Oracle에서 데이터베이스 파일 위치 지정
<a name="Appendix.Oracle.CommonDBATasks.DatabaseFileLocations"></a>

RDS for Oracle은 Oracle Managed Files(OMF)를 사용하여 데이터베이스 파일의 이름을 지정합니다. 데이터베이스 파일을 생성할 때 데이터베이스는 `DB_CREATE_FILE_DEST` 초기화 파라미터의 현재 설정을 기반으로 설정을 파생시킵니다.

`DB_CREATE_FILE_DEST` 초기화 파라미터의 기본값은 독립 실행형 데이터베이스의 경우 `/rdsdbdata/db`, 컨테이너화된(CDB/MT) 아키텍처의 경우 `/rdsdbdata/db/pdb`입니다. DB 인스턴스에 추가 스토리지 볼륨이 있는 경우 `DB_CREATE_FILE_DEST`를 볼륨 위치로 설정할 수 있습니다. 예를 들어 인스턴스에 `/rdsdbdata/db`에 탑재된 볼륨이 있는 경우 `DB_CREATE_FILE_DEST`를 이 값으로 설정할 수 있습니다.

세션 수준 또는 Oracle 데이터베이스 인스턴스 수준에서 `DB_CREATE_FILE_DEST` 파라미터를 수정할 수 있습니다.

### 인스턴스 수준에서 DB\$1CREATE\$1FILE\$1SET 수정
<a name="Appendix.Oracle.CommonDBATasks.InstanceLevelModification"></a>

인스턴스 수준에서 파라미터를 수정하려면 DB 인스턴스에 할당된 파라미터 그룹의 파라미터를 업데이트하고 적용합니다. 자세한 내용은 [RDS for Oracle 초기화 파라미터](Oracle.Concepts.FeatureSupport.Parameters.md) 및 [Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md)(을)를 참조하세요.

### 세션 수준에서 DB\$1CREATE\$1FILE\$1DEST 수정
<a name="Appendix.Oracle.CommonDBATasks.SessionLevelModification"></a>

`ALTER SESSION` 문을 실행하여 세션 수준에서 파라미터를 수정할 수 있습니다. 이 접근 방식은 전체 인스턴스에 영향을 주지 않고 특정 세션의 특정 위치에 데이터베이스 파일을 생성하려는 경우에 유용합니다.

다음 예제에서는 현재 파라미터 값을 확인하고 세션에 맞게 수정하는 방법을 보여 줍니다.

```
SHOW PARAMETER db_create_file_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      /rdsdbdata/db

ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';

Session altered.

SHOW PARAMETER db_create_file_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      /rdsdbdata2/db
```

## RDS for Oracle에서 테이블스페이스 생성 및 크기 조정
<a name="Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles"></a>

테이블스페이스를 생성하면 데이터베이스는 생성 시 `DB_CREATE_FILE_DEST` 초기화 파라미터로 지정된 스토리지 볼륨에 데이터 파일을 생성합니다. 기본적으로 데이터 파일 크기를 지정하지 않으면 테이블스페이스는 기본값이 `AUTOEXTEND ON`으로 생성되며, 최대 크기가 없습니다. 다음 예제에서 테이블스페이스 *users1*은 자동 확장이 가능합니다.

```
CREATE TABLESPACE users1;
```

이러한 기본 설정 때문에, 테이블스페이스가 할당된 모든 스토리지를 차지할 때까지 확장되기도 합니다. 되도록 영구 및 임시 테이블스페이스에 적절한 최대 크기를 지정하고, 공간 사용량을 자세히 살펴보십시오.

다음은 시작 크기가 1GB인 *users2*라는 이름의 테이블스페이스를 생성하는 예제입니다. 데이터 파일 크기가 지정되었지만 `AUTOEXTEND ON`이 지정되지 않았으므로 테이블스페이스를 자동 확장할 수 없습니다.

```
CREATE TABLESPACE users2 DATAFILE SIZE 1G;
```

다음은 시작 크기가 1GB이고 최대 크기가 10GB인 *users3*라는 이름의 테이블스페이스를 생성하는 예제입니다.

```
CREATE TABLESPACE users3 DATAFILE SIZE 1G AUTOEXTEND ON MAXSIZE 10G;
```

다음은 *temp01*이라는 이름의 임시 테이블스페이스를 생성하는 예제입니다.

```
CREATE TEMPORARY TABLESPACE temp01;
```

`ALTER TABLESPACE`를 사용하여 빅파일 테이블스페이스 크기를 조정할 수 있습니다. 크기는 킬로바이트(K), 메가바이트(M), 기가바이트(G)나 테라바이트(T)로 설정할 수 있습니다. 다음 예제에서는 *users\$1bf*라는 빅파일 테이블스페이스의 크기를 200MB로 조정합니다.

```
ALTER TABLESPACE users_bf RESIZE 200M;
```

다음 예에서는 *users\$1sf*라는 스몰파일 테이블스페이스에 데이터 파일을 추가합니다.

```
ALTER TABLESPACE users_sf ADD DATAFILE SIZE 100000M AUTOEXTEND ON NEXT 250m MAXSIZE UNLIMITED;
```

## RDS for Oracle에서 추가 스토리지 볼륨에 테이블스페이스 생성
<a name="Appendix.Oracle.CommonDBATasks.CreatingTablespacesWithFileLocations"></a>

추가 스토리지 볼륨에 테이블스페이스를 생성하려면 `DB_CREATE_FILE_DEST` 파라미터를 볼륨 위치로 수정합니다. 다음 예제에서는 파일 위치를 `/rdsdbdata2/db`로 설정합니다.

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';

Session altered.
```

다음 예제에서는 추가 볼륨 `/rdsdbdata2/db`에 테이블스페이스를 생성합니다.

```
CREATE TABLESPACE new_tablespace DATAFILE SIZE 10G;

Tablespace created.

SELECT tablespace_name,file_id,file_name FROM dba_data_files
WHERE tablespace_name = 'NEW_TABLESPACE';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
NEW_TABLESPACE                     7 /rdsdbdata2/db/ORCL_A/datafile/o1_mf_newtable_a123b4c5_.dbf
```

smallfile 테이블스페이스를 생성하고 데이터 파일을 여러 스토리지 볼륨에 분산하려면 테이블스페이스를 생성한 후 테이블스페이스에 데이터 파일을 추가합니다. 다음 예제에서는 데이터 파일이의 기본 위치인 `/rdsdbdata/db`에 있는 테이블스페이스를 생성합니다. 그런 다음 기본 대상을 `/rdsdbdata/db2`로 설정합니다. 새로 생성된 테이블스페이스에 데이터 파일을 추가하면 데이터베이스가 파일을 `/rdsdbdata/db2`에 저장합니다.

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata/db';

Session altered.

CREATE SMALLFILE TABLESPACE smalltbs DATAFILE SIZE 10G;

Tablespace created.

SELECT tablespace_name,file_id,file_name FROM dba_data_files
WHERE tablespace_name = 'SMALLTBS';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
SMALLTBS                           8 /rdsdbdata/db/ORCL_A/datafile/o1_mf_smalltbs_n563yryk_.dbf

ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';

Session altered.

ALTER TABLESPACE smalltbs ADD DATAFILE SIZE 10G;

Tablespace altered.

SELECT tablespace_name,file_id,file_name FROM dba_data_files
WHERE tablespace_name = 'SMALLTBS';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
SMALLTBS                           8 /rdsdbdata/db/ORCL_A/datafile/o1_mf_smalltbs_n563yryk_.dbf
SMALLTBS                           9 /rdsdbdata2/db/ORCL_A/datafile/o1_mf_smalltbs_n564004g_.dbf
```

## RDS for Oracle에서 기본 테이블스페이스 설정
<a name="Appendix.Oracle.CommonDBATasks.SettingDefaultTablespace"></a>

기본 테이블스페이스를 설정하려면 Amazon RDS 프로시저 `rdsadmin.rdsadmin_util.alter_default_tablespace`를 사용합니다. `alter_default_tablespace` 프로시저에는 다음과 같은 파라미터가 있습니다.


****  

| 파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 | 
| --- | --- | --- | --- | --- | 
|  `tablespace_name`  |  varchar  |  —  |  예  |  기본 테이블스페이스의 이름입니다.  | 

다음은 기본 테이블스페이스를 *users2*로 설정하는 예제입니다.

```
EXEC rdsadmin.rdsadmin_util.alter_default_tablespace(tablespace_name => 'users2');
```

## RDS for Oracle에서 기본 임시 테이블스페이스 설정
<a name="Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace"></a>

기본 임시 테이블스페이스를 설정하려면 Amazon RDS 프로시저 `rdsadmin.rdsadmin_util.alter_default_temp_tablespace`를 사용합니다. `alter_default_temp_tablespace` 프로시저에는 다음과 같은 파라미터가 있습니다.


****  

| 파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 | 
| --- | --- | --- | --- | --- | 
|  `tablespace_name`  |  varchar  |  —  |  예  |  기본 임시 테이블스페이스의 이름입니다.  | 

다음 예에서는 기본 임시 테이블스페이스를 *temp01*으로 설정합니다.

```
EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace(tablespace_name => 'temp01');
```

## 인스턴스 스토어에 임시 테이블스페이스 생성
<a name="Appendix.Oracle.CommonDBATasks.creating-tts-instance-store"></a>

인스턴스 스토어에 임시 테이블스페이스를 생성하려면 Amazon RDS 프로시저 `rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace`를 사용합니다. `create_inst_store_tmp_tblspace` 프로시저에는 다음과 같은 파라미터가 있습니다.


****  

| 파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 | 
| --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar  |  —  |  예  |  기본 임시 테이블스페이스의 이름입니다.  | 

다음 예에서는 인스턴스 스토어에 임시 테이블스페이스 *temp01*을 생성합니다.

```
EXEC rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace(p_tablespace_name => 'temp01');
```

**중요**  
`rdsadmin_util.create_inst_store_tmp_tblspace`를 실행할 때 새로 생성된 임시 테이블스페이스는 자동으로 기본 임시 테이블스페이스로 설정되지 않습니다. 기본값으로 설정하려면 [RDS for Oracle에서 기본 임시 테이블스페이스 설정](#Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace)를 참조하세요.

자세한 내용은 [RDS for Oracle 인스턴스 스토어에 임시 데이터 저장](CHAP_Oracle.advanced-features.instance-store.md) 섹션을 참조하세요.