Amazon Relational Database Service
사용 설명서 (API 버전 2014-10-31)

Oracle DB 인스턴스에 대한 공통 DBA 데이터베이스 작업

이 단원에서는 Oracle을 실행하는 Amazon RDS DB 인스턴스에서 데이터베이스와 관련된 공통 DBA 작업을 수행하는 방법에 대해 살펴보겠습니다. 관리형 서비스 환경을 제공하기 위해 Amazon RDS는 DB 인스턴스에 대해 shell 액세스를 제공하지 않으며, 고급 권한이 필요한 특정 시스템 절차와 테이블에 대한 액세스를 제한합니다.

데이터베이스의 전역 이름 변경

Amazon RDS 프로시저 rdsadmin.rdsadmin_util.rename_global_name을 사용하여 데이터베이스의 전역 이름을 변경할 수 있습니다. rename_global_name 프로시저에는 다음과 같은 파라미터가 있습니다.

파라미터 이름 데이터 형식 기본값 Required 설명

p_new_global_name

varchar2

Required

데이터베이스의 새로운 전역 이름입니다.

이름 변경이 적용될 수 있도록 데이터베이스가 열려 있어야 합니다. 데이터베이스의 전역 이름 변경에 대한 자세한 내용은 Oracle 문서의 ALTER DATABASE를 참조하십시오.

다음은 데이터베이스의 전역 이름을 new_global_name으로 변경하는 예제입니다.

exec rdsadmin.rdsadmin_util.rename_global_name(p_new_global_name => 'new_global_name');

테이블스페이스 생성과 크기 조정

Amazon RDS는 데이터 파일, 로그 파일 및 제어 파일에 대해 Oracle Managed Files(OMF)만 지원합니다. 데이터 파일과 로그 파일을 생성할 때는 물리적인 파일 이름을 지정할 수 없습니다.

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

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

create tablespace users2 datafile size 1G autoextend on maxsize 10G;

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

create temporary tablespace temp01;

Oracle용 Amazon RDS로는 스몰파일 테이블스페이스의 크기를 변경할 수 없으므로 스몰파일 테이블스페이스를 사용하지 않는 것이 좋습니다. 그러나 스몰파일 테이블스페이스에 데이터파일을 추가할 수 있습니다.

ALTER TABLESPACE를 사용하여 빅파일 테이블스페이스 크기를 조정할 수 있습니다. 크기는 킬로바이트(K), 메가바이트(M), 기가바이트(G)나 테라바이트(T)로 설정할 수 있습니다.

다음 예에서는 users2라는 빅파일 테이블스페이스의 크기를 200MB로 조정합니다.

alter tablespace users2 resize 200M;

다음 예에서는 users2라는 스몰파일 테이블스페이스에 데이터파일을 추가합니다.

alter tablespace users2 add datafile size 100000M autoextend on next 250m maxsize UNLIMITED;

기본 테이블스페이스 설정

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

파라미터 이름 데이터 형식 기본값 Required 설명

tablespace_name

varchar

Required

기본 테이블스페이스의 이름입니다.

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

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

기본 임시 테이블스페이스 설정

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

파라미터 이름 데이터 형식 기본값 Required 설명

tablespace_name

varchar

Required

기본 임시 테이블스페이스의 이름입니다.

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

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

데이터베이스 체크포인트

Amazon RDS 프로시저 rdsadmin.rdsadmin_util.checkpoint를 사용하여 데이터베이스에 체크포인트를 만들 수 있습니다. checkpoint 프로시저에는 파라미터가 없습니다.

다음 예에서는 데이터베이스에 체크포인트를 만듭니다.

exec rdsadmin.rdsadmin_util.checkpoint;

분산 복구 설정

Amazon RDS 프로시저 rdsadmin.rdsadmin_util.enable_distr_recoverydisable_distr_recovery를 사용하여 분산 복구를 설정할 수 있습니다. 프로시저에는 파라미터가 없습니다.

다음 예에서는 분산 복구를 활성화합니다.

exec rdsadmin.rdsadmin_util.enable_distr_recovery;

다음 예에서는 분산 복구를 비활성화합니다.

exec rdsadmin.rdsadmin_util.disable_distr_recovery;

데이터베이스 시간대 설정

Amazon RDS Oracle 데이터베이스의 표준 시간대는 두 가지 방법으로 설정할 수 있습니다.

  • Timezone 옵션을 사용해도 됩니다.

    Timezone 옵션은 호스트의 시간대를 변경하여 SYSDATE를 포함한 모든 데이터 열과 값에 영향을 끼칩니다. Timezone 옵션에 대한 자세한 내용은 Oracle 시간대 단원을 참조하십시오.

  • Amazon RDS 프로시저 rdsadmin.rdsadmin_util.alter_db_time_zone을 사용해도 됩니다.

    alter_db_time_zone 절차는 특정 데이터 유형의 시간대만 변경하며 SYSDATE는 변경하지 않습니다. 시간대 설정에 대한 자세한 제한 사항은 Oracle 문서를 참조하십시오.

alter_db_time_zone 프로시저에는 다음과 같은 파라미터가 있습니다.

파라미터 이름 데이터 형식 기본값 Required 설명

p_new_tz

varchar2

Required

지정된 리전이나 협정 세계시(UTC)의 절대 오프셋으로 지정된 새로운 표준 시간대입니다. 사용할 수 있는 오프셋은 -12:00~+14:00입니다.

다음 예에서는 시간대를 UTC+3시간으로 변경합니다.

exec rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => '+3:00');

다음 예에서는 시간대를 아프리카/알제 리전의 시간대로 변경합니다.

exec rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => 'Africa/Algiers');

alter_db_time_zone을 사용하여 시간대를 변경한 후에는 DB 인스턴스를 재부팅해야만 변경 사항이 적용됩니다. 자세한 내용은 DB 클러스터에서 DB 인스턴스 단원을 참조하십시오.

Oracle 외부 테이블 작업

Oracle 외부 테이블이란 데이터가 데이터베이스에 저장되어 있지 않은 테이블을 말합니다. 오히려 데이터베이스가 액세스할 수 있는 외부 파일에 데이터가 저장되어 있습니다. 외부 테이블을 사용하면 데이터베이스에 테이블을 로드하지 않고도 데이터에 액세스할 수 있습니다. 외부 테이블에 대한 자세한 내용은 Oracle 설명서에서 Managing External Tables를 참조하십시오.

Amazon RDS에서는 외부 테이블 파일을 디렉터리 객체에 저장할 수 있습니다. 디렉터리 객체는 생성할 수도 있지만, DATA_PUMP_DIR 디렉터리처럼 Oracle 데이터베이스에 사전 정의되어 있는 객체를 사용할 수도 있습니다. 디렉터리 객체 생성에 대한 자세한 내용은 메인 데이터 스토리지 공간에 새로운 디렉터리 생성 단원을 참조하십시오. ALL_DIRECTORIES 뷰에 대한 쿼리를 실행하여 Amazon RDS Oracle DB 인스턴스의 디렉터리 객체 목록을 조회할 수 있습니다.

참고

디렉터리 객체는 인스턴스에서 사용하는 메인 데이터 스토리지 공간(Amazon EBS 볼륨)을 가리킵니다. 데이터 파일, 재실행 로그, 감사, 트레이스 및 기타 파일 등에 사용되는 공간은 할당된 공간에서 차감됩니다.

외부 데이터 파일은 DBMS_FILE_TRANSFER 패키지 또는 UTL_FILE 패키지를 사용하여 Oracle 데이터베이스에서 다른 Oracle 데이터베이스로 이동시킬 수 있습니다. 그러면 원본 데이터베이스의 디렉터리에서 대상 데이터베이스의 특정 디렉터리로 외부 데이터 파일이 이동합니다. DBMS_FILE_TRANSFER 사용에 대한 자세한 내용은 Oracle Data Pump를 사용한 가져오기 단원을 참조하십시오.

외부 데이터 파일을 이동시켰으면 이제 이 파일을 이용해 외부 테이블을 생성할 수 있습니다. 다음 예에서는 USER_DIR1 디렉터리의 emp_xt_file1.txt 파일을 사용하는 외부 테이블을 생성합니다.

CREATE TABLE emp_xt ( emp_id NUMBER, first_name VARCHAR2(50), last_name VARCHAR2(50), user_name VARCHAR2(20) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY USER_DIR1 ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE FIELDS TERMINATED BY ',' MISSING FIELD VALUES ARE NULL (emp_id,first_name,last_name,user_name) ) LOCATION ('emp_xt_file1.txt') ) PARALLEL REJECT LIMIT UNLIMITED;

예를 들어 Amazon RDS Oracle DB 인스턴스에 저장된 데이터를 외부 데이터 파일로 이동시킨다고 가정하겠습니다. 이때는 외부 테이블을 생성한 후 데이터베이스 테이블에서 데이터를 선택하여 외부 데이터 파일을 채울 수 있습니다. 다음은 데이터베이스의 orders 테이블에 대해 쿼리를 실행하여 orders_xt 외부 테이블을 생성하는 SQL 문입니다.

CREATE TABLE orders_xt ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION ('orders_xt.dmp') ) AS SELECT * FROM orders;

위 예제에서는 DATA_PUMP_DIR 디렉터리의 orders_xt.dmp 파일이 데이터로 채워집니다.

Automatic Workload Repository(AWR) 작업

Oracle Database Enterprise Edition을 사용하고 진단 및 튜닝 팩 사용을 허가한 경우 Automatic Workload Repository(AWR)를 사용할 수 있습니다. AWR을 활성화하려면 CONTROL_MANAGEMENT_PACK_ACCESS 파라미터를 변경하십시오.

AWR 보고서는 일반적으로 데이터베이스 호스트 서버에 설치된 awrrpt.sql과 같은 보고서 생성 스크립트를 사용해 생성합니다. 호스트에 직접 액세스할 순 없지만 다른 Oracle Database 설치 파일에서 스크립트의 사본을 얻을 수는 있습니다. 또는 DBMS_WORKLOAD_REPOSITORY 패키지를 사용해 보고서를 생성할 수 있습니다.

동일한 VPC 또는 피어링된 VPC 내에서 Amazon RDS DB 인스턴스 간에 Oracle 데이터베이스 링크를 사용하려면 두 DB 인스턴스에 서로에게 이르는 유효한 경로가 있어야 합니다. VPC 라우팅 테이블과 네트워크 ACL(액세스 제어 목록)을 사용하여 DB 인스턴스 간 유효 경로를 확인합니다.

각 DB 인스턴스의 보안 그룹은 다른 DB 인스턴스로(부터)의 수신 및 발신을 허용해야 합니다. 인바운드 및 아웃바운드 규칙은 동일한 VPC 또는 피어링된 VPC에서 보안 그룹을 참조할 수 있습니다. 자세한 내용은 피어링된 VPC 보안 그룹을 참조하도록 보안 그룹 업데이트 단원을 참조하십시오.

VPC에서 DHCP 옵션 세트를 이용해 사용자 지정 DNS 서버를 구성했다면, 사용자 지정 DNS 서버가 데이터베이스 링크 타깃의 이름을 확인할 수 있어야 합니다. 자세한 내용은 사용자 지정 DNS 서버 설정 단원을 참조하십시오.

Oracle Data Pump로 데이터베이스 링크를 사용하는 방법에 대한 자세한 내용은 Oracle Data Pump를 사용한 가져오기 단원을 참조하십시오.

DB 인스턴스의 기본 에디션 설정

데이터베이스 객체는 에디션이라고 하는 프라이빗 환경에서 재정의할 수 있습니다. 이러한 에디션 기반 재정의를 통해 서비스 중단을 최소화하면서 애플리케이션의 데이터베이스 객체를 업그레이드할 수 있습니다.

Amazon RDS Oracle DB 인스턴스의 기본 에디션은 Amazon RDS 프로시저 rdsadmin.rdsadmin_util.alter_default_edition을 사용하여 설정할 수 있습니다.

다음은 Amazon RDS Oracle DB 인스턴스의 기본 에디션을 RELEASE_V1으로 설정하는 예제입니다.

exec rdsadmin.rdsadmin_util.alter_default_edition('RELEASE_V1');

다음은 Amazon RDS Oracle DB 인스턴스의 기본 에디션을 다시 Oracle 기본값으로 설정하는 예제입니다.

exec rdsadmin.rdsadmin_util.alter_default_edition('ORA$BASE');

Oracle 에디션 기반 재정의에 대한 자세한 내용은 Oracle 설명서에서 About Editions and Edition-Based Redefinition을 참조하십시오.

SYS.AUD$ 테이블에 대한 감사 활성화

Amazon RDS 프로시저인 rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table을 사용해 데이터베이스 감사 추적 테이블인 SYS.AUD$에서 감사를 활성화할 수 있습니다. 지원되는 유일한 감사 속성은 ALL입니다. 개별 문 또는 연산을 감사하거나 감사하지 않을 수 있습니다.

감사 활성화는 다음 버전을 실행하는 Oracle DB 인스턴스에 대해 지원됩니다.

  • 11.2.0.4.v18 이상의 11.2 버전

  • 12.1.0.2.v14 이상의 12.1 버전

  • 12.2 이상 버전 전체

audit_all_sys_aud_table 프로시저에는 다음과 같은 파라미터가 있습니다.

파라미터 이름 데이터 형식 기본값 Required 설명

p_by_access

부울

true

선택

true로 설정하여 BY ACCESS를 감사합니다. false로 설정하여 BY SESSION를 감사합니다.

다음 쿼리는 데이터베이스의 SYS.AUD$에 대한 현재 감사 구성을 반환합니다.

select * from dba_obj_audit_opts where owner='SYS' and object_name='AUD$';

다음 명령은 SYS.AUD$ BY ACCESSALL에 대한 감사를 활성화합니다.

exec rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table; exec rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => true);

다음 명령은 SYS.AUD$ BY SESSIONALL에 대한 감사를 활성화합니다.

exec rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => false);

자세한 내용은 Oracle 설명서의 AUDIT(기존 감사)를 참조하십시오.

SYS.AUD$ 테이블에 대한 감사 비활성화

Amazon RDS 프로시저인 rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table을 사용해 데이터베이스 감사 추적 테이블인 SYS.AUD$에서 감사를 비활성화할 수 있습니다. 이 프로시저에는 파라미터가 없습니다.

다음 쿼리는 데이터베이스의 SYS.AUD$에 대한 현재 감사 구성을 반환합니다.

select * from dba_obj_audit_opts where owner='SYS' and object_name='AUD$';

다음 명령은 SYS.AUD$ALL에 대한 감사를 비활성화합니다.

exec rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table;

자세한 내용은 Oracle 설명서의 NOAUDIT(기존 감사)를 참조하십시오.