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 9377 게시물 읽기
No. 9377
To avoid a database shutdown, execute a database-wide VACUUM in that database
작성자
이성필(splee75)
작성일
2013-11-27 14:29
조회수
12,017

 안녕하세요. 눈팅만 하다 가끔 질문을 올리는 회원입니다.

다름이 아니라 아래와 같은 유형의 에러를 경험한 분이 계신지 궁금해서 글을 남깁니다.

---------------

.

.

.

 

[2013-11-27 05:57:19 KST] [192.168.188.26] [[unknown]] [nips] [db_patent] [INSERT] [2] [52950966.d06] HINT:  To avoid a database shutdown, execute a database-wide VACUUM in that database.

You might also need to commit or roll back old prepared transactions.

[2013-11-27 05:57:19 KST] [192.168.188.26] [[unknown]] [nips] [db_patent] [INSERT] [1] [5295090f.b6c] WARNING:  database "db_patent" must be vacuumed within 11000000 transactions

[2013-11-27 05:57:19 KST] [192.168.188.26] [[unknown]] [nips] [db_patent] [INSERT] [2] [5295090f.b6c] HINT:  To avoid a database shutdown, execute a database-wide VACUUM in that database.

You might also need to commit or roll back old prepared transactions.

[2013-11-27 05:57:19 KST] [192.168.188.26] [[unknown]] [nips] [db_patent] [INSERT] [1] [529505e7.13d40] WARNING:  database "db_patent" must be vacuumed within 11000000 transactions

[2013-11-27 05:57:19 KST] [192.168.188.26] [[unknown]] [nips] [db_patent] [INSERT] [2] [529505e7.13d40] HINT:  To avoid a database shutdown, execute a database-wide VACUUM in that database.

You might also need to commit or roll back old prepared transactions.

[2013-11-27 05:57:19 KST] [192.168.188.26] [[unknown]] [nips] [db_patent] [INSERT] [1] [52950a82.1248] WARNING:  database "db_patent" must be vacuumed within 11000000 transactions

[2013-11-27 05:57:19 KST] [192.168.188.26] [[unknown]] [nips] [db_patent] [INSERT] [2] [52950a82.1248] HINT:  To avoid a database shutdown, execute a database-wide VACUUM in that database.

You might also need to commit or roll back old prepared transactions.

.

.

.

----------

위와 같은 에러가 발생하면서 데이터베이스에 select 만 가능하고 나머지 dml, ddl 구문이 안됩니다.

old prepared transaction을 commit 이나 roll back 을 하라고 하는데.. 이미 그런 것은 없습니다. ㅠㅠ

검색을 해봐도... 뾰족한 방법이 없어 이곳에 문의를 드립니다.

 

google에 검색해 보면, backend로 단독으로 접속하여 vaccum 을 하라고 합니다...

그래서...

현재 postgres --single ~~ 구문을 이용하여 backend 로 접근하여 vacuum analyze 를 진행중인데.. 속도가 느려서... 100만개를 처리하려면 너무 오래 걸릴 듯 합니다.

정말 기다리는 수 밖에 없는지 경험있는 분들의 고견을 듣고 싶습니다.

 

 

 

 

 

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

 참... backend 의 구문은 vacuum analyze 를 실행했습니다.

메시지로 남은 트랜잭션 건수가 1개씩 줄어드는 것이 보이는데... 시간이 너무 오래 걸리네요.

vacuum analyze 보다 vacuum이 나을가요?? vacuum은 한 15분 기다렸다가 끊고 .... 남은 트랜잭션을 보았는데... 진행이 안되는 것 같아 vacuum analyze로 실행하고 있습니다.

이성필(splee75)님이 2013-11-27 14:32에 작성한 댓글입니다.

 이 오류 메시지가 바로 oid overflow 이야기입니다, 

 

해당 테이블이 oid를 사용하고, 

그 oid 사용을 다해서 생긴 문제입니다. 

 

해당 테이블과 관계되는 쿼리들에서 oid 사용이 없다면, 

테이블을 oid 없이 다시 만들어서 자료를 새 테이블로 넣고, 

기존 테이블을 지우고, 새 테이블을 기존 테이블 이름으로 만들면 됩니다. 

 

해당 테이블과 관계되는 쿼리들에서 oid 사용이 있다면, 

조금 더 골치 아픕니다. 

일단 vacuum으로 해결 나면 다행인데, 

해당 테이블이 insert only 테이블이라면, 

oid 사용하는 쿼리들을 바꾸고 윗 작업을 해야할 것 같네요.

 

이론적인 부분이 궁금하시면, vacuum 관련 문서를 살펴보세요.

 

 

김상기(ioseph)님이 2013-11-27 23:21에 작성한 댓글입니다.

 아.. 그렇군요.. 감사합니다.

문서를 좀 더 보고 공부를 해야겠습니다.

이성필(splee75)님이 2013-11-28 02:47에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9380postgresql 8.3 dblink 문의 [1]
김주왕
2013-12-05
11364
9379postgresql 백업 복구 관련 문의 [1]
이성필
2013-12-03
12502
9378현재사용하고있는 port 알수있을까요? [1]
강성구
2013-11-28
10807
9377To avoid a database shutdown, execute a database-wide VACUUM in that database [3]
이성필
2013-11-27
12017
9376복제 문의 [2]
남동균
2013-11-17
11304
9374DDEX 설치 문의 입니다. [1]
남동균
2013-11-16
10812
9373데이타베이스 전체 스크립트 생성 문의 [3]
남동균
2013-11-15
10768
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.025초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다