일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 전자정부 표준프레임워크
- Data and Time Functions
- String Function and Operators
- Tibero
- 전자정부표준프레임워크
- 방화벽
- 윈도우
- 오라클
- String Functions and Operators
- MySQL
- SVN
- String Functions and Date Operators
- Oracle
- Sring Functions and Operators
- HTTP
- Date and Time Function
- Date and Time Functions
- 티베로
- Today
- Total
웹이야기
오라클 리스너 설정(쓸데없이 장황) 본문
이전에 오라클을 윈도우에서 설치를 해봤다.
리스너 설정등을 통해 외부에서 연결이 되도록 할 생각이다.
이 글의 요약본은 아래 글에 기술해놨다.
이 글은 좀 길게 작성해볼려고 한다. 매번 이상하게 헤맨다. 벌써 수십번은 해봤을텐데 말이다.
1. 방화벽을 열어준다.
오라클은 1521 포트를 사용하므로 1521 포트에 대한 방화벽을 열어준다.
2. telnet 을 실행하여 다음 명령어를 입력해본다.
C:\Users\test>telnet localhost 1521
화면이 전환이 되면 1521 포트가 열린 것이고
화면이 전환되지 않고
호스트에 연결할 수 없습니다. 포트 1521: 연결하지 못했습니다.
가 나오면 1521 포트가 열리지 않은 것이다.
3. toad를 설치해서 연결해본다.
오라클 설치한 pc에 Toad를 설치해서 아래 정보로 연결해본다.
test 란 사용자를 추가하였고, 권한을 부여한 다음에
host 를 localhost 로 적고,
Service name 에 orcl 이라고 적고 연결을 시도해본다.
orcl이라는 Service name은 윈도우에서 오라클 설치시 입력한 내용이다.
연결이 성공하였다.
4. 다른 pc에서 Host 부분에 ip를 입력하여 toad로 연결을 시도하니
ORA-12170: TNS:Connect timeout occurred
와 같은 오류가 나오면서 연결이 되지 않는다.
간혹
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
(ORA-12514: TNS:리스너가 현재 접속 기술자에 요청된 서비스를 알지 못함)
ORA-12541: TNS:리스너가 없습니다.
위와 같은 오류도 나올 수도 있다.
5. 설정파일을 수정한다.
설정파일의 경로는 C:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN 이다.
listener.ora, sqlnet.ora, tnsnames.ora 3개의 파일이 있는데 sqlnet.ora 파일의 경우 거의 수정하지 않는다.
그래도 한번은 수정할 일이 있을 수 있다. 예전에 sqlnet.ora 파일을 수정해서 해결한적이 있다.
listener.ora, tnsnames.ora 파일을 바탕화면으로 복사를 한다. 해당 경로에서 바로 수정하면
엑세스가 거부되었습니다. 라고 오류가 나온다.
5-1 listener.ora 수정
# listener.ora Network Configuration File: C:\app\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\oracle\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = C:\app\oracle
라고 되어 있다.
아까 localhost는 연결이 되었으므로 localhost 부분이 들어간 것을 참고로 하여 수정을 한다.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
부분에서 localhost 를 ip로 변경하여 추가한다.
그러면 파일 전체는 아래와 같은 모습이 된다.
# listener.ora Network Configuration File: C:\app\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\oracle\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521))
)
)
ADR_BASE_LISTENER = C:\app\oracle
5-2 tnsnames.ora 수정
# tnsnames.ora Network Configuration File: C:\app\oracle\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
이 파일도 마찬가지로 localhost 로 기술되어 있는 2곳을 같은 방식으로 추가한다.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521))
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
위와 같이 2곳이다.
그럼 전체 파일은 아래와 같은 모습이 된다.
# tnsnames.ora Network Configuration File: C:\app\oracle\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
파일을 복사해서 C:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN 경로에 잘 넣어준다.
6. 리스너 재시작
도스창을 관리자 권한으로 실행하여
> lsnrctl stop
> lsnrctl start
를 하였는데 여전히 오류가 발생한다.
7. 컴퓨터를 재시작 하였다.
이제 다시 연결해보니 연결이 잘 된다.
'D > ORACLE' 카테고리의 다른 글
Oracle JDBC drivers 다운로드 (0) | 2020.02.25 |
---|---|
Windows 10에서 1521 포트 열기 (0) | 2020.02.24 |
오라클에서 사용자 추가 (0) | 2020.02.24 |
오라클 리스너 설정(요약본) (0) | 2020.02.22 |
오라클 설치(Windows 10, 11g) (1) | 2020.02.21 |