TNS
개요
Transparent Network Subtrate
직역하면 투명한 네트워크 계층 정도..?
개념
오라클에서 독자적으로 사용하는 네트워크 프로토콜이다.
그래서 오라클의 데이터베이스에 연결하기 위해서는 위의 프로토콜을 사용해야 한다.
이것의 특징은 TCP, SDP, IPC 등의 다양한 연결을 받아낼 수 있다는 것이다.
여기에서 사용되는 개념이 바로 리스너이다.
이게 디비의 프론트엔드 역할을 하면서 클러스터링, 로드 밸런싱을 할 때 편리하게 설정할 수 있도록 돕는다.
사용자 단에서 세세하게 알 필요는 없는 것이, 사용자는 위의 저 연결 방식으로만 연결하면 되기 때문이다.
구조
구조는 위와 같다.
크게 보면 좀 어지러운데..
프론트엔드 역할을 하는 것이 딕셔너리이다.
여기로 요청이 오면 해당 값을 요리조리 해석해서, 리스너로 넘겨서 리스너가 실제 디비에 처리한다~
그냥 중간에 서비스 이름이 있는데 이 이름은 hosts 파일까지 거쳐서 ip 주소로 바꿔서 보낸다 정도의 의미.
이 과정이 있어서 다양한 프로토콜을 받아낼 수 있는 것으로 보인다.
파일 구조와 설정을 보면서 설명을 곁들이겠다.
listeners.ora
이 파일은 오라클 서버에서 제공하는 리스너에 대한 설정을 담는다.
그래서 여기에는 해당 오라클 서버에 대한 정보들이 적혀 있어야 한다.
여기에서 들어온 요청을 확인하고 실제 디비 서버와 연결한다.
리스너의 각 단위는 서비스로 불린다.
위의 IPC가 보이는데, 위키에 따르면 아마 이것은 named pipe 방식에 한하는 것 같다.
tnsname.ora
이 친구도 비슷한 파일이긴 하다.
대신 이쪽은 클라이언트가 실질적으로 접속해야 할 정보를 담고 있다.
서버 입장에서 어떤 클라가 접속할 수 있을지 담고 싶을 때 설정하는 파일이다.
여기에서 어떤 요청은 리스너의 어떤 서비스에 연결될지를 정한다.
더 정확하게는 디비에서 나갈 수 있는 정보를 담고 있다고 한다.
또 만약 새로운 데이터베이스가 클러스터에 추가될 시 이 친구를 업데이트해줘야 한다고 한다.
참고로 여기에서 설정 가능한 프로토콜은 TCP 뿐이라고 한다
sqlnet.ora
이건 네트워크 보안, 및 연결 세부 정보를 다룬다.