No Archive Log Mode와 Archive Log Mode
No Archive Log Mode 운영
- 교육환경 및 개발 환경과 같이 데이터가 날아 가더라도 별 문제가 없는 환경
- 복구 시 데이터에 대한 어느 정도의 손실을 가만 할 수 있는 경우
- 데이터의 추가나 변경이 자주 일어나지 않고 입력이나 변경 작업은 주로 SQL 스크립트를 통해 일괄적으로 수행하는 환경
Archive Log Mode 운영
- 데이터베이스가 1년 36 5일 무정지로 운영하는 경우
- 복구 시 데이터의 손실이 일어나면 안되는 경우
- 여러 사용자가 자주 데이터를 입력, 변경하는 환경
- 불완전 복구 및 완전 복구 모두 가능
--------------------------------------------------------
오라클 서버는 사용자들이 입력, 수정, 삭제작업을 수행할 때 마다 발생하는 모든 변경 전 데이터와 변경 후 데이터들을 리두 로그 버퍼 영역에 두게 됩니다. LGWR 백그라운드 프로세스는 Redo Log Buffer의 데이터들을 영구히 저장할 수 있는 Redo Log File에 저장하게 되구요,
오라클을 설치하면 3개의 Redo Log File이 제공 되는데 처음에 LGWR는 첫 번째 리두 로그 파일에 데이터를 저장하며 모든 Redo Log File이 꽉 차게 되면 더 이상 제공되는 리두 로그 파일이 없기 때문에 다시 첫 번째 리두 로그 파일에 백업 데이터들을 저장하게 됩니다.
이때 이전에 저장되어 있는 백업 데이터 위에 새로운 백업 데이터들을 저장하기 때문에 이전 백업 데이터들은 모두 유실되는 문제가 발생하게 됩니다.
오라클 데이터베이스에서는 이러한 환경을 No Archive Mode라고 하며 기본적으로 오라클 을 설치하면 No Archive Mode로 설치 됩니다.
.
아래는 사용 중인 데이터베이스의 아카이브 모드 상태를 확인하는 방법입니다.
SQL> conn / as sysdba
Connected.
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination C:\oracle\ora92\RDBMS
Oldest online log sequence 285
Current log sequence 287
아래와 같이 v$log를 조회했을 때 ARC 컬럼이 “NO”라는 것 역시 No Archive Log Mode로 DB가 운영중임을 나타냅니다.
SQL> select group#, sequence#, archived, status
2 from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 287 NO CURRENT
2 285 NO INACTIVE
3 286 NO INACTIVE
위에서 마지막 세 번째 리두로그 파일도 모두 쓰여지고 나면 다시 첫 번째 리두로그 파일로 이동하여 쓰기 작업을 계속하게 된다고 했습니다. No Archive Log Mode인 경우엔 그냥 덮어 쓰겠지만 Archive Log Mode로 DB를 운영하는 경우엔 LGWR 프로세스가 첫 번째 리두로그 파일에 모든 변경 데이터를 저장한 후 다음 두 번째 리두 로그 파일로 로그 스위칭이 일어나는 순간 ARCH Background Processor 첫 번째 리두로그 파일을 InitSDI.ora 파일에서 지정한 경로로 복사하게 됩니다. 물론 두 번째, 세 번째 파일도 같은 구조 입니다.
아카이브 모드에서는 첫 번째 리두 로그 파일에 리두로그를 저장하더라도 이전 백업데이터는 이미 ARCH 프로세스에 의해 복사되어 있기 때문에 데이터베이스에 장애가 발생하더라도 이 저장된 아카이브 로그 파일을 통해 복구작업을 수행할 수 있게 되는 것입니다. 즉, 데이터베이스에서 발생하는 모든 데이터(변경 전 데이터와 변경 후 데이터)들이 ARCH 프로세스에 의해 항상 백업되는 구조 입니다.
No Archive Log Mode 운영
- 교육환경 및 개발 환경과 같이 데이터가 날아 가더라도 별 문제가 없는 환경
- 복구 시 데이터에 대한 어느 정도의 손실을 가만 할 수 있는 경우
- 데이터의 추가나 변경이 자주 일어나지 않고 입력이나 변경 작업은 주로 SQL 스크립트를 통해 일괄적으로 수행하는 환경
Archive Log Mode 운영
- 데이터베이스가 1년 36 5일 무정지로 운영하는 경우
- 복구 시 데이터의 손실이 일어나면 안되는 경우
- 여러 사용자가 자주 데이터를 입력, 변경하는 환경
- 불완전 복구 및 완전 복구 모두 가능
--------------------------------------------------------
오라클 서버는 사용자들이 입력, 수정, 삭제작업을 수행할 때 마다 발생하는 모든 변경 전 데이터와 변경 후 데이터들을 리두 로그 버퍼 영역에 두게 됩니다. LGWR 백그라운드 프로세스는 Redo Log Buffer의 데이터들을 영구히 저장할 수 있는 Redo Log File에 저장하게 되구요,
오라클을 설치하면 3개의 Redo Log File이 제공 되는데 처음에 LGWR는 첫 번째 리두 로그 파일에 데이터를 저장하며 모든 Redo Log File이 꽉 차게 되면 더 이상 제공되는 리두 로그 파일이 없기 때문에 다시 첫 번째 리두 로그 파일에 백업 데이터들을 저장하게 됩니다.
이때 이전에 저장되어 있는 백업 데이터 위에 새로운 백업 데이터들을 저장하기 때문에 이전 백업 데이터들은 모두 유실되는 문제가 발생하게 됩니다.
오라클 데이터베이스에서는 이러한 환경을 No Archive Mode라고 하며 기본적으로 오라클 을 설치하면 No Archive Mode로 설치 됩니다.
.
아래는 사용 중인 데이터베이스의 아카이브 모드 상태를 확인하는 방법입니다.
SQL> conn / as sysdba
Connected.
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination C:\oracle\ora92\RDBMS
Oldest online log sequence 285
Current log sequence 287
아래와 같이 v$log를 조회했을 때 ARC 컬럼이 “NO”라는 것 역시 No Archive Log Mode로 DB가 운영중임을 나타냅니다.
SQL> select group#, sequence#, archived, status
2 from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 287 NO CURRENT
2 285 NO INACTIVE
3 286 NO INACTIVE
위에서 마지막 세 번째 리두로그 파일도 모두 쓰여지고 나면 다시 첫 번째 리두로그 파일로 이동하여 쓰기 작업을 계속하게 된다고 했습니다. No Archive Log Mode인 경우엔 그냥 덮어 쓰겠지만 Archive Log Mode로 DB를 운영하는 경우엔 LGWR 프로세스가 첫 번째 리두로그 파일에 모든 변경 데이터를 저장한 후 다음 두 번째 리두 로그 파일로 로그 스위칭이 일어나는 순간 ARCH Background Processor 첫 번째 리두로그 파일을 InitSDI.ora 파일에서 지정한 경로로 복사하게 됩니다. 물론 두 번째, 세 번째 파일도 같은 구조 입니다.
아카이브 모드에서는 첫 번째 리두 로그 파일에 리두로그를 저장하더라도 이전 백업데이터는 이미 ARCH 프로세스에 의해 복사되어 있기 때문에 데이터베이스에 장애가 발생하더라도 이 저장된 아카이브 로그 파일을 통해 복구작업을 수행할 수 있게 되는 것입니다. 즉, 데이터베이스에서 발생하는 모든 데이터(변경 전 데이터와 변경 후 데이터)들이 ARCH 프로세스에 의해 항상 백업되는 구조 입니다.
기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… | 12-27 | 2285 | ||
[채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… | 12-11 | 1638 | ||
53 | [평일주간100%환급]Spring,JAVA,JSP,안드로이드,C#닷넷,SQL,튜닝… | 03-15 | 1450 | |
52 | [주말]C#,ASP.NET마스터 | 01-31 | 1562 | |
51 | [기업100%환급,평일주간]SQL기초에서스키마오브젝트,PLSQL,힌트… | 01-31 | 1879 | |
50 | [기업100%환급]개발자를위한스프링,마이바티스,하이버네이트(스… | 01-31 | 1236 | |
49 | [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 | 01-19 | 1538 | |
48 | [평일주간,평일야간,주말]안드로이드개발자과정 | 01-11 | 1366 | |
47 | [평일야간,주말주간,주말야간]JAVA,Network&JSP&Spring,MyBatis,… | 01-03 | 1903 | |
46 | 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… | 12-27 | 2285 | |
45 | [기업100%환급]자바웹개발기초과정(JAVA,JDBC,JSP,Servlet,Aajx,… | 12-19 | 1641 | |
44 | [평일주간야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX… | 12-14 | 1605 | |
43 | [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… | 12-11 | 1638 | |
42 | [주말주간]자바&웹,jQUERY,스프링프레임워크 | 12-09 | 1310 | |
41 | [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 | 12-01 | 1538 | |
40 | [기업100%환급]자바기초&안드로이드개발자과정(Android전액환급… | 12-01 | 1723 | |
39 | [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) | 12-01 | 1183 |
댓글 없음:
댓글 쓰기