2012-08-15 2 views
1

5 시간 이상 실행될 때 워크 플로우를 실행하는 동안 '스냅 샷이 너무 오래됨'오류가 발생합니다. 원본은 오라클이고 대상은 Teradata입니다. 사전스냅 샷이 너무 오래됨 오류

+0

http://www.dba-oracle.com/t_ora_01555_snapshot_old.htm – Randy

답변

2

내가 읽은 ORA-01555 스냅 샷 너무 나이가 오류의 가장 좋은 설명은, this AskTom thread

감사에서 발견된다.

2

스냅 샷 너무 나이 오류가 더 많거나 적은 직접 쿼리의 실행 시간 (FOR 루프의 자주 커서)에 관련이 issue.Thanks를 해결하는 데 도움이 바랍니다. 따라서 최상의 솔루션은 쿼리를 최적화하여 빠르게 실행하는 것입니다.

단기적인 해결책으로 UNDO 로그의 크기를 늘릴 수 있습니다.

업데이트 :이 업데이트되기 전에 기록의

실행 취소 로그는 이전 버전. 트랜잭션을 롤백하고 오래된 버전의 레코드를 검색하여 장기 실행 쿼리의 일관된 데이터 스냅 샷을 얻는 데 사용됩니다.

UNDO 로그를 늘려서 문제를 해결하려면 Oracle DB 관리를해야 할 것입니다. 기본적으로 당신은 (SYSDBA로) 수행

ALTER SYSTEM SET UNDO_RETENTION = 21600; 

21600 초에 6 시간입니다.

그러나 Oracle은 롤백 세그먼트의 크기와 데이터베이스에서 실행되는 업데이트의 양에 따라 UNDO 로그 파일이 충분히 큰 경우에만 6 시간의 오래된 데이터를 보존합니다.

이렇게 실행 취소 보존 시간을 변경하는 것 외에도 작업이 실행되는 동안 동시 업데이트가 거의 실행되지 않도록해야합니다. 특히 작업 내용을 업데이트하는 작업은 최소화해야합니다.

모든 것이 실패하면 UNDO 로그를 늘리십시오.

+0

고맙습니다 쿼리는 매우 간단하지만 더 레코드, 더 오래 없단 복용 문신의 Y를 가져옵니다 대상에 대한 로딩 Tpump을 사용하고 있습니다 (비 스테이징 모드). 와트는 UNDO 로그입니까? 이것을 분명히 할 수 있습니까? 이 오류를 극복 할 수있는 다른 방법을 알려주세요. – user1601052

+0

자세한 내용은 내 업데이트를 참조하십시오. – Codo

+0

스냅 샷이 너무 오래 걸리면 실행 취소 보존이 너무 짧아서 코모가 변경해야한다고 말한 것과 같습니다. 그런 다음 스냅 샷이 너무 작습니다. 이 시간은 실행 취소 보존이 충족되면 수행해야하는 롤백을 저장하는 실행 취소 테이블 공간의 크기와 관련됩니다. 그래서 종종 첫 번째가 두 번째에 영향을줍니다. 희망이 명확히 수 있습니다. 문안 인사. –

관련 문제