* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
리눅스 64bit | |
CUBRID 2008 R4.1 (8.4.1.7007) | |
CUBRID 매니저 2008 R4.3 (32bit) 빌드번호 8.4.3.3001 | |
java |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
1. 데이터볼륨이 3% 정도 남았습니다 .
데이터가 큰 테이블을 삭제하여 전체적인 데이터 건수가 2억여건에서 2천만건으로 줄었습니다만
데이터 볼륨의 사용 가능한 공간이 확보되지 않네요
그래서 compactdb를 사용 하여 정리 했음에도 공간이 확보되지 안네요
운영중인 DB라 재구축하기에는 리스크가 큽니다 또한 디스크용량도 거의 한계라 저장공간에서 볼륨을 추가하기 힘든 상황입니다
방법이 있을까요?
안녕하세요. 큐브리드를 이용해 주셔서 감사합니다.
데이터를 삭제하여도 볼륨은 정리 되지 않습니다.
compactdb 유틸리티는 볼륨중에 사용되지 않은 공간을 확보하기 위해서 사용되는데, 많은 볼륨들이 사용되고 있어 compactdb를 수행하여도 공간 확보가 안 된 것 같습니다.
DELETE/INSERT가 반복적으로 수행되는 테이블이라면 "REUSE_OID"를 선언하여 사용는 것이 좋습니다.
매뉴얼 참조 : http://www.cubrid.org/manual/ko/9.3.0/sql/schema/table.html?highlight=reuse_oid
[확인 및 조치]
1. 기타 불필요한 파일 정리 : core 및 설치파일들
2. cubrid.conf설정 확인 및 아카이브 로그 정리
cat $CUBRID/databases/databases.txt 에서 vol-path로 이동하여 *lgat파일 개수 확인
--> DB에서 관리하는 아카이브로그인데 보통 10~20개를 보관합니다.(개당 512M)
cat $CUBRID/conf/cubrid.conf에서 log_max_archives=설정값 의 개수로 저장하면 force_remove_log_archvies=yes로 설정된 경우 설정값에 따라 유지하게 됩니다.
--> 혹 해당 설정이 안 되어 다량의 아카이브로그를 가지고 있는지 확인 해주세요
--> csql -u dba DB명으로 아래와 같이 동적으로 변경이 가능합니다.
csql> SET SYSTEM PARAMETERS 'log_max_archives=10';
Execute OK. (0.000151 sec) Committed.
csql> SET SYSTEM PARAMETERS 'force_remove_log_archives=yes';
Execute OK. (0.000202 sec) Committed.
--> 해당 설정파일 변경 후, cubrid backupdb -r 로 수행하면 *lgat파일이 정리 될 것입니다.
3. sql_log정리
cat $CUBRID/conf/cubrid_broker.conf에 보면
LOG_DIR경로가 존재합니다.
해당 경로에 broker별 CAS에 대한 질의문이 누적됩니다.
해당 sql.log / slow.log파일들을 다른 DISK로 백업 후 삭제 하시기 바랍니다.
감사합니다.