오라클 12c 리스너 설정 - olakeul 12c liseuneo seoljeong

오라클 12c 리스너 설정 - olakeul 12c liseuneo seoljeong

안녕하세요.

이번 포스팅에서는 이전에 설치했던 오라클 12c에 원격으로 토드나 오렌지 등의 툴로 접속 할 수 있도록 리스너를 설정해보도록 하겠습니다. 

물론 리눅스에서 sqlqlus를 이용할 순 있지만 사용에 불편함이 있는건 사실이죠?

그래서 저는 개인적으론 토드를 사용하는편인데 클라이언트를 관리자모드로 설치를 했더니 오라클 Developer도 설치가 되어버렸네요.

아무튼, 툴로 원격접속을 가능하도록 설정해보도록 하겠습니다. 


[리눅스/DB] 오라클12c 원격접속을 위한 리스너 설정

우선 oracle 계정으로 진행을 하겠습니다.

이전에 저는 공용계정으로 c##doubleh 계정을 생선한 상태입니다. 

우선 리스너가 실행중이라면 리스너를 정지해주세요. 

명령어 : lsnrctl stop

listener.ora파일을 먼저 수정해보도록 할게요. 

해당 파일의 경로는 ~/db/product/12.1.0/dbhome_1/network/admin 아래에 있습니다. 

물론 저와 다르게 db디렉토리가 아닌 다른 디렉토리로 설정하신 분들도 계실텐데요. 

해당 위치로 찾아가보시면 다양한 .ora파일들이 있을거예요.

그 중 우선 listener.ora 파일을 열어주세요 .

기존에 있던 리스너 내용을 아래와 함께 수정해주세요. 

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 서버IP)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
(SID_LIST=
        (SID_DESC=
                (ORACLE_HOME=/home/oracle/db/product/12.1.0/dbhome_1)
                (SID_NAME=orcl)
        )
)

ADR_BASE_LISTENER=/home/oracle

두번째 수정파일을 tnsnames.ora 입니다.

이 파일은 아마 많이들 보셨을텐데요. 주로 클라이언트 툴을 이용할 때 해당 파일을 호출해서 사용하곤 하죠. 

이 파일을 수정해보도록 할게요. 

아마 오라클 설치 시 별도 변경을 하지 않으신 분들은 서비스와 SID 명이 동일하실거예요.

자신이 설치하셨을 때 이름 기준으로 해당 파일이 만들어져 있을텐데요. IP등 필수 정보들만 맞게 변경해주세요. 

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 서버IP)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
      (SID=orcl)
    )
  )

마지막 수정파일은 sqlnet.ora파일입니다. 

아마 윗줄은 있으실텐데요, 밑의 BASE 경로를 추가해주세요. 

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ADR_BASE = /home/oracle

이제 리스너를 다시 시작하고 상태를 확인해주세요.

시작 명령어 : lsnrctl start 

상태확인 명령어 : lsnrctl status

현재 1521 port는 방화벽 정책에 들어있지 않을거예요.

방화벽 정책에 추가해주세요. 

[root@os7:~]# firewall-cmd --zone=public --add-port=1521/tcp --permanent
success
[root@os7:~]# firewall-cmd --reload
success
[root@os7:~]# systemctl restart firewalld.service

그리고 이제 접속 테스트를 해보시고 정상 접속 되는지 확인하시면 됩니다. 

저는 두가지 툴로 모두 테스트했는데 정상 작동 되네요. 


이렇게 DB서버에 클라이언트 원격접속 설정까지 완료했습니다!

VirtualBox + CentOS7 + Oracle12c 환경에서 외부 접속을 허용하기 위한 설정

1. 관리의 편함을 위해 sshd 를 설치 합니다.

참고: http://avilos.codes/system/linux/centos-ssh-installation/

2. VirtualBox 설정

네트워크 NAT 설정 확인 및 포트 포워딩 설정

참고 :: http://hahaite.tistory.com/283

ssh 22, oracle 1521 을 등록합니다.

오라클 12c 리스너 설정 - olakeul 12c liseuneo seoljeong

3. 오라클 외부 접속 설정

참고 :: http://kkamagistory.tistory.com/366

리스너 정지후, 파일 3개를 수정합니다.

리스너 정지 lsnrctl stop

수정파일:listener.ora

# listener.ora Network Configuration File: /home/oracle/db/product/12.1.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.2.15)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
(SID_LIST=
        (SID_DESC=
                (ORACLE_HOME=/home/oracle/db/product/12.1.0/dbhome_1)
                (SID_NAME=orcl)
        )
)

ADR_BASE_LISTENER=/home/oracle

수정파일:tnsnames.ora

# tnsnames.ora Network Configuration File: /home/oracle/db/product/12.1.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.2.15)(PORT = 1521))


ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.2.15)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
      (SID=orcl)
    )
  )

수정파일:sqlnet.ora

# sqlnet.ora Network Configuration File: /home/oracle/db/product/12.1.0/dbhome_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

ADR_BASE = /home/oracle

리스너 다시 시작 : lsnrctl start

리스너 상태 확인 : lsnrctl status

접속 확인 : tnsping 10.0.2.15 10

4. 오라클 1521 포트 방화벽 정책 추가 ( 1번항목 참조 하여 22 대신 1521을 추가 )

5. sqldeveloper 를 다운받아 접속 테스트

저는 taisou 라는 계정을 추가해서 테스트 하였습니다.

환경설정완료!!