-
DBLINK Vs SQL*NET
Bonjour,
Je suis débutant en BDD (je suis admin systèmes et réseaux) et je dois comprendre certains mécanismes dans les soft que nous utilisons en interne qui utilisent eux des BDD Oracle.
En gros on a un dizaine de serveur avec des appli industrielles et des BDD Oracle,les info présentes dans ces base viennent de fichiers txt ou de DBLINK; certaine info de ces base Oracle vont mettre a jour une base centrale Oracle (c'est Oracle Application...).
J'entends parlé de lien SQL*Net et DBLINK...
Si j'ai bien compris les DBLINK c'est un truc dans Orale qui permet d’exécuter des requêtes dans une autre base...
Mais si je comprends bien ce que je vois sur internet les SQL*Net c'est la même chose?
Quelles différence y a t il entre les 2. Dans mon cas les information qui decende de la base centrale vers les autres bases sont en DBLINK et les info qui remontent des 10 bases vers le centrale sont en SQL*Net... pourquoi?
Les ports utilisés et protocoles ont pas les mêmes?
SQL*Net c'est Oracle Net service maintenant (nouveau nom)?
Merci
Cordialement
-
En très bref, SQL*Net et DB link ne se positionnent pas au même niveau et ne sont donc pas concurrents.
Un DB link passe par la couche SQL*Net, de même que HTTP passe par TCPIP.
Et effectivement, "Oracle Net" est le nom actuel de ce qu'on appelait historiquement "SQL*Net".
-
Bonjour,
Haaaaaa ok, mais les 2 sont des protocoles, c'est bien ça?
Et quel est l'avantage d'utiliser l'un ou l'autre dans certains cas?
Je suppose que si DBLINK est une surcouche a Oracle net, ça veut dire qu'il y a peu être moins de travail a fournir si on l'utilise pour une tache par rapport a oracle net?
J'ai vu que j'avais sql*plus... je suppose que lui aussi utilise oracle net pour communiquer avec la BDD...?
j'ai entendu parlé aussi de ODBC, JDBC, et OCI...
J'ai impression que quand on a des appli qui parlent avec des BDD elles utilisent ODBC et JDBC...? ou oracle net?
Pour OCI j'ai l'impression que c'est une des couches les plus basses pour parler avec une BDD Oracle... genre peut être que oracle net s'appuie dessus?
Donc si j'ai tout compris, quand j'ai une appli qui veut causer avec une DBB oracle elle utilise soit JDBC, ODBC ou oracle net... si j'ai une DBB qui veut causer a une autre BDD elle utilise DBLINK (ce DBLINK étant une surcouche a oracle net)... et tout ce petit monde repose sur une couche appelée OCI...
20/20?
Je n'y connais pas grand chose en BDD mais si j'ai une BDD oracle qui veut causer avec une SQL server on peut utiliser une dblink ou un truc du genre?
on parle d'oracle net plutot de sql net depuis une version particulière d'oracle? genre la 9?
Merci
Cordialement
-
Bon, évidemment, mon analogie rapide n'était pas suffisante et risquait de provoquer des confusions !
Le plus parlant, ça sera d'examiner les schémas de la doc Oracle (dans tout le chapitre 4 ici) :
http://docs.oracle.com/cd/E11882_01/...s.htm#i1047762
- On peut considérer que Oracle Net est un protocole propriétaire de couche session.
- OCI est une API applicative, qui fait appel par dessous à Oracle Net.
- ODBC est une couche de communication multi SGBD. Pour accéder à une base Oracle, le pilote ODBC pour Oracle passe par OCI. Il en est de même pour un pilote JDBC OCI.
- Nombre d'applications, SQL*Plus par exemple, n'ont aucun besoin d'un ODBC ou équivalent, et communiquent directement avec OCI.
Pour résumer :
Code:
Appli --> (ODBC/JDBC) --> OCI--> Oracle Net
Le DBlink, lui, est un objet qu'on déclare dans la base (au même titre qu'une table), et qui permettra à deux bases Oracle de communiquer.
Autrement dit, le premier serveur Oracle pourra se comporter comme client vis à vis de l'autre.
Un accès par DBlink passe donc aussi par OCI.
Et s'il s'agit de communiquer avec SQL Server, ça peut se faire soit à l'initiative de SQL Server (serveur lié hétérogène), soit à l'initiative d'Oracle (connectivité hétérogène) et dans ce cas il s'agit effectivement d'une forme de DBlink.
En espérant que ça éclaircisse un peu les choses !
-
Merci ca m'aide beaucoup :) !