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 43
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
1874 visual-sql 에서 엑셀로 내보내기시 캐릭터셋 문의 1 chocob 2014.07.02 8658
1873 큐브리드 내보내기 기능 문의 1 제이씨씨 2014.07.01 8160
1872 HA 구성 주의사항 문의 1 크리스탈양 2014.06.28 7983
1871 Oracle SQL 을 Cubrid SQL 로 컨버젼 툴 문의 1 홍가 2014.06.26 22573
1870 broker shard 추가시 proxy오류 5 석이 2014.06.26 9452
1869 DB서버 이중화작업에 큐브리드를 적용하는 법이 알고 싶습니다. 1 거지같은 2014.06.25 9318
1868 큐브리드 service 와 server 의 개념이 어떻게 다른지 궁금합니다. 1 아워나 2014.06.24 6533
1867 Qt에 Cubri연결 잘 되나요?? 1 goguemi 2014.06.20 7534
1866 프로시저 unload 문의 1 chocob 2014.06.19 6233
1865 CUBRID MANAGER 로그인 실패 5 red03410 2014.06.19 8399
1864 CUBRID Exception 확인 요청 2 김현욱 2014.06.19 15349
1863 트리거 ACTIVE/INACTIVE 설정 2 할리 2014.06.18 7842
1862 쿼리 브라우져, 매니져 질의 결과 문제 2 소라게 2014.06.18 5821
1861 cubrid manager 에서 8001포트 서버 접속이 안됩니다. 6 misoboy 2014.06.18 13734
1860 Linux 설치 전 확인 사항에 glibc 버전관련 입니다. 1 어려운큐브 2014.06.18 11869
1859 보안관련 질문입니다. 1 secret goguemi 2014.06.18 6
1858 dabase경로를 다르게 주고 싶은데 가능한가요? 3 어려운큐브 2014.06.18 6069
1857 manager 패스워드를 잊었습니다. 2 왕검 2014.06.17 6584
1856 쿼리 브라우저 실행 오류 1 이현세 2014.06.12 11468
1855 자바 함수 문제 현상 1 secret 배운다큐브 2014.06.11 10
Board Pagination Prev 1 ... 102 103 104 105 106 107 108 109 110 111 ... 200 Next
/ 200

Contact Cubrid

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