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
    안녕하세요.
    데이터베이스 화일 생성은 단순히 화일을 만드는 것이 아니라 내부적으로 데이터저장에 필요한 설정을 하게 됩니다. 이렇게 생각하시면 간단할 것 같습니다. 밭을 가는일에 비교한다면, 빠른 포맷은 밭을 다 갈지 않습니다. 그냥 밭 앞에 다 갈았다고 표시만 하는 형태입니다. 일반 포맷으로 하면 밭을 다갈아야 하니 시간이 많이 걸릴 것입니다. 큐브리드에서 데이터베이스 화일 생성시에는 밭을 갈면서 나름 필요한 작업을 수행하다 보니 시간이 많이 소요될 수 있습니다. 물론 큐브리드에서의 소요시간이 절대적으로 빠르다고만 할 수는 없을 것 같습니다. 다만 빠른 포맷과의 비교는 다른 문제일 것입니다.
    말씀주신 것처럼 보다 노력하는 큐브리드가 되겠습니다.

  1. No Image notice by admin 2024/04/23 by admin
    Views 48 

    CUBRID 사용자를 위한 DBeaver 도구 출시 안내

  2. SQLGate for CUBRID 영구 무료 라이선스 제공

  3. cci_execute() 에서 lock이 걸리는 현상

  4. 532번글 답변이 아직 없으셔서 다시 올립니다.

  5. 컬럼 수정이 안됩니다.

  6. 2.0에서 2.1로 업그레이드 하려면?

  7. CUBRID_Setup.sh: No such file or directory설치에러입니다.

  8. 서브쿼리 질문

  9. 큐브리드 매니져에서 정수 쿼리 16진수 표시

  10. 로그 분석 툴 이용시 분석 에러발생합니다.

  11. 오류구문이 뜹니다.

  12. mysql 구문변환

  13. 매니저에 쿼리 오류 메세지가 갑자기 안나옵니다.

  14. data_buffer_page 를 300000 이상으로 늘렸더니

  15. 큐브리드 커넥션 유지 시간

  16. 서브쿼리 ORDERBY_NUM() 최적화 문제

  17. ADO이용시 OLEDB Driver에러

  18. QTADO와 OLEDB사용시 문제

  19. 큐브리드 매니저에서 서브쿼리 날리면 값이 안나오는 문제

  20. 리스트 목록 갯수

  21. Linux Centso5.1에 설치 중입니다.

  22. CUBRID-8.2.1.0215 CentOs5.1에 설치 중입니다.

Board Pagination Prev 1 ... 169 170 171 172 173 174 175 176 177 178 ... 200 Next
/ 200

Contact Cubrid

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