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 55
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4461
1215 어떤 오류로그 인지 답변 좀 부탁드립니다. file 김상윤 2013.03.20 6173
1214 어떻게 해야하는건가요? 2 SoMa 2011.05.21 8233
1213 어찌해서 설치는됫는데.. 1 가루구 2009.02.16 14529
1212 어찌해서 설치는됫는데... 1 가루구 2009.02.17 14695
1211 언더바 문의 "_" 2 joke7 2014.07.17 8835
1210 언로드 후, 로드 시 데이터 정렬 순서가 역방향으로 바뀌는 것 관련해서... 1 file 차오이 2012.09.24 7124
1209 언로드 후, 로드가 안되는데 어떤 사항을 체크해 봐야 할까요? 2 secret 차오이 2011.08.23 18
1208 언어별 대표적인 orm 플러그인 개발 계획은 없으신지요? 1 서치 2014.05.05 9165
» 엄청난 DB 생성 소요 시간 4 쭈난 2010.01.16 10071
1206 업그레이드 후 쿼리 수행시간이 길어졌습니다. 4 secret 노랑배 2011.12.22 12
1205 업데이트 보완 문제 해결요청 1 가라 가라~ 2009.01.20 17592
1204 에고 일일히 답변 달아주셨네요;; 1 송효진 2009.04.07 12995
1203 에러 내용 문의 2 yonggi 2021.09.01 155
1202 에러 로그 첨부 합니다. 5 file Philip Park 2020.10.15 168
1201 에러 메세지에 대해서 분석좀 부탁 드리겠습니다. 1 특수요원 2015.11.03 5065
1200 에러 메시지 문의드립니다. 4 file dashbell 2014.10.27 4065
1199 에러 문의 1 시나브로 2016.04.19 10438
1198 에러 질문 : cci_glo_load? 1 sugarkane 2010.11.15 8190
1197 에러 질문 드립니다.!! 1 file 마리오네트 2020.01.22 98
1196 에러 코드 관련 다시 질문 드립니다 1 kkckc 2009.03.18 11506
Board Pagination Prev 1 ... 135 136 137 138 139 140 141 142 143 144 ... 200 Next
/ 200

Contact Cubrid

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