Toon posts:

Twee oracle databases onafhankelijk laten draaien

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb met dbassist twee databases aangemaakt. De een heet tpp en de ander tpb. Ik heb voordat ik ze beiden heb geinstalleerd de SID gewijzigd naar de naam die de te installeren database krijgt (Dus: tpp en tpb).
Wanneer ik inlog met sqlplus als tpp of tpb, dan krijg ik na het commando:
code:
1
select * from global_name;

steeds de waarde tpp.

Het lijkt dus of ik maar 1 database heb, en beide instancesnames naar die database verwijzen.

Hoe krijg ik het voor elkaar om twee onafhankelijke databases te installeren?

--
Moet ik soms een nieuwe oracle-user aanmaken met zijn eigen .bash_profile en zijn eigen $ORACLE_HOME dir.
Ik ben een newbie op dit gebied, en heb al van alles gezocht. Wie kan mij een beetje op weg helpen?

  • MacWebber
  • Registratie: September 2000
  • Niet online
Kijk even met select * from v$instance, die geeft interessantere info. Het klinkt namelijk of je het wel goed gedaan hebt.

De global name kun je, uit mijn hoofd, in de listener configuratie opgeven.

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Twee topics geven meer antwoord dan 1? :{
[topic=456829/1/50]

Heb je nou al geprobeerd een tabel aan te maken met de ene connectie en die te benaderen met de andere?

Who is John Galt?


Verwijderd

Topicstarter
code:
1
SQL> select * from v$instance;

Geeft voor TPP
----------------------



INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_ STATUS PAR THREAD# ARCHIVE LOG_SWITCH_ LOGINS
----------------- -------- ------- --- ---------- ------- ----------- ----------
SHU DATABASE_STATUS INSTANCE_ROLE
--- ----------------- ------------------
1 tpp
Bangkok
8.1.6.1.0 04-04-02 OPEN NO 1 STARTED ALLOWED
NO ACTIVE PRIMARY_INSTANCE


en voor TPB
----------------------



INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_ STATUS PAR THREAD# ARCHIVE LOG_SWITCH_ LOGINS
----------------- -------- ------- --- ---------- ------- ----------- ----------
SHU DATABASE_STATUS INSTANCE_ROLE
--- ----------------- ------------------
1 tpp
Bangkok
8.1.6.1.0 04-04-02 OPEN NO 1 STARTED ALLOWED
NO ACTIVE PRIMARY_INSTANCE


Dit is identiek ...

  • MacWebber
  • Registratie: September 2000
  • Niet online
Is inderdaad hetzelfde.
Kan twee dingen betekenen, ofwel je hebt maar 1 database, ofwel je werkt vanaf een client en je tnsnames configuratie is niet goed.

Als je op NT/2000/XP werkt (kwa server), kun je even kijken naar de services (via controlpanel). Je moet dus twee services zien in de trant van OracleServiceTPP en OracleServiceTPB. Als die er zijn ben je al een heel eind.

  • MacWebber
  • Registratie: September 2000
  • Niet online
Ah, ik zie net dat je met Linux werkt.
Dan moet je bij het starten van de databases controleren of het environment wel goed staat. Met name die ORACLE_SID uiteraard.

Je zou eens alle oracle processen kunnen stoppen, en dan een voor een opstarten, te beginnen met degene die het niet lijkt te doen. Dan kun je makkelijker zien of het iets doet of niet.

Verwijderd

Topicstarter
Heb je nou al geprobeerd een tabel aan te maken met de ene connectie en die te benaderen met de andere?
Ja dat heb ik net gedaan. Ik kan met de ene de data lezen die ik met de ander heb weggeschreven. Mar dat ik wel verwacht want hij "luistert" naar dezelfde database.

--

Trouwens in mijn .bash_profile staat maar e-e-n ORACLE_SID. Moeten dit er geen twee zijn???

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op donderdag 04 april 2002 14:08 schreef BL het volgende:
Trouwens in mijn .bash_profile staat maar e-e-n ORACLE_SID. Moeten dit er geen twee zijn???
Ai. Je kunt er natuurlijk maar een tegelijk zetten.
code:
1
. oraenv <oracle_sid>

Who is John Galt?


  • rig0r
  • Registratie: Juli 2001
  • Laatst online: 11-03-2025
Op donderdag 04 april 2002 14:08 schreef BL het volgende:

[..]

Ja dat heb ik net gedaan. Ik kan met de ene de data lezen die ik met de ander heb weggeschreven. Mar dat ik wel verwacht want hij "luistert" naar dezelfde database.

--

Trouwens in mijn .bash_profile staat maar e-e-n ORACLE_SID. Moeten dit er geen twee zijn???
Neej, je werkt maar met 1 DB tegelijk :)

Makkelijker is om niet ORACLE_SID te gebruiken maar bijv :
code:
1
sqlplus system/manager@DBNAAM

of als je al in sqlplus zit :
code:
1
conn system/manager@DBNAAM

Als je een web-app bouwt moet je dus in je code ook gewoon een DBNAAM (SID) meegeven met username en password.

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op donderdag 04 april 2002 14:12 schreef rig0r het volgende:
Neej, je werkt maar met 1 DB tegelijk :)

Makkelijker is om niet ORACLE_SID te gebruiken maar bijv :
code:
1
sqlplus system/manager@DBNAAM

of als je al in sqlplus zit :
code:
1
conn system/manager@DBNAAM

Als je een web-app bouwt moet je dus in je code ook gewoon een DBNAAM (SID) meegeven met username en password.
Dan moet server en client side sql*net/net8 geconfigureerd zijn.
Ik zou eerst beginnen met de databases op orde krijgen.

Who is John Galt?


Verwijderd

Topicstarter
Makkelijker is om niet ORACLE_SID te gebruiken maar bijv :

code:
--------------------------------------------------------------------------------
sqlplus system/manager@DBNAAM
--------------------------------------------------------------------------------

of als je al in sqlplus zit :
code:
--------------------------------------------------------------------------------
conn system/manager@DBNAAM
--------------------------------------------------------------------------------

Als je een web-app bouwt moet je dus in je code ook gewoon een DBNAAM (SID) meegeven met username en password.
ja, daar heb je helemaal gelijk in. Het leuke is dat ik dat ook al deed. Maar wanneer ik dan de global_name opvraag, verwijst die bij tpp als ook bij tpb naar tpp.

dat is dus het vage, inloggen met tpb een verwijzen naar tpp!

Verwijderd

Topicstarter
He-j ik heb het volgens mij opgelost. Ik heb een startlsnr en stoplsnr die automatisch na een reboot gestart en gestopt worden. de inhoud van startlsnr zag er zo uit:
code:
1
2
3
4
5
6
7
8
#!/bin/sh
# Start the oracle listener
export ORACLE_HOME=/ora81/app/oracle/product/8.1.6
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=tpp
export ORACLE_TERM=vt100
$ORACLE_HOME/bin/lsnrctl start
exit 0

Hierin staat een SID. Deze heb ik nu gecommentaard en nu gaat het wel goed. Maar is dit wel een goede oplossing?

Verwijderd

Topicstarter
Ok ik snap nu wat het probleem is. De database die wordt aangeroepen is de database met de naam die in de .bash_profile wordt aangegeven. Ook al log ik in met sqlplus system/manager@tpp, als er in de .bash_profile tpb staat dan zal hij daar naar luisteren.

Maar hoe los ik dit nu op want ik heb immers twee instance-names.

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op donderdag 04 april 2002 14:57 schreef BL het volgende:
Ok ik snap nu wat het probleem is. De database die wordt aangeroepen is de database met de naam die in de .bash_profile wordt aangegeven. Ook al log ik in met sqlplus system/manager@tpp, als er in de .bash_profile tpb staat dan zal hij daar naar luisteren.

Maar hoe los ik dit nu op want ik heb immers twee instance-names.
Zie mijn tweede post in dit topic.

Who is John Galt?


Verwijderd

Topicstarter
Ai. Je kunt er natuurlijk maar een tegelijk zetten.
code:
1
. oraenv <oracle_sid>
Is dat de oplossing :?
Waar moet ik dat invoeren, in de .bash_profile

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op donderdag 04 april 2002 15:09 schreef BL het volgende:

[..]

Is dat de oplossing :?
Waar moet ik dat invoeren, in de .bash_profile
Voordat je sqlplus opstart.
Je kunt '. oraenv' in je profile zetten, dan vraagt hij om een sid bij het aanloggen.
Als je dan op de andere db wilt werken moet je '.oraenv' gewoon vanuit de shell opstarten voor je sqlplus weer in gaat.

Who is John Galt?


Verwijderd

Topicstarter
Ok, maar ik zal een sqlplus client vanaf een andere bak gebruiken om in te loggen op de database-server. Hiervoor heb ik in net8assistant de twee SID-names toegevoegd.

Dus die oplossing werkt niet helemaal.

Kan ik ook een twee oracle-user aanmaken met een eigen profile of zoiets.

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op donderdag 04 april 2002 15:17 schreef BL het volgende:
Ok, maar ik zal een sqlplus client vanaf een andere bak gebruiken om in te loggen op de database-server. Hiervoor heb ik in net8assistant de twee SID-names toegevoegd.
De database selectie loopt bij client/server verbindingen over sql*net/net8.
Zo te horen heb je de server zijde van de net8 configuratie reeds gedaan.
Dan hoef je geen rekening meer te houden met het environment van je server shell connectie.
Kan ik ook een twee oracle-user aanmaken met een eigen profile of zoiets.
Kan wel, maar is niet handig.

Who is John Galt?


Verwijderd

Topicstarter
De database selectie loopt bij client/server verbindingen over sql*net/net8.
Zo te horen heb je de server zijde van de net8 configuratie reeds gedaan.
Dan hoef je geen rekening meer te houden met het environment van je server shell connectie.
In mijn listener staat ook een SID aangegeven en die bepaalt naar welke db er geluisterd wordt. Zet ik er geen SID in dan krijg ik een error.

:? snap er niks meer van ...

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op donderdag 04 april 2002 15:36 schreef BL het volgende:
In mijn listener staat ook een SID aangegeven en die bepaalt naar welke db er geluisterd wordt. Zet ik er geen SID in dan krijg ik een error.

:? snap er niks meer van ...
Als je op de server zelf werkt kun je zowel client/server als server only werken.
Die '. oraenv' methode is voor server only.
Connecten met 'user/pass@alias' is de client/server methode.

Wil je die tweede methode gebruiken dan moeten server en client net8 geconfigged zijn.
Dat werkt dus nu waarschijnlijk niet op je server omdat die de client kant van net8 nog niet geconfigged heeft.

Who is John Galt?


Verwijderd

Topicstarter
Doe je dat op de server niet met netasst

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op donderdag 04 april 2002 15:41 schreef BL het volgende:
Doe je dat op de server niet met netasst
Daarmee doe je de server zijde.
Het is niet gebruikelijk je server ook als client te gebruiken.
Normaal gebruik je de '. oraenv' methode op de server.

Who is John Galt?


Verwijderd

Topicstarter
Ik moet toch gewoon in kunnen loggen als ...@tpp en de listener zoekt daar de goed global_name bij.

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op donderdag 04 april 2002 16:37 schreef BL het volgende:
Ik moet toch gewoon in kunnen loggen als ...@tpp en de listener zoekt daar de goed global_name bij.
Herhaling: als je een net8 client hebt draaien wel.
sqlplus<->net8 client<->net8 server<->database.

Who is John Galt?


Verwijderd

Topicstarter
Die client stond al op de server.

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op vrijdag 05 april 2002 11:57 schreef BL het volgende:
Die client stond al op de server.
En als je nu connect via de user/pass@alias methode kom je nu dus steeds bij dezelfde database uit?

Kun je dan ff je tnsnames.ora en de uitvoer van 'lsnrctl status' posten?

Who is John Galt?

Pagina: 1