MODULE 3. CONTROL FILE과 REDO LOG FILE
[UNIT 1] CONTROL FILE
1. CONTROL FILE
- Binary File 형태로 Database의 모든 구조 정보를 가지고 있다.
- Control File은 단일 Database에 대해서만 연결된다.
- Database의 일관성을 제공.
- Database 생성시에 자동적으로 생성된다.
- 최대 8개 까지 Multiplexing 가능
1) pfile을 이용하여 Mutiplexing
a. Database Shutdown
b. Control File을 OS 환경에서 복사
c.
복사한 파일명을 Control File 경로 지정 부분에 추가 한다.
d. Startup & 확인
2) spfile을 이용한 Multiplexing
a. alter system set control file = ‘추가할 컨트롤 파일명’ scope = spfile;
b. shutdown
c. OS 상에서 컨트롤 파일을 지정한 이름으로 기존의 컨트롤 파일을 복사해서 생성
d. Startup & 확인
[UNIT 2] REDO LOG FILE과 CHEKPOINT
1. REDO LOG FILE
명령을 수행하면 LSN 이 1씩 증가 한다.
SELECT GROUP#,STATUS FROM V$LOG
STATUS 상태 정보
- CURRENT : 현재 쓰고 있는 로그 그룹
- INACTIVE : 사용되지 않는 로그 그룹
- ACTIVE : 트렌젝션의 정보가 아직 테이터 파일에 쓰여지지 않았다. 복구에 사용해야
하므로 덮어쓰지 말 것
* 두 개의 로그 멤버를 쓰고 있을 경우 로그 멤버가 손상 되었을 때 오라클은 특별한 경고를 보내지 않고 손상되지 않은 로그 멤버로 정상 가동을 하고 있다. DBA는 LGWR Trace File과 Alert File에 메시지를 수시로 체크하여 신속히 대응해야한다.
2. CHECK POINT
ALTER SYSTEM CHECK
강제로 체크 포인트 발생.
CHECK
a. CKPT가 LGWR에게 CHECKPOINT 알림
b. Redo Log Buffer의 내용을 Redo Log File에 기록
c. DBWR에게 작업 종료 알림
d. Dirty Buffer의 Data를 Data File에 기록
e. CKPT 호출
f. CKPT가 Data File의 헤더,컨트롤 파일 부분에 있는 동기화 부분 수정
[UNIT 3] DATABASE MODE와 REDO LOG FILE관리
1. ARCHVELOG MODE 변경
a. DATABASE 셧다운
b.
LOG_ARCHIVE_START=TRUE
LOG_ARCHIVE_FOMAT=파일명%S.log
LOG_ARCHIVE_DEST=지정경로
c. STARTUP MOUNT
d.
e. ALTER DATABASE OPEN;
f. ARCHIVE LOG LIST; 확인
g.
2. REDO LOG GROUP
ALTER DATABASE ADD LOGFILE ‘생성할 파일명’ SIZE 1M;
대량 작업이 발생할 경우 리두 로그 그룹의 용량이나 개수를 늘여주는 것이 효율적이다.
I/O 스피드 때문에 아카이브 파일 복사하는 시간이 지연된다.
ALTER DATABASE DROP LOGFILE GROUP 번호 : 로그 그룹 삭제
3. REDO LOG MEMBER
ALTER DATABASE ADD LOGFILE MEMBER ‘경로와 파일명’ TO GROUP 번호;
멤버이므로 사이즈를 지정할 수 없다. 그대로 따른다.
SELECT * FROM V$LOGFILE; 로 확인.
ALTER DATABASE DROP LOGFILE MEMBER ‘경로와 이름’
* 오라클 상에서 삭제를 했어도 OS 상에는 파일이 그대로 남아 있다. 완전한 삭제를 위해서는 OS 상에서 파일을 삭제해 주어야 한다.
4. REDO LOG FILE RENAME
a. SHUTDOWN
b. OS 상에서 새로운 위치로 복사
c. STARTUP MOUNT
d. ALTER DATABASE RENAME FILE
‘기존 파일 경로와 파일명’ TO ‘변경된 파일 경로와 파일명’;
5. LOGMINER
a. PARAMETER 파일에 다음을 추가
utl_file_dir = ‘생성 될 파일 경로’
b. @c:\oracle\ora92\rdbms\admin\dbmsrpr.sql
c. @c:\oracle\ora92\rdbms\admin\prvtrpr.plb
d. UPDATE EMP SET SAL = SAL * 1.1 WHERE ENAME = ‘SCPTT’;
COMMIT;
e. EXECUTE DBMS_LOGMNR_D.BUILD(‘생성 할 파일명’,’생성 될 파일 경로’);
f. EXECUTE dbms_logmnr.add_logfile(‘현재 로그파일 경로와 파일명’,dbms_lomnr.new);
g. EXCUTE dbms_logmnr.start_logmnr (dictfilename=>’생성 될 파일경로와 파일명’);
h. SELECT timestamp, username, sql_redo
FROM v$logmnr_contents
WHERE seg_name = ‘EMP’;
MODULE 4. DATABASE STRUCTURE
[UNIT 1] TABLESAPACE
1. Oracel Block
- Data(테이블 행)가 저장되는 최소 단위
- 오라클 입출력 단위
- 기본값은 OS블록의 두배
2. EXTENT
- 연속적인 BLOCK들의 집합
- 기본적으로 5개의 BLOCK이 하나의 EXTENT를 이룸
- 반드시 하나의 DATA FILE에 존재
3. SEGMENT
- 특정 유형의 논리적 저장구조로 할당된 영역
- 여러 DATA FILE에 걸칠 수 있음
4. DATA FILE
- 각 TABLESPACE는 하나 이상의 DATA FILE로 구성
- 실제적으로 DATA는 파일에 저장
5. TABLESPACE
- 여러 개의 SEGMENT가 모여서 하나의 논리적 TABLESPACE를 이룸
- 테이블의 기본 테이블 스페이스 변경
테이블이 쓰고 있는 모든 INDEX를 리빌드 해 줘야 정상적으로 쓸 수 있다.
* 테이블 스페이스의 관리
1) Dictionary Managerment TABLESPACE
Data Dictionary를 사용하여 EXTENT 관리
2) Locally Management TABLESPACE
Data Dictionary에 의존하기 않고도 테이블 스페이스를 관리 할 수 있다.
6. DATABASE
- 여러 개의 TABLESPACE가 모여 데이터 베이스를 이룸
* STORAGE
DEFAULT STORAGE = STORAGE( INITIAL 숫자 <- 첫번째 EXTENT 크기
NEXT 숫자 <- 두번째 EXTENT 크기
MINEXTENTS 숫자 <- 최소 할당 EXTENT 개수
MAXEXTENTS 숫자 <- 최대 할당 EXTENT 개수
PCTINCREASE 숫자) <- 증가율 , 5*DB_BLOCK_SIZE, 반올림
LOCALLY MANAGEMENT TABLESPACE에서는 적용되지 않는다.
댓글