Background Image

FORUM

조회 수 11332 추천 수 0 댓글 7
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제

안녕하세요. 밑에 글을 올렸었는데. -c옵션으로 주기적으로 commit하도록 로드를 해도 발생을 해서
다시 질문 드립니다.

 

8.2.2버전의 디비를 8.4.0로 업그레이드 하기 위해서 unload를 받고.

해당 objects 파일을 loaddb하는 중에 발생한 에러입니다.

unloaddb 된 objects 파일의 크기는 1.7G입니다.

 

전체를 한번에 올리려고 할때의 에러.. (메모리 스왑이 일어나면서 그와 동시에 발생합니다)
--------------------------------------------------------------------------------------

GC Warning: Header allocation failed: Dropping block.
GC Warning: Out of Memory!  Returning NIL!
CUBRID cannot allocate main memory and must halt execution.
The current transaction has been aborted.
Data integrity has been preserved.
Line 1374058:Your transaction cannot be rolled back since logging was ignored. Your database may be corrupted.
Line 1374058:Cannot create MOP with NULL OID.
Line 1374058:Cannot create MOP with NULL OID.
Line 1374058:Accessing deleted object -1|-16410289|-1.
Line 1374058:Accessing deleted object -1|-16410289|-1.
--------------------------------------------------------------------------------------

 

-c 옵션으로 주기적으로 커밋하도록 할때 에러.. (메모리 스왑이 일어나면서 그와 동시에 발생합니다)
--------------------------------------------------------------------------------------
452000 instances committed
453000 instances committed
GC Warning: Header allocation failed: Dropping block.
GC Warning: Out of Memory!  Returning NIL!
CUBRID cannot allocate main memory and must halt execution.
The current transaction has been aborted.
Data integrity has been preserved.
Line 1374086:Your transaction (index 1, aaa@aaa|15528) has been unilaterally aborted by the system.
Line 1374086:Cannot create MOP with NULL OID.
Line 1374086:Cannot create MOP with NULL OID.
GC Warning: Out of Memory!  Returning NIL!
CUBRID cannot allocate main memory and must halt execution.
The current transaction has been aborted.
Data integrity has been preserved.
Line 1374086:Your transaction (index 1, aaa@aaa|15528) has been unilaterally aborted by the system.
Line 1374086:Cannot create MOP with NULL OID.
Line 1374086:Cannot create MOP with NULL OID.
--------------------------------------------------------------------------------------

 

-c옵션을 주고 loaddb를 해도 피시의 사용 메모리가 꾸준히 계속 증가를 하고
4기가 메모리에 육박해서 os자체적인 기능에 의해서 사용메모리를 하드디스크로 내리는 스왑이 일어날때
loaddb자체가 실패나면서 종료되어버리고 core파일이 생깁니다.

 

저희가 사용하는 디비가 다른 웹 디비에 비해서 set을 상당히 많이 사용합니다.

각 테이블들끼리 연결은 모두 set으로 처리되어있어서 테이블 전체 스키마를 보면 트리구조 처럼 되어있습니다.

혹시 그게 원인이 될까해서 남겨봅니다.

 

그럼 좋은하루 되시길 바랍니다. ^^


 

  • ?
    이용미 2012.08.29 01:18

    안녕하세요

    loaddb 옵션 “--no-logging, --no-statistics, "-l" ,-c”를 10,000단위로 옵션을 추가 후 수행해 보시기 바랍니다만약 동일한 문제가 있다면 질문하신 내용과 같이 데이터 로드 중간에 서버 리소스(메모리) 부족으로 발생되는 현상이라 서버 메모리 증설을 검토해 보시는 것이 좋을 것으로 보입니다.

  • ?
    천상하늘 2012.08.30 17:54

    안녕하세요 말씀해 주신것처럼 테스트를 해보았습니다.

     

    결론적으로 이야기를 드리면 메모리 스왑과는 상관이 없는 문제였던것 같습니다.

    메모리를 일부러 더 사용하도록 다른 프로그램을 다 띄워놓고 테스트해보고.
    -l, --no-logging, --no-statistics 옵션들을 주고 안주고 테스트를 해보았을때.
    보통 loaddb를 시작한지 20분이 넘어서 죽었었는데. 그 시간이 다른 불필요한 프로그램을 다 종료하고
    시작을했을때. 메모리가 4기가 가까이 넘는 순간이랑 비슷하게 겹쳐서 그렇게 판단을 했던것 같습니다.
    잘못된 문의로 고민을 하게 해드려서 죄송합니다.

     

    메모리를 일부러 줄여서 했을때 스왑이 일어나도 loaddb는 자연스럽게 진행이 되었습니다.
    단 Out of Memory로 에러가 나서 종료되는 건 마찬가지라서
    -c 1 옵션으로 한줄씩 커밋을 하게 해서 종료되는 줄을 찾아봤었는데.
    특정 테이블의 컬럼을 입력하다가 종료가 되는데.
    실제 디비에서 그 컬럼을 열어봤을때 아무런 이상한점을 찾지 못해서.
    아직 왜 Out of Memory의 에러가 나는지는 계속 테스트 중입니다.

     

    그 라인을 삭제하거나 또는 값을 변형해서 테스트를 해보려고 오늘 생각중에 있습니다.
    결과가 나오면 알려드리겠습니다.

     

    감사합니다.
    그럼 좋은 하루 보내시길 바랍니다~

  • ?
    샤롱스판 2012.08.30 19:30

    유틸리티 옵션까지 적용해보시면서 여러 시도를 하시는 점에 감사드리면서, 또 한편으로 죄송한 마음을 가지며 살짝 제안을 드려봅니다. CUBRID 마이그레이션 도구가 있습니다. CUBRID to CUBRID 기능도 제공하구요, 요게 소스DB 및 타겟DB에 JDBC로 붙어서 온라인 마이그레이션을 할 수 있는데요.

    아직은 여러가지로 부족한 점이 많아서 개선버전 릴리스를 앞두고 있는 상태이고, 마이그레이션 작업이라는게 스키마/데이터 복잡도에 따라 저희가 QA로 커버하지 못한 문제들이 나올 수 있어서 매우 조심스럽습니다만, 혹시 여유가 되신다면 요걸 받아서  전체 마이그레이션을 진행해보시고, 만약 안된다면 해당 테이블만 uncheck하고 나머지 테이블에 대해서 진행하셔도 되겠습니다.

    설명 참고: 소스DB 및 타겟DB가 구동 중인 상태에서 CMT로 온라인 접속하여 작업. 
    사용법요약: http://www.cubrid.org/wiki_tools/entry/cubrid-migration-toolkit-tutorial-senarios-1_kr

    다운로드: http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Migration_Toolkit/

     

  • ?
    천상하늘 2012.08.30 19:43

    버전 업그레이드를 진행하려고 하는 디비가 실제 라이브 서비스중인 게임디비라서 그 디비에서 바로 걸수는 없어서

    마지막 백업 파일을 내부에 리스토어 시켜서 구현을 한 후에 테스트가 가능할것 같아서 바로 해보긴 어려울것 같습니다.

     

    사용법요약에 있는글중에서 1G미만에 해당하는 디비가 적합하다 라는 글이 있는데.

    해당 게임디비를 언로드 받았을때 나온 파일의 용량이 1.7G정도였고.

    현재는 그 unload받은 파일을 가지고 내부에서 로드테스트를 해보고있습니다.

     

    조만간 내부에 디비를 구현해서 테스트해보고 알려드리도록 하겠습니다.

  • ?
    샤롱스판 2012.08.30 21:18

    사용법요약에 있는 1G에 대한 사이즈 언급은, 온라인 작업시간이 길어질 것을 염려하여 저희가 임의로 가이드한 수치일 뿐 사이즈 제약은 없습니다. 일정단위만큼 소스db로부터 데이터를 퍼옮기는 방식이기 때문에 소스db에서 업데이트만 일어나지 않는다면요.. ^^

  • ?
    cgkang 2012.08.30 19:59

    등록한 내용을 보면 전체 스키마가 트리 구조라고 하셨는데,

    이런 경우에는 reference관계를 만들어주기 위해 oid 정보를 계속 유지해야 하기 때문에 메모리 사용량이 늘어날 수 있습니다.

    스키마에서 참조관계를 확인해서 참조관계가 있는 테이블들 그룹을 분류해서 따로 unload를 받아서 로딩하는게 좋을것 같습니다.

    unload 시 -i 옵션으로 테이블 이름을 지정하면 해당 테이블만 받을수 있고, --include-reference 옵션을 같이 사용하면

    해당 테이블이 참조하는 테이블들을 같이 unload받을 수 있습니다.

    unload받은 데이터 크기를 줄이는 것이 도움이 될 것 같습니다.

    그리고, 4G에서 메모리 오류가 발생하는것으로 보아 32비트 버전인것 같은데, 64비트 버전을 설치할 수있으면 메모리 한계는 더 늘어날 수 있을것 같습니다.

     

  • ?
    천상하늘 2012.08.30 20:15

    답변 감사드립니다. 현재까지 테스트한걸로 보면 특정 라인의 문제는 아닌것 같습니다.

    반복적으로 똑같은 옵션으로 테스트를 했을때 같은 라인에서 나는게 아니라 비슷한 부근에서 에러가 나는거라서 이게 잡기가 어렵네요 ;

     

    453375 instances committed
    453376 instances committed
    GC Warning: Header allocation failed: Dropping block.
    GC Warning: Out of Memory!  Returning NIL!
    CUBRID cannot allocate main memory and must halt execution.
    The current transaction has been aborted.
    Data integrity has been preserved.
    Line 1374092:Your transaction (index 1, myskysy@myskysy|20054) has been unilaterally aborted by the system.
    Line 1374092:Cannot create MOP with NULL OID.
    Line 1374092:Cannot create MOP with NULL OID.
    Line 1374092:Accessing deleted object -1|-16410813|-1.
    Line 1374092:Accessing deleted object -1|-16410813|-1.

     

    452885 instances committed
    452886 instances committed
    GC Warning: Header allocation failed: Dropping block.
    GC Warning: Out of Memory!  Returning NIL!
    CUBRID cannot allocate main memory and must halt execution.
    The current transaction has been aborted.
    Data integrity has been preserved.
    Line 1371825:Your transaction (index 1, myskysy@myskysy|25422) has been unilaterally aborted by the system.
    Line 1371825:Cannot create MOP with NULL OID.
    Line 1371825:Cannot create MOP with NULL OID.

     

    452879 instances committed
    452880 instances committed
    GC Warning: Header allocation failed: Dropping block.
    GC Warning: Out of Memory!  Returning NIL!
    CUBRID cannot allocate main memory and must halt execution.
    The current transaction has been aborted.
    Data integrity has been preserved.
    Line 1371805:Your transaction (index 1, myskysy@myskysy|6207) has been unilaterally aborted by the system.
    Line 1371805:Cannot create MOP with NULL OID.
    Line 1371805:Cannot create MOP with NULL OID.
    Line 1371805:Accessing deleted object -1|-16373696|-1.
    Line 1371805:Accessing deleted object -1|-16373696|-1.

     

    트리구조의 스키마일때 최상위 트리의 테이블을 -i옵션으로 unload를 하게 되면 아마 사용하는 테이블중에서 80~90%정도는

    한번에 언로드가 될것 같습니다. 속도문제때문에 query가 아닌 c-api를 사용하는 구조라서 한명의 정보를 읽어올때

    최상위 account부터 set으로 타고 들어가서 모든 데이터를 읽어오게 되어있어서 거의 전 테이블이 트리처럼 물고있습니다.

     

    그리고 메모리는 다른 프로그램들이 쓰게 해서 해봤을때 메모리 4기가에 스왑메모리가 8기가로 설정되어있는데

    스왑이 일어나는 중간에도 loaddb는 잘 이루어졌습니다.(instances committed 는 꾸준히 증가했습니다)


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4247
1716 TIMEZONE 질문 1 은팔 2014.01.08 12461
1715 c# asp.net HA및 브로커 12 알칸펠 2014.01.07 11922
1714 매니저 오류 문의 4 file Kai 2014.01.06 10990
1713 큐브리드 매니저 connectio refused 1 Kai 2014.01.06 9825
1712 9.2 업그레이드 후 spread.datasource가 작동 안함!!!!! 한종희 2014.01.04 11206
1711 Java 저장 함수/프로시저 문의 1 초도한정 2014.01.03 10430
1710 함수/저장프로시저 타입 오류 관련 문의합니다.(ado.net한글깨짐 포함 수정) 2 file 아이쿠두야 2014.01.01 12589
1709 8.3.1 --> 9.2 업그레이드 후 한글 깨짐. ( vb6.0 + MS949 ) 2 한종희 2013.12.28 23127
1708 시스템 오류 코드 193 발생 1 file 규짱 2013.12.26 16161
1707 서버 연결중 연결 대기 시간이 초과하였습니다. 1 남자 2013.12.25 13923
1706 쿼리 브라우져 가져오기 오류 질문 1 joke7 2013.12.24 8810
1705 [연결정보]브로커포트설정 관련 문의. 1 file 씨큐 2013.12.20 11549
1704 Invalid buffer position! 오류 12 알칸펠 2013.12.20 12644
1703 큐브리드에서 제공되는 CUBRIDXADataSource 1 jobis 2013.12.18 9137
1702 lockdb 질문입니다. 1 오니오니 2013.12.17 10699
1701 큐브리드 이중화 관련하여 설정 내용 문의드립니다. 1 신나여 2013.12.17 12480
1700 cm_admin 으로 사용자를 추가해도 쿼리 브라우저에서 접속 불가합니다..도와주세요 1 asuraiv 2013.12.10 12041
1699 csql를 사용하여 스크립트를 돌리게 되면 에러가 납니다. 1 secret 애정결핍 2013.12.10 6
1698 쿼리 브라우져 가져오기 오류 질문 4 joke7 2013.12.08 10928
1697 SQL 인라인뷰 응답속도 개선 문의 6 knight 2013.12.07 13268
Board Pagination Prev 1 ... 109 110 111 112 113 114 115 116 117 118 ... 199 Next
/ 199

Contact Cubrid

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