발생원인 : 사용자의 소트 작업 중 Temp Segment의 확장실패로 인해 발생함
조치방안 : 먼저 Temp Segment의 PCTINCREASE가 0인지를 확인한다.


PCTINCREASE가 0이 아닌 경우에 Extent확장 시 발생하는 경우가 대부분이다.
또한 Temp, Tablespace의 INITIAL과 NEXT값이 과도하게 클 경우 각 사용자별로 같은 값을 할당하기 때문에 다수의 사용자가 Sort작업으로 인해 TEMP Segment를 요청하는 경우 위와 같은 에러가 발생할 수도 있으므로 TEMP Tablespace의 INITIAL, NEXT값을 되도록 크지 않게 가져간다(Initial은 최대 10M만, NEXT는 최대 5M미만으로 설정한다)

 

 

temp tablespace를 사용하는 sql문 찾기
## temp_size.sql ==> temporary tablespace size

 

set pages 40
set line 132
col tbs_name format a15
col Used_mega format a15
col Used_PCT format 999.99
col Cache_PCT format 999.99

SELECT d.tablespace_name tbs_name, d.status Status, d.CONTENTS Type,
d.extent_management Ext_manage,
NVL(a.BYTES / 1024 / 1024, 0) Total_mega,
NVL(t.BYTES, 1)/1024/1024 ||' / '|| NVL(a.BYTES / 1024 / 1024, 1) Used_mega,
NVL(t.BYTES / a.BYTES * 100, 1) Used_PCT,
NVL(t.curnt_byte/1024/1024, 1) Cache_mega,
(NVL(t.curnt_byte/1024/1024, 1)/NVL(a.BYTES / 1024 / 1024, 0)*100) Cache_PCT
FROM SYS.dba_tablespaces d,
(SELECT tablespace_name, SUM (BYTES) BYTES
FROM dba_temp_files
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM (BYTES_USED) curnt_byte, sum(BYTES_CACHED) BYTES
FROM v$temp_extent_pool
GROUP BY tablespace_name) t
WHERE d.tablespace_name = a.tablespace_name(+)
AND d.tablespace_name = t.tablespace_name(+)
AND d.extent_management LIKE 'LOCAL'
AND d.CONTENTS LIKE 'TEMPORARY';

clear columns
ttitle off

'CONSULTING SERVICE > Trouble Shooting' 카테고리의 다른 글

ORA-994 : missing OPTION keyword  (0) 2018.04.23
ORA-29740  (0) 2018.04.23
ORA-1651  (0) 2018.04.23
ORA-4031 unable to allocate %s bytes of shared memory  (0) 2018.04.23
ORA-02097, ORA-00439  (0) 2018.04.23
Posted by Any DB
,

TEMPORARY TABLESPACE를 확장해줌으로서 해결 완료

ALTER DATABASE TEMPFILE '....' autoextend on next 200M;


resize
alter database tempfile '...' resize 2000m;

 

'CONSULTING SERVICE > Trouble Shooting' 카테고리의 다른 글

ORA-29740  (0) 2018.04.23
ORA-1652  (0) 2018.04.23
ORA-4031 unable to allocate %s bytes of shared memory  (0) 2018.04.23
ORA-02097, ORA-00439  (0) 2018.04.23
ORA-19809, ORA-19804, ORA-19815  (0) 2018.04.23
Posted by Any DB
,

 이 에러 메세지는 SQL 정보를 저장할 수 잇는 충분한 크기의 사용 가능 메모리 조각을 공유 풀의 프리리스트에서 찾지 못하고 또한 LRU리스트를 검색해도 찾지 못 할 경우 발생한다.

 이를 해결하기 위해서는 다음의 4가지를 고려할 수 있다.

 

 

1. Shared Pool 초기화 - Shared Pool 내에 존재하는 모든 내용을 제거하여 초기화를 수행할 수 있다. Shared Pool 내의 연속된 메모리 조각들을 하나의 조각으로 합쳐주는 역활을 수행하게 된다. 수행 방법은 다음과 같다.

  SQL> ALTER SYSTEM FLUSH SHARED_POOL;

그러나 위의 방법은 다른 SQL 정보도 Shared Pool에서 제거하므로 해당 명령어를 수행한 후에는 모든 SQL이 하드 구문 분석을 수행하게 되어 성능 저하가 발생 할 수 있다.

 

2. 패치 등을 고려 - ORA-4031 에러는 오라클 버그로 등록된 부분이 있으므로 해당 오라클 버전을 확인하여 오라클 패치 적용 및 업그레이드 등을 고려할 수 있다.

 

3. 파라미터 설정 - SHARED_POOL_RESERVED_SIZE 파라미터 설정을 통해 에러를 감소 시킬 수 있다.

 

4. Large Pool 설정 - 병렬 프로세싱을 사용한다면 Large Pool 설정으로 해당 에러를 감소 시킬 수 있다.

 

 

 

 



출처: http://boeok.tistory.com/entry/ORA4031-unable-to-allocate-s-bytes-of-shared-memory?category=564566 [Secret]

 

'CONSULTING SERVICE > Trouble Shooting' 카테고리의 다른 글

ORA-1652  (0) 2018.04.23
ORA-1651  (0) 2018.04.23
ORA-02097, ORA-00439  (0) 2018.04.23
ORA-19809, ORA-19804, ORA-19815  (0) 2018.04.23
libawt.so: libXp.so.6: cannot open shared object file:  (0) 2018.04.23
Posted by Any DB
,

Unable to restore resource manager plan to '':
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00439: feature not enabled: Database resource manager

 

 

오라클 Bug 4343398.

Oracle 10g SE버전에서 RMAN을 사용할 수 없어서 발생하는 Alert Msg.

그냥 무시해도 무방하며, 10.2.0.3에서 Fix되었다.

보기 싫은 사람은 10.2.0.3이상으로 패치를 해주면 해결된다



출처: http://boeok.tistory.com/entry/ORA02097-ORA00439-ERROR?category=564566 [Secret]

Posted by Any DB
,

이 경우는 대부분이 데이터 입력, 삭제 또는 복구 작업시에 일어나며, Archive Mode 운영중일때 발생한다.

[운영 로그 확인]

c:\> type C:\oracle\product\10.2.0\SID\alert_SID

; 오류가 발생하면 위와 같은 로그 파일을 생성한다.

Thu Apr 06 21:45:55 2006
Errors in file c:\oracle\product\10.2.0\admin\oradb\bdump\oradb_arc0_3556.trc:

ORA-19815: 경고: db_recovery_file_dest_size/2147483648바이트는 100.00%가 사용 중이므로, 나머지 0바이트를 사용할 수 있습니다.

; 위의 로그를 확인 한 결과 dest_size가 full이 되어서 발생한 행걸림 현상을 확인.

[로그 확인]

sql> archive log list;

데이터베이스 로그 모드 아카이브 모드
자동 아카이브 사용
아카이브 대상 USE_DB_RECOVERY_FILE_DEST
가장 오래된 온라인 로그 순서 1
아카이브할 다음 로그 1
현재 로그 순서 3

sql> show parameter archive;

NAME TYPE VALUE
-------------------------- ------------------------- -------------------------------
archive_lag_target integer 0
log_archive_config string
log_archive_dest string
log_archive_dest_1 string

; 위의 내용을 보면 log_archive_dest에 보면 Value가 없다. 진행이 안된 상태이다.

sql>show parameter dest;

; dest에 관련된 파라메터를 확인한다.


 

[해결방안1]
DB를 Shutdown immediate를 한다.
initSID.ora 파일 내용중 dest_size line을 주석처리한다.
DB를 Startup 한다

[해결방안2]
sql> alter system set db_recivery_file_dest_size=3000M;
운영중인 DB에서 dest_size를 늘려준다.


alert.log파일에 이런 에러가 떴거든요...

ORA-19815: 경고: db_recovery_file_dest_size/2147483648바이트는 85.28%가 사용 중이므로,
나머지 316203008바이트를 사용할 수 있습니다.


Thu Jul 13 10:54:55 2006
************************************************************************
You have following choices to free up space from flash recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMAN
BACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to
reflect the new space.
4. Delete unnecessary files using RMAN DELETE command. If an operating
system command was used to delete files, then use RMAN CROSSCHECK and
DELETE EXPIRED commands.
************************************************************************



가장 많이 발생하는 원인은 아카이브 로그 파일이 계속 쌓일 경우입니다.

OS 상에서 아카이브 로그 파일을 삭제하였을 경우에도 RMAN 상에서는 삭제한 걸 인식하지 못합니다.

해결 방법으로는

1) db_recovery_file_dest_size의 크기를 늘려 준다.

2) 필요 없는 아카이브 파일 OS에서 삭제후 RMAN에서 삭제

- OS 상에서 아카이브 삭제

- RMAN> crosscheck archivelog all;

RMAN> delete expired archivelog all;

3) 백업 정책 확인



출처: http://boeok.tistory.com/entry/ORA19809-ORA19804-ORA19815?category=564566 [Secret]

Posted by Any DB
,