로그 재실행
Redo logOracle RDBMS 환경에서 redo 로그는 데이터베이스에 대한 모든 변경 내역을 기록하는 고유 형식의 파일로 구성됩니다.각 redo 로그 파일은 redo 레코드로 구성됩니다.redo 레코드(redo entry라고도 함)는 데이터베이스의 단일 블록에 대한 변경을 기술하거나 나타내는 변경 벡터 그룹을 보유합니다.
예를 들어 사용자가UPDATE직원 관련 데이터가 포함된 표의 급여-값. DBMS는 테이블의 데이터 세그먼트 블록에 대한 변경을 설명하는 변경 벡터를 포함하는 redo 레코드를 생성합니다.그리고 사용자가COMMIT업데이트 후 Oracle은 다른 redo 레코드를 생성하고 변경에 "시스템 변경 번호"(SCN)를 할당합니다.
데이터 파일에 변경 사항이 있을 때마다 Oracle은 변경 내용을 redo 로그에 기록합니다.redo log라는 이름은 그 목적을 나타냅니다.데이터베이스가 크래쉬 했을 경우, RDBMS 는 데이터 파일의 모든 변경을 재실행(재처리) 할 수 있습니다.이것에 의해, 데이타베이스 데이터는 마지막 redo 레코드가 기입되었을 때의 상태로 돌아옵니다.DBA가 뷰 사용V$LOG,V$LOGFILE,V$LOG_HISTORY그리고.V$THREAD데이터베이스의 redo 로그에 대한 정보를 검색합니다.각 redo 로그 파일은 정확히 1개의 그룹에 속합니다(이 그룹 중 적어도2개는 존재해야 합니다).이러한 그룹 중 하나가 CURRENT 그룹입니다(v$log 컬럼상태를 사용하여 조회할 수 있습니다).Oracle은 현재 그룹을 사용하여 redo 로그 항목을 기록합니다.그룹이 가득 차면 로그 스위치가 발생하여 다른 그룹이 현재 그룹이 됩니다.각 로그 스위치로 체크포인트가 발생하지만 그 반대는 사실이 아닙니다.즉, 체크포인트로 인해 redo 로그스위치가 발생하지 않습니다.REDO 로그 스위치를 수동으로 발생시킬 수도 있습니다.ALTER SYSTEM SWITCH LOGFILE명령어를 입력합니다.
분류
로그 파일 재실행은 다음 두 가지 [1]유형으로 이루어집니다.
사용.
사용자가 "를 수신하기 전에Commit complete" 메시지가 나타나면 시스템은 먼저 새 데이터 또는 변경된 데이터를 redo 로그 파일에 성공적으로 기록해야 합니다.
RDBMS는 처음에 트랜잭션에 포함된 모든 변경을 System Global Area(SGA)의 로그 버퍼에 씁니다.이러한 방법으로 메모리를 초기 캡처에 사용하면 디스크 IO를 줄일 수 있습니다.물론 트랜잭션이 커밋될 때 redo 로그 버퍼를 디스크에 플러시해야 합니다. 그렇지 않으면 해당 커밋의 복구를 보장할 수 없기 때문입니다.LGWR(Log Writer) 프로세스가 이 플래시를 수행합니다.
redo 로그가 있으면 SQL 문을 재생할 수 있습니다.Oracle 데이터베이스는 데이터 파일의 데이터를 변경하기 전에 redo 로그에 변경 내용을 기록합니다.데이터 파일 중 하나에 문제가 발생한 경우 복구 절차를 통해 백업된 데이터 파일을 복원한 다음 백업 시간 이후 작성된 redo를 재생할 수 있습니다. 이렇게 하면 데이터 파일을 사용할 수 없게 되기 전의 상태로 만들 수 있습니다.Oracle Data Guard 환경의 스탠바이 데이터베이스는 동일한 기술을 사용합니다.즉, 1개의 데이터베이스(프라이머리 데이터베이스)가 모든 변경을 기록하고 스탠바이 데이터베이스로 전송합니다.각 스탠바이 데이터베이스는 도착한 redo를 적용(재생)하여 프라이머리 [5]데이터베이스와 동기화합니다.
데이터베이스가 충돌할 경우 복구 프로세스는 redo 로그 파일의 정보를 사용하여 커밋되지 않은 트랜잭션과 커밋된 트랜잭션을 모두 Disk의 데이터 파일에 적용해야 합니다.Oracle은 모든 redo-log 트랜잭션을 재실행해야 합니다.BEGIN및 aCOMMITentry(롤포워드)가 있습니다.또, 이 엔트리는, 이 엔트리를 가지는 모든 트랜잭션은BEGIN기입은 했지만, 기입은 하지 않았다.COMMIT엔트리(롤백)[6](이 컨텍스트에서 트랜잭션을 재실행한다는 것은 단순히 redo 로그 파일의 정보를 데이터베이스에 적용하는 것을 의미합니다.시스템은 트랜잭션 자체를 재실행하지 않습니다).따라서 시스템은 redo 로그 파일 내의 "after image" 레코드를 데이터베이스에 적용하여 커밋된 트랜잭션을 다시 생성하고 "before image" 레코드를 Undo 테이블스페이스에 사용하여 불완전한 트랜잭션을 취소합니다.
변경 데이터 캡처는 redo 로그를 읽을 수 있습니다.
Oracle Data Guard 구성에서 대기 redo 로그는 동등한 온라인 redo 로그와 유사하지만 다른 데이터베이스에서 [7]전송된 redo 데이터를 저장하는 역할을 합니다.
시사점
로그의 상세성을 고려하여 오라클 Corporation은 redo 로그(아카이브 로그)를 아카이브하는 방법을 제공하며, 이는 데이터 백업 시나리오와 대기 데이터베이스에 반영될 수 있습니다.
개별적으로 기록된 트랜잭션 및 작업 상세 시리즈가 존재하기 때문에 Oracle Flashback, 로그 마이닝 및 시점 복구와 같은 몇 가지 데이터 관리 향상 기능의 기반이 됩니다.데이터베이스[8] 구현의 개념은 데이터베이스 복구에서의 redo 사용에 영향을 줄 수 있습니다.
데이터베이스 조정을 위해 redo 로그를 효율적으로 처리하려면 대용량의 고속 액세스 디스크가 필요합니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Kyte, Thomas; Kuhn, Darl (2014-11-10). Expert Oracle Database Architecture. Expert's voice in Oracle (3 ed.). Apress (published 2014). p. 9. ISBN 9781430262992. Retrieved 2015-02-19.
I've referred to two types of redo log file: online and archived.
- ^ Bach, Martin (2013-11-23). Expert Consolidation in Oracle Database 12c. SpringerLink : Bücher. Apress (published 2013). p. 318. ISBN 9781430244288. Retrieved 2015-07-12.
Standby redo logs (SRL) on the disaster recovery site act as the counterpart to the primary database's online redo logs (ORL) and allow the remote site to receive redo more efficiently.
- ^ Fogel, Steve (May 2006). "Oracle Database Administrator's Guide, 10g Release 2 (10.2)". docs.oracle.com. Oracle. Retrieved 2015-02-19.
The current redo log is always online, unlike archived copies of a redo log. Therefore, the online redo log is usually referred to as simply the redo log.
- ^ Ries, Steve (2013-02-22). Oca Oracle Database 11g Database Administration I: A Real-World Certification Guide. Packt Publishing Ltd (published 2013). ISBN 9781849687317. Retrieved 2015-02-19.
[...] when a log switch occurs, the contents of the current redo log are written out to an archived redo log by the ARCn process. These logs are also referred to as offline redo logs or simply archive logs.
- ^ Liu, Henry H. (2011-11-22). Oracle Database Performance and Scalability: A Quantitative Approach. Quantitative Software Engineering Series. Vol. 12. John Wiley & Sons (published 2011). p. 238–239. ISBN 9781118056998. Retrieved 2015-02-19.
Primary and physical standby databases are synchronized through a service called Redo Apply, which recovers the redo data from the primary database and applies the redo to the standby database. [...] Synchronization between the primary and [logical] standby databases is achieved through a service named SQL Apply, which transforms the redo data from the primary database into SQL statements and then executes the SQL statements on the standby database.
- ^ Greenwald, Rick; Stackowiak, Robert; Stern, Jonathan (2013-09-06). Oracle Essentials: Oracle Database 12c (5 ed.). O'Reilly Media, Inc. (published 2013). ISBN 9781449343170. Retrieved 2015-02-19.
Instance recovery has two phases: roll forward and roll back.
- ^ Schupmann, Vivian (2008). "Oracle Data Guard: Concepts and Administration: 10g Release 2 (10.2)". Oracle. Retrieved 2015-02-19.
A standby redo log is similar to an online redo log, except that a standby redo log is used to store redo data received from another database.
- ^ Bach, Martin (2013-11-23). Expert Consolidation in Oracle Database 12c. SpringerLink : Bücher. Apress (published 2013). p. 378. ISBN 9781430244288. Retrieved 2015-02-04.
An incarnation as per the Oracle documentation is a separate version of the database.
외부 링크
- redo 로그 관리(Oracle 문서)