프로그래밍

오라클 10g 리스너 포트번호 바꾸기.

panpro 2010. 5. 20. 16:20
아 쉬울 줄 알았는데, 열라 어렵다. 웹에도 한큐에 딱 설명해 놓은 게 없어서 1시간 넘게 삽질했다.
1521이 nCube License Manager라는 놈이랑 포트가 겹친다. 자꾸 리스너가 죽어서 포트를 바꾸기로 했다. 포트가 겹치는 게 원인인지는 좀 더 있어보면 알겠지.

우리는 50001번으로 바꾸기로 했다. 아 이거 내가 자바로 서버만들 때 자주 쓰는 포트번혼데. ㅋ

1. 리스너를 죽인다. lsnrctl stop

2. 리스너를 수정해서 listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /home/oracle/oracle/product/10.2.0/db_2)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = oracle)
      (ORACLE_HOME = /home/oracle/oracle/product/10.2.0/db_2)
      (GLOBAL_DBNAME=test)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
     # (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.21.36)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.5.100)(PORT = 50001))
    )
  )


새로 추가한 부분을 빨간 색으로 bold 처리했다.
수정한 게 아니라 새로 추가한 부분이다.
보니까 기본 포트를 사용하는 게 아니라면 저렇게 SID_DESC에도 추가해 줘야 한단다.

여기까지 해놓고 아무리 다시 리스너를 시작해봐도 답이 없다. 이 뒤가 정말 중요하다.

3. system으로 작업.
/ as sysdba로 sqlplus 실행해서 아래의 작업을 실행

SQL> alter system set local_listener = "(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.5.100)(PORT = 50001))";
System altered.

SQL> alter system register;
System altered.

여기까지 해놓고 lsnrctl status 해서 확인해 보면 확실히 다른 내용의 상태 결과도가 보인다.

50001 포트 열어놓는 것도 잊지 말자.