Background Image
운영관리
2010.03.04 02:35

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

조회 수 16402 추천 수 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 운영관리 insert 질의로 16K 이상 데이터 입력 시 오류 문제와 해결방법 정만영 2010.07.01 13184
158 CUBRID 매니저 MS949 charset을 CM에서 선택할 수 없는 현상 조치방법 cubebridge 2010.05.17 20543
157 질의작성 모든 필드에 하나 이상 중복 값 찾기 정만영 2010.04.27 21584
156 운영관리 큐브리드 백업파일(볼륨)을 이용한 과거 데이터 복구 시나리오 janus 2010.04.01 21250
155 응용개발 CUBRID에서 euc-kr의 한글 데이터를 utf-8의 한글 데이터로 변경 시 주의할 점 cubebridge 2010.04.01 22393
154 CUBRID 매니저 CUBRID Manager의 host 및 질의편집기 설정 저장 위치 seongjoon 2010.04.01 14708
153 운영관리 CUBRID 데이터베이스 버퍼 캐쉬 파라미터($CUBRID/conf/cubrid.conf) Hint 정만영 2010.03.31 17319
152 운영관리 linux에서 ipcs를 이용한 CUBRID의 Shared Memory 확인하는 방법 seongjoon 2010.03.31 25798
» 운영관리 CUBRID 쿼리 수행 중단 시 주의 사항 cubebridge 2010.03.04 16402
150 운영관리 CUBRID에서의 출력 메시지 한글로 변경 방법. file seongjoon 2010.03.01 12440
149 질의작성 group by 사용 방법 및 여러 필드중 하나의 필드에 대하여만 group by 처리 방법 남재우 2010.02.26 21709
148 응용개발 패키지 형태로 생성된 JAVA class를 JAVA SP에서 사용하기 손승일 2010.02.26 18375
147 응용개발 CUBRID2008 Java Stored Procedure 등록 방법 cubebridge 2010.02.24 19562
146 운영관리 한 호스트내의 DB경로 변경 방법 janus 2010.02.19 12265
145 운영관리 큐브리드 복제 구성 시 마스터 데이터베이스 백업 주의사항 정만영 2010.02.11 12591
144 CUBRID 매니저 CUBRID Manager에서 데이터 검색 결과를 파일로 내려받는 방법. file seongjoon 2010.02.09 15316
143 질의작성 CUBRID에서 대소문자 관리 남재우 2010.01.30 19507
142 CUBRID 매니저 큐브리드 매니저 "선택한 JDBC 드라이버는 CUBRID를 지원하지 않습니다." 해결방법 file 정만영 2010.01.29 22513
141 CUBRID 매니저 CUBRID에서 여러개의 질의 결과 확인하는 방법 file seongjoon 2010.01.02 14439
140 CUBRID 매니저 CUBRID에서 OID 확인하는 방법 file seongjoon 2010.01.02 16305
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