Background Image

FORUM

조회 수 8885 추천 수 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 4267
» DB 비정상 종료로 복구 후 특정 select 에러 발생 5 freemir 2012.08.02 8885
2735 SQL 에러 문의드립니다. 1 k.. 2012.08.04 15516
2734 java PreparedStatement 변수 바인딩 시 에러 1 빛돌 2012.08.04 16345
2733 cubrid addvoldb 명령어 사용 3 깽즈야 2012.08.08 7980
2732 큐브리드 함수 문의 1 아름다운음악 2012.08.10 12771
2731 데이터베이스 암호화에 대한 질문 1 file 유니콘 2012.08.14 8730
2730 cubrid 백업 문의 1 깽즈야 2012.08.17 7203
2729 cubrid ha 구성시에 master node에서 csql 접속 문제 1 깽즈야 2012.08.17 6318
2728 CCI API로 DB Insert 구현 시 JDBC 구현에 비해 속도가 떨어지는 문제 2 nimbus89 2012.08.17 7961
2727 큐브리드매니저.. sql파일 열기가 안되는거 맞나요? 6 안지민 2012.08.20 8011
2726 single_byte_compare 설정 및 호스팅 서비스 질문 1 리오 2012.08.22 6490
2725 cubrid_master 프로세스가 사용하는 1523포트에 대해서 2 DiaBlue 2012.08.23 8747
2724 스프링의 GeneratedKeyHolder를 쓸수 있나요? 2 file 안지민 2012.08.24 8916
2723 큐브리드 디비 loaddb 시 에러 다시 문의 드립니다. 2 천상하늘 2012.08.24 8785
2722 큐브리드 매니저 비밀번호 오류메시지 2 file 종이 2012.08.24 6074
2721 cubrid_real_escape_string 값이 빈 값으로 리턴 됨 4 file 차오이 2012.08.25 5547
2720 이전에 질문드렸었는데요.. 중복 제거 쿼리문 재질문드립니다... 2 광황제 2012.08.25 9113
2719 DB링크 사용이 가능한지 문의드립니다. 1 secret 장경수 2012.08.28 5
2718 loaddb시 피시 메모리 증가와 스왑에 따른 종료문제 7 천상하늘 2012.08.28 11332
2717 cubrid manager 접속 오류와 관련하여 1 bizsp 2012.08.30 5766
Board Pagination Prev 1 ... 58 59 60 61 62 63 64 65 66 67 ... 199 Next
/ 199

Contact Cubrid

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