반응형

 

오늘 오라클 데이터베이스를 EXPORT해야할 일이 생겼습니다.

 

저는 유지보수 작업을 주로 해왔기 때문에 오라클에서 데이터 백업 작업이나 마이그레이션 작업 등을 많이 수행해왔는습니다.

 

(CentOS 기준)

 

su - oracle
exp [UserID]/[UserPassword]@SID file=[Filename]

 

보통 위 명령어 처럼 oracle 계정으로 사용자를 변경해준 뒤 

exp 명렁을 날려서 작업하는 식으로 해왔는데요.

 

오늘 사용한 오라클 같은 경우는 이상하게 자꾸 에러가 나와서 해결하느라 시간을 많이 보낸것 같습니다.

오라클에서 특정 사용자의 데이터베이스를 export 하기위해서

 

자주 사용하는 형식인 위 명령어 처럼 처럼 명령어를 날렸습니다. 

EXP-00056: ORACLE error 12154 encountered
ORA-12154: TNS:could not resolve the connect identifier specified
EXP-00000: Export terminated unsuccessfully

그런데 위 처럼 에러 메시지가 나오면서 export가 수행이되지 않는 현상이 발생했습니다.

EXP-00056, ORA-12154, EXP-00000 세개가 동시에 나옵니다.

 

처음에는 명령어에 오타가 났다거나

아이디/비밀번호가 잘못입력이 됬다거나

 

두 경우 중 한가지로 생각을 했었습니다.

 

그래서 여러번 명령어를 다시 날려보았지만 계속 똑같은 메시지 출력...

인터넷을 뒤져보았으나 별다른 성과를 얻지는 못했습니다만

 

그래도 이런 경우도 있을 수 있으니까 한번 올려보도록 할께요.

 

1. 비밀번호에 '@'가 들어간 경우

비밀번호에 @(골뱅이)가 들어간 경우에도 위와 같은 메시지가 나온다고 합니다.

아마도 비밀번호와 SID를 구분하는 부분이 골뱅이인데, 구분이 되지 않아서 그런것 같습니다.

 

이런 경우에는 일부러 비밀번호를 틀리게 입력한다면, 다시 비밀번호를 입력하라고 나오는데 그때 정상적으로 비밀번호를 입력을 하게되면 성공적으로 수행이되는 것을 확인하실 수 있을거에요.

 

 

2. SID 혹은 SERVICE NAME 잘못 입력했을 경우

exp 명령어를 날릴때 비밀번호@뒤에 SID나 SERVICE NAME을 입력하도록 되어있습니다.

그러나 이 부분을 잘못 입력 했을 경우에도 위와 같은 메시지를 확인할 수 있습니다.

 

SID를 다시 한번 확인하셔서 명령어를 날려보세요.

혹시 SID를 모르시겠다면 tnsnames.ora 파일을 열어서 확인해보시면 됩니다.

tnsnames.ora의 위치를 모르시겠다면 아래를 참고해주세요.

 

보통 tnsnames.ora 파일은 아래 위치에 존재하게 됩니다.

[오라클설치위치]\product\10.2.0\db_1\network\admin

 

위치는 OS 혹은 오라클 버전별로 상이할 수 있으니 잘 찾아보시기 바랍니다.

 

3. SID를 지정하지 않고 명령어 수행

제가 오늘 성공했던 방법입니다.

보통 SID를 입력해줘야하는 경우가 많았습니다만.

제가 오늘 작업한 오라클 서버의 경우에는 SID를 입력하지 않았을 때만 exp 명령어가 정상적으로 수행되었습니다.

 

exp [UserID]/[UserPassword] file=[Filename]

 

처음에는 조금 허무했습니다. 여태까지 날린 시간이 얼만데 이렇게 간단한 문제라니...

 

무슨 특징으로 이 서버에서는 이렇게 명령어를 날려야만 수행이 되는지는 아직 잘 모르겠습니다.

해당 계정으로 오라클 클라이언트에서 접속할 때는 SID가 꼭 들어가거든요.

 

SID나 ServiceName의 설정 문제 혹은 버전 문제로 보고있습니다.

다음에 자료를 더 찾아봐야겠습니다 :)

(참고로 저는 오라클 10g 입니다.)

 

그럼 글 읽으러 오신 분들 모두 잘 해결되셨으면 좋겠습니다.

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기