본문 바로가기
Data & Programming/Oracle

[오라클-오류] ORA-39083: error signaled in parallel query server

by 눈부셔™ 2023. 10. 15.
728x90
728x90

[Oracle-오류] ORA-39083: error signaled in parallel query server

오라클 오류코드인 ORA-39083 오류는 데이터 펌프 작업을 수행할 때 발생하는 오류 중 하나입니다. 이 오류는 주로 데이터베이스 복제 및 데이터 이관 작업과 관련이 있으며 병렬 처리 환경에서 자주 발생합니다. 이 오류 메시지는 데이터베이스에서 특히 데이터 펌프 작업 중에 병렬 쿼리 서버에서 오류가 발생했음을 나타냅니다.

ORA-39083: error signaled in parallel query server

 

오류 원인

가장 일반적인 원인 중 하나는 데이터 펌프 임포트(`impdp`) 작업 중에 특정 Oracle 식별자(OID)가 있는 'TYPE' 객체가 있는 경우입니다. 이러한 경우, 덤프 파일에 있는 Data Relationship Management Analytics 'TYPE' 객체 때문에 오류가 발생하며, 이로 인해 가져온 Data Relationship Management Analytics 스키마가 제대로 작동하지 않을 수 있습니다.

 

ORA-39083 오류가 발생하는 원인은 다양하며, 다음과 같은 상황에서도 발생할 수 있습니다.

  • 데이터 불일치 : 데이터 펌프 작업 중에 대상 데이터베이스와 원본 데이터베이스 간에 일치하지 않는 데이터 구조나 제약 조건이 있을 때 이 오류가 발생할 수 있습니다.
  • 병렬 처리 설정 오류 : 병렬 처리가 사용 중인 경우, 병렬 실행 서버 설정이 부적절하거나 부족한 경우에 이 오류가 발생할 수 있습니다.
  • 시스템 자원 부족 : 병렬 처리 서버가 충분한 메모리 또는 CPU 자원을 사용할 수 없을 때 이 오류가 발생할 수 있습니다.
  • 오라클 버전 간 불일치 : 데이터 펌프 작업을 수행하는 데이터베이스와 대상 데이터베이스 간에 오라클 버전이 서로 다를 때, 버전 간 호환성 문제로 이 오류가 발생할 수 있습니다.

 

 

오류 해결

ORA-39083 오류를 해결하기 위해서는 다음 단계를 따를 수 있습니다.

1 단계 : 데이터 일치성 확인
먼저, 데이터 펌프 작업을 수행하는 대상 데이터베이스와 원본 데이터베이스 간에 데이터 구조와 제약 조건이 일치하는지 확인해야 합니다. 데이터 불일치 문제를 해결해야 합니다.

2 단계 : 병렬 처리 설정 확인
병렬 처리가 사용 중이라면, 병렬 실행 서버 설정을 검토하십시오. 병렬 실행 서버의 수 및 메모리 할당이 충분한지 확인해야 합니다. 설정을 조정하여 성능을 최적화할 수 있습니다.

3 단계 : 시스템 자원 확인
시스템 자원이 부족한 경우 ORA-39083 오류가 발생할 수 있습니다. 시스템 자원 모니터링 도구를 사용하여 메모리 및 CPU 사용량을 확인하고 필요한 자원을 할당하십시오.

4 단계 : 오라클 버전 호환성 확인
원본 데이터베이스와 대상 데이터베이스의 오라클 버전이 일치하지 않는 경우, 버전 간 호환성 문제가 발생할 수 있습니다. 버전을 업데이트하거나 호환성 패치를 적용하여 이 문제를 해결하십시오.

5 단계 : 로깅 및 모니터링
ORA-39083 오류가 여전히 발생하는 경우, 상세한 로깅 및 모니터링을 설정하십시오. 이를 통해 오류의 원인을 식별하고 해결하는 데 도움이 됩니다.

 

 

실제 예시

간단한 예제로 원본 데이터베이스에서 대상 데이터베이스로 데이터를 복제하려고 할 때 발생할 수 있습니다.

1
expdp system/password@sourceDB tables=employees directory=data_pump_dir dumpfile=employees.dmp

위 명령은 employees 테이블을 데이터 펌프로 추출하는 명령입니다. 그러나 대상 데이터베이스에서 employees 테이블의 구조나 제약 조건이 원본 데이터베이스와 일치하지 않는 경우, ORA-39083 오류가 발생할 수 있습니다.

 

ORA-39083 오류를 해결하는 방법 중 하나는 TRANSFORM=oid:n 매개변수를 데이터 펌프 임포트 명령이나 스크립트에 포함하는 것입니다. 

TRANSFORM=oid:n은 데이터 펌프 작업 중에 오라클 객체 ID (OID)를 변환하도록 지시하는 옵션입니다.

 

  • OID는 데이터베이스 객체를 고유하게 식별하는 데 사용되며, 데이터 펌프 작업에서 OID 값의 불일치로 인해 ORA-39083 오류가 발생할 수 있습니다.
  • n은 변환 옵션의 값으로 사용됩니다. 여기서 n은 정수값이며, 변환 수준을 나타냅니다. 변환 수준에는 다음과 같은 옵션이 있을 수 있습니다
  • 0: 아무 변환 없음.
  • 1: 기본 객체 ID를 사용한 변환.
  • 2: 테이블과 관계형 객체 ID를 사용한 변환.
1
impdp system/password@targetDB directory=data_pump_dir dumpfile=employees.dmp transform=oid:1

위 명령은 employees.dmp 파일에서 데이터를 가져올 때 OID 변환 레벨을 1로 설정한 예제입니다.

 

결론

ORA-39083 오류는 복잡한 문제일 수 있지만, 적절한 해결책을 사용하면 해결할 수 있습니다.

이 문제를 해결하는 데 필요한 주요 단계는 원인을 파악하고 적절한 해결책을 적용하는 것입니다.

이 문제가 발생하면, Oracle 데이터베이스 설명서를 참조하거나 DBA에게 도움을 청하는 것이 좋습니다.

 

 

 

#Oracle  #오라클  #오라클 오류코드  #ORA-39083  #ErrorHandling  #DataPump  #Import  #OID  #ObjectCreationFailure  #ParallelQueryServer

728x90