DBMS 2

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

버퍼풀

DBMS 2
DB2 가이드
DB2 사용자 가이드
버퍼풀
작성자
admin
작성일
2021-02-19 13:43
조회
833

버퍼풀

버퍼풀 개요

①(인스턴스 사용자)로 로그인합니다.


$ login (인스턴스 사용자명)

②버퍼 풀의 정보는 SYSCAT.BUFFERPOOLS 뷰를 이용해서 확인합니다.


$ db2 connect to (데이터베이스명) $ db2 "select * from syscat.bufferpools"

③데이터베이스에 저장된 모든 데이터는 액세스 요청 시에 버퍼 풀을 통하여 검색되므로 데이터베 이스에는 반드시 한 개 이상의 버퍼풀이 존재해야 합니다. 기본적으로 생성되는 버퍼 풀의 이름 은 IBMDEFAULTBP 로써 1000개의 페이지가 할당됩니다.

db2

④데이터가 저장된 물리적인 저장 영역인 테이블스페이스 컨테이너의 페이지 크기와 대응되는 버 퍼 풀의 페이지 크기는 동일해야 합니다. 여러 개의 테이블스페이스는 한 개의 버퍼 풀을 공유하 여 사용할 수 있습니다.

⑤DPF 환경에서는 데이터베이스 파티션 별로 버퍼 풀을 생성할 수 있습니다. 옵션을 지정하지 않 으면, 모든 데이터베이스 파티션에 동일한 크기의 버퍼풀이 생성됩니다.

⑥버퍼 풀의 최대 NPAGES는 64비트 플랫폼에서 2,147,483,647고, 32비트 플랫폼에서는 1,048,576 입니다.


버퍼풀 변경

①(인스턴스 사용자)로 로그인합니다.


$ login (인스턴스 사용자명)

②데이터베이스에 대한 접속이 필요합니다.


$ db2 connect to (데이터베이스명)

③alter bufferppol 명령어의 SIZE 옵션을 이용하여 버퍼풀의 크기를 증가시키거나 감소시킵 니다. 변경한 크기는 즉시 반영됩니다.


$ db2mtrk -d $ db2 "select BPNAME, PAGESIZE, NPAGES from syscat.bufferpools" $ db2 "alter bufferpool (버퍼풀명) SIZE (페이지 개수)" $ db2mtrk -d

④alter bufferppol 명령어의 NUMBLOCKPAGES와 BLOCKSIZE 옵션을 이용하여 블록 기반의 I/O 영역의 크기를 변경합니다. 변경한 크기를 반영하려면 데이터베이스의 재활성화가 필요합니다.


$ db2 "alter bufferpool (버퍼풀명) NUMBLOCKPAGES (블록의 개수)" $ db2 "alter bufferpool (버퍼풀명) BLOCKSIZE (블록의 크기)" $ db2 deactivate db (데이터베이스명) $ db2 activate db (데이터베이스명)

db2


버퍼풀 제거

①(인스턴스 사용자)로 로그인하여 데이터베이스의 버퍼풀에 할당된 메모리 크기를 확인합니다.


$ login (인스턴스 사용자명) $ db2mtrk -d

db2

②drop bufferppol 명령어로 버퍼풀을 제거하고, 메모리가 해제된 것을 확인합니다.


$ db2 "drop bufferpool (버퍼풀명)"

db2


블록 기반의 I/O

①(인스턴스 사용자)로 로그인합니다.


$ login (인스턴스 사용자명)

②데이터베이스에 대한 접속이 필요합니다.


$ db2 connect to (데이터베이스명)

③create bufferpool 문의 BLOCKSIZE 와 NUMBLOCKS 옵션을 이용하면 blocked I/O 영역을 지정할 수 있습니다. (한 블록의 크기)는 페이지 단위로 지정합니다.


$ vi (임의의 파일명) create bufferpool (버퍼풀명) size (페이지의 개수) NUMBLOCKPAGES (블록의 개수) BLOCKSIZE (블록의 크기) PAGESIZE (페이지 크기) $ db2 ?svtf (임의의 파일명)

④SYSCAT.BUFFERPOOLS 에서 BLOCKSIZE, NUMBLOCKPAGES 컬럼의 값으로 블록 기반의 I/O 영역의 크기를 확인합니다.


$ db2 "select substr(BPNAME,1,18) BPNAME, BLOCKSIZE, NUMBLOCKPAGES from syscat.bufferpools"

db2