Background Image

FORUM

조회 수 11365 추천 수 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
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 49
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
1294 ORACLE DB LINK 문의 1 secret MJHan 2012.10.24 6
1293 DB 백업 복구 시 오류 확인 요청 1 secret 삼돌이 2012.10.23 9
1292 oledb DATA Query Open 시 오류 발생 1 choiboss 2012.10.23 7016
1291 OLEDB 설치시 오류 15 file choiboss 2012.10.20 16042
1290 Query execution failure #7264 에러가 무슨에러죠? 1 앙고라 2012.10.20 9111
1289 ole provider 사용 하고 있는데요, code=80004005, 지정되지 않은 오류라고 나옵니다. 1 decoder 2012.10.18 32398
1288 그냥 궁금해서요 ^^ 1 유니콘 2012.10.16 6147
1287 8.2.2 HA 구성 중 웹 서버의 커넥션이 많을 때 동작에 문제가 있습니다. 2 freemir 2012.10.13 11567
1286 과제에서 투플들이 삽입된 실행 화면을 캡처해야 하느데요 1 Bea 2012.10.13 5879
1285 질의 결과창에서 편집 기능을 이용하여 행 삭제시 삭제가 되지 않습니다. 3 Spooky 2012.10.12 6540
1284 foreign key로 등록하여 다른 테이블에서 참조한 키값을 출력하고 싶습니다.(ER모델) 1 살구맛 2012.10.12 11209
1283 테이블간 relationship 구현 어떻게하나요? 1 thiago 2012.10.11 5778
1282 csql -S [dbname] 무응답합니다. 1 까망이 2012.10.11 6535
1281 asp 에서 olddb driver 사용시 parameter 문제 4 file 데베안 2012.10.10 7661
1280 conf에서 data_buffer_size를 적용시킬려면 ... 3 로운 2012.10.10 6359
1279 큐브리드 시작시 local host 연결이 안됩니다 ㅠㅠ 1 thiago 2012.10.07 8434
1278 CentOS 레포지토리 제공 좀 해주시면 좋겠습니다. 2 viper9 2012.10.02 7185
1277 쿼리좀 도와주세요 1 박수 2012.09.27 6366
1276 언로드 후, 로드 시 데이터 정렬 순서가 역방향으로 바뀌는 것 관련해서... 1 file 차오이 2012.09.24 7124
1275 컴퓨터 메모리 증가 현상 문의드립니다 file 파파후드 2012.09.23 10834
Board Pagination Prev 1 ... 131 132 133 134 135 136 137 138 139 140 ... 200 Next
/ 200

Contact Cubrid

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