database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Tutorials 17488 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 17488
RMAN BACKUPS AND ARCHIVED LOG ISSUES
작성자
정재익(advance)
작성일
2004-02-23 02:21
조회수
13,393

RMAN BACKUPS AND ARCHIVED LOG ISSUES
=====================================

Scenario #1:
------------

1)RMAN이 모든 archived log들을 삭제할 때 실패하는 경우.

 database는 두 개의 archive destination에 archive file을 생성한다.
 다음과 같은 스크립트를 수행하여 백업후에 archived redo logfile을 삭제한다.

run {
     allocate channel c1 type 'sbt_tape';
     backup database;
     backup archivelog all delete input;
}

 
 Archived redo logfile 삭제 유무를 확인하기 위해 CROSSCHECK 수행시 다음과
 같은 메시지가 발생함.

RMAN> change archivelog all crosscheck;

RMAN-03022: compiling command: change
RMAN-06158: validation succeeded for archived log
RMAN-08514: archivelog filename=
 /oracle/arch/dest2/arcr_1_964.arc recid=19 stamp=368726072


2) 원인분석

 이 문제는 에러가 아니다. RMAN은 여러 개의 arhive directory중 하나의

 directoy안에 있는 archived file들만 삭제한다. 그래서 나머지 directory안의
 archived log file들은 삭제되지 않고 남게 되는 것이다.

3) 해결책

 RMAN이 강제로 모든 directory안의 archived log file들을 삭제하게 하기 위해서는
 여러 개의 채널을 할당하여 각 채널이 각 archive destination안의 archived file을
 백업하고 삭제하도록 해야 한다.
 이것은 아래와 같이 구현될 수 있다.

run {
     allocate channel t1 type 'sbt_tape';
     allocate channel t2 type 'sbt_tape';
     backup
       archivelog like '/oracle/arch/dest1/%' channel t1 delete input
       archivelog like '/oracle/arch/dest2/%' channel t2 delete input;
}

 


Scenario #2:
------------

1)RMAN이 archived log를 찾을 수 없어 백업이 실패하는 경우.

이 시나리오에서  database를 incremental backup한다고 가정한다.
이 경우 RMAN은 recover시 archived redo log대신에 incremental backup을 사용할
수 있기 때문에 백업 후 모든 archived redo log를 삭제하기 위해 OS utility를 사용한다.
그러나  다음 번 backup시 다음과 같은 Error를 만나게 된다.

RMAN-6089:  archive log NAME not found or out of sync with catalog


2) 원인분석

 이 문제는 OS 명령을 사용하여 archived log를 삭제하였을 경우 발생한다. 이때 RMAN은 
 archived log가 삭제되었다는 것을 알지 못한다. RMAN-6089는 RMAN이 OS 명령에 의해
 삭제된 archived log가 여전히 존재하다고 생각하고 백업하려고 시도하였을 때 발생하게 된다.

3) 해결책

가장 쉬운 해결책은 archived log를 백업할 때 DELETE INPUT option을 사용하는 것이다.
예를 들면


run {
     allocate channel c1 type 'sbt_tape';
     backup archivelog all delete input;
}


두 번째로 가장 쉬운 해결책은 OS utility를 사용하여 archived log를 삭제한 후에
다음과 같은 명령어를 RMAN prompt상에서 수행하는 것이다.

RMAN>allocate channel for maintenance type disk;
RMAN>change archivelog all crosscheck;

Oracle 8.0:

 RMAN> change archivelog '/disk/path/archivelog_name' validate;

Oracle 8i:

        RMAN> change archivelog all crosscheck ;

Oracle 9i:

        RMAN> crosscheck archivelog all ;
  

 

catalog의 COMPATIBLE 파라미터가 8.1.5이하로 설정되어 있으면 RMAN은 찾을 수 없는 모든 archived log의 status를  "DELETED" 로 셋팅한다. 만약에 COMPATIBLE이 8.1.6이상으로 설정되어 있으면 RMAN은 Repository에서 record를 삭제한다.

[Top]
No.
제목
작성자
작성일
조회
17930Oracle Database Server 및 Linux 튜닝
정재익
2004-03-26
17079
17924Installing Oracle9i on FreeBSD
정재익
2004-03-26
16616
17923FreeBSD 5.5 Current +Oracle 8.7.1
정재익
2004-03-26
13340
17488RMAN BACKUPS AND ARCHIVED LOG ISSUES
정재익
2004-02-23
13393
17324OFSA의 DEBUG 하는 방법
정재익
2004-02-11
11403
17323프린터가 ORACLE ERP에서 작동하기까지 확인할 점
정재익
2004-02-11
9289
17322CONCURRENT MANAGER가 뜨지 않을 경우 써야 하는 방법
정재익
2004-02-11
9038
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다