Log Sequence Number
• 현재의 log sequence number는
• 복구하는 동안 Oracle server는 Log sequence number 순서대로 오름차순으로 log file을 적용한다.
• 현재 사용중인 log sequence number는 다음과 같이 확인할 수 있다.
SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 251 Current log sequence 253 SQL>LOG SWITCH
LOG SWITCH는 oracle의 Event로써 하나의 Group이 차고 나서 또 다른 Group을 채울 때 발생한다.
• BACKGROUND process인 LGWR은 적당한 시기가 되면, redo log buffer에 있는 각 entry들을 Online redo log group에 순차적으로 저장한다.
• 현재 Redo log Group이 다 차면 LGWR은 다음 redo log group에 저장한다. 그렇게 해서 마지막 redo log group까지 다 사용하면, 다시 첫 번째 redo log group을 재사용한다.
• LGWR이 하나의 redo log group을 다 사용하고 다음 redo log group을 사용하고자 할 때 발생하는 Event를 LOG SWITCH라고 하며, LOG SWITCH가 발생하면, 다음 Group을 사용하게 됨에 따라 log sequence number도 증가하게 된다.
• LOG SWITCH가 발생하게 되면 CHECKPOINT Event도 발생하게 되며, CKPT 프로세스는 Control File과 Data file이 header 부분에 변경된 database의 상태를 갱신한다.
LOG SWITCH가 발생하는 경우
• LGWR가 하나의 redo log group에 대한 기록을 중지하고 다른 group에 기록 할 때 발생한다.
• LGWR가 하나의 log group을 가득 채웠을 때 발생한다.
• DBA가 ALTER SYSTEM SWITCH LOGFILE 문을 실행하였을 때 발생한다.
• LOG SWITCH가 발생하면 무조건 CHECKPOINT가 발생한다.
LOG SWITCH가 발생하면, LGWR은 다음 log group을 사용하기 시작하고 oracle은 Log sequence number를 부여한다.
SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 251 Current log sequence 253 SQL> alter system switch logfile; System altered. SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 252 Current log sequence 254
SQL> select group#,status from v$log; GROUP# STATUS ---------- ---------------- 1 CURRENT 2 INACTIVE 3 ACTIVE SQL> alter system switch logfile; System altered. SQL> select group#,status from v$log; GROUP# STATUS ---------- ---------------- 1 ACTIVE 2 CURRENT 3 INACTIVE SQL>
출처 : http://radiocom.kunsan.ac.kr/lecture/oracle/what_is/log_switch.html
댓글 없음:
댓글 쓰기