프린트 하기

OS환경 : Oracle Linux 6.8 (64bit)


DB 환경 : Oracle Database 11.2.0.4


방법 : ALTER SYSTEM ARCHIVE LOG CURRENT 관련



1. Alter system checkpoint;
   체크포인트를 강제로 발생시킵니다.
   Dirty Block를 디스크에 내려씁니다.(DBWR)

   커밋 된 트랜잭션에 의한 모든 변경 사항이 디스크의 데이터 파일에 기록됨

2. Alter system switch logfile;

    현행 쓰레드의 로그·스윗치를 강제적으로 발생시킵니다.
    자동 아카이브(archive)를 사용 가능하는 로그·스윗치를 트리거로 해서 아카이버(archiver)

    (ARCn) 프로세스가 아카이브(archive)를 실행합니다.

    아카이브를 실행하는 것은 아키이브 프로세스이기 때문에 아카이브(archive)의 종료를 기다리지

    않고  제어가 돌아옵니다.


3. Alter system archive log current; 
    전 쓰레드의 로그·스윗치를 강제적으로 발생시킵니다.
    (thread 옵션을 사용해, 로그·스윗치를 발생시키는 쓰레드를 지정하는 것도 가능합니다.) 
    아카이브를 실행하는 것은 서버·프로세스입니다.
    서버·프로세스가 아카이브(archive)를 실행하기 때문에, 아카이브(archive)가 종료된 후에 제어가

    돌아옵니다


주:OPS 및 RAC의 경우는 리모트 노드에서는 archiver프로세스가 archive를 실행 합니다.

       커멘드의 제어가 돌아오는 것은 모든 노드에서 아카이브가 종료한 다음입니다.


해외 글 스크랩

ALTER SYSTEM SWITCH LOGFILE VS ALTER SYSTEM ARCHIVE LOG CURRENT

Donald Burleson의 Oracle Database 팁 2015 년 9 월 21 일


(구글번역기로 번역 후 문장 다듬음)


질문 :  백업을 위해 로그 스위치를 강제해야 할 때가 있지만 오라클은 로그 파일 스위치, ALTER SYSTEM SWITCH LOGFILE 및 ALTER SYSTEM ARCHIVE LOG CURRENT를 강제하는 두 가지 방법이 있음을 알고 있습니다. 

ALTER SYSTEM SWITCH LOGFILE과 ALTER SYSTEM ARCHIVE LOG CURRENT 의 차이점은 무엇입니까 ?

답변 :   예, ALTER SYSTEM SWITCH LOGFILE과 ALTER SYSTEM ARCHIVE LOG CURRENT 둘 다 로그 스위치를 강제 할 것입니다.   

SWITCH LOGFILE과 ARCHIVE LOG CURRENT는 quiesce checkpoint를 작성합니다. quiesce checkpoint는 마지막 redo 로그가 핫 백업의 일부분이지만 ARCHIVE LOG CURRENT는 쓰기가 완료되기를 기다립니다. 멀티 기가 바이트 재실행 로그의 경우이 작업에는 몇 분이 걸릴 수 있습니다.  

반대로, ALTER SYSTEM SWITCH LOGFILE 명령은 매우 빠르며 ALTER SYSTEM ARCHIVE LOG CURRENT가 일시 정지하는 동안 1 초 이내에 호출자에게 제어를 리턴합니다.  

아래에서 볼 수 있듯이 ALTER SYSTEM SWITCH LOGFILE은 아카이브 프로세스 (ARCH)가 온라인 리두 로그를 아카이브 로그 파일 시스템에 기록하기를 기다리지 않기 때문에 빠릅니다.

  1. 데이터베이스 검사 점을 발행합니다.
  2.  즉시 다음 재실행 로그에 쓰기 시작합니다.
  3.  백그라운드에서 "switch logfile"명령은 ARCH 백그라운드 프로세스에 "이전"다시 실행 로그 파일을 다시 실행 로그 파일 시스템에 복사하도록 지시합니다.  

ALTER SYSTEM SWITCH LOGFILE과 ALTER SYSTEM ARCHIVE LOG CURRENT 사이의 중요한 차이점은 다음과 같습니다 .

  •  RAC : RAC를   실행중인 경우 ALTER SYSTEM ARCHIVE LOG CURRENT 는 모든 RAC 노드 (인스턴스)의 로그를 전환하지만ALTER SYSTEM SWITCH LOGFILE 은 switch 명령을 실행 한 인스턴스에서만 로그 파일을 전환합니다. 따라서 ALTER SYSTEM ARCHIVE LOG CURRENT 는 RAC 시스템의 모범 사례입니다.
  • ALTER SYSTEM SWITCH LOGFILE 은 비동기 적입니다. 운영 체제 파일 시스템에 대한 재실행 로그 쓰기가 백그라운드에서 수행되기 때문에이 명령은 호출하는 프로그램으로 빨리 돌아갑니다. OS 아카이브 로그 파일 디렉토리의 공간이 부족한 경우와 같이 ARCH 프로세스가 리두 로그 작성을 완료 할 수없는 경우 매우 위험합니다. 다시 호출이 작성되었다고 가정하면 호출 스크립트가 후속 단계로 넘어갈 수 있기 때문에 위험합니다. 일부 스크립트는 다시 실행이 완료 될 때까지 기다릴 수 있도록 SLEEP 60 명령을 백업 스크립트에 삽입하지만 이는 권장 사항이 아닙니다.  
  • ALTER SYSTEM ARCHIVE LOG CURRENT 는 동기식입니다.이 명령은 온라인 리두 로그가 리두 로그 파일을 파일 시스템에 기록 할 때까지 대기하기 때문에 리턴하는 것이 더 빠릅니다. 이 명령은 OS가 다시 실행 로그가 성공적으로 기록되었음을 확인 (ACK)하기를 기다리기 때문에 더 안전합니다. 따라서 ALTER SYSTEM ARCHIVE LOG CURRENT 는 RMAN이있는 프로덕션 백업 스크립트의 모범 사례입니다.
  • 인수가 필요합니다 : ALTER SYSTEM ARCHIVE LOG 현재는 보관할 스레드를 지정할 수 있습니다 동안 ALTER SYSTEM 스위치 로그 파일아카이브는 현재 스레드. thread 매개 변수를 전달하지 않으면 Oracle은 모든 전체 온라인 리두 로그를 아카이브합니다.   


참조 : http://www.dba-oracle.com/t_alter_system_switch_logfile_vs_alter_system_archivelog_current.htm

http://www.jigi.net/4313