본문 바로가기

IT 관련

TNS-01169: 리스너가 암호를 인식하지 못합니다

보안적인 이유로 오라클 리스너에 암호 설정을 해야 일이 생겼다.

$ lsnrctl

LSNRCTL> set password
Password:
명령이 성공적으로 수행되었습니다
LSNRCTL> save_config
(ADDRESS=(PROTOCOL=IPC)(KEY=KEY))에 연결되었습니다
TNS-01169: 리스너가 암호를 인식하지 못합니다

설정을 하니 바로 위와 같은 에러가 발생했다.

LSNRCTL> change_password

Old password:
New password:
Reenter new password:
(ADDRESS=(PROTOCOL=IPC)(KEY=KEY))에 연결되었습니다
TNS-01169: 리스너가 암호를 인식하지 못합니다

패스워드 변경을 시도해도 역시 에러가 발생했다.

LSNRCTL> stop

(ADDRESS=(PROTOCOL=IPC)(KEY=KEY))에 연결되었습니다
TNS-01169: 리스너가 암호를 인식하지 못합니다

결국 리스너를 재기동 할려고 해도 에러가 발생했다. 문제는 패스워드가 세팅이 되어 있는 상황에서 에러가 발생하는 것이라면 문제가 없겠지만 기존에 패스워드가 세팅 되어 있는 것은 없었다.

혹시나 해서 /oracle/product/8.1.7/network/admin/listener.ora 파일을 Vi로 열어 Password로 시작하는 항목이 있는지 확인해 보았는데 그런 것 역시 없었다. 만약 패스워드가 세팅 되어 있다면 이 파일에 Password로 시작 되는 항목이 생성이 되어 있어야 했다.

$ ps -def | grep oracle

oracle 15095     1  0 14:27:34 ?        0:00 /oracle/product/8.1.7/bin/tnslsnr LISTENER -inherit

$ kill -9 15095

$ lsnrctl start

결국 리스너의 PID를 찾아 강제로 종료 후에 리스너를 기동해 주었다.

LSNRCTL> set current_listener LISTENER
현재 리스너는 LISTENER
LSNRCTL> change_password
Old password:
New password:
Reenter new password:
(ADDRESS=(PROTOCOL=IPC)(KEY=KEY))에 연결되었습니다
암호가 LISTENER으로 변경되었습니다
명령이 성공적으로 수행되었습니다

LSNRCTL> set password
Password:
명령이 성공적으로 수행되었습니다
LSNRCTL> save_config
(ADDRESS=(PROTOCOL=IPC)(KEY=KEY))에 연결되었습니다
LISTENER 구성 매개변수를 저장합니다
리스너 매개변수 파일   /oracle/product/8.1.7/network/admin/listener.ora
이전 매개변수 파일   /oracle/product/8.1.7/network/admin/listener.bak
명령이 성공적으로 수행되었습니다

결국 리스너를 강제 재기동 후에 문제를 해결 할 수 있었다.