RDS for Oracle에서 테이블스페이스 작업
RDS for Oracle에서 테이블스페이스를 사용할 수 있습니다. 이 테이블스페이스는 데이터베이스의 데이터를 저장하는 논리적 스토리지 단위입니다.
중요
DB 인스턴스에 복제본이 있는 경우 세션 수준 변경 대신 파라미터 그룹 설정을 사용하여 기본 파일 위치를 관리하는 것이 좋습니다. 기본 인스턴스의 기본 파일 위치에 대한 세션 수준 변경 사항은 복제본에 자동으로 반영되지 않습니다. 파라미터 그룹 설정을 사용하면 기본 인스턴스와 복제본 인스턴스에서 일관된 파일 위치가 보장됩니다.
주제
RDS for Oracle에서 데이터베이스 파일 위치 지정
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_CREATE_FILE_SET 수정
인스턴스 수준에서 파라미터를 수정하려면 DB 인스턴스에 할당된 파라미터 그룹의 파라미터를 업데이트하고 적용합니다. 자세한 내용은 RDS for Oracle 초기화 파라미터 및 Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정(을)를 참조하세요.
세션 수준에서 DB_CREATE_FILE_DEST 수정
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에서 테이블스페이스 생성 및 크기 조정
테이블스페이스를 생성하면 데이터베이스는 생성 시 DB_CREATE_FILE_DEST 초기화 파라미터로 지정된 스토리지 볼륨에 데이터 파일을 생성합니다. 기본적으로 데이터 파일 크기를 지정하지 않으면 테이블스페이스는 기본값이 AUTOEXTEND ON으로 생성되며, 최대 크기가 없습니다. 다음 예제에서 테이블스페이스 users1은 자동 확장이 가능합니다.
CREATE TABLESPACEusers1;
이러한 기본 설정 때문에, 테이블스페이스가 할당된 모든 스토리지를 차지할 때까지 확장되기도 합니다. 되도록 영구 및 임시 테이블스페이스에 적절한 최대 크기를 지정하고, 공간 사용량을 자세히 살펴보십시오.
다음은 시작 크기가 1GB인 users2라는 이름의 테이블스페이스를 생성하는 예제입니다. 데이터 파일 크기가 지정되었지만 AUTOEXTEND ON이 지정되지 않았으므로 테이블스페이스를 자동 확장할 수 없습니다.
CREATE TABLESPACEusers2DATAFILE SIZE1G;
다음은 시작 크기가 1GB이고 최대 크기가 10GB인 users3라는 이름의 테이블스페이스를 생성하는 예제입니다.
CREATE TABLESPACEusers3DATAFILE SIZE1GAUTOEXTEND ON MAXSIZE10G;
다음은 temp01이라는 이름의 임시 테이블스페이스를 생성하는 예제입니다.
CREATE TEMPORARY TABLESPACEtemp01;
ALTER
TABLESPACE를 사용하여 빅파일 테이블스페이스 크기를 조정할 수 있습니다. 크기는 킬로바이트(K), 메가바이트(M), 기가바이트(G)나 테라바이트(T)로 설정할 수 있습니다. 다음 예제에서는 users_bf라는 빅파일 테이블스페이스의 크기를 200MB로 조정합니다.
ALTER TABLESPACEusers_bfRESIZE200M;
다음 예에서는 users_sf라는 스몰파일 테이블스페이스에 데이터 파일을 추가합니다.
ALTER TABLESPACEusers_sfADD DATAFILE SIZE100000MAUTOEXTEND ON NEXT250mMAXSIZEUNLIMITED;
RDS for Oracle에서 추가 스토리지 볼륨에 테이블스페이스 생성
추가 스토리지 볼륨에 테이블스페이스를 생성하려면 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에서 기본 테이블스페이스 설정
기본 테이블스페이스를 설정하려면 Amazon RDS 프로시저 rdsadmin.rdsadmin_util.alter_default_tablespace를 사용합니다. alter_default_tablespace 프로시저에는 다음과 같은 파라미터가 있습니다.
| 파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
|---|---|---|---|---|
|
|
varchar |
— |
예 |
기본 테이블스페이스의 이름입니다. |
다음은 기본 테이블스페이스를 users2로 설정하는 예제입니다.
EXEC rdsadmin.rdsadmin_util.alter_default_tablespace(tablespace_name => 'users2');
RDS for Oracle에서 기본 임시 테이블스페이스 설정
기본 임시 테이블스페이스를 설정하려면 Amazon RDS 프로시저 rdsadmin.rdsadmin_util.alter_default_temp_tablespace를 사용합니다. alter_default_temp_tablespace 프로시저에는 다음과 같은 파라미터가 있습니다.
| 파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
|---|---|---|---|---|
|
|
varchar |
— |
예 |
기본 임시 테이블스페이스의 이름입니다. |
다음 예에서는 기본 임시 테이블스페이스를 temp01으로 설정합니다.
EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace(tablespace_name => 'temp01');
인스턴스 스토어에 임시 테이블스페이스 생성
인스턴스 스토어에 임시 테이블스페이스를 생성하려면 Amazon RDS 프로시저 rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace를 사용합니다. create_inst_store_tmp_tblspace 프로시저에는 다음과 같은 파라미터가 있습니다.
| 파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
|---|---|---|---|---|
|
|
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에서 기본 임시 테이블스페이스 설정를 참조하세요.
자세한 내용은 RDS for Oracle 인스턴스 스토어에 임시 데이터 저장 섹션을 참조하세요.