db2 테이블스페이스 확인 및 확장

DB 시작
# su - db2inst1
$ db2start
$ db2 connect to DB_NAME
DB 종료
# su - db2inst1
$ db2 terminate
$ db2 force application all
$ db2stop
* 참고
db2 activate db 명령어는 DB global memory를 미리 메모리에 상주시켜, 처음 connect 시간을 단축
DB를 중지 시 db2 deactivate db 명령어를 이용하여 메모리를 release 시켜야 함
$ db2 activate db
테이블스페이스 확인
$ db2 list tablespaces show detail | more
테이블스페이스 확인
$ db2 list tablespace containers for 3 (3 : Tablespace ID)
로그 확인
$ db2diag >> db2diag.log_1
* The DMS table space "TABLE_NAME" (ID "3") is full.
"DMS Container space full"
Error 메세지 확인. (3은 Tablespace ID)
* DMS(Database Managed Space) 테이블 공간은 데이터베이스 관리 프로그램이 저장 공간을 제어한다.
SMS(System Managed Space)에 비해 지속적인 관리가 필요하지만, long 데이터, index등을 따로 저장할 수 있고
하나의 데이블을 여러 테이블 공간에 저장할 수 있는 등 성능면에서 이점.
* Tablesapce에 할당되는 페이지 개수는 4, 8, 16, 31k 단위이며, Logical Volumn 생성시 부여한 lv size 보다 크게 지정할 경우
Error가 발생하고, 작게 지정할 경우 남은 size 만큼 사용이 불가능하므로 정확하게 계산하여 지정.
테이블스페이스 생성
$ create tablespace TABLESPACE_NAME managed by database using (device '/dev/lvol2' 1024M, device '/dev/lvol3' 2048M)
테이블스페이스 확장
$ ls /path/db2data/DB_NAME/ 으로 테이블스페이스 컨테이너 파일 확인
TABLESPACE_NAME00_10.dat TABLESPACE_NAME00_11.dat TABLESPACE_NAME00_12.dat
$ db2 "alter tablespace DB_NAME add (file '/path/db2data/DB_NAME/TABLESPACE_NAME00_13.dat' 4096M)"
$ ls /path/db2data/DB_NAME/ 으로 TABLESPACE_NAME00_13.dat 파일 생성 및 용량 확인
테이블스페이스 확장(기존 테이블스페이스 컨테이너의 용량을 확장)
$ ls /path/db2data/DB_NAME/ 으로 테이블스페이스 컨테이너 파일 확인
TABLESPACE_NAME00_10.dat TABLESPACE_NAME00_11.dat TABLESPACE_NAME00_12.dat (1GB)
$ db2 "alter tablespace DB_NAME resize (file '/path/db2data/DB_NAME/TABLESPACE_NAME00_12.data' 2048M)"
* 참고
테이블스페이스가 full인 경우 LV size를 확장하여 해당 LV에 만들어진 테이블스페이스를 확장하는 방법은 없음.
별도의 LV를 만들어서 테이블스페이스에 추가하는 방법으로 해결. 이 경우 테이블스페이스가 복수개의 컨테이너로 구성.

댓글

이 블로그의 인기 게시물

[ASP] ASP에서 오라클 DB연결 문의 - Microsoft OLE DB Provider for Oracle error '80004005'

db2 user 생성 및 권한 설정

[자바스크립트] 소수점 계산오류가 생길때 해결 방법