Background Image

FORUM

조회 수 8886 추천 수 0 댓글 5
?

단축키

Prev이전 문서

Next다음 문서

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

안녕하세요.


얼마전 운영 중인 CUBRID 서버가 비정상 종료 된 이후 로그 파일을 찾을 수 없다고 나와 복구를 진행했습니다.


[에러 메시지]

Time: 07/28/12 20:19:59.343 - ERROR *** ERROR CODE = -10, Tran = 0, CLIENT = (unknown):(unknown)(-1), EID = 1

Unable to mount disk volume "/var/lib/cubrid822/databases/DATABASE/DATABASE_lgar3379".... No such file or directory


위와 같이 에러가 발생하며 구동이 되지 않아


# cubrid emergency_patchlog DATABASE


명령으로 복구 후 구동이 되었습니다.


INSERT/UPDATE/DELETE 등에 문제가 없는데 다음 명령을 실행하면 에러가 발생합니다.


select * from member_sessions where site_id = 12178


[에러 메시지]

Time: 08/02/12 10:26:48.621 - ERROR *** ERROR CODE = -495, Tran = 6, CLIENT = DATABASE-db3:query_editor_cub_cas_1(6392), EID = 3939

Execute: Query execution failure #9659.


특정 테이블 혹은 데이터에 문제가 생긴 것 같은데 에러코드 확인 방법과 문제 조치 방법에 대한 조언을 부탁드립니다.


감사합니다.

  • ?
    이용미 2012.08.03 00:56

    안녕하세요. 질문 감사 드립니다.

    Emergency_patchlog 이후 정상적으로 구동이 된다고 하셨으니 복구는 정상적으로 완료된 것으로 보입니다.

    해당 오류 자체로는 원인 파악이 어려우므로 오류가 발생한 시간대의 $CUBRID/log/server 디렉토리에 있는 로그파일을 첨부 부탁 드립니다.

  • ?
    freemir 2012.08.03 18:12

    [DB의 데이터베이스가 종료된 시점의 에러 로그]

    Time: 07/28/12 20:09:19.421 - ERROR *** ERROR CODE = -10, Tran = 0, CLIENT = (unknown):(unknown)(-1), EID = 14251

    Unable to mount disk volume "/var/lib/cubrid822/databases/DB_NAME/DB_NAME_lgar3379".... No such file or directory


    Time: 07/28/12 20:09:19.449 - FATAL ERROR *** ERROR CODE = -97, Tran = 0, CLIENT = (unknown):(unknown)(-1), EID = 14252

    Internal error: unable to find log page 17316729 in log archives.


    상기와 같이 에러가 기록되고 있었으며, 로그파일을 찾지 못해 구동이 되지 않는 상태였습니다. csql로 접속도 안되는 상태여서 emergency_patchlog를 실행했습니다.



    [emergency_patchlog 이후 에러 메시지]

    Time: 07/28/12 20:36:52.828 - ERROR *** ERROR CODE = -407, Tran = 2, CLIENT = DB_NAME-db3:broker1_cub_cas_2(6404), EID = 1

    Unknown key {12155, '0', timestamp '12:35:37 PM 07/26/2012', 6963} referenced in B+tree index {vfid: (72022, 4), rt_pgid: 79220, key_type: midxkey}.


    Time: 07/28/12 20:38:45.347 - ERROR *** ERROR CODE = -407, Tran = 2, CLIENT = DB_NAME-db3:broker1_cub_cas_2(6404), EID = 2

    Unknown key {12155, '0', timestamp '12:35:37 PM 07/26/2012', 6963} referenced in B+tree index {vfid: (72022, 4), rt_pgid: 79220, key_type: midxkey}.


    Time: 07/28/12 20:51:52.634 - ERROR *** ERROR CODE = -495, Tran = 2, CLIENT = DB_NAME-db3:broker1_cub_cas_2(6404), EID = 12

    Execute: Query execution failure #9659.


    Time: 07/28/12 20:52:10.730 - ERROR *** ERROR CODE = -407, Tran = 2, CLIENT = DB_NAME-db3:broker1_cub_cas_2(6404), EID = 14

    Unknown key {0, 10657, '0', '0', timestamp '08:09:04 PM 07/28/2012'} referenced in B+tree index {vfid: (34890, 4), rt_pgid: 39500, key_type: midxkey}.


    이후 상기와 같은 에러가 발생되고 있습니다.

  • ?
    이용미 2012.08.04 01:55

    안녕하세요. 첨부해주신 내용 감사 드립니다.

     

    데이터베이스가 비정상 종료되면 로그, Data, Index 등이 손상될 가능성이 높습니다. 질문자님의 경우는 아카이브 로그가 손상되어 정상적인 구동이 어려웠던 것으로 보입니다. 로그가 손상되었을 경우, “emergency_patchlog”를 이용하여 로그 복구는 가능합니다만 Data, Index 등의 손상에 유무에 대해서는 알 수 없습니다. 해당 유틸리티 사용 후, DB가 정상적으로 구동 된 것으로 보아 로그 복구는 완료되었음을 알 수 있습니다.

     

    로그 복구 이후 발생한 407번 오류를 살펴보면 select SQL문 수행 시 잘못된 키가 인덱스를 참조한다고 되어있습니다. 이것으로 보아 비정상적인 종료로 인한 인덱스 손상이 발생한 것으로 보입니다. 데이터 손상에 대해서는 현재 알 수 없습니다.

     

    해결 방법으로는 가능한 빠른 시일 내에 2번 방법을 통하여 복구 하시는 것을 권장하지만 해당 방법의 경우 서비스를 중지시킨 후 작업을 해야 합니다. 그러므로 작업이 바로 불가능하시다면 1번 방법을 이용하여 오류를 해결하신 후 빠른 시일 내에 2번 방법을 통하여 복구하시는 것이 좋습니다.

    1.     cubrid checkdb r DB_NAME

    checkdb 유틸리티는 데이터베이스의 일관성을 확인하는 유틸리티로 “-r” 옵션 사용시 자동 수정 작업까지 포함합니다. checked 유틸리티에 대한 자세한 사항은 매뉴얼(http://www.cubrid.com/online_manual/841/admin/admin_db_check.htm)을 참고하시면 됩니다.

    2.     Unloaddb/Loaddb

    재구성에 대한 자세한 사항은 다음 링크를 참고하시면 됩니다.

    Unloaddb : http://www.cubrid.com/online_manual/841/admin/admin_migration_unload.htm

    Loaddb : http://www.cubrid.com/online_manual/841/admin/admin_migration_load.htm

     

    위의 방법으로도 문제가 해결되지 않으신다면 댓글 부탁 드립니다.
  • ?
    freemir 2012.08.06 09:05

    알려주신 방법 중 1번으로 해보니 처리가 안되는 상태입니다.


    cubrid checkdb -r DB_NAME 으로 복구 진행시


    Time: 08/06/12 00:02:10.301 - ERROR *** ERROR CODE = -40, Tran = 9, CLIENT = DB_NAME-db3:checkdb(32270), EID = 5243

    Internal error: 1730 expected pages, 1616 found pages for file VFID 4|43(volume "/var/lib/cubrid822/databases/DB_NAME/DB_NAME_x004").


    상기와 같이 복구 진행이 안되는 상태입니다.

    실 서비스 중인 데이터베이스라 새벽 시간에 unloaddb / loaddb 로 복구를 진행해보고 결과 말씀드리겠습니다.

    감사합니다.

  • ?
    freemir 2012.08.08 18:46

    unloaddb , deletedb, createdb, loaddb 를 통해 복구했습니다.

    loaddb 시 로그를 보면 특정 object가 없다고 나왔습니다.

    이후 쿼리 수행 시 문제는 없는 상태입니다.

    감사합니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4444
1247 cubrid 백업 문의 1 깽즈야 2012.08.17 7204
1246 데이터베이스 암호화에 대한 질문 1 file 유니콘 2012.08.14 8731
1245 큐브리드 함수 문의 1 아름다운음악 2012.08.10 12775
1244 cubrid addvoldb 명령어 사용 3 깽즈야 2012.08.08 7980
1243 java PreparedStatement 변수 바인딩 시 에러 1 빛돌 2012.08.04 16350
1242 SQL 에러 문의드립니다. 1 k.. 2012.08.04 15526
» DB 비정상 종료로 복구 후 특정 select 에러 발생 5 freemir 2012.08.02 8886
1240 table, column에 코멘트를 넣을 수 있는지요? 2 hangum 2012.08.02 7322
1239 sql 쿼리중 중복 제거 문제 조언좀 부탁드립니다... 2 광황제 2012.08.01 13483
1238 DB생성시 문자집합 변경 1 까망이 2012.07.31 7138
1237 tomcat7 + cubrid 1 깽즈야 2012.07.27 91021
1236 Node.js 용 모듈 있나요? 1 데니 2012.07.25 7900
1235 HA 에서 테이블 생성을 하는 방법 문의 3 freemir 2012.07.23 6120
1234 [질문 2개] ERROR CODE = -452 3 reerror 2012.07.20 8358
1233 c# 으로 DB생성하기.... 2 안드레세상 2012.07.20 9555
1232 insert all 사용방법이??? 1 머리아파 2012.07.19 9903
1231 PHP , cubrid_fetch 문의 9 Aramis 2012.07.19 6015
1230 라이센스 관련 문의 드립니다. 1 달려용 2012.07.19 6875
1229 ERROR CODE = -41 2 reerror 2012.07.18 8623
1228 java에서 플랜정보 문의 2 hangum 2012.07.17 5587
Board Pagination Prev 1 ... 133 134 135 136 137 138 139 140 141 142 ... 200 Next
/ 200

Contact Cubrid

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