AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Oracle을 소스로 사용하는 AWS DMS CDC 작업이 실패하고 ‘Sequence does not exist’ 오류가 표시되는 이유가 무엇입니까?
AWS Database Migration Service(AWS DMS)를 사용해 온프레미스 또는 Oracle 데이터베이스용 Amazon Relational Database Service(Amazon RDS)에서 데이터를 마이그레이션하려고 합니다. AWS DMS 변경 데이터 캡처(CDC) 작업이 실패하고 ‘Sequence does not exist’ 오류 메시지가 표시됩니다.
간략한 설명
Oracle 데이터베이스를 마이그레이션 작업의 소스로 사용하면 AWS DMS가 데이터를 전체 로드 단계의 테이블에서 가져옵니다. CDC 단계에서는 AWS DMS가 보관된 redo 로그에서 데이터를 읽습니다. 그런 다음 AWS DMS는 소스 Oracle 데이터베이스에서 redo 로그를 캡처하고 커밋된 변경 사항만 대상 데이터베이스에 적용합니다.
AWS DMS가 잘못된 대상에서 redo 로그를 찾거나, DEL이 YES이고 소스 Oracle 데이터베이스에 archivelog 시퀀스가 존재하지 않는 경우, 오류 메시지가 표시될 수 있습니다. 이 오류 메시지는 다음과 비슷합니다.
‘03980512: 2022-05-23T12:33:11 [SOURCE_CAPTURE ]E: Archived Redo log with the sequence 232488 does not exist, thread 1 [1022318] (oradcdc_thread.c:624’
해결 방법
참고: 소스 온프레미스 데이터베이스 또는 RDS for Oracle 데이터베이스는 아카이브 redo 로그를 제거합니다. AWS DMS는 아카이브 redo 로그를 제거하지 않습니다. 대신, AWS DMS는 다음 LSN을 처리하려 할 때 로그를 찾을 수 없다고 확인합니다.
아카이브 로그 파일과 시퀀스가 존재하는지 확인
다음 단계를 완료하십시오.
- 소스 Oracle 데이터베이스 서버에서 아카이브 로그 시퀀스 번호(LSN)를 사용할 수 있는지 확인하려면 다음 명령을 실행합니다.
참고: 232488을 시퀀스 로그 오류의 아카이브 LSN으로 바꾸십시오.select name, dest_id, thread#, sequence#, archived, applied, deleted, status, first_time, next_time, completion_time from v$archived_log where sequence# = 232488; - DEL 열을 확인합니다.
참고: 열에 NO가 나열된 경우, 소스 데이터베이스에 아카이브 LSN이 존재하는 것입니다. 열에 YES가 나열되고 온프레미스 Oracle 서버를 사용하는 경우, 아카이브 LSN이 존재하지 않는 것이고 Oracle이 소스에서 제거한 것일 수 있습니다. 이 문서의 DEL이 YES이고 소스 Oracle 데이터베이스에 archivelog 시퀀스가 존재하지 않음 섹션으로 계속 진행하십시오. Amazon RDS에서는 Oracle이 아카이브 LSN을 제거한 경우, DEL 열에 NO가 표시됩니다. 이 정보는 제어 파일에서 옵니다. - Amazon RDS for Oracle을 사용하는 경우 Amazon RDS에 redo 로그가 존재하는지 확인하십시오. 다음 쿼리를 실행합니다.
참고: example-redolog.arc를 아카이브 redo 로그 이름으로 바꾸십시오. ARCHIVELOG_DIR이 존재하지 않는 경우, ARCHIVELOG_DIR을 만들고 쿼리를 다시 실행합니다.select * from table(rdsadmin.rds_file_util.listdir('ARCHIVELOG_DIR')) where filename='example-redolog.arc' order by mtime desc;
AWS DMS가 잘못된 대상에서 redo 로그를 찾음
기본적으로, AWS DMS는 DEST_ID 1에서 redo 로그를 캡처합니다. AWS DMS 작업은 DEST_ID 1에서 redo 로그를 찾는데, redo 로그 파일이 다른 DEST_ID에 존재하기 때문에 작업이 실패합니다.
DEST_ID 값을 변경하려면 다음 단계를 완료하십시오.
-
시퀀스 DEST_ID 값을 확인하려면 소스 데이터베이스에서 다음 쿼리를 실행합니다.
select name, dest_id, thread#, sequence#, archived, applied, deleted, status, first_time, next_time, completion_time from v$archived_log where sequence# in (232488);참고: 232488을 아카이브 LSN으로 바꾸십시오.
앞의 쿼리 출력 예시:NAME DEST_ID THREAD# SEQUENCE# ARC APPLIED DEL S FIRST_TIM NEXT_TIME COMPLETIO --------------------------------------------- ---------- ---------- ---------- --- --------- --- - --------- --------- --------- /orafra/prdsvbo/arc/1_232488_950180179.arc 2 1 232488 YES YES NO A 07-JUN-22 07-JUN-22 07-JUN-22 -
DEST_ID 열을 확인하고, DMS 작업 로그를 확인해 DEST_ID를 확인합니다.
로그 예시:01788702: 2022-06-07T17:10:31:658376 [SOURCE_CAPTURE ]I: Used Oracle archived Redo log destination id is '1' (oracdc_merger.c:639) 01788702: 2022-06-07T17:10:31:658420 [SOURCE_CAPTURE ]I: Oracle instance uses more than one archived Redo log destination id. Please configure the correct destination id, if Redo logs of '1' destination cannot be accessed (oracdc_merger.c:642) -
AWS DMS가 사용하는 DEST_ID를 변경하려면 소스 엔드포인트에 additionalArchivedLogDestId 추가 연결 속성(ECA)을 추가힙니다.
참고: 이 ECA의 값이 앞의 단계에서 찾은 DEST_ID 값이어야 합니다. 자세한 내용은 Endpoint settings when using Oracle as a source for AWS DMS(Oracle을 AWS DMS의 소스로 사용할 때 엔드포인트 설정)를 참조하십시오. -
DMS 작업을 재개합니다. 로그에 이제 AWS DMS가 업데이트된 DEST_ID에서 사용 가능한 redo LSN을 캡처할 수 있는 것으로 표시됩니다.
로그 예시:01898667: 2022-06-08T05:45:08:535588 [SOURCE_CAPTURE ]D: Going to retrieve archived REDO log with sequence 232488, thread 1 (oradcdc_thread.c:510) 01898667: 2022-06-08T05:45:08:535607 [SOURCE_CAPTURE ]T: Use a prepared statement to access v$archived_log, thread 1 (oradcdc_thread.c:587) 01898667: 2022-06-08T05:45:08:598396 [SOURCE_CAPTURE ]D: Going to open Redo Log with original name '/orafra/prdsvbo/arc/1_232488_950180179.arc', thread id '1' (oradcdc_redo.c:492) 01898667: 2022-06-08T05:45:08:599614 [SOURCE_CAPTURE ]D: archived Redo log '/orafra/prdsvbo/arc/1_232488_950180179.arc' with sequence 232488 is opened, thread id '1' (oradcdc_redo.c:747)
DEL이 YES이고 소스 Oracle 데이터베이스에 archivelog 시퀀스가 존재하지 않음
DEL이 YES이면 AWS DMS가 소스 Oracle 데이터베이스에서 아카이브 로그 시퀀스를 제거한 것입니다. Oracle 인스턴스는 아카이브 로그가 차지하는 공간을 최소화하기 위해 아카이브 로그 파일을 삭제합니다.
온프레미스 Oracle 데이터베이스의 아카이브 보존 기간 늘리기
SYSDATE-1 시간까지 noprompt archivelog를 삭제하도록 Recovery Manager(RMAN)를 예약한 경우, 이 일정이 1일보다 오래된 모든 아카이브 로그 파일을 삭제합니다. 이 값을 늘리려면 일정을 SYSDATE-2로 수정하거나 일정을 비활성화합니다.
현재 구성을 확인하고 아카이브 로그 보존을 늘리려면 다음 단계를 완료하십시오.
- RMAN에 연결합니다.
- Oracle 데이터베이스의 모든 구성을 표시하려면 다음 쿼리를 실행합니다.
참고: 기본 Archivelog 삭제 정책 값은 NONE입니다.RMAN> SHOW ALL; - 보존 기간을 늘리려면 다음 명령을 실행합니다.
참고: SBT를 스토리지 디바이스 유형(예: DISK 또는 ANY)으로 바꾸십시오.CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO SBT; - 백업 보관된 redo 로그를 복원하고, DMS 작업을 재개합니다.
참고: 아카이브 redo 로그를 백업하지 않은 경우, 작업을 전체 로드 단계부터 다시 시작해 마이그레이션을 처음부터 다시 시작합니다.
아카이브 보존 기간을 늘리고 Amazon RDS에 대해 보관된 redo 로그 다운로드
Amazon RDS는 아카이브 로그 보존 기간을 벗어난 아카이브 로그 파일을 삭제합니다. Amazon RDS는 Amazon RDS 백업 보존 기간에 따라 Amazon Simple Storage Solution(Amazon S3) 버킷에 사본을 보관하기도 합니다. 이 사본을 사용해 특정 시점 복원(PITR)을 할 수 있습니다.
다음 단계를 완료하십시오.
-
현재 아카이브 로그 보존 기간을 보려면 다음 쿼리를 실행합니다.
exec rdsadmin.rdsadmin_util.show_configuration; -
아카이브 로그 보존 기간을 늘리려면 다음 명령을 실행합니다.
begin rdsadmin.rdsadmin_util.set_configuration( name => 'archivelog retention hours', value => '24'); end; / commit;참고: 24를 현재 아카이브 보존 기간보다 큰 값으로 바꾸십시오.
-
늘린 보존 기간을 확인하고 로그 파일 이름을 찾으려면 다음 명령을 실행합니다.
exec rdsadmin.rdsadmin_util.show_configuration; -
보관된 redo 로그를 다운로드합니다.
참고: LSN을 따르는 모든 redo 로그가 소스에 있어야만 AWS DMS 작업을 재개할 수 있습니다. 누락된 아카이브 로그 시퀀스를 복원할 수 없는 경우, 작업을 전체 로드 단계에서 다시 시작해 마이그레이션을 처음부터 다시 시작하십시오.
관련 정보
- 언어
- 한국어

This article was reviewed and updated on 2026-04-03.
관련 콘텐츠
질문됨 2년 전
질문됨 2년 전