[유틸리티 에러] EXP-00091: 의심스러운 통계를 내보내는 중입니다.
■에러
EXP-00091: 의심스러운 통계를 내보내는 중입니다.
■현상
이 에러는 현지 서버에서 데이터를 Export를 하기 위해 사내 환경에서 실행했을 때 발생한 에러이다.
미리 작성한 배치파일을 가지고 exp.exe를 실행한 결과
export시 EXP-00091: Exporting questionable statistics가 발생했다.
■원인
EXP-00091 오류는 오류보다 경고에 가깝다.
의심스러운 통계 = 아마 도움이 되지 않는 불필요한 통계 정보를 출력하고 있다.
통계는 테이블의 전체 데이터 분포를 기반으로 작성되었으며 열의 상한값과 하한값은 고유한 내부 형식으로 가지고 있다.
이들 내부 정보에 영향을 주는 파라미터 및 환경 변수가 지정이 된 상태에서의 익스포트 처리가 되고 있다고 하는 것이다.
구체적으로는 일부 데이터를 선택한 추출을 하고 있거나,
데이터베이스의 NLS_LANGUAGE와 NLS_LANG 환경 변수의 캐릭터 세트의 차이, 사용하고 있는 버전의 차이등이 있다.
정리하자면 아래의 두가지 원인이다.
원인1. 데이터베이스 문자 코드와 환경 변수 'NLS_LANG'이 일치하지 않는 경우
원인2. 일부 테이블만 내보내는 경우
특히 NLS_LANG의 설정은 이름이 긴 분 typo 확률이 높고, 1문자씩 재확인을 한다. 언더 스코어, 도트 배치 미스도 확인.
대소문자는 구별하지 않는다.
※ 실제로 사내에서 에러가 발생한 이유도 NLS_LANGUAGE와 NLS_LANG 환경 변수의 캐릭터 세트의 차이였다.
■대응 방법
동일한 환경에서 내보낼 때마다 동일한 경고가 발생한다.
쿼리 지정의 exp (query="WHERE ~" 옵션)의 경우에는 통계 정보의 export를 중지한다 (옵션: STATISTICS=none )
이 옵션을 사용하면 통계를 내보내지 않고 실행하면 경고가 발생하지 않는다.
EXP user/password@접속문자열 FILE=dmp파일의 경로 LOG=로그파일의 경로 STATISTICS=NONE
또한 NLS_LANG 환경변수가 미설정인지 확인한다.
한자 코드가 다른 내보내기(Export)의 경우 서버의 문자 집합으로 내보낸다.
통계 정보가 없는 정보에 가져오기(Import)를 할 서버의 인스턴스로 Imp를 실시하면,
다음의 GATHER STALE 작업 리스트에 올것이라고 생각되지만, 통계 정보의 재작성은 수동으로 실시하는 것이 좋다.