아카이브 로그 모드 확인
현재 데이터베이스의 아카이브 적용 여부는 아래의 명령어 실행을 통해 확인 가능함
ARCHIVE LOG LIST
위의 예시를 살펴보면 해당 데이터베이스는 아카이브 모드로 운영중이며
현재, 이전, 다음의 로그 시퀀스 넘버가 무엇인지 알 수 있다
추가적으로 V$DATABASE VIEW를 통해서도 아카이브 로그 모드 적용 여부를 알 수 있다칼럼명내용name 현재 데이터베이스의 SID log_mode 아카이브 모드 일때는 위와 같으며 노 아카이브 모드 일때는NOARCHIVELOG가 표시됨 - 아카이브 로그 모드, 노아카이브 모드의 전환
노아카이브 로그 모드에서 아카이브 로그 모드로 전환하기 위해서는
데이터베이스를 마운트 한 상태에서 아래의 명령을 실행하면 됨
ALTER DATABASE ARCHIVELOG;
반대로 아카이브 모드에서 노아카이브 모드로 전환하려면 동일하게 마운드 상태에서
ALTER DATABASE NOARCHIVELOG;
명령어를 실행하면 됨
실제 데이터베이스 운영상황에서는 한번 아카이브 로그 모드로 데이터베이스를 전환 또는 설정하면 변경하지 않는다 - 아카이브 로그 파일 확인
이전에 생성된 아카이브 로그 파일의 정보는 V$ARCHIVED_LOG 뷰에서 확인 가능
데이터베이스가 노아카이브 로그 모드이면 당연히 해당 뷰의 컬럼값은 없으며
데이터베이스 open 이후 로그 스위치가 한번도 발생하지 않았다면 역시 해당 뷰는 확인 할 수 없다
(실제 운영중인 데이터베이스에서는 그럴일이 없겠지만)
두번째 v$log 뷰를 조회한 내용과 v$archived_log 뷰를 조회한 것에서 sequence#을 주목하면
로그스위치 발생 후의 로그 그룹의 시퀀스 넘버가 447인 것과 아카이브 로그 파일의 시퀀스 넘버가 447인것을 알 수 있고
이는 같은 내용의 REDO로그 데이터가 저장되어 있다는 의미이기도 하다
- 데이터 파일과 블록
오라클은 데이터를 읽고 쓰는 작업을 데이터 블록(이하 블록)이라고 불리는 고정된 크기의 영역 단위로 수행
따라서 테이블, 인덱스 등 모든 객체들은 블록 단위로 분할된 상태에서 데이터 파일에 저장됨
블록의 크기는 2kb, 4kb, 8kb, 16kb, 32kb 중 하나를 지정할 수 있으며 기본값은 8kb임
데이터베이스 블록의 기본 크기는 데이터베이스를 생성할때 지정 할 수 있으며 이는 standard block size라고 함
standard block size는 데이터베이스 생성 이후에는 변경 할 수 없음
오라클 9i 이후 버전에서는 standard block size와 다른 블록 크기로 테이블 스페이스를 생성 할 수있음
(이는 nonstandard block size라고 함) - 데이터베이스 버퍼 캐시(buffer cache)
데이터베이스 버퍼 캐시는 데이터를 효율적으로 읽고 쓰기 위해 SGA 안에 마련된 메모리 공간임
데이터베이스 버퍼 캐시에 할당되는 메모리 영역의 크기는 initial parameter 인 DB_CACHE_SIZE로 지정함
데이터베이스 버퍼 캐시의 크기를 크게 설정하는 것만으로도 성능 개선을 기대 할 수 있음- for CACHE
데이터 파일에서 읽어온 블록을 메모리 상에 임시 보간 하는 것으로 읽기 성능을 개선하는 cache의 역할을 함
같은 블럭에서 여러번 같은 데이터를 읽어 오는 것을 가정 할 때,
버퍼 캐시를 이용한다면 디스크 I/O를 줄일 수 있고 이는 성능 개선으로 이어짐
버퍼 캐시의 크기는 한정적이르모 오라클은 버퍼 캐시에 보관되는 블럭을 LRU 알고리즘으로 관리함
(LRU 알고리즘이란 마지막으로 사용한 후 가장 오래된 데이터를 관리하기 위한 알고리즘임) - for BUFFER
버퍼 캐시는 캐시의 역할 뿐 아니라 블록을 기록하는 횟수를 줄여 성능 개선을 꾀하는 버퍼로써의 역할도 지님
오라클은 변경된 블록을 즉시 데이터 파일에 기록하지 않고 우선 데이터베이스 버퍼 캐시에 보관함
deferred write라고 하여 체크포인트(checkpoint)라는 이벤트가 발생하면 백그라운드 프로세스인 DBWn이 데이터 파일에 한번에 내려씀
블록의 변경 횟수만큼 디스크에 직접 기록하지 않으므로 디스크 I/O를 줄이고 성능 개선으로 이어짐 - 데이터베이스 버퍼 캐시 확인
아래의 쿼리를 통해 확인 할 수 있음
더불어, SGA의 상세 정보는 V$SGASTAT VIEW에서 확인 할 수 있음
- for CACHE
- § nonstandard block size
오라클 9i 이후 버전에서는 스탠다드 블록사이즈와 다른 크기의 블록 사이즈를 지정 할 수 있으며
비표준 블록크기를 지정하면 테이블 영역에 서로 다른 블록 크기로 데이터를 저장 할 수 있게됨
단, 블록 사이즈에 맞게 initial parameter인 DB_nK_CACHE_SIZE를 설정하여 비표준 블록 사이즈에 맞는
데이터베이스 버퍼 캐시를 구성해줘야 함