database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 9820 게시물 읽기
No. 9820
아래 잘되던함수 해결하였습니다.
작성자
알려드림
작성일
2017-05-17 15:39
조회수
8,346

 결국 문제는 pk 인덱스가 깨져서 일어났던문제입니다.

혹시라도 저같은 경우을 격지말시라고 글남깁니다. 에러처리시 리턴값이 없다면 SELECT 대신 PERFORM  을 사용하세요. SQLERRM,SQLSTATE 를 사용하여 에러명을 꼭 확인하세요.
아래 쿼리에서 빨간색으로 표시한곳입니다. 저걸로 에러를 추적하시면 EXCEPTION 처리되었을때 해당 에러를 알려줍니다. 아래 게시물의 경우 read block 에러가 나서 안되었던겁니다. 시스템특성상 delete insrt 가 빈번한대
그러다보니 서버가 죽거나 ㅡㅡ; 자주 인덱스가깨지는 문제가있었습니다. 
 

/* 에러처리 */
EXCEPTION

/* 중복에러 */
WHEN DUP_VAL_ON_INDEX
THEN PERFORM indigo.FN_SAVE_DATA_ERROR_LOG(V_START_DT, V_SEQ_NO);

RAISE NOTICE '중복에러 !';
/* 그밖의 에러 */
WHEN OTHERS
THEN PERFORM indigo.FN_SAVE_DATA_ERROR_LOG(V_START_DT, V_SEQ_NO);

RAISE NOTICE '% %',SQLERRM,SQLSTATE;

                 RETURN 리턴값

 ----------------------------------------------------------------read block 가 일어난 오브잭트를 찾는 방법

이건 EXTENSION 을 활용한 방법이고 PostgreSQL versions 9.6 (before 9.6.1), 9.5 (before 9.5.5), 9.4 (before 9.4.10), and 9.3 (before 9.3.15) 에서 지원하는 방법입니다.


CREATE EXTENSION pg_freespacemap;
SELECT oid::regclass AS relname,  pg_relation_filepath(oid) || '_fsm' AS fsm
FROM pg_class,   CAST(current_setting('block_size') AS BIGINT) AS bs
WHERE relkind IN ('r', 'i', 't', 'm') AND EXISTS  (SELECT 1 FROM   generate_series(pg_relation_size(oid) / bs,   (pg_relation_size(oid, 'fsm') - 2*bs) / 2) AS blk

문제가 되는 오브잭트의 문제점을 해결하시면 됩니다. 
자세한 내용은 여기 를 들어가보시면 있습니다.
 

 

이 글에 대한 댓글이 총 1건 있습니다.

잘해결되셨다니 다행이네요

pk가 깨지다니 트랜잭션이 상당히 많이 발생하는 시스템인가 보네요..

delete,insert가 빈번해서 서버가 죽는것은 뭔가 관리가 필요해보이네요 ㅋ

김주왕(kimjuking)님이 2017-05-17 15:54에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9823PostgreSQL 10 베타 1 나옴. [1]
전상도
2017-05-19
7820
9822ora2pg 사용법 [3]
postgres
2017-05-18
8774
98219.6.3 released
전상도
2017-05-18
7252
9820아래 잘되던함수 해결하였습니다. [1]
알려드림
2017-05-17
8346
9819잘되던 함수가... [10]
알려줘요
2017-05-17
10084
9816pgpool2 failover 오류..
김솔지
2017-05-16
7475
9815외부 이중화 솔루션 사용 중 문제발생. [1]
이정재
2017-05-15
8129
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.028초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다