Łukasz Schabek

Łukasz Schabek Architekt Rozwiązań

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

Cześć,

Korzystam z VirtualBox na którym goszczę Debiana. Z kolei na Debianie zainstalowałem Oracle w wersji 11g. Baza działa i jestem w stanie połączyć się z nią (sqlplus, jdbc) z poziomu systemu Gościa.

Nie mogę natomiast połączyć się z bazą z poziomu systemu Hosta (Windows 7).

Na VBox ustawiłem oczywiście przekierowanie portów; próbowałem trzech różnych ustawień:

VBoxManage modifyvm "Debian" --natpf1 "guestora,tcp,,1215,,1521"
VBoxManage modifyvm "Debian" --natpf1 "guestora,tcp,,1215,10.0.2.15,1521"
VBoxManage modifyvm "Debian" --natpf1 "guestora,tcp,127.0.0.1,1215,,1521"

Żadne zdaje się nie działać. Próba połączenia (używam Toad) kończy się komunikatem: ORA-12547: TNS:stracony kontakt.

Co może być nie tak? Czy to kwestia RDBMSa czy VBox?

System gość:

schabluk@debian> uname -a
Linux debian 2.6.26-2-686 #1 SMP Thu Sep 16 19:35:51 UTC 2010 i686 GNU/Linux
schabluk@debian> sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Fri Nov 5 12:38:38 2010

Copyright (c) 1982, 2009, Oracle. All rights reserved.

SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area 422670336 bytes
Fixed Size 1336960 bytes
Variable Size 264243584 bytes
Database Buffers 150994944 bytes
Redo Buffers 6094848 bytes
Database mounted.
Database opened.
SQL> quit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
schabluk@debian> lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 05-NOV-2010 12:39:26

Copyright (c) 1991, 2009, Oracle. All rights reserved.

Starting /home/schabluk/app/schabluk/product/11.2.0/dbhome_2/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /home/schabluk/app/schabluk/product/11.2.0/dbhome_2/network/admin/listener.ora
Log messages written to /home/schabluk/app/schabluk/diag/tnslsnr/debian/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 05-NOV-2010 12:39:28
Uptime 0 days 0 hr. 0 min. 1 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /home/schabluk/app/schabluk/product/11.2.0/dbhome_2/network/admin/listener.ora
Listener Log File /home/schabluk/app/schabluk/diag/tnslsnr/debian/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
The listener supports no services
The command completed successfully



TNS:

ORCL_VBX=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=169.254.104.111)
(PORT=1215)
)
(CONNECT_DATA=
)
)


169.254.104.111 to adres systemu Gościa który widzę na Hoście.Łukasz Schabek edytował(a) ten post dnia 05.11.10 o godzinie 13:57

konto usunięte

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

Łukasz Schabek:
TNS:

ORCL_VBX=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=169.254.104.111)
(PORT=1215)
)
(CONNECT_DATA=
)
)
[/edited]

Tak na szybko...
1. Co to za PORT 1215 ? Nie powinno byc 1521?
2. NAT to nie jest za dobry wybor ja zawsze biore bridge albo host-only i z poziomu SQL Developera, Modelera laczy sie bez zajakniecia.
3. Wylacz na chwile firewalla w Windows 7 - moze ustrojstwo blokuje Ci port 1521?

Pokaz jeszcze cat /etc/hosts
i wynik lsnrctl services LISTENER
Bo z tego co widze to listener nie zarejestrowal serisow wiec:
alter system register
i zobaczymy co bedzie dalej
To tyle co mi tak na szybko przychodzi do glowy...Zbigniew Grabowicz edytował(a) ten post dnia 06.11.10 o godzinie 18:43
Łukasz Schabek

Łukasz Schabek Architekt Rozwiązań

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

Dzięki za odp.

Ad. 1 To jest port na którym ustawiłem przekierowanie w VBox:

VBoxManage modifyvm "Debian" --natpf1 "guestora,tcp,,1215,,1521"

W podobny sposób przekierowałem SSH

VBoxManage modifyvm "Debian" --natpf1 "guestssh,tcp,,2222,,22"

i to działa bez problemu.

Ad. 2 Wtedy nie mam połączenia z siecią LAN...

Ad. 3 Wyłączenie firewalla nie pomogło.


schabluk@debian> cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 debian.domena debian

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts


schabluk@debian> lsnrctl services LISTENER

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 08-NOV-2010 09:46:29

Copyright (c) 1991, 2009, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
Services Summary...
Service "ORCL" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:1 refused:0 state:ready
LOCAL SERVER
Service "ORCLXDB" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: debian, pid: 2809>
(ADDRESS=(PROTOCOL=tcp)(HOST=debian.domena)(PORT=48403))
The command completed successfully
schabluk@debian>


Polecenie "alter system register" nie pomogło, po restarcie bazy, nadal dostaję nadal ten sam błąd.

Spróbuję skonfigurować połączenie mostkowe..Łukasz Schabek edytował(a) ten post dnia 08.11.10 o godzinie 09:55

konto usunięte

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

Ostatnio przerabiałem to z PostgreSQL w VBox na Win7.

Otwarcie portów musisz zrobić na 3 poziomach:
- host - Windows 7
- guest - Debian
- baza danych (nie wiem jak u Oracla, ale PostgreSQL ma specjalne do tego ustawienia)

Dla serwisów na gościu polecam przekierowywanie portów (google: virtual box port forwarding windows 7 host debian guest).

konto usunięte

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

W /etc/hosts powinien byc wpis:
ip.ip.ip.ip <nazwaSerwera>

konto usunięte

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

Łukasz Schabek:

Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
The listener supports no services
The command completed successfully

Tutaj pisze Ci, że żaden nasłuch nie działa. Pokaż listener.ora, powinien wyglądać mniej więcej tak:

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /opt/oracle/product/db_1)
(SID_NAME = orcl)
)
(SID_DESC =
(PROGRAM = /opt/oracle/product/db_1/bin/extproc)
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/oracle/product/db_1)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)

Na 99% Ty masz tylko tyle
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)


Łączenie się przez conn /as sysdba łączy Cię z pominięciem nasłuchu. Spróbuj conn sys/twoje_haslo_sysa@sid_bazy as sysdba i na 99% Ci się nie uda.

Piotr Likus:
- baza danych (nie wiem jak u Oracla, ale PostgreSQL ma specjalne do tego ustawienia)
Oracle nie ma czegoś takiego - to tylko w postgresie
Łukasz Schabek

Łukasz Schabek Architekt Rozwiązań

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

Michał Misiekd:
Tutaj pisze Ci, że żaden nasłuch nie działa. Pokaż listener.ora, powinien wyglądać mniej więcej tak:
Na 99% Ty masz tylko tyle
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)

Tak, już to poprawiłem po komentarzu Zbigniewa, znalazłem opis tu:

http://arjudba.blogspot.com/2009/02/listener-supports-...

niestety nie pomogło.

Łączenie się przez conn /as sysdba łączy Cię z pominięciem nasłuchu. Spróbuj conn sys/twoje_haslo_sysa@sid_bazy as sysdba i na 99% Ci się nie uda.

Ale... działa i bez tego:


schabluk@debian> cat /home/schabluk/app/schabluk/product/11.2.0/dbhome_2/network/admin/listener.ora
# listener.ora Network Configuration File: /home/schabluk/app/schabluk/product/11.2.0/dbhome_2/network/admin/listener.ora
# Generated by Oracle configuration tools.

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

ADR_BASE_LISTENER = /home/schabluk/app/schabluk

schabluk@debian> sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Mon Nov 8 17:45:29 2010

Copyright (c) 1982, 2009, Oracle. All rights reserved.

SQL> conn SYS/P4SSw0Rd@orcl as sysdba
Connected.
SQL>


Łączę się też (z poziomu Debiana) przez JDBC i działa bez problemu.

Teraz jestem na etapie sprawdzania parametrów systemu (/etc/sysctl.conf) bo doczytałem, że taki problem pojawiał się podczas instalacji Oracle 11g na OSX:
http://www.pythian.com/news/1937/quick-install-guide-f...
i związany jest ze zbyt małymi zasobami przeznaczonymi dla procesów...

Podczas instalacji pominąłem też dwa wymagania związana ze Swapem i czymś co się nazywa Run Level. Nie wykluczam, że to może być powód.Łukasz Schabek edytował(a) ten post dnia 08.11.10 o godzinie 17:50

konto usunięte

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

Łukasz Schabek:
Łączę się też (z poziomu Debiana) przez JDBC i działa bez problemu.
[/edited]

W listener.ora masz cos takiego:
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

Zrob stosowny wpis w /etc/hosts o ktorym pisalem wyzej i popraw odpowiednio listener.ora i zobacz czy bedzie lepiej.
Chodzi o to aby w sekcji HOST nie bylo localhost tylko IP serwera lub jego nazwa.Zbigniew Grabowicz edytował(a) ten post dnia 08.11.10 o godzinie 18:50
Łukasz Schabek

Łukasz Schabek Architekt Rozwiązań

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

Zbigniew Grabowicz:
Zrob stosowny wpis w /etc/hosts o ktorym pisalem wyzej i popraw odpowiednio listener.ora i zobacz czy bedzie lepiej.
Chodzi o to aby w sekcji HOST nie bylo localhost tylko IP serwera lub jego nazwa.

Czy o to chodziło?



schabluk@debian> cat /home/schabluk/app/schabluk/product/11.2.0/dbhome_2/network/admin/listener.ora
# listener.ora Network Configuration File: /home/schabluk/app/schabluk/product/11.2.0/dbhome_2/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /home/schabluk/app/schabluk/product/11.2.0/dbhome_2)
(PROGRAM = extproc)
)
(SID_DESC=
(GLOBAL_DBNAME=orcl)
(ORACLE_HOME=/home/schabluk/app/schabluk/product/11.2.0/dbhome_2)
(SID_NAME=orcl)
)
)
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF

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

ADR_BASE_LISTENER = /home/schabluk/app/schabluk

schabluk@debian> cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 debian.domena debian
schabluk@debian>


Nadal nic :(

konto usunięte

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

Łukasz Schabek:
Zbigniew Grabowicz:
Zrob stosowny wpis w /etc/hosts o ktorym pisalem wyzej i popraw odpowiednio listener.ora i zobacz czy bedzie lepiej.
Chodzi o to aby w sekcji HOST nie bylo localhost tylko IP serwera lub jego nazwa.

Czy o to chodziło?



schabluk@debian> cat /home/schabluk/app/schabluk/product/11.2.0/dbhome_2/network/admin/listener.ora
# listener.ora Network Configuration File: /home/schabluk/app/schabluk/product/11.2.0/dbhome_2/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /home/schabluk/app/schabluk/product/11.2.0/dbhome_2)
(PROGRAM = extproc)
)
(SID_DESC=
(GLOBAL_DBNAME=orcl)
(ORACLE_HOME=/home/schabluk/app/schabluk/product/11.2.0/dbhome_2)
(SID_NAME=orcl)
)
)
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF

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

ADR_BASE_LISTENER = /home/schabluk/app/schabluk

schabluk@debian> cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 debian.domena debian
schabluk@debian>


Nadal nic :(

Nadal zle wpisujesz ;)

W /etc/hosts daj adres swojego serwera bazy danych np. 192.168.40.100 i taki sam adres daj do listener.ora zas wpis 127.0.1.1 za komentuj.
Czyli /etc/host powinien wygladac mniej wiecej tak:
127.0.0.1       localhost
192.168.40.100 debian.localdomain debian
Zbigniew Grabowicz edytował(a) ten post dnia 09.11.10 o godzinie 11:22
Łukasz Schabek

Łukasz Schabek Architekt Rozwiązań

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

W /etc/hosts daj adres swojego serwera bazy danych np. 192.168.40.100 i taki sam adres daj do listener.ora zas wpis 127.0.1.1 za komentuj.
Czyli /etc/host powinien wygladac mniej wiecej tak:
127.0.0.1       localhost
192.168.40.100 debian.localdomain debian

Tzn. do /etc/host dodać adres który został przydzielony maszynie wirtualnej i który widzę z poziomu Win?


Sufiks DNS konkretnego połączenia:
Opis: VirtualBox Host-Only Ethernet Adapter
Adres fizyczny: ‎08-00-27-00-0C-C4
DHCP włączone: Tak
Adres IPv4 autokonfiguracji: 169.254.104.111
Maska podsieci IPv4: 255.255.0.0
Brama domyślna IPv4:
Serwer DNS IPv4:
Serwer WINS IPv4:


Taką konfigurację też próbowałem, ale w ogóle nie chciał wystartować listener kiedy zamiast localhost podałem 169.254.104.111.

Chyba na razie zrezygnuję z tego podejścia i przeproszę bazę którą zainstalowałem na Windows. Chciałem to zrobić po bożemu, ale terminy gonią a komunikacja Debian->Win jakoś działa ;)

Dziękuję wszystkim za pomoc!Łukasz Schabek edytował(a) ten post dnia 09.11.10 o godzinie 11:51

konto usunięte

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

Łukasz Schabek:
W /etc/hosts daj adres swojego serwera bazy danych np. 192.168.40.100 i taki sam adres daj do listener.ora zas wpis 127.0.1.1 za komentuj.
Czyli /etc/host powinien wygladac mniej wiecej tak:
127.0.0.1       localhost
192.168.40.100 debian.localdomain debian

Tzn. do /etc/host dodać adres który został przydzielony maszynie wirtualnej i który widzę z poziomu Win?


Sufiks DNS konkretnego połączenia:
Opis: VirtualBox Host-Only Ethernet Adapter
Adres fizyczny: ‎08-00-27-00-0C-C4
DHCP włączone: Tak
Adres IPv4 autokonfiguracji: 169.254.104.111
Maska podsieci IPv4: 255.255.0.0
Brama domyślna IPv4:
Serwer DNS IPv4:
Serwer WINS IPv4:


Taką konfigurację też próbowałem, ale w ogóle nie chciał wystartować listener kiedy zamiast localhost podałem 169.254.104.111.

Chyba na razie zrezygnuję z tego podejścia i przeproszę bazę którą zainstalowałem na Windows. Chciałem to zrobić po bożemu, ale terminy gonią a komunikacja Debian->Win jakoś działa ;)

Dziękuję wszystkim za pomoc!

Pod Debianem sprawdzasz sobie jakie masz IP
ifconfig
I taki wpis dajesz do /etc/hosts oraz do listener.ora
Nastepnie z Poziomu hosta (Windows):
https : //<IP serwera z Debianem>:1158/em
Jak Ci sie wyswietli EM to powinno byc OK.
P.S. A tak swoja droga to pod Oracle zdecydowanie lepiej wybrac CentOSa niz Debiana..Zbigniew Grabowicz edytował(a) ten post dnia 09.11.10 o godzinie 12:24
Krzysztof Bielecki

Krzysztof Bielecki Senior consultant,
Capgemini Polska

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

dość kluczowe jest spingowac maszynę uruchomioną na virtualboxie z Hosta ;)
I na odwrót ping z VB do mastera.
Łukasz Schabek

Łukasz Schabek Architekt Rozwiązań

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

Krzysztof Bielecki:
dość kluczowe jest spingowac maszynę uruchomioną na virtualboxie z Hosta ;)
I na odwrót ping z VB do mastera.

Działało w obie strony. Bez problemu łączyłem się po SSH z Hosta na Gościa, a z Gościa miałem dostęp do serwera proxy uruchomionego na Hoście, tak że komunikacja w obie strony działała. Jedyne z czym nie udało mi się połączyć to baza Oracle...

Jeśli będę miał więcej czasu spróbuję skonfigurować wg rad Zbigniewa, na razie zadowalam się Cygwinem ;)Łukasz Schabek edytował(a) ten post dnia 15.11.10 o godzinie 09:45

konto usunięte

Temat: Problem z połączeniem [VirtualBox][Debian][Oracle11g]

Zbigniew Grabowicz:

Pod Debianem sprawdzasz sobie jakie masz IP
ifconfig
I taki wpis dajesz do /etc/hosts oraz do listener.ora
Nastepnie z Poziomu hosta (Windows):
https : //<IP serwera z Debianem>:1158/em
Jak Ci sie wyswietli EM to powinno byc OK.
P.S. A tak swoja droga to pod Oracle zdecydowanie lepiej wybrac CentOSa niz Debiana..

1. EM ma tendencję do niestartowania po resecie serwera, przynajmniej na XE i 10.2 - trzeba go ręcznie "wzruszyć"
2. po co ma zmieniać IP w definicji nasłuchu?? Przecież nasłuch działa -
Łukasz Schabek:

SQL> conn SYS/P4SSw0Rd@orcl as sysdba
Connected.
SQL>
[/code]

Łączę się też (z poziomu Debiana) przez JDBC i działa bez problemu.

problemem jest połączenie z windowsa na vm z debianem

ja jeszcze raz dla uporządkowania.
1. pod jakim IP widzi debiana windows?
2. jakiego IP dostajesz na debianie po ifconfig
3. co z firewallem na debianie - wyłącz go całkiem na czas testów
4. po co przekierowanie portów na debianie? przecież tam nie potrzebujesz (chyba, że czegoś nie wiem o Twojej konfiguracji)
5. z windowsa spróbuj tnsping adres_ip_debiana:port_na_ktorym_slucha_oracle_standardowo_1521/sid_twojej_bazy i daj tutaj co dostajeszMichał Misiekd edytował(a) ten post dnia 30.11.10 o godzinie 15:33



Wyślij zaproszenie do