Background Image

FORUM

조회 수 10070 추천 수 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
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4443
507 큐브리드 방금 깔았는데요. 패스워드가 1 이종옥 2010.01.25 12187
506 설치시 cubrid manager server start: fail 오류 3 럭키늘보 2010.01.24 16955
505 데이터베이스 정지후 시작하니 로그파일이 사이즈가 0로 되며 시작이 안되는데? 3 secret 사람들 2010.01.24 18
504 asp 레퍼런스가 있나요? 1 바다왕자님 2010.01.21 10357
503 큐브리드 OLEDB 성능 문제 및 오류 2 file 쭈난 2010.01.18 14208
502 MySQL을 대체 할만한가요...? 2 호비스 2010.01.17 12503
» 엄청난 DB 생성 소요 시간 4 쭈난 2010.01.16 10070
500 패키지 분화가 가능할까요? 1 ienfant 2010.01.15 9565
499 JDBC ResultSet에 대한 문의 2 강우 2010.01.15 22135
498 LOWER 오류가 왜 날까요? 4 초보 2010.01.15 10391
497 mysql의 rand() 함수 대체 문의 1 초보 2010.01.14 16017
496 DBCP사용중 CUBRID** 계열 클래스를 사용하려면? 1 안지민 2010.01.14 10270
495 mssql2005 --> cubrid 로 마이그레이션 오류 답변 부탁 드립니다. 2 Philip Park 2010.01.14 24788
494 set type 에 빈값넣기 1 초보 2010.01.14 11840
493 ODBC 로 insert 가 안되네요 ㅠㅠ... 3 JinSniper 2010.01.13 11500
492 리눅스서버상에 존재하는 CUBRID 데이터베이스를 CUBRID메니져클라이언트로 접속 3 김대진 2010.01.13 10581
491 CSQL 에서 CREATE USER로 계정 생성시 문의 점 1 김대진 2010.01.13 15619
490 Java sp에서 Sybase DB연결시 오류. 2 young 2010.01.12 26592
489 CUBRID 시작후 csql로 시작할 때 에러가 발생합니다. 2 file 김대진 2010.01.11 9467
488 php, cubrid에서 그림, 동영상파일업로드코딩중인데요. 1 난꼭한다 2010.01.11 15937
Board Pagination Prev 1 ... 170 171 172 173 174 175 176 177 178 179 ... 200 Next
/ 200

Contact Cubrid

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