5 октября 2013 г.

Oracle Net

Недавно узнал что Oracle листенер на одиночном сервере базы данных (не RAC) по умолчанию слушает все сетевые интерфейсы. Для этого достаточно в конфигурационном файле listener.ora указать имя сервера, например

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

Имя хоста:

oracle> hostname
setebos

oracle> cat /etc/hosts
10.127.120.129  setebos.dit.ru setebos

Проверяем:
oracle> ifconfig
bond0.1742          inet addr:10.127.120.129
bond0.2630          inet addr:172.16.8.1  Bcast:172.16.8.63  Mask:255.255.255.192
usb0               inet addr:169.254.95.120  Bcast:169.254.95.255  Mask:255.255.255.0

В файле /etc/hosts указан адрес 10.127.120.129, но слушаются все IP адреса:

setebos:/oracle> nmap 10.127.120.129
1521/tcp open  oracle

setebos:/oracle> nmap 172.16.8.1
1521/tcp open  oracle

setebos:/oracle> nmap 169.254.95.120
1521/tcp open  oracle

На сервере RAC слушается только указанный сетевой интерфейс.