Background Image
운영관리
2010.03.04 02:35

CUBRID 쿼리 수행 중단 시 주의 사항

조회 수 16418 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

CUBRID사용 관련 장애 중 많은 부분에서 log손상 장애를 볼 수 있습니다. 여러 가지 이유가 있을 수 있겠으나 대표적인 이유 중 하나가 잘못 수행한 쿼리 또는 생각보다 오래 걸리는 쿼리를 중단 시키기 위한 Database강제 종료에 있는 경우가 많습니다. 본 내용에서는 쿼리 수행 중단 방법과 장애 발생 시 조치 방법에 대해서 간략하게 정리하도록 하겠습니다.

 

비정상적인 쿼리나 오려걸리는 쿼리를 수행했다고 느낀 경우 아래와 같이 확인을 하시기 바랍니다.

1.    "cubrid broker status -s1 -f" 명령어를 이용하여 broker의 현재 상태를 파악합니다. 이 결과에서 눈 여겨 보아야 할 것은 아래와 같습니다

A.     STATUS                     -> 현재의 상태가 BUSY인지를 확인해야 합니다.

B.     LAST ACCESS TIME    -> LAST ACCESS TIME이 현재 시각과 얼마나 차이가 나는지를 확인합니다.

C.     Query수행 여부 확인  -> 현재 쿼리가 수행 중이라면 해당 cas process에 쿼리문의 일부가 보일 것입니다.

2.    위의 두 가지 항목에 BUSY인 상태와 LAST ACCESS TIME이 오래된 경우(기대 수준에 따라 차이가 있습니다.) 쿼리 수행을 끊어줄 필요가 있습니다.

3.    위의 두 가지 경우는 Broker통하여 DB에 접속하는 경우이나 csql을 이용해서 쿼리를 수행한 경우라면 ctrl+C을 이용해서도 종료가 되지 않는 현상을 볼 수 있을 것입니다.

 

위와 같이 확인이 되었다면 아래와 같이 순차적으로 쿼리 수행을 취소하시기 바랍니다.

1.    CUBRID BROKERcas process를 중단한다. 가장 최우선적인 방법으로 “cubrid broker status –s1 –f”의 결과로 나온 문제의 cas process를 중단하는 작업이 필요합니다. 중단 방법은 “cubrid broker status –s1 –f”의 결과 중 앞에서 둘째 항목인 pidkill명령어를 이용하여 중단합니다.

) kill -9 2088

2.    특정 쿼리가 Broker전체에 영향을 주어 모든 cas process가 느려지는 현상이 발생할 수도 있습니다. 이때는 “cubrid broker off <broker_name>”명령어를 이용하여 해당 brokeroff시킨 다음 “cubrid broker on <broker_name>”명령어를 이용하여 구동합니다.

3.    전체적인 broker 재구동이 필요하다면 “cubrid broker restart”명령어를 이용하여 Broker를 재구동합니다.

4.    csql을 통해 접속한 경우, Broker를 거치지 않고 접속한 경우는 killtran명령어를 이용하여 조치합니다. “cubrid killtran <db_name>”명령어를 사용하면 현재 DB와 접속해 있는 process에 대한 정보가 나타나게 됩니다. 여기에는 Broker를 통한 접속, csql을 통한접속 등이 보이게 됩니다. 연결을 종료할 프로그램이 보인다면 -i옵션을 주어 해당 연결을 종료합니다. 해당 작업은 dba만 가능하므로 dba password를 입력해 주어야 합니다.

5.    연결이 정상적으로 종료가 되었다면 DBtransaction처리를 완료할 때 까지 조금만 기다려 주시면 됩니다.

 

어떠한 이유에서든 DB가 강제종료 되어 에러가 발생하며 구동이 안 되는 경우

1.    “cubrid emergency_patchlog <db_name>” 명령어를 이용하여 손상된 log의 복구를 시도합니다.

2.    “cubrid emergency_patchlog –r <db_name>” 명령어를 이용하여 손상된 log 재생성을 시도합니다.

3.    위의 방법으로 복구가 되지 않을 경우 백업 받은 파일로 복구합니다.

 

* 가장 확실하고 안전한 방법은 백업을 이용한 복구입니다. 안전한 복구를 위하여 반드시 규칙적인 백업을 받아 놓으시기 바랍니다.


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
159 운영관리 자동 백업, 매니져 관리자 암호 등의 설정에 대하여 CUBRID 배포판을 만들어 동일하게 배포하고자 할때 남재우 2009.12.16 12829
158 CUBRID 매니저 CUBRID Manager에서 날짜타입이 있는 excel 파일 올릴때 주의할점. file seongjoon 2009.12.16 16933
157 응용개발 CUBRID의 날짜형 타입을 java의 날짜형 타입에 할당할 때의 값 비교. file seongjoon 2009.12.16 20420
156 운영관리 CUBRID Manager의 백업 자동화를 이용하여 요일 별로 백업을 하는 방법. file seongjoon 2009.12.16 15668
155 응용개발 CUBRID AUTO_INCREMENT 컬럼 MySQL LAST_INSERT_ID() 대체 방법 손승일 2009.12.22 33235
154 마이그레이션 CUBRID는 MySQL의 varchar(255)와 동일한 길이가 아닌가요? 손승일 2009.12.28 27790
153 질의작성 쿼리로 테이블이 존재하는지 확인하기 시난 2009.12.28 23521
152 질의작성 쿼리로 인덱스 정보 확인하기 시난 2009.12.29 24640
151 응용개발 php에서 serialize/unserialize 사용 시 주의할 점 시난 2009.12.29 31628
150 운영관리 CUBRID Database page크기 확인 방법 janus 2009.12.31 16017
149 질의작성 CUBRID설치 후 default설정 상태에서 Query Plan보기(CSQL모드) cubebridge 2009.12.31 16507
148 기타 EVALUATE method 수행시 주의해야 할 점 웁쓰 2009.12.31 12875
147 질의작성 Integer 컬럼의 결과에 + or – 연산을 할 때 주의해야 할 점 웁쓰 2009.12.31 13493
146 기타 glo 사용시 loaddb 주의 사항 웁쓰 2009.12.31 18650
145 마이그레이션 타 DB 에서 마이그레이션시 질의 변경 샘플 - CASE 문 웁쓰 2009.12.31 21924
144 CUBRID 매니저 질의편집기 사용시 주의할 점 남재우 2010.01.01 13112
143 운영관리 cubrid_service.exe 가 CPU 를 지속적으로 일정부분 점유하는 경우 남재우 2010.01.01 13030
142 기타 테이블에 comment 사용하기 1 남재우 2010.01.01 21051
141 질의작성 문자 코드셋(UTF-8, EUC-KR) 사용시 CUBRID 는? 남재우 2010.01.01 22398
140 CUBRID 매니저 CUBRID에서 OID 확인하는 방법 file seongjoon 2010.01.02 16308
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 14 Next
/ 14

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales