Newsgroup: it.comp.software.database
Titolo: [ORACLE] "alias" di istanze...

Curiosità: paciugando la configurazione del listener di Oracle, è 
possibile configurare il server in modo da effettuare un "aliasing" 
delle istanze?
Mi spiego con un esempio: ho un server su cui gira tranquilla tranquilla 
un'istanza con sid=ORCL (tanto per essere originali). I client che si 
vogliono connettere impostano l'ip del server e il SID (o il global 
name) e via. Se io volessi, c'e' modo di far sì che la medesima istanza 
sia accedibile anche con i SID ORA8 e ORA9, per dire?
-- 
Fabrizio "Hermooz" Ermini


l'unica cosa che mi e' venuta in mente
e' il service_name e l'applicativo lo punta,
ma non penso sia quello che cerchi :)
quello che di solito io faccio e'
aprire una porta per ogni schema, e darla all'applicativo
che va' a giocarci sopra, il sid e' sempre lo stesso, ma
cambia la porta, in sostanza hanno 2 "nodi" distinti,
che AS utilizzi, magari molto lo puo' fare lui
felice_pago
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 che AS utilizzi, magari molto lo puo' fare lui
No, niente application server, io facevo proprio il caso semplice: 
client che va con tnsnames ad attaccarsi al DB.
Ripeto che è più che altro una curiosità, lo scenario era quello in cui 
ci sono x client configurati per andare su un tot di server, 
identificati da un IP e da un SID; e l'idea era quella di riuscire a 
"confondere" le idee al client mandandolo su un server piuttosto che un 
altro (non per fare hacking, ma magari per operazioni quali upgrade, 
down momentanei, passaggi test->produzione et similia) senza cambiargli 
il tnsnames ma semplicemente cambiando gli ip dei server. Il gioco 
funziona tranquillamente sei sul server che stai "impersonando" c'e' la 
stessa SID; se è diversa, o cambi la configurazione dei client o 
rinomini l'istanza, entrambe soluzioni che fanno perdere un bel po' di 
tempo. Quindi mi chiedevo se non ci fosse modo di lasciare tutto come 
sta e limitarsi a mettere nel mezzo una specie di "sinonimo", per capirsi.
-- 
Fabrizio "Hermooz" Ermini


oddio puoi fornirgli oltre che un'altra porta,
un indirizzo virtuale di quel server,
ma il SID e' tale, su una macchina puo' esistere un solo sid,
tu nel suo tnsnames.ora, del client, gli imposti la connect string
alla porta che gli hai assegnato !


 
A dire il vero ad un server possono essere associati moltteplici SID... 
e qusti possono essere persino identici.
In ogni caso il SID si usava nelle stringhe di connessione fino alla 8.0.
Lo si puo' ancora inserire ma e' sconsigliato.
Ora si preferisce il SERVICE_NAME.
SERVICE_NAME non e' sinonimo di istanza (e nemmeno di database).
Dalla parte server, nel tuo parameter file (dalla 9i probabilmente stai 
usando un spfile), puoi specificare una lista di servizi associati al 
parametro SERVICE_NAMES ( notare la S finale).
Di default il nome del servizio e' uguale al nome del DB (non 
dell'istanza) piu' il dominio del DB.
Nulla vieta che piu' di un servizio sia associato allo stesso database.
SERVICE_NAMES e' infatti una lista di nomi divisi da virgole.
In sostanza la risposta alla richiesta iniziale e': "Si', e' possibile 
associare una sorta di alias da usarsi con le stringhe di connessione".
Ciao
-- 
Fabrizio Magni
fabrizi...@mycontinent.com
replace mycontinent with europe

 SERVICE_NAME non e' sinonimo di istanza (e nemmeno di database).
1- grazie davvero per la precisazione :)
2- perche' non ti sei attaccato piu' sopra ?
    dove parlavo di servie_name, senza s finale ?
3- potresti enucleare ancora piu' in profondo il concetto,
     magari con un esempio :)
4- ancora grazie :)


Ciao Felice,
scuas se ho risposto direttamente a te e non sopra ma volevo solo 
precisare la parte del SID associato ad un nome macchina (solo perche' 
altrove ho dovuto dimostrare che SID identici possono convivere sullo 
stesso sistema).
Faccio un cut and paste di un esempio in cui ad un istanza TEST4K 
associo un ulteriore servizio chiamato UPGRADE.
Dopo la modifica il listener registra il nuovo servizio in automatico e 
mi permette le connesioni puntandoci direttamente.
Spero non sia troppo criptico.
E ancora scuse se il post precedente e' stato preso come un qualche tipo 
di critica.
Non voleva esserlo. :)
SQL> show parameter service
NAME                                 TYPE        VALUE
------------------------------------ ----------- 
------------------------------
service_names                        string      TEST4K
oracle@rangelife:~> lsnrctl status
LSNRCTL for Linux: Version 10.1.0.3.0 - Production on 12-SEP-2005 10:46:07
Copyright (c) 1991, 2004, Oracle.  All rights reserved.
Connecting to 
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rangelife.ras)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.1.0.3.0 - Production
Start Date                06-SEP-2005 21:51:44
Uptime                    5 days 12 hr. 54 min. 22 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File 
/u01/app/oracle/product/10.1/db_1/network/admin/listener.ora
Listener Log File 
/u01/app/oracle/product/10.1/db_1/network/log/listener.log
Listening Endpoints Summary...
   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rangelife.ras)(PORT=1521)))
   (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
   Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this 
service...
Service "TEST4K" has 1 instance(s).
   Instance "TEST4K", status READY, has 1 handler(s) for this service...
The command completed successfully
SQL> alter system set service_names='TEST4K,UPGRADE' scope=both;
System altered.
oracle@rangelife:~> lsnrctl status
LSNRCTL for Linux: Version 10.1.0.3.0 - Production on 12-SEP-2005 10:48:34
Copyright (c) 1991, 2004, Oracle.  All rights reserved.
Connecting to 
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rangelife.ras)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.1.0.3.0 - Production
Start Date                06-SEP-2005 21:51:44
Uptime                    5 days 12 hr. 56 min. 49 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File 
/u01/app/oracle/product/10.1/db_1/network/admin/listener.ora
Listener Log File 
/u01/app/oracle/product/10.1/db_1/network/log/listener.log
Listening Endpoints Summary...
   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rangelife.ras)(PORT=1521)))
   (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
   Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this 
service...
Service "TEST4K" has 1 instance(s).
   Instance "TEST4K", status READY, has 1 handler(s) for this service...
Service "UPGRADE" has 1 instance(s).
   Instance "TEST4K", status READY, has 1 handler(s) for this service...
The command completed successfully
tnsping UPGRADE
TNS Ping Utility for Linux: Version 10.1.0.3.0 - Production on 
12-SEP-2005 10:49:58
Copyright (c) 1997, 2003, Oracle.  All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = 
(PROTOCOL = TCP)(HOST = rangelife)(PORT = 1521))) (CONNECT_DATA = 
(SERVICE_NAME = UPGRADE)))
OK (0 msec)
sqlplus system@upgrade
SQL*Plus: Release 10.1.0.3.0 - Production on Mon Sep 12 10:50:12 2005
Copyright (c) 1982, 2004, Oracle.  All rights reserved.
Enter password:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL>


 Fabrizio Magni
very denghiu !
