Domanda

Sono abituato a utilizzare SQL Server e ora devo connettermi a Oracle.Posso ottenere descrizioni del tutto inequivocabili di quali sono tutti i campi che devo compilare?

Nello specifico voglio capire cosa sono:

Casa
Nome host
Porta
SID
Nome di Servizio

Alias ​​di rete
Connetti identificatore

La mia comprensione di base è che il nome host è il pooter su cui è seduto, ma è diverso da casa?Port è la porta TCP e il valore predefinito è 1521: sembra abbastanza chiaro.

Devo solo fornire il SID o il nome del servizio?E qual è la differenza: perché l'uno o l'altro?

Se ho un file TNS, qual è l'alias di rete e l'identificatore di connessione?Sono comunque uguali agli altri campi che ho se non utilizzo un file TNS?

Mi dispiace essere un tale noob, ma la mia ricerca preliminare per ottenere risposte mi ha ancora molto confuso.

Grazie!

È stato utile?

Soluzione

Home:     ORACLE_HOME, an environment variable that points to the location 
of the Oracle binaries (either location Instance runs from on server or client
runs from on client)
Hostname: name of the server
Port:     Port on which the Listener is listening for Oracle connections
SID:      **S**ervice **ID**entifier.  The name of the the Database.  This is
one of the identifiers that the Listener will expose
Service name: An alternate identifier that may be exposed by the Listener

Su un sito esistente e configurato, il modo più semplice per trovare questi dettagli è da un file tnsnames.ora su un client (o server) da cui è possibile effettuare connessioni al database.Cerca sotto $ORACLE(underscore)HOME/network/admin.Trova ORACLE(underscore)HOME con un comando set (Windows) o env (Unix).tnsnames.ora potrebbe anche trovarsi in una posizione indicata dalla variabile $TNS_ADMIN.

Se non è possibile trovare tnsnames.ora e hai accesso al server, prova il seguente comando, generalmente come utente Oracle

lsnrctl status

lsnrctl è l'ascoltatore.Lo stato mostrerà i SID e i nomi dei servizi di cui è a conoscenza (e un paio di altri dettagli)

Oppure trova i file listener.ora e sqlnet.ora in $ORACLE_HOME/network/admin o nella posizione indicata dalla variabile env $TNS_ADMIN

Generalmente ci sarà un ascoltatore per host, quindi una porta per host (potrebbero essercene di più ma non è comune)

Per connettersi a Oracle è necessario indirizzare il client al Listener in una posizione specificata da una combinazione Nome host/Porta e dirgli anche a quale SID o servizio connettersi.

Il commento di DCookie sul SID rispetto al nome del servizio è essenzialmente corretto.

Il SID può essere trovato con (a seconda della versione)

select db_unique_name from v$database
   or
select db_name from v$database

Oppure cercando nel file $ORACLE_HOME/dbs/init(SID NAME).ora o facendo

ps -ef | grep pmon

e annotando l'ultima parte del nome del processo, ad es.ora(sottolineato)pmon(sottolineato)SID

Altri suggerimenti

Se stai usando Oracle 10g o superiore, utilizzare Easy Connect sintassi:

//servername/dbname

, come in:

sqlplus scott/tiger@//servername/dbname

Se è necessario utilizzare TNS, ecco l'esempio di TNSNAMES.ORA:

XE = 
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = XE)
    )
  )

In CONNECT_DATA, puoi usarli entrambi SERVICE_NAME (che è un identificatore per un'istanza registrata con un ascoltatore), o SID (che è un identificatore del database).

In un paio di parole:

  • SERVICE_NAME è un identificatore di un'istanza:una corsa Oracle eseguibile a cui ti connetterai
  • SID è un identificatore di un database:una serie di file in cui sono archiviati i tuoi dati.

Un database può essere utilizzato da più database Oracle istanze.

In caso di dubbio utilizzare SERVICE_NAME.

In questo caso, collegarsi come segue:

sqlplus scott/tiger@XE
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top