[ORACLE] Connectie naar database

Pagina: 1
Acties:
  • 369 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

Anoniem: 30473

Topicstarter
Ik heb een oracle 8.0.5 database gemaakt op een AIX Unix machine. Nu wil ik een frontend maken in Access. Ik moet dus een connectie maken met de database vanaf m'n windows XP machine naar de database op AIX.

Ik heb in de TNSNAMES.ORA alles goed gezet (voor zover ik kan zien). Een TNSPING naar de db werkt dus. Als ik nu dit doe:

SQLPLUS system@testdb

krijg ik dit:

ORA-12505: TNS:listener could not resolve SID given in connect descriptor.

Ik heb geen idee waar dit aan ligt. Iemand enig idee?
Alvast bedankt voor de moeite.

Acties:
  • 0 Henk 'm!

Anoniem: 26483

ziet eruit als een foute tnsnames.ora entry
waarschijnlijk de sid in de ora entry is fout

Acties:
  • 0 Henk 'm!

Anoniem: 53610

Of je hebt een probleem in je tnsnames.ora of je hebt world niet afgevangen in je sqlnet.ora.
Probeer het anders eens met TOAD (freeware). Deze laat precies zien waar een probleem opduikt. www.toadsoft.com

Acties:
  • 0 Henk 'm!

  • Monkeybrains
  • Registratie: Juni 2001
  • Laatst online: 09:36
Dat tnsping wel werkt betekent alleen maar dat er een listener draait op het ip adres wat je heb gespecificeerd in je tnsnames entry.

Maar het vorige antwoord klopt, de listener kan de sid die je vraagt niet vinden. Configuratie van de listener staat in het bestand listener.ora in dezelfde lokatie als de tnsnames.ora (normaal gesproken $oracle_home/network/admin/)

Toad laat volgens mij alleen de oracle foutmelding zien, dus dat lijkt me niet echt nuttig.

De parameter in sqlnet.ora (overigens in dezelfde lokatie als tnsnames en listener) heet default_domain. Je kan deze het beste of weghalen of er commentaar van maken door er een hekje (#) voor te zetten.

[ Voor 33% gewijzigd door Monkeybrains op 23-04-2003 17:41 ]


Acties:
  • 0 Henk 'm!

Anoniem: 30473

Topicstarter
tnx voor de antwoorden!

In de listener staat niets bijzonders:

LISTENER=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=IPC)
(KEY=TESTDB)

En vervolgens:

STARTUP_WAIT_TIME_LISTENER = 0
CONNECT_TIMEOUT_LISTENER = 10

SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=TESTDB.world)
(SID_NAME=TESTDB)
(ORACLE_HOME=/u01/oracle/app/oracle/product/8.0.5)
(PRESPAWN_MAX = 10)

Dus volgens mij kan het ook daar niet aan liggen.
Ik ga iig even kijken of ik toad kan gebruiken.

Acties:
  • 0 Henk 'm!

Anoniem: 53610

TOAD laat ook alles zien wat er gebeurt is tot op het punt waar het fout gaat.

Acties:
  • 0 Henk 'm!

Anoniem: 53610

Kijk eens in je tnsnames.ora, die zou er ongeveer zo uit moeten zien :

awacs=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(PORT=1521)(HOST=xxx.xxx.xxx.xxx))
(CONNECT_DATA=(SID=awacs_db)))

Je sqlnet.ora ongeveer zo :

AUTOMATIC_IPC = OFF
SQLNET.EXPIRE_TIME = 2147483647
trace_level_client = off
trace_file_client = sqlnet
log_file_client = sqlnet
#names.default_domain = world
#name.default_zone = world
trace_directory_client=C:\temp\
log_directory_client=C:\temp\
#SQLNET.AUTHENTICATION_SERVICES=(NONE)

Acties:
  • 0 Henk 'm!

  • Monkeybrains
  • Registratie: Juni 2001
  • Laatst online: 09:36
Goed, je database heet dus TESTDB. Je entry in je tnsnames.ora zou dan zoiets moeten worden als:

TESTDB =
(description =
(address_list =
(address = (protocol = tcp)(host = ip nummer)(port = 1521))
)
(connect_data =
(sid = TESTDB)
)
)

Voor wat betreft toad, net getest, maar ik krijg alleen de oracle foutmelding. Overigens gebruik ik de geregistreerde versie.

Acties:
  • 0 Henk 'm!

Anoniem: 53610

Monkeybrains schreef op 23 April 2003 @ 17:44:
Goed, je database heet dus TESTDB. Je entry in je tnsnames.ora zou dan zoiets moeten worden als:

TESTDB =
(description =
(address_list =
(address = (protocol = tcp)(host = ip nummer)(port = 1521))
)
(connect_data =
(sid = TESTDB)
)
)

Voor wat betreft toad, net getest, maar ik krijg alleen de oracle foutmelding. Overigens gebruik ik de geregistreerde versie.
Er zit een button bij voor de extra informatie })

Acties:
  • 0 Henk 'm!

Anoniem: 30473

Topicstarter
De TNSNAMES.ORA ziet er zo uit:

# TESTDB: Test database Jeroen
TESTDB.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = fi00am17)
(PORT = 1522)
)
)
(CONNECT_DATA =
(SID = TESTDB)
)
)

Komt dus redelijk overeen, behalve de poort, maar dit moet geen probleem zijn.

De SQLNET ziet er iets anders uit:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES)

Maar volgens mij moet ook dit gewoon werken. Moet ik de listener op de een of andere manier kenbaar maken dat ook de TESTDB geaccepteerd moet worden? En zoja, hoe? (ik ben nog een beetje ene oracle-noob :)

Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Monkeybrains schreef op 23 April 2003 @ 17:44:
Voor wat betreft toad, net getest, maar ik krijg alleen de oracle foutmelding. Overigens gebruik ik de geregistreerde versie.
Er zit een knopje bij die een soort log geeft van welke oracle_home ie gebruikt, welke registry entries (zoals tns_admin) hij gevonden heeft etc.
Dit alles betreft wel alleen de client kant.

Van de server kant zie je alleen maar de oracle foutmelding.

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • Monkeybrains
  • Registratie: Juni 2001
  • Laatst online: 09:36
Volgens mij luistert de listener alleen naar ipc en niet naar tcp, als ik de listing teminste goed lees.

Voor toad, ik bedoelde inderdaad de foutmelding van de server side :+

[ Voor 47% gewijzigd door Monkeybrains op 23-04-2003 17:50 ]


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Anoniem: 30473 schreef op 23 April 2003 @ 17:47:
Maar volgens mij moet ook dit gewoon werken. Moet ik de listener op de een of andere manier kenbaar maken dat ook de TESTDB geaccepteerd moet worden? En zoja, hoe? (ik ben nog een beetje ene oracle-noob :)
Kun je de uitvoer van de opdracht 'lsnrctl status' (op de server) ook ff posten?

Who is John Galt?


Acties:
  • 0 Henk 'm!

Anoniem: 30473

Topicstarter
Tsja...Als ik toad gebruik komt ie met de ORA-12505 foutmelding. In de client-kant description staat wat bullshit over dat hij een oracle home heeft gevonden (de client oracle home, en die is correct), vervolgens dat ie een .dll gebruikt, en klabang! einde verhaal boehoe!

Acties:
  • 0 Henk 'm!

  • Monkeybrains
  • Registratie: Juni 2001
  • Laatst online: 09:36
Er staat in de listener configuratie file niets over tcp? (ip/hostname en poort en zo?)

Acties:
  • 0 Henk 'm!

Anoniem: 30473

Topicstarter
justmental schreef op 23 April 2003 @ 17:51:
[...]

Kun je de uitvoer van de opdracht 'lsnrctl status' (op de server) ook ff posten?
Uiteraard kan ik die even posten. Wel wat gefilterd, maar hier is ie:

Connecting to (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))
TNS-12224: TNS:no listener
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
IBM/AIX RISC System/6000 Error: 2: No such file or directory
Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521)(HOST=fi00am17))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for IBM/AIX RISC System/6000: Version 8.0.6.3.0 - Production
Start Date 22-APR-2003 22:48:54
Uptime 0 days 18 hr. 34 min. 13 sec
Trace Level off
Security OFF
SNMP OFF
Listener Parameter File /u02/oracle/app/oracle/product/8.0.6/network/admin/listener.ora
Listener Log File /u02/oracle/app/oracle/product/8.0.6/network/log/listener.log
Services Summary...
DB1 has 1 service handler(s)
DB2 has 1 service handler(s)
DB3 has 1 service handler(s)
DB4 has 1 service handler(s)
DB5 has 1 service handler(s)
DB6 has 1 service handler(s)
The command completed successfully

Dus mijn databaseje staat er niet bij :'(

Acties:
  • 0 Henk 'm!

Anoniem: 30473

Topicstarter
Monkeybrains schreef op 23 April 2003 @ 17:54:
Er staat in de listener configuratie file niets over tcp? (ip/hostname en poort en zo?)
Nee, staat niets over in. Maar het werkt voor de andere databases wel, dus is het volgens mij niet noodzakelijk.

Acties:
  • 0 Henk 'm!

  • Monkeybrains
  • Registratie: Juni 2001
  • Laatst online: 09:36
in de listing van de lsnrctl output staat poort 1521, dus je moet die poort in je tnsnames entry gebruiken. Dit maakt namelijk wel degelijk uit.

Een en ander heeft te maken met de manier waarop oracle met client connecties omgaat

[ Voor 24% gewijzigd door Monkeybrains op 23-04-2003 18:01 ]


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Anoniem: 30473 schreef op 23 April 2003 @ 17:56:
Connecting to (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))
TNS-12224: TNS:no listener
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
IBM/AIX RISC System/6000 Error: 2: No such file or directory
Volgens mij is je listener config een beetje brak.
Deze eerste meldingen geven aan dat er geen listener draait en vervolgens zijn er wel wat handlers voor enkele db's.

Ik duik wel ff m'n eigen listener.ora op.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# LISTENER.ORA Network Configuration File: f:\oracle\ora92\network\admin\listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = p4)(PORT = 1521))
      )
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = f:\oracle\ora92)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = wwwp)
      (ORACLE_HOME = f:\oracle\ora92)
      (SID_NAME = wwwp)
    )
  )

[ Voor 39% gewijzigd door justmental op 23-04-2003 18:02 ]

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • Monkeybrains
  • Registratie: Juni 2001
  • Laatst online: 09:36
Uit pure nieuwsgierigheid, maar waarom wil je nog een oude versie (historisch wil ik bijna zeggen) gebruiken?

Acties:
  • 0 Henk 'm!

Anoniem: 27376

money money money?

Acties:
  • 0 Henk 'm!

Anoniem: 30473

Topicstarter
Monkeybrains: niet mijn keus, zo draait hij nou eenmaal :) De database versie is overigens 8.0.5 en de listener is van 8.0.6.

Justmental: Ik zie geen fouten in mijn listener.ora als ik hem vergelijk met die van jou, wel wat verschillen...
Zijn er nog meer config files op de client of server waar ik nog niet naar gekeken heb?

Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Anoniem: 30473 schreef op 23 April 2003 @ 18:08:
Justmental: Ik zie geen fouten in mijn listener.ora als ik hem vergelijk met die van jou, wel wat verschillen...
Die log van lsnrctl status zag er toch niet goed uit.
Wat doet ie bij een lsnrctl start?
Zijn er nog meer config files op de client of server waar ik nog niet naar gekeken heb?
In principe wel, maar dan moet je wel een hele rare situatie hebben, zou ik voorlopig nog niet naar kijken.

Heb je overigens die poorten al bekeken?

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Buiten dat dit nergens op slaat (elke versie van de Oracle server heeft dezelfde prijs) werkt dat roepen van 'duur' etc. ook nog eens enorm stigmatiserend. :{

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • Monkeybrains
  • Registratie: Juni 2001
  • Laatst online: 09:36
Inderdaad, de linux versie kan je volgens mij gewoon downloaden, ook de laatste versie

Acties:
  • 0 Henk 'm!

Anoniem: 30473

Topicstarter
justmental schreef op 23 April 2003 @ 18:12:
[...]

Die log van lsnrctl status zag er toch niet goed uit.
Wat doet ie bij een lsnrctl start?
Dan doet hij dit:

TNS-01106: Listener using listener name LISTENER has already been started
[...]

In principe wel, maar dan moet je wel een hele rare situatie hebben, zou ik voorlopig nog niet naar kijken.

Heb je overigens die poorten al bekeken?
Misschien een beetje een domme vraag :) maar...hoe doe ik dat?

Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Anoniem: 30473 schreef op 23 April 2003 @ 18:19:
Misschien een beetje een domme vraag :) maar...hoe doe ik dat?
Ik bedoel dezelfde poort gebruiken in je tnsnames.ora als in je listener.ora.
Dit is namelijk de poort waar hij over communiceert.

Who is John Galt?


Acties:
  • 0 Henk 'm!

Anoniem: 30473

Topicstarter
Oh, die bedoel je :) Ja, heb ik nu op 1521 staan, maar dat maakt niets uit. Hij kan de SID nog steeds niet vinden. Dus hij moet nog ergens een lijstje/service oid hebben waar de SID niet gedefinieerd is. Maar waar? Client of server?

Als ik op de server dit doe:

SQLPLUS system@testdb

Dan krijg ik dezelfde foutmelding. Over NET8 werkt het dus niet...

Acties:
  • 0 Henk 'm!

Anoniem: 30473

Topicstarter
Overigens geeft 'oerr' deze melding/oplossing:

12505, 00000, "TNS:listener could not resolve SID given in connect descriptor"
// *Cause: The SID in the CONNECT_DATA was not found in the listener's tables.
// *Action: Check to make sure that the SID specified is correct.
// The SIDs that are currently registered with the listener can be obtained by
// typing "LSNRCTL SERVICES <listener name>". These SIDs correspond to SID_NAME
s
// in TNSNAMES.ORA, or db_names in INIT.ORA.
// *Comment: This error will be returned if the database instance has not
// registered with the listener; the instance may need to be started.


Maargoed, waar vind ik de listeners tables?

Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Anoniem: 30473 schreef op 23 april 2003 @ 18:33:
Maargoed, waar vind ik de listeners tables?
Dat is je listener.ora.
Kun je die een keer compleet posten, daar moet het toch echt in zitten.

Who is John Galt?


Acties:
  • 0 Henk 'm!

Anoniem: 30473

Topicstarter
Allen hartelijk dank voor de reacties. Ik heb de oplossing gevonden. Het bleek dat er een pad verwijzing stond naar een verkeerde TNSNAMES. Hoe dom kan ik zijn?

In iedergeval bedankt voor de hulp!
Pagina: 1