Connexions à la base de données Oracle : quels sont tous les champs que je dois remplir ?

StackOverflow https://stackoverflow.com/questions/970253

  •  13-09-2019
  •  | 
  •  

Question

J'ai l'habitude d'utiliser SQL Server et je suis maintenant confronté à la connexion à Oracle.Puis-je obtenir des descriptions sans ambiguïté de tous les champs que je dois remplir ?

Plus précisément, je veux comprendre de quoi il s'agit :

Maison
Nom d'hôte
Port
SID
Nom du service

Alias ​​de réseau
Identifiant de connexion

Ma compréhension de base est que le nom d'hôte est le poter sur lequel il est assis, mais est-ce différent de home ?Le port est le port TCP et sa valeur par défaut est 1521 - cela semble assez clair.

J'ai seulement besoin de fournir soit le SID, soit le nom du service ?Et quelle est la différence – pourquoi l’un ou l’autre ?

Si j'ai un fichier TNS, quel est l'alias du réseau et l'identifiant de connexion ?Sont-ils de toute façon les mêmes que les autres champs dont je dispose si je n'utilise pas de fichier TNS ?

Désolé d'être un tel novice, mais mes recherches préliminaires pour obtenir des réponses me rendent encore très confus.

Merci!

Était-ce utile?

La solution

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

Sur un site existant et configuré, le moyen le plus simple de trouver ces détails consiste à utiliser un fichier tnsnames.ora sur un client (ou un serveur) à partir duquel des connexions peuvent être établies à la base de données.Regardez sous $ORACLE(underscore)HOME/network/admin.Recherchez ORACLE(underscore)HOME avec une commande set (Windows) ou env (Unix).Le fichier tnsnames.ora peut également se trouver à un emplacement pointé par la variable $TNS_ADMIN.

Si un tnsnames.ora est introuvable et que vous avez accès au serveur, essayez la commande suivante, généralement en tant qu'utilisateur Oracle

lsnrctl status

lsnrctl est l'écouteur.Le statut affichera les SID et les noms de service qu'il connaît (et quelques autres détails)

Ou recherchez les fichiers listening.ora et sqlnet.ora sous $ORACLE_HOME/network/admin ou à l'emplacement pointé par la variable d'environnement $TNS_ADMIN

Généralement il y aura un écouteur par hôte, donc un port par hôte (il pourrait y en avoir plus mais ce n'est pas courant)

Pour vous connecter à Oracle, vous devez pointer le client vers l'écouteur à un emplacement spécifié par une combinaison nom d'hôte/port et lui indiquer également le SID ou le service auquel se connecter.

Le commentaire de DCookie sur le SID par rapport au nom du service est essentiellement correct.

Le SID peut être trouvé avec (selon la version)

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

Soit en regardant dans le fichier $ORACLE_HOME/dbs/init(SID NAME).ora ou en faisant

ps -ef | grep pmon

et en notant la dernière partie du nom du processus, par ex.ora(trait de soulignement)pmon(trait de soulignement)SID

Autres conseils

Si vous utilisez Oracle 10g ou supérieur, utilisez Easy Connect syntaxe:

//servername/dbname

, un péché:

sqlplus scott/tiger@//servername/dbname

Si vous devez utiliser TNS, voici l'exemple de TNSNAMES.ORA:

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

Dans CONNECT_DATA, vous pouvez utiliser soit SERVICE_NAME (qui est un identifiant pour une instance enregistrée auprès d'un écouteur), ou SID (qui est un identifiant de base de données).

En quelques mots :

  • SERVICE_NAME est un identifiant d'une instance :une course Oracle exécutable auquel vous vous connecterez
  • SID est un identifiant d'une base de données :un ensemble de fichiers dans lesquels vos données sont stockées.

Une base de données peut être utilisée par plusieurs Oracle instances.

En cas de doute, utilisez SERVICE_NAME.

Dans ce cas, connectez-vous comme suit :

sqlplus scott/tiger@XE
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top