Questo dovrebbe davvero essere un commento alla risposta di Brad Rippe , ma purtroppo, non abbastanza rappresentante. Quella risposta mi ha permesso di ottenere il 90% del viaggio lì. Nel mio caso, l'installazione e la configurazione dei database inseriscono le voci nel file tnsnames.ora per i database che stavo eseguendo. Innanzitutto, sono stato in grado di connettermi al database impostando le variabili di ambiente (Windows):
set ORACLE_SID=mydatabase
set ORACLE_HOME=C:\Oracle\product\11.2.0\dbhome_1
e quindi connettersi utilizzando
sqlplus / as sysdba
Quindi, eseguendo il comando dalla risposta di Brad Rippe:
select value from v$parameter where name='service_names';
ha mostrato che i nomi non corrispondevano esattamente. Le voci create utilizzando Oracle Database Assistant Assistant dove originariamente:
MYDATABASE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mylaptop.mydomain.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydatabase.mydomain.com)
)
)
Il nome del servizio dalla query era semplicemente mydatabase
anziché mydatabase.mydomain.com
. Ho modificato il file tnsnames.ora solo sul nome di base senza la parte del dominio, quindi sembravano così:
MYDATABASE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mylaptop.mydomain.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydatabase)
)
)
Ho riavviato il servizio listener TNS (utilizzo spesso lsnrctl stop
e lsnrctl start
da una finestra di comando dell'amministratore [o Windows Powershell] invece del pannello di controllo dei Servizi, ma entrambi funzionano). Successivamente, sono stato in grado di connettermi.