보안이나 특정 이유로 인해 기본 포트 번호인 1521이 아닌 다른 포트 번호를 사용하는 경우도 있다고 한다. 지금 내가 이를 변경해야 할 경우는 없겠지만 그래도 나중에 필요할 수도 있으니 정리해보려 한다. 이 내용은 Oracle 11g XE 기준이다.
1. Oracle Listener 중지
오라클 리스너(Oracle Listener)란 클라이언트의 DB 요청을 처리하는 것으로 sqlplus가 아닌 외부 프로그램에서 DB에 접속하기 위해 반드시 필요한 요소다. 직접 테스트해본 결과 설정을 다 변경하고 나서 리스너를 재시작해도 되긴 하더라. 어차피 리스너 설정을 변경한 뒤에는 리스너를 재시작해야 하는 것이기 때문!
1-1. 관리자 권한으로 cmd 실행
리스너는 lsnrctl(Listener Control) 명령어를 통해 설정할 수 있다. 리스너 명령어는 다음과 같은 것들이 있다.
리스너를 종료(stop)하고 실행(start)하기 다루기 위해선 관리자 권한으로 실행된 cmd가 필요하다. 만약 그냥 cmd로 실행하면 다음과 같은 오류가 발생한다.
1-2. lsnrctl stop : 리스너 종료
그러므로 꼭 관리자 권한으로 cmd를 실행해야 한다. cmd를 실행한 뒤에는 lsnrctl 명령어를 입력하여 리스너 전용 프롬프트를 실행하고 stop 명령어를 입력해도 되고, 그냥 lsnrctl stop 명령어를 입력해도 된다.
2. 클라이언트 설정 파일 수정
2-1. listener.ora 파일
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN 이 경로에 보면 listener.ora 파일이 존재한다. 이 파일은 리스너의 설정 파일인데, 이를 메모장으로 열어서 원하는 포트 번호로 수정한 뒤 저장한다.
2-2. tnsnames.ora 파일
마찬가지로 동일한 경로에 이 파일이 존재한다. 이 파일은 DB 접속 정보를 하나의 별칭(Alias)으로 설정해둔 것으로 TNS Alias을 기반으로 DB에 접속할 때 사용한다. 우리가 DB에 접속하는 것은 대부분 SQL Developer과 같은 별도의 프로그램이나 소스 코드에서 접속하는 방식이므로 사실 이 파일은 수정하지 않아도 접속은 가능할 것이다. 그렇기 때문에 사실 이 파일은 수정하지 않아도 되긴 하지만 그래도 정확히 알고는 있어야 하니 내용은 다루도록 하겠다.
이 파일도 메모장으로 열어서 기본 설정된 포트 번호를 위에서 바꾼 포트 번호와 동일하게 수정하고 저장한다.
3. 중지했던 Listener 다시 실행
리스너 관련 설정을 다 변경했으니 이제 다시 Listener를 시작해야 한다. 다시 관리자 권한의 cmd를 통해 lsnrctl 프롬프트에서 start 명령어를 입력하든, 바로 lsnrctl start 명령어를 입력하든 해서 Listener를 시작한다. 출력 화면에서 포트 번호가 바뀐 것을 확인할 수 있다.
4. sqlplus에서 SYSTEM의 LOCAL_LISTENER 값 변경
리스너의 설정만을 변경했으니 이제 DB의 설정을 변경해줄 차례다. ALTER SYSTEM 명령문을 사용하여 Oracle DB 인스턴스를 동적으로 변경할 수 있다.
SQL Language Reference
docs.oracle.com
sqlplus에 관리자 계정으로 접속하여 다음 명령어를 차례대로 입력한다.
ALTER SYSTEM SET LOCAL_LISTENER = "(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT={바꾼 포트번호}))";
ALTER SYSTEM register;
5. 결과 확인
5-1. lsnrctl status
모든 설정이 정상적으로 변경되었다면 lsnrctl status 명령어를 입력했을 때 맨 아래쪽에 XE가 나타나야 한다.
5-2. SQL Developer 같은 외부 프로그램으로 확인
올바른 계정 정보를 입력하고 바뀐 포트 번호를 입력한 뒤 테스트나 접속 버튼을 눌러보면 올바르게 접속되는 것을 확인할 수 있다.
'[DB] > - Oracle' 카테고리의 다른 글
[Oracle] NVL, NVL2 함수 (0) | 2025.05.27 |
---|---|
[Oracle] 정규식 (일반 문자 - Literal Character, 메타 문자 - Meta Character) (0) | 2025.05.27 |
[Oracle] 숫자 -> 문자 변경 시 포맷 설정 (0) | 2025.05.24 |
[Oracle] SID, SNAME이란? SNAME 변경 방법 (0) | 2025.05.23 |
[Oracle] RAC(Real Application Cluster)와 HA(High Availability) (0) | 2025.05.22 |