Oracle을 실행하는 Amazon RDS DB 인스턴스의 성능 통계를 확인하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 8월 30일

Oracle을 실행하는 Amazon Relational Database Service(Amazon RDS) 인스턴스의 성능 통계를 확인하여 DB 인스턴스의 성능을 분석하고 조정하려면 어떻게 해야 합니까?

간략한 설명

RDS DB 인스턴스에서 Oracle Statspack을 사용하여 성능 데이터를 수집, 저장 및 표시할 수 있습니다. Statspack은 DB 스냅샷을 기반으로 보고서를 생성합니다. 그러면 이 스냅샷을 사용하여 일정 기간 DB 인스턴스 성능을 분석할 수 있습니다. 자세한 내용은 Statspack에 대한 Oracle 문서를 참조하십시오.

​해결 방법

Amazon RDS에서 Oracle Statspack 사용

1.    perfstat 사용자가 있는 경우 다음 명령을 실행하여 perfstat를 삭제합니다.

SQL> DROP USER perfstat CASCADE;

2.    Statspack 옵션을 DB 옵션 그룹에 추가합니다. 옵션 그룹이 없는 경우 새 옵션 그룹을 생성한 다음, 옵션 그룹을 DB 인스턴스에 할당합니다.

3.    Statspack 옵션을 추가하면 Oracle을 실행하는 Amazon RDS 인스턴스가 자동으로 Statspack을 설치합니다. 그러면 데이터베이스 통계를 수집하고 보고서를 생성하도록 perfstat 사용자가 생성되지만, perfstat 사용자는 기본적으로 DB 인스턴스에 액세스할 수 없습니다. perfstat 사용자 액세스 권한을 부여하려면 Amazon RDS 마스터 사용자로 DB 인스턴스에 로그인한 후 다음과 비슷한 쿼리를 실행하여 perfstat 사용자의 암호를 재설정합니다.

ALTER USER perfstat IDENTIFIED BY <new_password> ACCOUNT UNLOCK;

참고: new_password를 사용자의 암호로 대체해야 합니다.

4.    perfstat 사용자로 로그인한 동안 Amazon RDS 콘솔에서 DB 스냅샷을 생성하거나 다음 명령을 실행하여 DB 스냅샷을 수동으로 생성합니다.

SQL> exec statspack.snap (i_snap_level => 7, i_modify_parameter => 'TRUE');

참고: DB 스냅샷 캡처 수준을 변경하여 더 자세한 정보를 얻을 수도 있습니다. 이 예제 명령은 SQL 및 실행 계획에 대한 사용량, 행 잠금 및 세그먼트 수준 I/O 통계를 포함하는 수준 7의 DB 스냅샷을 생성합니다.

5.    선택적으로 DB 스냅샷을 자동으로 생성하도록 Oracle을 구성합니다. 다음 절차에서는 시간당 1개의 DB 스냅샷을 자동으로 생성하는 작업을 만듭니다.

SQL> set serveroutput on 
SQL> variable jn number; 
SQL> execute dbms_job.submit (:jn, 'statspack.snap;', sysdate, 'trunc(SYSDATE+1/24,''HH24'')');
SQL> execute dbms_output.put_line ('statspack job number:' || :jn);
SQL> commit;

6.    사용 가능한 DB 스냅샷을 보려면 다음 명령을 실행합니다.

SQL> set linesize 32767; 
SQL> alter session set nls_date_format = 'YYYY/MM/DD HH24:MI:SS';
SQL> select snap_id, snap_time from stats$snapshot order by 1;
    SNAP_ID SNAP_TIME
---------- -------------------
        :: ::
        11 2019/06/03 03:18:30
        12 2019/06/03 04:18:30
        :: ::

7.    DB 스냅샷을 3개 이상 생성한 후 다음과 비슷한 명령을 실행하여 Statspack 보고서를 생성합니다.

SQL> exec RDSADMIN.RDS_RUN_SPREPORT (11,12);

참고: 이 예제 명령은 SNAP_ID 11 및 12를 사용하여 보고서를 생성하며, 보고서 이름은 trace/ORCL_spreport<INITIAL_SNAP_ID>_<FINAL_SNAP_ID>.lst와 비슷합니다.

8.    보고서를 보고 다운로드하려면 Amazon RDS 콘솔을 열고 탐색 창에서 [데이터베이스]를 선택합니다. DB 인스턴스를 선택하고 [로그] 탭을 선택합니다.

9.    저장된 DB 스냅샷은 자동으로 삭제되지 않으며, 이 스냅샷은 DB 인스턴스의 스토리지 공간을 소비할 수 있습니다. DB 스냅샷을 수동으로 제거하려면 다음과 비슷한 시작 SNAP_ID 및 종료 SNAP_ID를 지정합니다.

SQL> execute statspack.purge(<INITIAL_SNAP_ID>, <END_SNAP_ID>);

Amazon RDS에서 Oracle Statspack 사용 중지

1.    Statspack의 자동 검색을 중지하려면 생성한 작업을 삭제합니다. 작업 번호를 가져오려면 다음 명령을 실행합니다.

SQL> select job, what FROM user_jobs;

2.    작업을 삭제하려면 다음 명령을 실행합니다.

SQL> execute dbms_job.remove (<job_id>);

참고: job_id를 사용자 작업 ID로 대체해야 합니다.

DB 옵션 그룹에서 Statspack 옵션을 제거하면 perfstat 사용자와 DB 스냅샷이 삭제되고 저장된 DB 스냅샷이 모두 제거됩니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?