Avatar billede splatter Nybegynder
13. september 2001 - 13:48 Der er 17 kommentarer og
1 løsning

Adgang til Oracle DB

Jeg har problemer med at få adgang til en Oracle database fra en webserver.

Jeg benytter en System DSN på webserveren, som igen bruger en forbindelse opsat i Net8 assistant. I firewallen er der så åbnet for adgang til webserveren på den port som benyttes af net8 forbindelsen.

Er der andre porte der skal åbnes for så jeg kan få adgang til webserveren???
Lige nu får jeg en timeout, og firewallen ser ud til at lukke af...

På forhånd tak
Avatar billede Slettet bruger
13. september 2001 - 13:50 #1
Jeg tror kun man bruger standard porten til at
kontakte databasen. Derefter kører forbindelsen
over på en anden port. Vi har ihvertfald haft
tilsvarende problemer, der endte med at netværks-
administratoren lukkede op for flere porte.
Avatar billede pnielsen Nybegynder
13. september 2001 - 13:57 #2
i teorien skal du åbne alle porte(1-65000), da du ikke kan styrer hvilken port listeneren spawner din nye process på. Ellers skal du have en sqlnet plugin til din firewall!

Løsningen vil være at installere en connection manager uden for firewallen.

Hvis du kører din database på NT, kan du også vælge at sætte use_shared_sockets op.
Så vil listeneren altid svarer på samme port!

/Paw
Avatar billede splatter Nybegynder
13. september 2001 - 14:18 #3
Der er tale om en webserver der står på firewallens DMZ og så en Oracle server der stå på indersiden. Webserver kører Win2000 og Oracle kører NT4.

Der er pt åbnet for port 1522 som beskrevet i Oracle dokumentationen.

Hvordan bærer vi os ad? Kan du/i evt. henvise til en konsulent?
Avatar billede teepee Nybegynder
13. september 2001 - 14:22 #4
Prøv 1521 og 1526, de er meget brugt af oracle
Avatar billede teepee Nybegynder
13. september 2001 - 14:32 #5
I tnsnames.ora filen som ligger i /network/admin kataloget kan I se at der står PORT = nnnn flere steder. Åben for disse portnumre
Avatar billede Slettet bruger
13. september 2001 - 14:39 #6
tepee: Jeg tror ikke, det er nok at åbne for 1521
og 1526. Som pnielsen skriver, skal man i teorien
åbne for alle porte.

pnielsen: Jeg kan ikke finde use_shared_sockets
dokumenteret. Har du et link?
Avatar billede pnielsen Nybegynder
13. september 2001 - 14:50 #7
Desværre ikke noget link :(

Men det lyder til at det så er løsningen for jer her!

checkliste:
-Hvis du på din webserver har 1522 stående i din tnsnames.ora, skal din listener se\'fø\'li også lytte på den!
tnsping skulle her kunne bruges som test, fordi listeneren altid svarer tilbage på samme port ved ping.
Når det virker, kan du på din database server gå i registry..
HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE
her laves en ny streng værdi USE_SHARED_SOCKET=TRUE
Jeg mener at man på Oracle8 og nyere skal sætte den under det aktuelle home, f.eks.:
HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE\\home0
hvor home0 er dit database home!

Når det er klaret, skulle det faktisk være muligt at connecte gennem firewallen....

Start med at teste med en sqlplus!

Avatar billede Slettet bruger
13. september 2001 - 14:58 #8
Avatar billede splatter Nybegynder
13. september 2001 - 15:05 #9
pnielsen>
Din checkliste lyder godt, men ingen af os er desværre inde i noget med Oracle så vi håbede lidt på at du ville uddybbe din checkliste lidt mere... f.eks hvad er en listener? Og hvordan får vi testet det med sqlplus (hvorfra og hvordan)???

Håber du gider uddybe/skære ud i pap :-)
Avatar billede pnielsen Nybegynder
13. september 2001 - 15:23 #10
Wauv... det er da noget af en opgave så....
Jeg syntes egentligt jeg har beskrevet det i detaljer ?? ;-)

Desværre har jeg ikke meget tid lige nu, men måske nogle af de andre kan støde til...

Start med at tilføje Used_shared_Sockets parameteren på din database server.....
Så er der ikke lang vej.
Indsæt den for en sikkerheds skyld både i
HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE
HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE\\home0

Check så din tnsnames.ora på webserveren. Hvilken port forsøger den at fange ?
Se svar fra teepee ovenfor.

Listeneren er lytteprocessen på din databaseserver, som sørger for at give dig en connection ind i basen.

Avatar billede wilco Nybegynder
13. september 2001 - 16:02 #11
ok splatter, jeg vil gøre et lille forsøg på at hjælpe pnielsen.

Listneren er en process der kører på Oracle serveren, som sørger for at din \"request\" om data bliver behandlet af Datahandleren.

Listneren kan genkendes på NT 4.0 under services ved at den hedder et eller andet med TNSLISTNER.

Når man har problemer af denne karakterer er det nemmest at teste ved at gå til en shell og skrive : TNSPING <servicename eller ip adress på serveren>

Denne kommando bør udmunde i et svar der ligner :
Attempting to contect (address=(protocol=tcp)(Host=xxxxxxxxxx)(post=yyyy)
OK (zzz msec)

hvis det ikke sker er der ikke hul igennem til listeneren.

Hvis ikke der er hul igennem er der flere ting som du bør checke...
- normalt er det 1521 og ikke 1522 som du skriver .. der er Oracle\'s std. port.
- kan du Ping ip adressen på serveren overhovedet = er der netværkshul igennem ?
- på Oracle servern kan du kalde flg. program :
lsnrctl
det er listner control programmet.

giv den her kommando\'en STATUS LISTENER

herefter skulle du få informationer om listeneren og hvilke service names den servicere... = hvilke tnsnames poster (i grove træk) den servicere.

Håber det hjælper dig.
/wilco

Avatar billede splatter Nybegynder
13. september 2001 - 17:13 #12
Takker for svarene... men det virker desværre stadig ikke...
Det er helt sikkert at der lyttes på port 1522 (jeg kan nemlig godt connect\'e fra en testwebserver som står på indersiden (samme side som DB\'en))

Jeg har også sat den string ind som pnielsen foreslog i registreringsdatabasen..

Men desværre virker det stadig ikke...

Jeg har forsøgt at køre en test fra Net8 assistant på webserveren.. og dette fejler på port 1522 selvom der er åbent for denne port i firewallen...

Håber I har flere ideer til en løsning???
Avatar billede wilco Nybegynder
18. september 2001 - 14:43 #13
Hej Splatter

Har fundet følgende til dig.

Det brugeren skal gøre er at enable SQL*Net proxy i hans
firewall.

De fleste udbredte firewalls er i stand til dette.

Avatar billede pnielsen Nybegynder
18. september 2001 - 19:20 #14
det er ikke faktisk ikke nødvendigt at have en sql*net compatibel proxy server, men lad mig kort forklare.....
Hvis i slår det til/kan slå det til, vil du stadig skulle have en port åben udaf til.
Når du så forsøger at connecte fra din client, vil proxyen opdage din request og åbne for sql*net connections indefra og ud. På den måde får listeneren lov til at komme igennem til din client.
Hvis man sætter used_shared_sockets parameteren, er denne løsning ikke nødvendig!

Jeg må ikke komme forbi pga. mit arbejde, men ring evt til Oracle og spørg efter support for at få fat i en der kan hjælpe dig onsite!
Avatar billede nosjns Nybegynder
21. september 2001 - 08:03 #15
Min erfaring er at man ikke kan bruge NET8 Asst. til opsætninng, hvis man skal igennem en firewall. Man bliver manuelt nødt til at rette i tnsnames.ora. Her skal du lave en \"address list\" med to adresser. Den første skal være din firewall og den næste skal være Oracle server.
Avatar billede splatter Nybegynder
24. september 2001 - 16:13 #16
Jeg takker mange gange for alle de gode svar. pnielsen\'s USE_SHARED_SOCKET (fandt ud af at det skulle staves sådan... derfor det ikke virkede til at starte med) var løsningen på problemet.

Endnu engang tak :-)
Avatar billede pnielsen Nybegynder
24. september 2001 - 16:39 #17
nosjns  -> Det du snakker om er connection manager... altså ikke firewallen.
Ved brug af connection manager, som man installere bag firewallen(!!), sørger cman for at
modtage alle forbindelser udefra. Den beder så listeneren om at få en process. Når processen er startet router cman alt kommunikation ud via 1 port i firewallen.

splatter -> Jeg har selv prøvet at rode med den parameter i lang tid..... Nu ved jeg at der Ikke er \"s\" på den :-)

Avatar billede nosjns Nybegynder
25. september 2001 - 07:45 #18
pnielsen: Jeg er godt klar over dette også er tilfældet ved cman. Vi har ingen cman kørende, men en firewall med en SQL*net proxy installeret. Men tnsnames opsætningen er den samme, som ved cman.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester