새싹 DBA/Oracle

[오라클] DBLINK로 IMPDP 오류 ORA-31631, ORA-39149

LIMMI 2024. 7. 5. 09:54

ORA-31631, ORA-39149

하.. 이놈의 DBLINK 로 IMPDP 하는 작업.. 왜 자꾸 예상치 못하는 곳에서 오류가 나는걸까.. 

금요일마다 개발 DB 환경을 전환 DB에 반영해줘야해서 크론탭으로 매주 IMPDP 할 수 있도록 설정해뒀는데.. 

 

개발 DB 에 새로운 주제영역 유저를 생성했고, 그 유저가 만든 테이블도 전환 대상이라 같이 업데이트 될 수 있도록 해달라는 요청을 받아서 스크립트 수정하고 새로 돌려봤는데 글쎄 .... ㅎ ㅏ.

너 진짜 이럴거니.. 이럴거니 ... ㅠㅠ

심지어 작업을 진행하는 계정은 TARGET DB, LOCAL DB 모두 DBA 권한이 있는 계정인데 ...

열심히 찾아본 결과 EXP_FULL_DATABASE 어쩌구랑 IMP_FULL_DATABASE 가 있어야한다고 한다. 

사실 이건 저번에 같은 오류가 떠서 주고 나니 오류가 해결됐었는데...

이번엔 약이라도 올리는건지 권한을 줘도 절대 안된다. 

 

하 지 만 !! 

검색의 민족 !! 

찾을 수 없는건 없다 !! 내가 겪은 어려움은 언젠가 누군가 한번은 겪었을 터 !

알고보니 DEFAULT ROLE 이 모두 NO 로 되어있는 것이었다. ㅠㅠㅠㅠ

뭔가를 잘못 건드린건지.. 원래는 기본적으로 DEFAULT ROLE이 활성화 되어있어야하는데 다 꺼져있었다. 

 

먼저, DEFAULT ROLE 조회 쿼리

SELECT GRANTED_ROLE
     , DEFAULT_ROLE 
  FROM USER_ROLE_PRIVS;

 

DEFAULT ROLE 부재... 이제 YES 로 바꿔주자. 

--SYS로 접속한 뒤
ALTER USER [유저명] DEFAULT ROLE
DATAPUMP_EXP_FULL DATABASE
, DATAPUMP_IMP_FULL_DATAPASE
, EXP_FULL_DATABASE
, IMP_FULL_DATABASE
, DBA
, RESOURCE
, SELECT_CATALOG_ROLE
, EXECUTE_CATALOG)ROLE ;

 

이제 다시 조회해보면 DEFAULT ROLE 이 YES 로 바뀌어있다.