Oracle DB 인스턴스에 대한 공통 데이터베이스 작업 수행
그 다음에는 Oracle을 실행하는 Amazon RDS DB 인스턴스에서 데이터베이스와 관련된 특정 공통 DBA 작업을 수행하는 방법을 알아봅니다. 관리형 서비스 환경을 제공하기 위해 Amazon RDS는 DB 인스턴스에 대해 shell 액세스를 제공하지 않습니다. 또한 Amazon RDS는 고급 권한이 필요한 특정 시스템 절차와 테이블에 대한 액세스를 제한합니다.
주제
- 데이터베이스의 전역 이름 변경
- 테이블스페이스 생성과 크기 조정
- 기본 테이블스페이스 설정
- 기본 임시 테이블스페이스 설정
- 인스턴스 스토어에 임시 테이블스페이스 생성
- 읽기 전용 복제본의 인스턴스 스토어에 임시 파일 추가
- 읽기 전용 복제본에서 임시 파일 삭제
- 데이터베이스 체크포인트
- 분산 복구 설정
- 데이터베이스 시간대 설정
- Oracle 외부 테이블 작업
- Automatic Workload Repository(AWR)를 사용하여 성능 보고서 생성
- VPC의 DB 인스턴스에 사용하기 위한 데이터베이스 링크 조정
- DB 인스턴스의 기본 에디션 설정
- SYS.AUD$ 테이블에 대한 감사 활성화
- SYS.AUD$ 테이블에 대한 감사 비활성화
- 중단된 온라인 인덱스 빌드 정리
- 손상된 블록 건너뛰기
- 테이블스페이스, 데이터 파일, 임시 파일 크기 조정
- 휴지통 비우기
- 전체 수정을 위한 기본 표시 값 설정
데이터베이스의 전역 이름 변경
데이터베이스의 전역 이름을 변경하려면 Amazon RDS 프로시저 rdsadmin.rdsadmin_util.rename_global_name
을 사용합니다. rename_global_name
프로시저에는 다음과 같은 파라미터가 있습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
varchar2 |
— |
예 |
데이터베이스의 새로운 전역 이름입니다. |
이름 변경이 적용될 수 있도록 데이터베이스가 열려 있어야 합니다. 데이터베이스의 전역 이름 변경에 대한 자세한 내용은 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)만 지원합니다. 데이터 파일과 로그 파일을 생성할 때는 물리적인 파일 이름을 지정할 수 없습니다.
기본적으로 데이터 파일 크기를 지정하지 않으면 테이블스페이스는 기본값이 AUTOEXTEND ON
으로 생성되며, 최대 크기가 없습니다. 다음 예제에서 테이블스페이스 users1
은 자동 확장이 가능합니다.
CREATE TABLESPACE
users1
;
이러한 기본 설정 때문에, 테이블스페이스가 할당된 모든 스토리지를 차지할 때까지 확장되기도 합니다. 되도록 영구 및 임시 테이블스페이스에 적절한 최대 크기를 지정하고, 공간 사용량을 자세히 살펴보십시오.
다음은 시작 크기가 1GB인 users2
라는 이름의 테이블스페이스를 생성하는 예제입니다. 데이터 파일 크기가 지정되었지만 AUTOEXTEND ON
이 지정되지 않았으므로 테이블스페이스를 자동 확장할 수 없습니다.
CREATE TABLESPACE
users2
DATAFILE SIZE1G
;
다음은 시작 크기가 1GB이고 최대 크기가 10GB인 users3
라는 이름의 테이블스페이스를 생성하는 예제입니다.
CREATE TABLESPACE
users3
DATAFILE SIZE1G
AUTOEXTEND ON MAXSIZE10G
;
다음은 temp01
이라는 이름의 임시 테이블스페이스를 생성하는 예제입니다.
CREATE TEMPORARY TABLESPACE
temp01
;
ALTER TABLESPACE
를 사용하여 빅파일 테이블스페이스 크기를 조정할 수 있습니다. 크기는 킬로바이트(K), 메가바이트(M), 기가바이트(G)나 테라바이트(T)로 설정할 수 있습니다. 다음 예제에서는 users_bf
라는 빅파일 테이블스페이스의 크기를 200MB로 조정합니다.
ALTER TABLESPACE
users_bf
RESIZE200M
;
다음 예에서는 users_sf
라는 스몰파일 테이블스페이스에 데이터 파일을 추가합니다.
ALTER TABLESPACE
users_sf
ADD DATAFILE SIZE100000M
AUTOEXTEND ON NEXT250m
MAXSIZEUNLIMITED
;
기본 테이블스페이스 설정
기본 테이블스페이스를 설정하려면 Amazon RDS 프로시저 rdsadmin.rdsadmin_util.alter_default_tablespace
를 사용합니다. alter_default_tablespace
프로시저에는 다음과 같은 파라미터가 있습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
varchar |
— |
예 |
기본 테이블스페이스의 이름입니다. |
다음은 기본 테이블스페이스를 users2
로 설정하는 예제입니다.
EXEC rdsadmin.rdsadmin_util.alter_default_tablespace(tablespace_name => '
users2
');
기본 임시 테이블스페이스 설정
기본 임시 테이블스페이스를 설정하려면 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 인스턴스 스토어에 임시 데이터 저장 단원을 참조하십시오.
읽기 전용 복제본의 인스턴스 스토어에 임시 파일 추가
기본 DB 인스턴스에서 임시 테이블스페이스를 생성하면 읽기 전용 복제본으로 임시 파일이 생성되지 않습니다. 다음 이유 중 하나로 인해 읽기 전용 복제본에 빈 임시 테이블스페이스가 있다고 가정해 보겠습니다.
-
읽기 전용 복제본의 테이블스페이스에서 임시 파일을 삭제했습니다. 자세한 내용은 읽기 전용 복제본에서 임시 파일 삭제 단원을 참조하십시오.
-
기본 DB 인스턴스에 새 임시 테이블스페이스를 생성했습니다. 이 경우 RDS for Oracle은 읽기 전용 복제본에 메타데이터를 동기화합니다.
빈 임시 테이블스페이스에 임시 파일을 추가하고 인스턴스 스토어에 임시 파일을 저장할 수 있습니다. 인스턴스 스토어에 임시 파일을 생성하려면 Amazon RDS 프로시저 rdsadmin.rdsadmin_util.add_inst_store_tempfile
을 사용합니다. 이 프로시저는 읽기 전용 복제본에서만 사용할 수 있습니다. 프로시저에는 다음과 같은 파라미터가 있습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
varchar |
— |
예 |
읽기 전용 복제본에 있는 임시 테이블스페이스의 이름입니다. |
다음 예에서는 빈 임시 테이블스페이스 temp01
이 읽기 전용 복제본에 있습니다. 다음 명령을 실행하여 이 테이블스페이스에 대한 임시 파일을 생성하고 인스턴스 스토어에 저장합니다.
EXEC rdsadmin.rdsadmin_util.add_inst_store_tempfile(p_tablespace_name => '
temp01
');
자세한 내용은 RDS for Oracle 인스턴스 스토어에 임시 데이터 저장 단원을 참조하십시오.
읽기 전용 복제본에서 임시 파일 삭제
읽기 전용 복제본에서 기존 임시 테이블스페이스를 삭제할 수 없습니다. 읽기 전용 복제본의 임시 파일 스토리지를 Amazon EBS에서 인스턴스 스토어로 또는 인스턴스 스토어에서 Amazon EBS로 변경할 수 있습니다. 이를 위해 다음을 수행합니다.
-
현재 읽기 전용 복제본의 임시 테이블스페이스에 있는 임시 파일을 삭제합니다.
-
다른 스토리지에 새 임시 파일을 생성합니다.
임시 파일을 삭제하려면 Amazon RDS 프로시저 rdsadmin.rdsadmin_util. drop_replica_tempfiles
을 사용합니다. 이 절차는 읽기 전용 복제본에서만 사용할 수 있습니다. drop_replica_tempfiles
프로시저에는 다음과 같은 파라미터가 있습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
varchar |
— |
예 |
읽기 전용 복제본에 있는 임시 테이블스페이스의 이름입니다. |
temp01
이라는 임시 테이블스페이스가 읽기 전용 복제본의 인스턴스 스토어에 있다고 가정해 보겠습니다. 다음 명령을 실행하여 이 테이블스페이스의 모든 임시 파일을 삭제합니다.
EXEC rdsadmin.rdsadmin_util.drop_replica_tempfiles(p_tablespace_name => '
temp01
');
자세한 내용은 RDS for Oracle 인스턴스 스토어에 임시 데이터 저장 단원을 참조하십시오.
데이터베이스 체크포인트
데이터베이스에 체크포인트를 만들려면 Amazon RDS 프로시저 rdsadmin.rdsadmin_util.checkpoint
를 사용합니다. checkpoint
프로시저에는 파라미터가 없습니다.
다음 예에서는 데이터베이스에 체크포인트를 만듭니다.
EXEC rdsadmin.rdsadmin_util.checkpoint;
분산 복구 설정
분산 복구를 설정하려면 Amazon RDS 프로시저 rdsadmin.rdsadmin_util.enable_distr_recovery
및 disable_distr_recovery
를 사용합니다. 프로시저에는 파라미터가 없습니다.
다음 예에서는 분산 복구를 활성화합니다.
EXEC rdsadmin.rdsadmin_util.enable_distr_recovery;
다음 예에서는 분산 복구를 비활성화합니다.
EXEC rdsadmin.rdsadmin_util.disable_distr_recovery;
데이터베이스 시간대 설정
다음과 같은 방법으로 Amazon RDS Oracle 데이터베이스의 시간대를 설정할 수 있습니다.
-
Timezone
옵션Timezone
옵션은 호스트 수준에서 시간대를 변경하여SYSDATE
를 포함한 모든 데이터 열과 값에 영향을 끼칩니다. 자세한 내용은 Oracle 시간대 섹션을 참조하세요. -
Amazon RDS 프로시저
rdsadmin.rdsadmin_util.alter_db_time_zone
alter_db_time_zone
절차는 특정 데이터 유형의 시간대만 변경하며SYSDATE
는 변경하지 않습니다. 시간대 설정에 대한 자세한 제한 사항은 Oracle 문서를 참조하세요.
참고
Oracle Scheduler의 기본 시간대를 설정할 수도 있습니다. 자세한 내용은 Oracle Scheduler 작업의 시간대 설정 섹션을 참조하세요.
alter_db_time_zone
프로시저에는 다음과 같은 파라미터가 있습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
varchar2 |
— |
예 |
지정된 리전이나 협정 세계시(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 인스턴스 재부팅 섹션을 참조하세요. 시간대 업그레이드에 대한 자세한 내용은 시간대 고려 사항 단원을 참조하세요.
Oracle 외부 테이블 작업
Oracle 외부 테이블이란 데이터가 데이터베이스에 저장되어 있지 않은 테이블을 말합니다. 오히려 데이터베이스가 액세스할 수 있는 외부 파일에 데이터가 저장되어 있습니다. 외부 테이블을 사용하면 데이터베이스에 테이블을 로드하지 않고도 데이터에 액세스할 수 있습니다. 외부 테이블에 대한 자세한 내용은 Oracle 설명서에서 Managing External Tables
Amazon RDS에서는 외부 테이블 파일을 디렉터리 객체에 저장할 수 있습니다. 디렉터리 객체는 생성할 수도 있지만, DATA_PUMP_DIR 디렉터리처럼 Oracle 데이터베이스에 사전 정의되어 있는 객체를 사용할 수도 있습니다. 디렉터리 객체 생성에 대한 자세한 내용은 메인 데이터 스토리지 공간에서 디렉터리 생성 및 삭제 단원을 참조하세요. ALL_DIRECTORIES 뷰에 대한 쿼리를 실행하여 Amazon RDS Oracle DB 인스턴스의 디렉터리 객체 목록을 조회할 수 있습니다.
참고
디렉터리 객체는 인스턴스에서 사용하는 메인 데이터 스토리지 공간(Amazon EBS 볼륨)을 가리킵니다. 데이터 파일, 재실행 로그, 감사, 트레이스 및 기타 파일 등에 사용되는 공간은 할당된 공간에서 차감됩니다.
외부 데이터 파일은 DBMS_FILE_TRANSFER
외부 데이터 파일을 이동시켰으면 이제 이 파일을 이용해 외부 테이블을 생성할 수 있습니다. 다음 예에서는 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_xt
테이블에 대해 쿼리를 실행하여 orders
외부 테이블을 생성하는 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은 성능 데이터 수집과 보고서 생성을 위해 Automatic Workload Repository(AWR)를 사용할 것을 권장합니다. AWR에는 Oracle Database Enterprise Edition과 Diagnostics and Tuning 팩용 라이선스가 필요합니다. AWR을 활성화하려면 CONTROL_MANAGEMENT_PACK_ACCESS
초기화 파라미터를 DIAGNOSTIC
또는 DIAGNOSTIC+TUNING
으로 설정합니다.
RDS에서 AWR 보고서 작업
awrrpt.sql
과 같은 스크립트를 실행하면 AWR 보고서를 생성할 수 있습니다. 이러한 스크립트는 데이터베이스 호스트 서버에 설치됩니다. Amazon RDS에서는 호스트에 직접 액세스할 수 없습니다. 그러나 설치된 다른 Oracle Database에서 SQL 스크립트의 복사본을 가져올 수 있습니다.
SYS.DBMS_WORKLOAD_REPOSITORY
PL/SQL 패키지에서 프로시저를 실행하여 AWR을 사용할 수도 있습니다. 이 패키지를 사용하여 기준 요소 및 스냅샷을 관리하고 ASH 및 AWR 보고서를 표시할 수 있습니다. 예를 들어 텍스트 형식으로 AWR 보고서를 생성하려면 DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT
프로시저를 실행합니다. 그러나 AWS Management Console에서는 이러한 AWR 보고서에 연결할 수 없습니다.
AWR로 작업할 때 rdsadmin.rdsadmin_diagnostic_util
프로시저를 사용하는 것이 좋습니다. 이러한 프로시저를 사용하여 다음을 생성할 수 있습니다.
-
AWR 보고서
-
활성 세션 기록(ASH) 보고서
-
자동 데이터베이스 진단 모니터(ADDM) 보고서
-
AWR 데이터의 Oracle Data Pump Export 덤프 파일
rdsadmin_diagnostic_util
프로시저는 보고서를 DB 인스턴스 파일 시스템에 저장합니다. 콘솔에서 이러한 보고서에 액세스할 수 있습니다. 또한 rdsadmin.rds_file_util
프로시저를 사용하여 보고서에 액세스할 수 있고, S3 통합 옵션을 사용하여 Amazon S3에 복사된 보고서에 액세스할 수 있습니다. 자세한 내용은 DB 인스턴스 디렉터리의 파일 목록 읽기 및 Amazon S3 통합 단원을 참조하세요.
다음 Amazon RDS for Oracle DB 엔진 버전에서 rdsadmin_diagnostic_util
프로시저를 사용할 수 있습니다.
-
모든 Oracle Database 21c 버전
-
19.0.0.0.ru-2020-04.rur-2020-04.r1 이상의 Oracle Database 19c 버전
복제 시나리오에서 진단 보고서를 사용하는 방법을 설명하는 블로그를 보려면 Amazon RDS for Oracle 읽기 전용 복제본에 대한 AWR 보고서 생성
진단 유틸리티 패키지의 공통 파라미터
rdsadmin_diagnostic_util
패키지로 AWR 및 ADDM을 관리할 때는 일반적으로 다음 파라미터를 사용합니다.
파라미터 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
|
— |
예 |
시작 스냅샷의 ID입니다. |
|
|
— |
예 |
종료 스냅샷의 ID입니다. |
|
|
|
아니요 |
보고서를 작성하거나 파일을 내보낼 디렉터리입니다. 기본이 아닌 디렉터리를 지정하는 경우 |
|
|
— |
아니요 |
최대 30자까지 지정할 수 있습니다. 유효한 문자는 태그는 고유할 필요가 없으므로 여러 백업이 동일한 태그를 가질 수 있습니다. 태그를 지정하지 않으면 RMAN은
|
|
|
|
아니요 |
보고서의 형식입니다. 유효 값은 |
|
|
— |
아니요 |
Oracle에 대한 |
rdsadmin_diagnostic_util 패키지로 ASH를 관리할 때는 일반적으로 다음 파라미터를 사용합니다.
파라미터 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
|
— |
예 |
ASH 분석의 시작 시간입니다. |
|
|
— |
예 |
ASH 분석의 종료 시간입니다. |
|
|
|
아니요 |
ASH 보고서의 “Top Activity” 섹션에 사용되는 슬롯의 지속 시간(초)입니다. 이 파라미터를 지정하지 않으면 |
|
|
Null |
아니요 |
세션 ID입니다. |
|
|
Null |
아니요 |
SQL ID입니다. |
|
|
Null |
아니요 |
대기 클래스 이름입니다. |
|
|
Null |
아니요 |
서비스 이름 해시입니다. |
|
|
Null |
아니요 |
모듈 이름입니다. |
|
|
Null |
아니요 |
작업 이름입니다. |
|
|
Null |
아니요 |
데이터베이스 세션의 애플리케이션별 ID입니다. |
|
|
Null |
아니요 |
PL/SQL 진입점입니다. |
AWR 보고서 생성
AWR 보고서를 생성하려면 rdsadmin.rdsadmin_diagnostic_util.awr_report
프로시저를 사용합니다.
다음 예에서는 스냅샷 범위 101–106에 대한 AWR 보고서를 생성합니다. 출력 텍스트 파일의 이름은 awrrpt_101_106.txt
입니다. AWS Management Console에서 이 보고서에 액세스할 수 있습니다.
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(101,106,'TEXT');
다음 예에서는 스냅샷 범위 63–65에 대한 HTML 보고서를 생성합니다. 출력 HTML 파일의 이름은 awrrpt_63_65.html
입니다. 이 프로시저는 기본이 아닌 데이터베이스 디렉터리 AWR_RPT_DUMP
에 보고서를 작성합니다.
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(63,65,'HTML','AWR_RPT_DUMP');
AWR 데이터를 덤프 파일로 추출
AWR 데이터를 덤프 파일로 추출하려면 rdsadmin.rdsadmin_diagnostic_util.awr_extract
프로시저를 사용합니다.
다음 예에서는 스냅샷 범위 101–106을 추출합니다. 출력 덤프 파일의 이름은 awrextract_101_106.dmp
입니다. 콘솔을 통해 이 파일에 액세스할 수 있습니다.
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(101,106);
다음 예에서는 스냅샷 범위 63–65를 추출합니다. 출력 덤프 파일의 이름은 awrextract_63_65.dmp
입니다. 이 파일은 기본이 아닌 데이터베이스 디렉터리 AWR_RPT_DUMP
에 저장됩니다.
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(63,65,'AWR_RPT_DUMP');
ADDM 보고서 생성
ADDM 보고서를 생성하려면 rdsadmin.rdsadmin_diagnostic_util.addm_report
프로시저를 사용합니다.
다음 예에서는 스냅샷 범위 101–106에 대한 ADDM 보고서를 생성합니다. 출력 텍스트 파일의 이름은 addmrpt_101_106.txt
입니다. 콘솔을 통해 보고서에 액세스할 수 있습니다.
EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(101,106);
다음 예에서는 스냅샷 범위 63–65에 대한 ADDM 보고서를 생성합니다. 출력 텍스트 파일의 이름은 addmrpt_63_65.txt
입니다. 이 파일은 기본이 아닌 데이터베이스 디렉터리 ADDM_RPT_DUMP
에 저장됩니다.
EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(63,65,'ADDM_RPT_DUMP');
ASH 보고서 생성
ASH 보고서를 생성하려면 rdsadmin.rdsadmin_diagnostic_util.ash_report
프로시저를 사용합니다.
다음 예에서는 14분 전부터 현재 시간까지의 데이터가 포함된 ASH 보고서를 생성합니다. 출력 파일의 이름은 ashrpt
형식을 사용하며, 여기서 begin_time
end_time
.txt
및 begin_time
은 end_time
YYYYMMDDHH24MISS
형식을 사용합니다. 콘솔을 통해 파일에 액세스할 수 있습니다.
BEGIN rdsadmin.rdsadmin_diagnostic_util.ash_report( begin_time => SYSDATE-14/1440, end_time => SYSDATE, report_type => 'TEXT'); END; /
다음 예에서는 2019년 11월 18일 오후 6시 7분부터 2019년 11월 18일 오후 6시 15분까지의 데이터가 포함된 ASH 보고서를 생성합니다. 출력 HTML 보고서의 이름은 ashrpt_20190918180700_20190918181500.html
입니다. 보고서는 기본이 아닌 데이터베이스 디렉터리 AWR_RPT_DUMP
에 저장됩니다.
BEGIN rdsadmin.rdsadmin_diagnostic_util.ash_report( begin_time => TO_DATE('2019-09-18 18:07:00', 'YYYY-MM-DD HH24:MI:SS'), end_time => TO_DATE('2019-09-18 18:15:00', 'YYYY-MM-DD HH24:MI:SS'), report_type => 'html', dump_directory => 'AWR_RPT_DUMP'); END; /
콘솔 또는 CLI에서 AWR 보고서 액세스
AWS Management Console 또는 AWS CLI를 사용하여 AWR 보고서에 액세스하거나 덤프 파일을 내보낼 수 있습니다. 자세한 내용은 데이터베이스 로그 파일 다운로드 섹션을 참조하세요.
VPC의 DB 인스턴스에 사용하기 위한 데이터베이스 링크 조정
동일한 Virtual Private Cloud(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$ 테이블에 대한 감사 활성화
데이터베이스 감사 추적 테이블 SYS.AUD$
에서 감사를 활성화하려면 Amazon RDS 프로시저 rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table
을 사용합니다. 지원되는 유일한 감사 속성은 ALL
입니다. 개별 문 또는 연산을 감사하거나 감사하지 않을 수 있습니다.
감사 활성화는 다음 버전을 실행하는 Oracle DB 인스턴스에 대해 지원됩니다.
-
Oracle Database 21c(21.0.0)
-
Oracle Database 19c(19.0.0)
audit_all_sys_aud_table
프로시저에는 다음과 같은 파라미터가 있습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
부울 |
true |
아니요 |
|
다음 쿼리는 데이터베이스의 SYS.AUD$
에 대한 현재 감사 구성을 반환합니다.
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';
다음 명령은 ALL
SYS.AUD$
의 BY ACCESS
에 대한 감사를 활성화합니다.
EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table; EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => true);
다음 명령은 ALL
SYS.AUD$
의 BY SESSION
에 대한 감사를 활성화합니다.
EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => false);
자세한 내용은 Oracle 설명서의 AUDIT(기존 감사)
SYS.AUD$ 테이블에 대한 감사 비활성화
데이터베이스 감사 추적 테이블 SYS.AUD$
에서 감사를 비활성화하려면 Amazon RDS 프로시저 rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table
을 사용합니다. 이 프로시저에는 파라미터가 없습니다.
다음 쿼리는 데이터베이스의 SYS.AUD$
에 대한 현재 감사 구성을 반환합니다.
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';
다음 명령은 ALL
에 대한 SYS.AUD$
의 감사를 비활성화합니다.
EXEC rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table;
자세한 내용은 Oracle 설명서의 NOAUDIT(기존 감사)
중단된 온라인 인덱스 빌드 정리
실패한 온라인 인덱스 빌드를 정리하려면 Amazon RDS 절차 rdsadmin.rdsadmin_dbms_repair.online_index_clean
을 사용하세요.
online_index_clean
프로시저에는 다음과 같은 파라미터가 있습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
binary_integer |
|
아니요 |
인덱스의 객체 ID입니다. 일반적으로 ORA-08104 오류 텍스트의 객체 ID를 사용할 수 있습니다. |
|
binary_integer |
|
아니요 |
기본값인
|
다음 예에서는 실패한 온라인 인젝스 빌드를 정리합니다.
declare is_clean boolean; begin is_clean := rdsadmin.rdsadmin_dbms_repair.online_index_clean( object_id => 1234567890, wait_for_lock => rdsadmin.rdsadmin_dbms_repair.lock_nowait ); end; /
자세한 내용은 Oracle 문서의 ONLINE_INDEX_CLEAN Function
손상된 블록 건너뛰기
인덱스 및 테이블 스캔 중에 손상된 블록을 건너뛰려면 rdsadmin.rdsadmin_dbms_repair
패키지를 사용하세요.
다음 절차에서는 sys.dbms_repair.admin_table
절차의 기능을 래핑하고 파라미터를 받아들이지 않습니다.
-
rdsadmin.rdsadmin_dbms_repair.create_repair_table
-
rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table
-
rdsadmin.rdsadmin_dbms_repair.drop_repair_table
-
rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table
-
rdsadmin.rdsadmin_dbms_repair.purge_repair_table
-
rdsadmin.rdsadmin_dbms_repair.purge_orphan_keys_table
다음 절차에서는 Oracle 데이터베이스에 대해 DBMS_REPAIR
패키지에서 이에 상응하는 것으로 동일한 파라미터를 받아들입니다.
-
rdsadmin.rdsadmin_dbms_repair.check_object
-
rdsadmin.rdsadmin_dbms_repair.dump_orphan_keys
-
rdsadmin.rdsadmin_dbms_repair.fix_corrupt_blocks
-
rdsadmin.rdsadmin_dbms_repair.rebuild_freelists
-
rdsadmin.rdsadmin_dbms_repair.segment_fix_status
-
rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks
데이터베이스 손상 처리에 대한 자세한 내용은 Oracle 설명서의 DBMS_REPAIR
예 손상된 블록에 응답
이 예제에서는 손상된 블록에 응답하기 위한 기본 워크플로우를 보여줍니다. 단계는 블록 손상의 위치와 특성에 따라 달라집니다.
중요
손상된 블록을 복구하기 전에 DBMS_REPAIRE
인덱스 및 테이블 스캔 중에 손상된 블록을 건너뛰려면
-
다음 프로시저를 실행하여 복구 테이블을 생성합니다(아직 없는 경우).
EXEC rdsadmin.rdsadmin_dbms_repair.create_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table;
-
다음 절차를 실행하여 기존 레코드를 확인하고 필요에 따라 제거하세요.
SELECT COUNT(*) FROM SYS.REPAIR_TABLE; SELECT COUNT(*) FROM SYS.ORPHAN_KEY_TABLE; SELECT COUNT(*) FROM SYS.DBA_REPAIR_TABLE; SELECT COUNT(*) FROM SYS.DBA_ORPHAN_KEY_TABLE; EXEC rdsadmin.rdsadmin_dbms_repair.purge_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.purge_orphan_keys_table;
-
다음 절차를 실행하여 손상된 블록을 확인하세요.
SET SERVEROUTPUT ON DECLARE v_num_corrupt INT; BEGIN v_num_corrupt := 0; rdsadmin.rdsadmin_dbms_repair.check_object ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', corrupt_count => v_num_corrupt ); dbms_output.put_line('number corrupt: '||to_char(v_num_corrupt)); END; / COL CORRUPT_DESCRIPTION FORMAT a30 COL REPAIR_DESCRIPTION FORMAT a30 SELECT OBJECT_NAME, BLOCK_ID, CORRUPT_TYPE, MARKED_CORRUPT, CORRUPT_DESCRIPTION, REPAIR_DESCRIPTION FROM SYS.REPAIR_TABLE; SELECT SKIP_CORRUPT FROM DBA_TABLES WHERE OWNER = '&corruptionOwner' AND TABLE_NAME = '&corruptionTable';
-
skip_corrupt_blocks
프로시저를 사용하여 영향을 받은 테이블에 대해 손상 건너뛰기를 활성화 또는 비활성화하세요. 상황에 따라 새 테이블에 데이터를 추출한 다음 손상된 블록이 포함된 테이블을 삭제해야 할 수도 있습니다.다음 절차를 실행하여 영향을 받은 테이블에 대해 손상 건너뛰기를 활성화하세요.
begin rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', object_type => rdsadmin.rdsadmin_dbms_repair.table_object, flags => rdsadmin.rdsadmin_dbms_repair.skip_flag); end; / select skip_corrupt from dba_tables where owner = '&corruptionOwner' and table_name = '&corruptionTable';
다음 절차를 실행하여 손상 건너뛰기를 비활성화하세요.
begin rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', object_type => rdsadmin.rdsadmin_dbms_repair.table_object, flags => rdsadmin.rdsadmin_dbms_repair.noskip_flag); end; / select skip_corrupt from dba_tables where owner = '&corruptionOwner' and table_name = '&corruptionTable';
-
모든 복구 작업을 완료했으면 다음 프로시저를 실행하여 복구 테이블을 삭제합니다.
EXEC rdsadmin.rdsadmin_dbms_repair.drop_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table;
테이블스페이스, 데이터 파일, 임시 파일 크기 조정
기본적으로 Oracle 테이블스페이스는 자동 확장이 켜진 상태로 생성되며 최대 크기는 지정되지 않습니다. 이러한 기본 설정 때문에 테이블스페이스가 너무 크게 확장될 때가 있습니다. 되도록 영구 및 임시 테이블스페이스에 적절한 최대 크기를 지정하고, 공간 사용량을 자세히 살펴보십시오.
영구 테이블스페이스 크기 조정
RDS for Oracle DB 인스턴스에서 영구 테이블스페이스의 크기를 조정하려면 다음 Amazon RDS 프로시저 중 하나를 사용하세요.
-
rdsadmin.rdsadmin_util.resize_datafile
-
rdsadmin.rdsadmin_util.autoextend_datafile
resize_datafile
프로시저에는 다음과 같은 파라미터가 있습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
숫자 |
— |
예 |
크기를 조정할 데이터 파일의 식별자. |
|
varchar2 |
— |
예 |
데이터 파일의 크기. 크기는 바이트(기본값), 킬로바이트(K), 메가바이트(M) 또는 기가바이트(G)로 지정합니다. |
autoextend_datafile
프로시저에는 다음과 같은 파라미터가 있습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
숫자 |
— |
예 |
크기를 조정할 데이터 파일의 식별자. |
|
varchar2 |
— |
예 |
자동 확장 기능의 상태. 데이터 파일을 자동으로 확장하려면 |
|
varchar2 |
— |
아니요 |
다음 데이터 파일 증분의 크기. 크기는 바이트(기본값), 킬로바이트(K), 메가바이트(M) 또는 기가바이트(G)로 지정합니다. |
|
varchar2 |
— |
아니요 |
자동 확장에 허용되는 최대 디스크 공간. 크기는 바이트(기본값), 킬로바이트(K), 메가바이트(M) 또는 기가바이트(G)로 지정합니다. |
다음 예제에서는 데이터 파일 크기를 4~500MB로 조정합니다.
EXEC rdsadmin.rdsadmin_util.resize_datafile(4,'500M');
다음 예제에서는 데이터 파일 4의 자동 확장을 끕니다. 또한 데이터 파일 5는 자동 확장을 켜고, 최대 크기 없이 128MB씩 증분하는 걸로 설정합니다.
EXEC rdsadmin.rdsadmin_util.autoextend_datafile(4,'OFF'); EXEC rdsadmin.rdsadmin_util.autoextend_datafile(5,'ON','128M','UNLIMITED');
임시 테이블스페이스의 크기 조정
RDS for Oracle DB 인스턴스에서 임시 테이블스페이스의 크기를 조정하려면 다음 Amazon RDS 프로시저 중 하나를 사용하세요.
-
rdsadmin.rdsadmin_util.resize_temp_tablespace
-
rdsadmin.rdsadmin_util.resize_tempfile
-
rdsadmin.rdsadmin_util.autoextend_tempfile
resize_temp_tablespace
프로시저에는 다음과 같은 파라미터가 있습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
varchar2 |
— |
예 |
크기를 조정할 임시 테이블스페이스의 이름입니다. |
|
varchar2 |
— |
예 |
테이블스페이스의 크기. 크기는 바이트(기본값), 킬로바이트(K), 메가바이트(M) 또는 기가바이트(G)로 지정합니다. |
resize_tempfile
프로시저에는 다음과 같은 파라미터가 있습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
숫자 |
— |
예 |
크기를 조정할 임시 테이블스페이스의 파일 식별자. |
|
varchar2 |
— |
예 |
임시 파일의 크기. 크기는 바이트(기본값), 킬로바이트(K), 메가바이트(M) 또는 기가바이트(G)로 지정합니다. |
autoextend_tempfile
프로시저에는 다음과 같은 파라미터가 있습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
숫자 |
— |
예 |
크기를 조정할 임시 테이블스페이스의 파일 식별자. |
|
varchar2 |
— |
예 |
자동 확장 기능의 상태. 임시 파일을 자동으로 확장하려면 |
|
varchar2 |
— |
아니요 |
다음 임시 파일 증분의 크기. 크기는 바이트(기본값), 킬로바이트(K), 메가바이트(M) 또는 기가바이트(G)로 지정합니다. |
|
varchar2 |
— |
아니요 |
자동 확장에 허용되는 최대 디스크 공간. 크기는 바이트(기본값), 킬로바이트(K), 메가바이트(M) 또는 기가바이트(G)로 지정합니다. |
다음 예제에서는 TEMP
라는 이름의 임시 테이블스페이스의 크기를 4GB로 조정합니다.
EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4G');
EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4096000000');
다음 예제에서는 파일 식별자가 1
인 임시 파일을 기준으로 하는 임시 테이블스페이스의 크기를 2MB로 조정합니다.
EXEC rdsadmin.rdsadmin_util.resize_tempfile(1,'2M');
다음 예제에서는 임시 파일 1의 자동 확장을 끕니다. 또한 임시 파일의 최대 자동 확장 크기를 2GB에서 10GB로 설정하며, 100MB씩 증분합니다.
EXEC rdsadmin.rdsadmin_util.autoextend_tempfile(1,'OFF'); EXEC rdsadmin.rdsadmin_util.autoextend_tempfile(2,'ON','100M','10G');
Oracle DB 인스턴스의 읽기 전용 복제본에 대한 자세한 내용은 Amazon RDS의 Oracle의 읽기 전용 복제본 작업 섹션을 참조하세요.
휴지통 비우기
테이블을 삭제해도 Oracle 데이터베이스가 해당 스토리지 공간을 즉시 확보하지 않습니다. 데이터베이스는 삭제된 테이블의 이름을 바꾸고 테이블 및 연결된 객체를 휴지통에 넣습니다. 휴지통을 비우면 이러한 항목이 제거되고 스토리지 공간이 확보됩니다.
전체 휴지통을 비우려면 Amazon RDS 프로시저 rdsadmin.rdsadmin_util.purge_dba_recyclebin
을 사용합니다. 그러나 이 프로시저는 SYS
및 RDSADMIN
객체의 휴지통은 비울 수 없습니다. 이러한 객체를 삭제해야 하는 경우 AWS Support에 문의하세요.
다음 예에서는 전체 휴지통을 비웁니다.
EXEC rdsadmin.rdsadmin_util.purge_dba_recyclebin;
전체 수정을 위한 기본 표시 값 설정
Amazon RDS Oracle 인스턴스에서 전체 수정을 위한 기본 표시 값을 변경하려면 Amazon RDS 프로시저 rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val
을 사용합니다. 참고로 수정 정책은 Oracle 데이터베이스 설명서에 설명된 것처럼 DBMS_REDACT
PL/SQL 패키지를 사용하여 생성합니다. dbms_redact_upd_full_rdct_val
프로시저는 기존 정책의 영향을 받는 여러 데이터 유형에 대해 표시할 문자를 지정합니다.
dbms_redact_upd_full_rdct_val
프로시저에는 다음과 같은 파라미터가 있습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
number |
Null |
아니요 |
|
|
binary_float |
Null |
아니요 |
|
|
binary_double |
Null |
아니요 |
|
|
char |
Null |
아니요 |
|
|
varchar2 |
Null |
아니요 |
|
|
nchar |
Null |
아니요 |
|
|
nvarchar2 |
Null |
아니요 |
|
|
date |
Null |
아니요 |
|
|
타임스탬프 |
Null |
아니요 |
|
|
시간대가 있는 타임스탬프 |
Null |
아니요 |
|
|
blob |
Null |
아니요 |
|
|
clob |
Null |
아니요 |
|
|
nclob |
Null |
아니요 |
|
다음 예에서는 CHAR
데이터 유형에 대한 기본 수정 값을 *로 변경합니다.
EXEC rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val(p_char_val => '*');
다음 예에서는 NUMBER
, DATE
, CHAR
데이터 유형에 대한 기본 수정 값을 변경합니다.
BEGIN rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val( p_number_val=>1, p_date_val=>to_date('1900-01-01','YYYY-MM-DD'), p_varchar_val=>'X'); END; /
dbms_redact_upd_full_rdct_val
프로시저를 사용하여 전체 수정의 기본값을 변경한 후 DB 인스턴스를 재부팅하여 변경 사항을 적용합니다. 자세한 내용은 DB 인스턴스 재부팅 단원을 참조하십시오.