Background Image

FORUM

조회 수 10071 추천 수 0 댓글 4
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
큐브리드 DBMS 데이터 변환시험을 위하여 300GB짜리 DB를 생성하였습니다. 1시간 30분이 넘게 소요됩니다.
DB 생성하다 미치는 DBA가 나오겠습니다.

1. 사용환경
    - HW : Xeon E5530@2.40GHz Quad x 4 = 16Core
    - RAM : 36GB
    - Storage : Hitachi 12TB SAN (DF600F Multipath)
    - OS : Windows Server 2003, x64 Edition

2. 작업
    - REPLICATE라는 이름으로 Generic 150G, Data 150G, Log 150G등 3개의 파일로 생성
      소요시간 : 1시간 31분 
   - 참고로, 원본이 될 M모사의 제품은 동일환경에서, Data 300G, Log 150G 2개의 파일로 동일한 스토리지 볼륨에 생성
     소요시간 : 8분 걸렸습니다.

정상적인 상황인지 알고 싶습니다..
  • ?
    cubebridge 2010.01.16 02:53
    해당 문제에 대해서 내부적인 테스트가 필요할 것 같습니다.
    주신 정보를 바탕으로 확인 후 알려드리도록 하겠습니다.
  • ?
    cubebridge 2010.01.16 03:45
    CUBRID와 MySQL의 구조적인 차이가 성능에 영향을 주게 됩니다. 우선 질문하신 분께서 작업하신 내용을 정리하면 아래와 같을 것이라 생각됩니다.
    cubrid createdb를 이용하여 150G의 generic볼륨을 생성한 후 cubrid addvoldb를 이용하여 data볼륨 150G를 추가한 것이라고 생각이 됩니다. 이런 경우 DB생성 시 generic볼륨 150G와 active log볼륨 150G, active log temp볼륨 150G가 생성되게 됩니다. 총 450G크기의 파일들이 생성됩니다. 또한 CUBRID의 경우 파일만 생성하는 것이 아니라 생성된 파일을 초기화하는 과정이 진행됩니다. 따라서 450G가 되는 파일들을 윈도우즈 포멧과 같이 초기화 작업을 하게 됩니다. 이는 450G라는 공간을 실제적(계산적으로 OS가 인지하게 하는 것이 아닌)확보하여 운영에 안전성을 기하기 위해서입니다. 여기에 추가로 data볼륨 150G가 추가되여 도합 600G의 파일이 생성되었고 모든 파일은 초기화 작업이 진행된 것입니다.

    실제 위와 같이 DB를 생성할 경우 CUBRID에서의 안정적인 성능을 보장할 수 없습니다. CUBRID볼륨의 성질과 구조 때문일 수 있습니다. CUBRID는 generic, data, index, temp, log와 같은 볼륨 타입을 지원하고 있습니다. 이중 DB를 생성할 때 기본으로 생성되는 generic의 경우 DB의 기초 데이터와 시스템데이터를 가지게 됩니다. 이외에 data의 저장을 위해 generic을 사용할 필요가 없습니다. generic은 data와 index정보를 수용할 수 있으나 파일 I/O의 효율적인 활용을 위해 data저장용으로 사용하지 않습니다. 따라서 data는 data 볼륨에 index는 index볼륨에 데이터 정렬을 위한 공간은 temp볼륨으로 마련해 주는 것이 맞습니다. 또한 cubrid createdb를 이용하여 default로 log를 생성할 경우 초기 볼륨(generic)의 크기와 동일하게 생성되는데 이로 인하여 log볼륨이 각각 150G로 생성되었습니다. 이는 log관리와 성능에 악영향을 미치게 됩니다. 따라서 작업하신 모든 내용을 아래와 같이 변경하여 작업하시기를 권장합니다.

    1. DB생성(pagesize 4K를 기준으로 설명합니다.)
    $cubrid createdb -p 100000 -l 100000 <db_name> 
    --> 초기 볼륨인 generic은 400M크기로 충분합니다. log또한 400M정도면 됩니다.
    2. DATA볼륨 생성
    $cubrid addvoldb -p data -S <db_name> 1000000 
    --> 데이터 볼륨은 4G로 잡았습니다. 이는 필요에 따라 40G나 그 이상으로 변경해도 괜찮습니다. 단, cubrid addvoldb를 이용하여 필요할 때 추가하면 됨으로 현재의 다량의 데이터를 넣을 것이 아니라면 초기에는 적당한 크기로 두시는 것이 좋습니다.
    3. INDEX볼륨 생성
    $cubrid addvoldb -p index -S <db_name> 500000
    --> 인덱스 보륨은 2G로 잡았습니다. 이또한 필요에 따라 20G나 그 이상으로 변경해도 괜찮습니다만 위와 같은 이유로 필요시에 추가하실 것을 권장합니다. 설정된 index의 량에 따라 크기를 달리 해주시면 되며, 일반적으로 DATA볼륨 크기의 반 정도로 측정하고 필요 시에 추가하는 것이 좋습니다.
    4. TEMP볼륨 생성
    $cubrid addvoldb -p temp -S <db_name> 500000
    --> 템프볼륨은 정렬작업 등 쿼리 수행을 위한 작업 공간을 위해 생성하는 것입니다. 이 공간이 없을 경우 CUBRID는 temporary temp volume을 스스로 생성하여 공간을 마련하게 됩니다. 스스로 생성할 때 파일을 생성하게 되므로 I/O가 발생하여 성능에 영향을 줄 수 있으므로 적당한 크기로 설정하는 것이 좋습니다. 템프볼륨은 필요한 작업이 끝나면 사용 공간을 반납하므로 너무 크게 잡을 필요는 없습니다. -S옵션은 DB가 구동되어 있지 않을 때 볼륨을 추가 하기 위해 사용하는 옵션이며, 구동 중에는 -C옵션을 사용합니다.

    최종적으로 현재 300G의 데이터를 가지고 있는 타DBMS의 데이터를 이전할 경우 권장하는 CUBRID DB생성 스크립트입니다.
    $cubrid createdb -F /db/data -p 100000 -L /db/log -l 100000 <db_name>
    $cubrid addvoldb -S -p data -F /db/data <db_name> 25000000
    $cubrid addvoldb -S -p data -F /db/data <db_name> 25000000
    $cubrid addvoldb -S -p index -F /db/data <db_name> 20000000
    $cubrid addvoldb -S -p temp -F /db/log <db_name> 5000000
    --> -F옵션은 파일이 생성될 경로이고 -L옵셥은 로그가 생성될 경로입니다. 위치는 물리적으로 다른 곳에 두는 것이 I/O분산을 위해 좋습니다. 위의 생성 DB의 총 크기는 300G+1.2G(초기 생성파일 크기)가 될 것입니다.

    내용을 확인하시고 추가 질문이 있으시면 덧글 주시기 바랍니다.
  • ?
    June 2010.01.16 08:29
    포맷과 같은 볼륨 초기화작업만으로 인하여 그렇게나 오래도록 걸린다니 의아하군요. (빠른 포맷으로 하면 TB도 1초도 안돼 끝납니다.)
    아직은 큐브리드가 VLDB를 지원하기엔 역부족인 것 같군요... (최고의 DBMS가 되도록 더욱 더 분발해주시길 당부드립니다.)
  • ?
    남재우 2010.01.19 08:06
    안녕하세요.
    데이터베이스 화일 생성은 단순히 화일을 만드는 것이 아니라 내부적으로 데이터저장에 필요한 설정을 하게 됩니다. 이렇게 생각하시면 간단할 것 같습니다. 밭을 가는일에 비교한다면, 빠른 포맷은 밭을 다 갈지 않습니다. 그냥 밭 앞에 다 갈았다고 표시만 하는 형태입니다. 일반 포맷으로 하면 밭을 다갈아야 하니 시간이 많이 걸릴 것입니다. 큐브리드에서 데이터베이스 화일 생성시에는 밭을 갈면서 나름 필요한 작업을 수행하다 보니 시간이 많이 소요될 수 있습니다. 물론 큐브리드에서의 소요시간이 절대적으로 빠르다고만 할 수는 없을 것 같습니다. 다만 빠른 포맷과의 비교는 다른 문제일 것입니다.
    말씀주신 것처럼 보다 노력하는 큐브리드가 되겠습니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 45
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
1074 Hibernate로 페이징 처리시 오류발생에 대한 내용입니다. 4 백화요란 2011.09.16 12913
1073 select count 한 개수와 select 한 개수가 다른이유는 뭘까요? 4 file 인경수 2011.09.16 11911
1072 계층적질의 결과물과 조인 시 문제점 2 하루야 2011.09.09 9489
1071 ROW_NUMBER() OVER(PARTITION BY 어떻게..해야 할까요??? 5 초식곰 2011.09.09 26459
1070 Oracle의 stored function/procedure에 대한 질문입니다. 2 배나온천사 2011.09.06 10032
1069 호스트 연결이 안되요.(비밀번호오류) 2 양희종 2011.09.06 13919
1068 큐브리드를 시작할수없습니다. 2 SoMa 2011.09.04 9383
1067 제품소개 FAQ를 읽고 질문 드립니다 1 유니콘 2011.09.02 8102
1066 delete join 2 비형여자 2011.08.31 12845
1065 [초보질문] databases.txt 에 접근할수 없다는 에러메시지가 나옵니다.. 4 file 몰라몰라 2011.08.29 10845
1064 [초보질문] 쿼리편집기에 대한 질문입니다. 2 몰라몰라 2011.08.28 10002
1063 Cubrid 설치시 에러 2 file reerror 2011.08.27 8739
1062 언로드 후, 로드가 안되는데 어떤 사항을 체크해 봐야 할까요? 2 secret 차오이 2011.08.23 18
1061 오라클 rank() over를 대체 할 수 있는 함수가 있나요? 1 쿠쿡 2011.08.16 23280
1060 큐브리드 질의 편집기에서 쿼리 관련 문의 입니다. 1 유리심장 2011.08.12 8889
1059 [질문] Insert문의 속도 향상 방법이 있나요? 3 ........ 2011.08.10 25228
1058 테이블 우측마우스 메뉴 "데이터 올리기"를 명령어로 하는 방법은?? 1 풀소리 2011.08.09 8532
1057 큐브리드 R4.0 에서 between 사용시 문제가 발생합니다. 1 종이 2011.08.07 9248
1056 XE를 mysql에서 cubrid로 이전한 후 속도가 너무 느립니다. 22 엔하늘 2011.08.07 28568
1055 우분투 11.04에 큐브리드 설정 관련 질분 드립니다. 2 지눙이 2011.08.07 8860
Board Pagination Prev 1 ... 142 143 144 145 146 147 148 149 150 151 ... 200 Next
/ 200

Contact Cubrid

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