환경: 10.2.0.3 RAC on AIX

 

변경내용: 트레이스 파일이 문제 DML 혹은 버그로 인한 에러 발생시마다 약 4GB Trace(trc)파일을 생성(OS ASCII 파일의 제한값으로 추측됨)하여 MAX_DUMP_FILE_SIZE 값을 기존 unlimited에서 100 MB를 목적으로 100m 설정하였으나 ora-02065 발생하여 102400000 으로 변경

$ sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Mon May 12 15:54:15 2014

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning option

 

SQL> alter system set max_dump_file_size=100m scope=both;

alter system set max_dump_file_size=100m scope=both

                                       *

ERROR at line 1:

ORA-02065: illegal option for ALTER SYSTEM

 

SQL> alter system set max_dump_file_size=102400000 scope=both;

 

System altered.

 

문제: 여전히 에러 발생시 4GB정도의 Trace 파일 생성

 

원인오라클 공식 매뉴얼의 애매한 정보로 인한 잘못된 값 설정, 버그로 인한 k, m 설정 불가.

문서상의 내용은 아래와 같음

Parameter type String

Syntax MAX_DUMP_FILE_SIZE = { integer [K | M] | UNLIMITED }

Default value UNLIMITED

Modifiable ALTER SESSION, ALTER SYSTEM

Range of values 0 to unlimited, or UNLIMITED

Basic No

MAX_DUMP_FILE_SIZE specifies the maximum size of trace files (excluding the alert file). Change this limit if you are concerned that trace files may use too much space.

A numerical value for MAX_DUMP_FILE_SIZE specifies the maximum size in operating system blocks.

A number followed by a K or M suffix specifies the file size in kilobytes or megabytes.

The special value string UNLIMITED means that there is no upper limit on trace file size. Thus, dump files can be as large as the operating system permits.

k m으로 설정할 경우 파일크기로 설정할 수 있다고 하나 이는 2014 5월 최신 버전인 11.2.0.4 버전조차 적용되지 않고 ora-02065를 발생. k m을 사용하지 않을 경우 이는 OS block의 개수를 의미

 

해결: 작은따옴표 (‘ ‘)를 사용하여 명령어 수행

SQL> alter system set max_dump_file_size=’100m’ scope=both;

 

System altered.

 

결과확인: 100MB는 테스트하기 너무 크기에 4KB로 제한해서 테스트

SQL> alter session set tracefile_identifier=’test’;

 

Session altered.

SQL> alter system set max_dump_file_size='4k' scope=both;

 

System altered.

 

SQL> alter session set sql_trace=true;

 

Session altered.

 

SQL> select * from v$backup;   --아무 문장이나 조회 가능한 문장을 반복 수행하여 trc 파일의 크기를 늘림

$ pwd

/oracle/app/oracle/diag/rdbms/orcl/orcl/trace

$ ls -l | grep test

-rw-r-----    1 oracle   oinstall       4135 May 12 17:03 orcl_ora_7471202_test.trc

-rw-r-----    1 oracle   oinstall        137 May 12 17:03 orcl_ora_7471202_test.trm

$ tail orcl_ora_7471202_test.trc

FETCH #4573087688:c=292,e=12519,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=1,plh=4031894181,tim=451245055341

FETCH #4573087688:c=238,e=2816,p=0,cr=0,cu=0,mis=0,r=4,dep=0,og=1,plh=4031894181,tim=451245058417

STAT #4573087688 id=1 cnt=5 pid=0 pos=1 obj=0 op='FIXED TABLE FULL X$KCVFHONL (cr=0 pr=0 pw=0 time=12501 us cost=0 size=74 card=1)'

 

*** 2014-05-12 17:03:45.961

CLOSE #4573087688:c=14,e=15,dep=0,type=0,tim=451247403409

=====================

PARSING IN CURSOR #4573087688 len=22 dep=0 uid=0 oct=3 lid=0 tim=451247403554 hv=1902309294 ad='70001000bd1a178' sqlid='0579bzjsq5vxf'

*** DUMP FILE SIZE IS LIMITED TO 4000 BYTES ***

 

기타: 모든 버전, 모든 OS에 적용 가능.

11gR2 매뉴얼에서도 오라클은 해당 항목의 오류를 고치지 않고 있으며 MOS에서는 unpublished bug로 기록됨

참고문서: Oracle Database Reference 10gR2, 11gR2

ORA-2065 Or ORA-2248 When Setting Max_dump_file_size To K / M Or G (문서 ID 1387694.1)

Posted by neo-orcl
,