페이지

2012년 4월 5일 목요일

admin ws1 셋째날

* Parameter: 성능과 밀접한 관계
 - basic parameter 32개와 그 외 advanced parameter 가 있음.
 - 몇몇 항목들 예시
  ①control_file: c 파일의 위치, 이름. show parameter control_file 로 볼수 있음. control file이 담긴 디스크의 장애 등을 대비해 멀티플렉싱과 미러링을 권장함. 최대 파일 갯수는 8개
  ②db_block_size: 1k~64k까지 가능하다고 이론상 하지만 실제론 2k~32k밖에 안씀.
  ③db_cache_size: db_buffer_cache 총사이즈(내 instance는 0으로 나오네), 기본값은 48M
  ④db_nk_cache_size: 기본 블록사이즈에 해당하지 않는 data file을 불러들이는 경우가 있는데 이 경우 db_nk_cache_size를 사용하게 됨. 만약 기본 블록사이즈를 8k로 정한 경우 2,4,6,16,32k 단위의 datafile은 여기서 불러들이게 된다.
  ⑤db_file_multiblock_read_count: data file을 불러들이러 disk에 접근할때 한번에 여러개의 블록을 동시에 읽기 위한 카운트로 기본값은 8개.
  ⑥db_files: db에서 열수 있는 최대 data file 개수.기본 200개로(os따라 다름) 최대 maxdatafiles(os에 따라 다름)까지 가능.
  ⑦pga_aggregate_target: PGA의 크기 설정. 최소 10M, 최대 4096G. 기본값은 10M이거나 SGA의 20%중 큰 값(내건 90M, sga_targer은 262M. ???262M x 0.2: 52M인데?)
  ⑧process: 오라클 서버에 동시 연결할 수 있는 OS 사용자들의 최대 수.
  ⑨shared_pool_size: sps의 사이즈. 기본값: 16m
  ⑩undo_management: undo 관리 방법으로 보통 auto 사용.

* alert log
 - 위치: background_dump_dest 파라메터 위치의 aleart_<sid>.log 파일

* dynamic performance view: x$를 기반으로 만든 v$ 뷰, db 메모리에 직접 액세스해 지금 db의 상태를 보여준다.
 - v$ 가 붙으면 지금 현재 상태를 보여준다고 알면 된다.
 - v$의 종류는 v$fixed_table에 다 있음.

* data block
 - 행의 내용이 너무 커서 여러개의 블록에 행이 나누어져 들어갈 수도 있음. 이 경우를 chaining block 이라 함.
 - block header: 세그먼트 유형(테이블, 인덱스등), 데이터블록 주소, table directory(어느 테이블의 내용인가), row directory(행이 몇개 드러있나), transaction slot이 있음.
 - transaction slot: dml 작업을 진행하고 잎다면 block에 접근해야 하는데 이때 transaction slot이란 티켓을 얻어야 접근이 가능하다.
  ①block space parameter로 수정 가능
  ②initrans: 최소 티켓, 기본 값은 테이블의 경우 1, 인덱스는 2
  ③maxtrans: 255
 - free space: dml이 자주 발생하면 단편화가 생기는데 오라클 서버가 알아서 병합작업을 진행함.

* OMF(Oracle Managed file)
 - 반대는 UMF(User Managed file)
 - db_create_file_dest 파라메터만 수정해주면 알아서 파일이름, 사이즈를 정해서 생성한다.

* 테이블 스페이스 관리
 - table space를 쪼개 들어가면 extent 라는 공간으로 쪼개지는데 한 extent에 insert가 많이 일어나서 확장이 필요하다면 공간할당을 해야하는데, extent 공간 할당의 방법이 두가지로 나누어진다.
 ① LMT: Locally management table space. 일반적으로 이걸 쓴다. 표준화까지 됨.
   - table space 자신이 공간에 대한 정보를 bitmap을 통해 관리한다.
   - bitmap(전광판이라 생각하면 됨)으로 인접한 사용 가능 extent를 미리 파악해둔다.
 ②DMT: Dictionary management table space: 이전 버젼과 호환성때문에만 지원한다(8i 이전)
   - data dictionary에서 extent를 관리한다.
   - free extent에 대한 정보가 DIC에 저장되어 있는데(예: dba_extens) tablespace를 위한 extent 요구가 많아지면 경합이 발생한다.
   - freelist를 계속 유지하고 있기에 extent들에 대한 정보를 계속 갱신해야 한다=성능

댓글 없음:

댓글 쓰기