728x90

테이블 스페이스 데이터들은 같은 스트라이프 셋 안에서 리밸런싱을 일으킵니다.


여기서 말하는 스트라이프 셋은 OS의 스트라이프 셋이 아니며 데이터베이스 테이블 스페이스 레벨에서 데이터를 라운드 로빈 형식으로 흩뿌리는 단위가 되는 세트를 말합니다. 테이블 스페이스가 작성될 때 디폴트로 생성되는 스트라이프 셋 번호는 0으로 새로 스트라이프 셋을 생성할 때마다 1씩 증가합니다.


Note. 스트라이프 셋이 여러 개 생성된 경우 추후, 리스토어가 수행되더라도 스트라이프 셋간 데이터 이동은 일어나지 않습니다. 즉, 리스토어시에는 기존에 존재했던 각 스트라이프 셋에 해당하는 데이터는 해당 스트라이프 셋 내에서만 적재되게 된다는 것입니다.


① 스트라이프 셋을 추가 및 스트라이프 셋 지정 없이 컨테이너를 추가하는 경우

데이터가 중.소 용량이고 데이터 리밸런싱으로 인한 부하가 적다고 판단될 때 스트라이프 셋을 추가하지 않고 컨테이너를 추가하면서 사용하려는 경우에 사용됩니다.


$db2 "alter tablespace <테이블 스페이스 이름> add ( <type> 'container-string' <numer of pages or unitsize> )"

예) db2 “alter tablespace userspace2 add ( file '/db2/db2data1/userspace2.c00005' 5000 , file '/db2/db2data2/userspace2.c00006' 5000 )


기존의 테이블 스페이스에 컨테이너가 여러개 있다면, 각 컨테이너마다 같은 사이즈로 증가시켜주는 것이 좋습니다. 다시말해 테이블 스페이스를 구성하는 각 컨테이너의 사이즈는 동일하게 해주는 것이 좋습니다. 만일 한 컨테이너만 사이즈를 증가시킨다면 리밸런싱이 일어날 뿐만 아니라 추후 컨테이너를 추가할 때마다 리밸런싱이 일어나게 됩니다. 같은 사이즈로 증가시킨다고 해도 일시적으로 리밸런싱이 일어날 수 있으나 경미한 수준입니다.


② 새로운 스트라이프 셋을 추가하여 새로 작성된 스트라이프 셋에 추가하려는 경우

이미 데이터가 대용량이 되어 기존 스트라이프 셋에 추가하면 과도한 리밸런싱이 발생할 수 있는 경우 새로운 스트라이프 셋을 추가하는 것을 권장합니다. 다만, I/O 를 잘 고려하여 새로 컨테이너를 추가할 때 필요한 컨테이너 개수와 분포를 적절히 하여야 합니다. 예를 들어 기존에 여러 개의 컨테이너를 이용하여 사용하다가 새 스트라이프 셋 추가시 이 스트라이프 셋에 아주 적은 수의 컨테이너를 추가한다면 I/O 감소가 있을 수 있고 나중에 추후 컨테이너를 더 추가함으로써 리밸런싱을 일으키게 할 소지가 있으므로 잘 고려하여야 합니다.(기존 컨테이너 개수를 유지하고 충분한 I/O 채널을 확보하는 것이 바람직합니다.)


$db2 "alter tablespace <테이블 스페이스 이름> begin new stripe set ( <type> 'container-string' <numer of pages or unitsize> )"

예) db2 “alter tablespace userspace2 begin new stripe set ( file '/db2/db2data1/userspace2.c00007' 5000 , file '/db2/db2data2/userspace2.c00008' 5000 , file '/db2/db2data2/userspace2.c00009' 5000 , file '/db2/db2data2/userspace2.c00010' 5000 , file '/db2/db2data2/userspace2.c00011' 5000 , file '/db2/db2data2/userspace2.c00012' 5000 )


③ 이미 만들어진 스트라이프 셋 중 특정 스트라이프 셋에 추가하려는 경우

이미 만들어져 있는 스프라이프 셋 중 특정한 스트라이프 셋에 컨테이너를 추가하려는 경우에 사용됩니다.


$db2 "alter tablespace <테이블 스페이스 이름> add to stripe set <stripeset number> ( <type> 'container-string' <numer of pages or unitsize> )"

예) db2 “alter tablespace userspace2 add to stripe set 1 ( file '/db2/db2data1/userspace2.c00013' 5000 , file '/db2/db2data2/userspace2.c00014' 5000 )

728x90

+ Recent posts