Problem z nawiązaniem połączenia między bazami [oracle 11g]

0

Witam.

Projektuję rozproszoną bazę danych (11g), która ma być rozproszona na trzech maszynach. W tym celu postawiłem sobie 2 wirtualne maszyny korzystając z VirtualBoxa. Na każdej z maszyn systemem operacyjnym jest windows 7. Udało mi się połączyć bazę na wirtualce z bazą na moim komputerze. Niestety nie mogę nawiązać połączenia w drugą stronę oraz mam problem z nawiązaniem połączenia między wirtualkami.

listener dla orcl2 (dla wirtualki):

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\Department1\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY\app\Department1\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\Department1

tnsnames dla orcl2:

LISTENER_ORCL2 =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)

ORCL2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl2)
)
)

ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)

Jakieś wskazówki? :)

0

przede wszystkim firewall. Następnie czy da się połączyć z każdą bazą z każdego komputera np. tnspingiem czy sqltoolsem?

0

W końcu się udało. Z firewallem nie było problemu. Gdyby ktoś miał problem taki jak ja to wklejam listenera oraz tnsnames:

listener:

listener.ora Network Configuration File: D:\app\Damian\product\11.2.0\dbhome_1\network\admin\listener.ora

Generated by Oracle configuration tools.

LISTENER2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = 1522))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\app\Damian\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY\app\Damian\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)

ADR_BASE_LISTENER2 = D:\app\Damian

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

ADR_BASE_LISTENER = D:\app\Damian

tnsnames:

tnsnames.ora Network Configuration File: D:\app\Damian\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)
)
)

ORCL3 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl3)
)
)

ORCL2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl2)
)
)

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

Należało również zarejestrować listenera statycznie lub dynamicznie. W moim przypadku rejestracja jest statyczna.

SQL> alter system set local_listener='(ADDRESS = (PROTOCOL=TCP)(HOST=192.168.XXX)(PORT=1522))';

SQL> alter system register;

1 użytkowników online, w tym zalogowanych: 0, gości: 1