문서유형ㅣ기술정보
분야ㅣ관리/환경설정
적용제품버전ㅣ 6FS07PS, 7FS02PS
문서번호ㅣ TADTS077
현상
archived Log가 있음에도 ERROR_CACHE_LOGNET_LOGFILE_NOT_FOUND 발생하는 케이스에 대한 설명 및 조치 방안을 설명하는 문서 입니다
1. standby 에서는 THROW. ec=ERROR_CACHE_LOGNET_DISCONN(-1102) 에러가 계속 발생합니다.
2. active 에서는 THROW. ec=ERROR_CACHE_LOGNET_LOGFILE_NOT_FOUND(-1033) 에러가 계속 발생합니다,
3. 하지만 ARCHIVED_LOG_DEST 경로에는 에러가 발생하는 시점의 로그 시퀀스 보다 과거 시점의 Archived log가 존재합니다.
원인
1. TSC는 동기화 때 읽을 Archived Log를 찾을 때 Control File의 정보를 읽어서 대상을 찾습니다.
2. Control File 에 저장되는 Archived Log 리스트는 ARCHIVED_LOG_DEST 전체 파일이 아닌 컨트롤 파일 내
MAXARCHIVELOG 값 만큼만 저장합니다.
3. 따라서 Active와 Standby의 동기화 차이가 MAXARCHIVELOG 값 이상의 Archived Log 개수 만큼 발생 하면
실제 파일은 남아있더라도 Control File 정보에서 찾을 수 없기 때문에 파일 못 찾는다는 에러가 발생합니다.
--1. DB 생성 시 : MAXARCHIVELOG 500 으로 지정된 게 보입니다.
create database
user sys identified by tibero
NOARCHIVELOG
MAXLOGFILES 255
MAXLOGMEMBERS 8
MAXDATAFILES 4096
MAXARCHIVELOG 500
MAXBACKUPSET 500
MAXLOGHISTORY 500
CHARACTER SET UTF8
NATIONAL CHARACTER SET UTF16
logfile
group 1 ('redo001.redo') size 100M,
group 2 ('redo011.redo') size 100M,
group 3 ('redo021.redo') size 100M
datafile 'system001.dtf' size 100M
(후략)
--2. 컨트롤 파일 trace 생성시. MAXARCHIVELOG 500 설정이 보입니다.
CREATE CONTROLFILE REUSE DATABASE "tibero"
LOGFILE
GROUP 0 '/home/tibero/tbdata/redo01.redo' SIZE 50M,
GROUP 1 '/home/tibero/tbdata/redo02.redo' SIZE 50M,
GROUP 2 '/home/tibero/tbdata/redo03.redo' SIZE 50M
NORESETLOGS
DATAFILE
'/home/tibero/tbdata/system001.dtf',
'/home/tibero/tbdata/undo001.dtf',
'/home/tibero/tbdata/usr001.dtf',
'/home/tibero/tbdata/undo002.dtf',
'/home/tibero/tbdata/apm_ts.dtf'
NOARCHIVELOG
MAXLOGFILES 255
MAXLOGMEMBERS 8
MAXDATAFILES 4096
MAXARCHIVELOG 500
MAXBACKUPSET 500
MAXLOGHISTORY 500
CHARACTER SET UTF8
NATIONAL CHARACTER SET UTF16
(후략)
;
해결
1. 최초 구축 시점이라면 MAXARCHIVELOG 수를 늘려서 컨트롤 파일 재생성 하는 방안이 있습니다.
2. 패치가 적용되어 있다면 아래 방법으로 Control file 대신 실제 파일 경로를 확인하는 기능을 사용할 수 있습니다.
- 308817a : Tibero7FS02PS, Tibero6FS06PS 부터 기본 반영 되어 있는 패치
- ALTER SYSTEM SET _LNW_LOG_ARCHIVE_SEARCH_DEST=Y
3. 2의 파라미터 설정 시 MAXARCHIVELOG 이상 동기화 대상 로그가 차이나도, ARCHIVED_LOG_DEST 내
파일이 있다면 정상적으로 읽어서 동기화를 시작합니다.
기능 파라미터
_LNW_LOG_ARCHIVE_SEARCH_DEST
LNW가 아카이브 로그를 전송할 때 CF보다 아카이브 로그 경로를 먼저 참조할지 여부입니다.
N일 경우 Control file 만 읽으며, Y일 경우 아카이브 로그 경로 확인 후 컨트롤 파일을 확인합니다.구분 설명 타입 Boolean 기본값 N 속성 Optional, Adjustable, Dynamic, System 설정방법 TIP 파일을 설정한 후 재기동하거나 ALTER 문으로 변경합니다. 문법 - TIP 파일
_LNW_LOG_ARCHIVE_SEARCH_DEST=[Y|N]
- ALTER문
ALTER SYSTEM SET _LNW_LOG_ARCHIVE_SEARCH_DEST=[Y|N];_LNW_LOG_ARCHIVE_SEARCH_DEST_ONLY
LNW가 아카이브 로그를 전송할 때 CF는 참조하지 않고 아카이브 로그 경로 만을 참조할지 여부입니다.
_LNW_LOG_ARCHIVE_SEARCH_DEST=Y 일 때만 Y로 설정이 가능합니다.구분 설명 타입 Boolean 기본값 N 속성 Optional, Adjustable, Dynamic, System 설정방법 TIP 파일을 설정한 후 재기동하거나 ALTER 문으로 변경합니다. 문법 - TIP 파일
_LNW_LOG_ARCHIVE_SEARCH_DEST_ONLY=[Y|N]
- ALTER문
ALTER SYSTEM SET _LNW_LOG_ARCHIVE_SEARCH_DEST_ONLY=[Y|N];_LNW_IGNORE_LOG_ARCHIVE_FORMAT
LNW가 아카이브 로그를 전송하기 위해 아카이브 로그 경로를 참조할 때 아카이브 로그 포맷을 만족하지 않는 파일 이름을 가진 아카이브 로그들을 허용할지 여부입니다.
구분 설명 타입 Boolean 기본값 N 속성 Optional, Adjustable, Dynamic, System 설정방법 TIP 파일을 설정한 후 재기동하거나 ALTER 문으로 변경합니다. 문법 - TIP 파일
_LNW_IGNORE_LOG_ARCHIVE_FORMAT=[Y|N]
- ALTER문
ALTER SYSTEM SET _LNW_IGNORE_LOG_ARCHIVE_FORMAT=[Y|N];_LNW_LOG_ARCHIVE_DEST
LNW가 아카이브 로그를 전송할 때 참조할 아카이브 로그 경로입니다.
별도 설정이 없을 시 LOG_ARCHIVE_DEST 값을 사용합니다.
구분 설명 타입 String 기본값 LOG_ARCHIVE_DEST 속성 Optional, Adjustable, Dynamic, System 설정방법 TIP 파일을 설정한 후 재기동하거나 ALTER 문으로 변경합니다. 문법 - TIP 파일
_LNW_LOG_ARCHIVE_DEST=<별도 사용할 경로>
- ALTER문
ALTER SYSTEM SET _LNW_LOG_ARCHIVE_DEST=<별도 사용할 경로>;_LNW_LOG_ARCHIVE_SEARCH_DEST_RETRY_CNT
LNW가 LOG_ARCHIVE_DEST와는 다른 아카이브 로그 경로를 참조하여 아카이브 로그를 전송할 때 아카이브 로그가 없거나 copy 중이어서 사이즈가 달라 오픈에 실패했을 시 다시 시도하는 횟수(초)입니다.
1초에 한번식 재시도를 하는 동작이며 해당 파라미터 값 이상 시도 해도 아카이브 로그를 못찾는다면 ERROR_CACHE_LOGNET_LOGFILE_NOT_FOUND 에러를 발생시킵니다.
구분 설명 타입 Integer 기본값 86400 속성 Optional, Adjustable, Dynamic, System 설정방법 TIP 파일을 설정한 후 재기동하거나 ALTER 문으로 변경합니다. 문법 - TIP 파일
_LNW_LOG_ARCHIVE_DEST=<별도 사용할 경로>
- ALTER문
ALTER SYSTEM SET _LNW_LOG_ARCHIVE_DEST=<별도 사용할 경로>;