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 49
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
1234 안녕하세요. cubrid 셋팅값 질문입니다. 1 우유악마 2022.09.21 93
1233 안녕하세요. 레코드 접근시 accessor is invalid 라는 에러가 뜹니다. 도와주세요ㅠ 1 file TopCoder 2018.04.09 217
1232 안녕하세요. 큐브리드 DBA권한계정을 잊어버렸을때 찾는방법이 있을까요? 5 겸둥이k 2021.08.10 330
1231 안녕하세요. 큐브리드 백업DB 복구시 문제점에 관해 질문드립니다. 1 성준영 2015.10.01 6584
1230 안녕하세요.. 초보적인 질문입니다, 1 Mi 2018.05.15 180
1229 안녕하세요? loaddb 간에 질의가 있습니다. 2 secret 서기97 2009.06.16 11
1228 안녕하세요? loaddb 에 대해 질문이 있습니다. 1 secret 서기97 2009.06.25 13
1227 안녕하세요~ insert시 자동 증가값을 알고 싶어서 이렇게 글을 올립니다. 2 yongsu9 2011.05.21 13972
1226 안드로이드 [Android] JDBC 직접연결 1 무냉채 2017.03.22 7321
1225 안드로이드 개발 중, 큐브리드 접속 시 VerifyError가 출력되며 에뮬레이터가 종료되어버립니다. 2 롤롤 2021.04.19 120
1224 안전한 암호화 알고리즘 사용 문의드립니다. 1 보안진단 2023.01.27 112
1223 안정성 관련 질문 드립니다. 2 kkckc 2009.05.12 15582
1222 알려주신 쿼리가 원하는 결과가 아닙니다. 재질의 합니다. 3 secret 초보 2010.04.28 23
1221 암복호화 관련, with절 날짜 함수 문의 드립니다. 2 나라라라 2014.08.08 9498
1220 암호/복호화 함수 2 서영신 2011.11.22 16943
1219 암호화 함수 MDB_ENC 질문입니다 1 BE-DEV 2023.04.17 82
1218 암호화관련 문의 드립니다. 1 file 초코초코초 2022.12.29 102
1217 어느 방식이 빠를까요? 1 봉봉나무 2010.12.03 6966
1216 어떠한 쿼리문을 써야햐는지... 정확이 모르겠습니다. 1 프라우닐 2014.01.13 9534
1215 어떤 오류로그 인지 답변 좀 부탁드립니다. file 김상윤 2013.03.20 6173
Board Pagination Prev 1 ... 134 135 136 137 138 139 140 141 142 143 ... 200 Next
/ 200

Contact Cubrid

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