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

Oracle 데이터베이스 로그 파일

Amazon RDS 콘솔 또는 API를 사용하여 Oracle 알림 로그, 감사 파일 및 추적 파일에 액세스할 수 있습니다. 파일 기반 데이터베이스 로그 보기, 다운로드 및 조사 방법에 대한 자세한 내용은 Amazon RDS 데이터베이스 로그 파일 단원을 참조하십시오.

제공되는 Oracle 감사 파일은 표준 Oracle 감사 파일입니다. Amazon RDS는 Oracle 세분화된 감사(FGA) 기능을 지원합니다. 하지만 로그 액세스는 SYS.FGA_LOG$ 테이블에 저장되고 DBA_FGA_AUDIT_TRAIL 보기를 통해 액세스 가능한 FGA 이벤트에 대한 액세스를 제공하지 않습니다.

DB 인스턴스에 사용 가능한 Oracle 로그 파일을 나열하는 DescribeDBLogFiles API 작업에서는 MaxRecords 파라미터를 무시하고 최대 1,000개의 레코드를 반환합니다.

보존 일정

로그 파일이 매우 커질 경우 Oracle 데이터베이스 엔진이 커진 파일들을 순환시킬 수 있습니다. 감사 또는 추적 파일을 보존하려면 해당 파일을 다운로드해야 합니다. 파일을 로컬 위치에 저장하면 Amazon RDS 스토리지 비용이 절감되고 더 많은 공간을 데이터에 저장에 사용할 수 있습니다.

다음은 Amazon RDS의 Oracle 알림 로그, 감사 파일 및 추적 파일에 대한 보존 일정입니다.

로그 유형 보존 일정

알림 로그

 텍스트 알림 로그는 매일 교체되며 Amazon RDS에서 30일간 보존하도록 관리합니다. XML 알림 로그는 7일 이상 보관됩니다. ALERTLOG 보기를 사용하여 이 로그에 액세스할 수 있습니다.

감사 파일

감사 파일의 기본 보존 기간은 7일입니다. Amazon RDS는 7일이 경과한 감사 파일을 삭제할 수 있습니다.

추적 파일

추적 파일의 기본 보존 기간은 7일입니다. Amazon RDS는 7일이 경과한 추적 파일을 삭제할 수 있습니다.

리스너 로그

리스너 로그의 기본 보존 기간은 7일입니다. Amazon RDS는 7일이 경과한 리스너 로그를 삭제할 수 있습니다.

참고

감사 파일과 추적 파일의 보존 구성은 동일합니다.

온라인 로그 파일 전환

Amazon RDS 절차 rdsadmin.rdsadmin_util.switch_logfile을 사용하여 온라인 로그 파일을 전환 수 있습니다. 자세한 내용은 온라인 로그 파일 전환 단원을 참조하십시오.

아카이빙된 다시 실행 로그 검색

보관된 다시 실행 로그를 보존할 수 있습니다. 자세한 내용은 보관된 다시 실행 로그 보존 단원을 참조하십시오.

Oracle 추적 파일을 사용한 작업

추적 파일을 만들고 새로 고치고 액세스하고 삭제하기 위한 Amazon RDS 절차의 설명을 확인할 수 있습니다.

파일 나열

background_dump_dest 경로 내에 있는 임의의 파일에 대한 액세스를 허용하기 위해 두 절차 중 하나를 사용할 수 있습니다. 첫 번째 절차는 현재 background_dump_dest에 있는 모든 파일의 목록을 포함한 보기를 새로 고칩니다.

exec rdsadmin.manage_tracefiles.refresh_tracefile_listing;

보기가 새로 고쳐지면 다음 보기를 사용하여 결과에 액세스합니다.

rdsadmin.tracefile_listing

이전 프로세스를 대체하는 프로세스는 FROM table을 사용하여 테이블과 같은 형식으로 되어 있는 테이블 데이터가 아닌 데이터를 스트리밍하여 데이터베이스 디렉터리 내용을 나열하는 것입니다.

SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP'));

다음 쿼리는 로그 파일의 텍스트를 표시합니다.

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','alert_xxx.log'));

추적 파일 생성 및 세션 추적

alter session에 대한 제한이 없으므로, Oracle에서 추적 파일을 생성하는 다양한 표준 메서드를 Amazon RDS DB 인스턴스에도 그대로 사용할 수 있습니다. 더 높은 액세스 권한이 필요한 추적 파일에 대해서는 다음 프로시저가 제공됩니다.

Oracle 메서드 Amazon RDS 메서드

oradebug hanganalyze 3

exec rdsadmin.manage_tracefiles.hanganalyze;

oradebug dump systemstate 266

exec rdsadmin.manage_tracefiles.dump_systemstate;

여러 표준 메서드를 사용하여 Amazon RDS의 Oracle DB 인스턴스에 연결된 개별 세션을 추적할 수 있습니다. 세션 추적 기능을 활성화하기 위해 DBMS_SESSION 및 DBMS_MONITOR 패키지 등 Oracle에서 제공한 PL/SQL 패키지의 하위 프로그램을 실행할 수 있습니다. 자세한 내용은 Oracle 문서의 세션 추적 기능 활성화 단원을 참조하십시오.

추적 파일 검색

Amazon RDS에서 관리되는 외부 테이블의 표준 SQL 쿼리를 사용하여 background_dump_dest에 있는 추적 파일을 검색할 수 있습니다. 이 메서드를 사용하려면 특정 추적 파일에 대한 이 테이블의 위치를 설정하는 프로시저를 실행해야 합니다.

예를 들어 이전에 언급한 rdsadmin.tracefile_listing 보기를 사용하여 시스템 상의 모든 추적 파일을 나열할 수 있습니다. 그러면 다음 프로시저를 사용하여 의도한 추적 파일을 가리키도록 tracefile_table 보기를 설정할 수 있습니다.

exec rdsadmin.manage_tracefiles.set_tracefile_table_location('CUST01_ora_3260_SYSTEMSTATE.trc');

다음 예제에서는 제공된 파일로 위치가 설정된 현재 스키마에서 외부 테이블을 만듭니다. SQL 쿼리를 사용하여 콘텐츠를 로컬 파일로 가져올 수 있습니다.

# eg: send the contents of the tracefile to a local file: sqlplus user/password@TNS alias << EOF > /tmp/tracefile.txt select * from tracefile_table; EOF

추적 파일 제거

추적 파일이 누적되어 디스크 공간이 소모될 수 있습니다. Amazon RDS는 기본적으로 추적 파일을 제거하고, 7일 이상 지난 로그 파일도 제거합니다. show_configuration 절차를 사용하여 추적 파일 보존 기간을 보고 설정할 수 있습니다. 구성 결과를 볼 수 있도록 SET SERVEROUTPUT ON 명령을 실행해야 합니다.

다음 예제에서는 현재 추적 파일 보존 기간을 표시한 다음, 새 추적 파일 보존 기간을 설정합니다.

# Show the current tracefile retention SQL> exec rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retention VALUE:10080 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted. # Set the tracefile retention to 24 hours: SQL> exec rdsadmin.rdsadmin_util.set_configuration('tracefile retention',1440); #show the new tracefile retention SQL> exec rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retention VALUE:1440 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted.

주기적인 제거 프로세스 외에, background_dump_dest에서 파일을 수동으로 제거할 수 있습니다. 다음 예제에서는 5분 이상 지난 모든 파일을 제거하는 방법을 보여줍니다.

exec rdsadmin.manage_tracefiles.purge_tracefiles(5);

(.trc와 같은 파일 확장명을 포함하지 않고) 특정 패턴과 일치하는 모든 파일을 제거할 수도 있습니다. 다음 예제에서는 "SCHPOC1_ora_5935"로 시작하는 모든 파일을 제거하는 방법을 보여줍니다.

exec rdsadmin.manage_tracefiles.purge_tracefiles('SCHPOC1_ora_5935');

Amazon CloudWatch Logs에 Oracle 로그 게시

Amazon CloudWatch Logs의 로그 그룹에 로그 데이터를 게시하도록 Amazon RDS Oracle DB 인스턴스를 구성할 수 있습니다. CloudWatch Logs를 통해 로그 데이터에 대한 분석을 수행할 수 있고, CloudWatch를 사용하여 경보를 만들고 측정치를 볼 수 있습니다. CloudWatch Logs를 사용하여 내구성이 뛰어난 스토리지에 로그 레코드를 저장할 수 있습니다.

Amazon RDS는 각 Oracle 데이터베이스 로그를 로그 그룹에 개별적인 데이터베이스 스트림으로 게시합니다. 예를 들어 감사 로그를 포함하도록 내보내기 함수를 구성하면 감사 데이터가 /aws/rds/instance/my_instance/audit 로그 그룹의 감사 로그 스트림에 저장됩니다.

콘솔

AWS Management 콘솔에서 CloudWatch Logs에 Oracle DB 로그를 게시하려면

  1. https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 데이터베이스를 선택한 다음 변경하려는 DB 인스턴스를 선택합니다.

  3. [Modify]를 선택합니다.

  4. 로그 내보내기 섹션에서 CloudWatch Logs에 게시하기 시작할 로그를 선택합니다.

  5. [Continue]를 선택한 후, 요약 페이지에서 [Modify DB Instance]를 선택합니다.

AWS CLI

Oracle 로그를 게시하기 위해 다음 파라미터와 함께 modify-db-instance 명령을 사용할 수 있습니다.

  • --db-instance-identifier

  • --cloudwatch-logs-export-configuration

참고

--cloudwatch-logs-export-configuration 옵션에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 --apply-immediately--no-apply-immediately 옵션은 지정해도 아무런 효과가 없습니다.

또한 다음 명령을 사용하여 Oracle 로그를 게시할 수 있습니다.

다음 예에서는 CloudWatch Logs 게시가 활성화된 Oracle DB 인스턴스를 생성합니다. --enable-cloudwatch-logs-exports 값은 문자열의 JSON 배열입니다. 문자열은 alert, audit, listenertrace의 조합일 수 있습니다.

Linux, OS X, Unix의 경우:

aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --enable-cloudwatch-logs-exports '["trace","audit","alert","listener"]' \ --db-instance-class db.m1.small \ --engine oracle-se1

Windows의 경우:

aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --enable-cloudwatch-logs-exports '["trace","audit","alert","listener"]' ^ --db-instance-class db.m1.small ^ --engine oracle-se1

다음 예에서는 CloudWatch Logs에 로그 파일을 게시하도록 기존 Oracle DB 인스턴스를 수정합니다. --cloudwatch-logs-export-configuration 값은 JSON 객체입니다. 이 객체에 대한 키는 EnableLogTypes이며, 해당 값은 alert, audit, listenertrace의 조합을 사용하는 문자열의 배열입니다.

Linux, OS X, Unix의 경우:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["trace","alert","audit","listener"]}'

Windows의 경우:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["trace","alert","audit","listener"]}'

다음 예에서는 CloudWatch Logs에 감사 및 리스너 로그 파일 게시를 비활성화하도록 기존 Oracle DB 인스턴스를 수정합니다. --cloudwatch-logs-export-configuration 값은 JSON 객체입니다. 이 객체에 대한 키는 DisableLogTypes이며, 해당 값은 alert, audit, listenertrace의 조합을 사용하는 문자열의 배열입니다.

Linux, OS X, Unix의 경우:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit","listener"]}'

Windows의 경우:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit","listener"]}'
RDS API

RDS API를 사용하여 Oracle DB 로그를 게시할 수 있습니다. 다음 파라미터로 ModifyDBInstance 작업을 호출할 수 있습니다.

  • DBInstanceIdentifier

  • CloudwatchLogsExportConfiguration

참고

CloudwatchLogsExportConfiguration 파라미터에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 ApplyImmediately 파라미터는 지정해도 아무런 효과가 없습니다.

또한 다음 RDS API 작업을 호출하여 Oracle 로그를 게시할 수도 있습니다.

다음 파라미터로 RDS API 작업 중 하나를 실행합니다.

  • DBInstanceIdentifier

  • EnableCloudwatchLogsExports

  • Engine

  • DBInstanceClass

실행하는 RDS 명령에 따라 다른 파라미터가 필요할 수 있습니다.

알림 로그 및 Listener 로그에 액세스하기 위한 이전의 메서드

Amazon RDS 콘솔을 사용하여 알림 로그를 볼 수 있습니다. 알림 로그는 다음 SQL 문을 사용하여 액세스할 수 있습니다.

select message_text from alertlog;

리스너 로그에 액세스하려면 다음 SQL 문을 사용합니다.

select message_text from listenerlog;

참고

Oracle은 알림 및 리스너 로그가 Amazon RDS 보기에서 이들 로그를 사용할 수 없게 되는 시점인 10MB를 초과할 때 이들 로그를 순환시킵니다.