Oracle 11g XE est installé sur l'ordinateur A. Je peux me connecter via la ligne de commande SQL à l'aide de la commande connect username/password
. Je peux aussi envoyer des instructions SQL à la base de données Demo: Select * from demo_customers;
La base de données s'exécute sur l'hôte local de l'ordinateur A.
Je veux que l'ordinateur B se connecte à la base de données de l'ordinateur A sur localhost. Comment puis je faire ça?
Vous devrez exécuter l'utilitaire lsnrctl sur le serveur A pour démarrer l'écouteur. Vous devriez alors vous connecter à partir de l'ordinateur B en utilisant la syntaxe suivante:
sqlplus username/password@hostA:1521 /XE
Les informations sur le port sont facultatives si la valeur par défaut, 1521, est utilisée.
Documentation de configuration d'auditeur ici.Documentation de connexion à distance ici.
J'installe le serveur Oracle et cela permet de se connecter à partir de la machine locale sans problème. Mais à partir d’un autre Maclaptop de mon réseau domestique, il ne peut pas se connecter à l’aide de Sql Developer ni de Sql Plus. Après quelques recherches, je me suis rendu compte qu'il y avait cette étape supplémentaire à faire:
Utilisez le gestionnaire de réseau Oracle. Sélectionnez l'auditeur. Ajoutez l'adresse IP (dans mon cas, il s'agit de 192.168.1.12) en plus du 127.0.0.1 ou de l'hôte local.
Cela finira par ajouter une entrée dans [OracleHome]\product\11.2.0\dbhome_1\network\admin\listener.ora
redémarrez le service d'écoute. (note: pour moi je redémarre l'ordinateur une fois pour le faire fonctionner)
Utiliser le statut de lsnrctl pour vérifier
Notez que l’hôte supplémentaire = 192.168.1.12 apparaît et c’est ce que vous devez utiliser pour que la connexion à distance fonctionne.
C:\Windows\System32> état lsnrctl
LSNRCTL pour Windows 64 bits: Version 11.2.0.1.0 - Production le 05-SEP-2015 13:51:43
Copyright (c) 1991, 2010, Oracle. Tous les droits sont réservés.
Connexion à (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)) (KEY = EXTPROC1521)))
Statut de l'écouteurAlias LISTENER
Version TNSLSNR pour Windows 64 bits: Version 11.2.0.1.0 - Production
Date de début 05-SEP-2015 13:45:18
Disponibilité 0 jours 0 h. 6 min 24 sec
Trace Level off
Sécurité activée: authentification du système d'exploitation local
SNMP OFF
Fichier de paramètres d'écoute
D:\Oracle11gr2\product\11.2.0\dbhome_1\network\admin\listener.ora
Fichier journal du programme d'écoute d:\Oracle11gr2\diag\tnslsnr\eagleii\listener\alert\log.xml
Résumé des points finaux d'écoute ...
(DESCRIPTION = (ADDRESS = (PROTOCOL = ipc) (PIPENAME = \.\Pipe\EXTPROC1521ipc)))
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)) (hôte = 127.0.0.1) (PORT = 1521)))
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)) (hôte = 192.168.1.12) (PORT = 1521)))
Résumé des services ...
Le service "CLRExtProc" a 1 instance (s).
L'instance "CLRExtProc", statut INCONNU, possède 1 gestionnaire (s) pour ce service ...
Le service "xe" a 1 instance (s).
L'instance "xe", état PRET, a 1 gestionnaire (s) pour ce service ... Le service "xeXDB" a 1 instance (s).
L'instance "xe", état PRET, a 1 gestionnaire (s) pour ce service ... La commande s'est terminée avec succès
utilisez tnsping pour tester la connexion
Envoyez une requête ping à l'adresse IPv4, pas à l'hôte local ou au 127.0.0.1
C:\Windows\System32> tnsping 192.168.1.12
Utilitaire TNS Ping pour Windows 64 bits: Version 11.2.0.1.0 - Production le 05-SEP-2015 14:09:11
Copyright (c) 1997, 2010, Oracle. Tous les droits sont réservés.
Fichiers de paramètres utilisés:
D:\Oracle11gr2\product\11.2.0\dbhome_1\network\admin\sqlnet.oraAdaptateur EZCONNECT utilisé pour résoudre l'alias
Tentative de contact (DESCRIPTION = (CONNECT_DATA = (SERVICE_NAME =)) (ADRESSE = (PROTOCOL = TCP) (hôte = 192.168.1.12) (PORT = 1521)))
OK (0 msec)
C'est assez facile sur ordinateur et vous n'avez rien à faire. Assurez-vous simplement que les deux systèmes sont sur le même réseau si ce n'est pas un accès Internet (pour cela, vous avez besoin d'une adresse IP statique). Ok maintenant sur l'ordinateur b allez dans le menu démarrer trouver la configuration dans le dossier Oracle cliquez sur Assistant de configuration réseau sous ce dossier lorsque la fenêtre contextuelle cliquez sur l'option de configuration réseau locale doit être la troisième option.
Maintenant, cliquez sur ajouter et cliquez sur suivant dans l'écran suivant il demandera le nom du service ici vous devez ajouter le nom de la base de données globale Oracle de l'ordinateur A (normalement j'utilise Oracle86 pour mon installation) maintenant cliquez sur suivant écran suivant choisissez le protocole normalement son TCP cliquez ensuite dans Nom de l'hôte entrez le nom de l'ordinateur A, vous pouvez le trouver dans les propriétés de mon ordinateur. Cliquez sur Suivant ne modifiez pas le port jusqu'à ce que vous ayez modifié la valeur dans Ordinateur A, cliquez sur Suivant et choisissez Tester la connexion maintenant. Vous pouvez vérifier si votre connexion fonctionne ou non. Si l'erreur est un nom d'utilisateur et un mot de passe incorrects, cliquez sur le bouton de connexion mot de passe. Si son énoncé ne parvient pas à atteindre l'ordinateur ou la cible non trouvée, vous devez ajouter une exception dans le pare-feu pour le port 1521 ou simplement désactiver le pare-feu sur l'ordinateur A.
Tout d’abord, assurez-vous que listener sur le serveur de base de données (ordinateur A) qui reçoit les demandes de connexion client est en cours d’exécution. Pour ce faire, exécutez la commande lsnrctl status
.
Au cas où, si vous obtenez le message TNS:no listener
(voir l’image ci-dessous), cela signifie que le service d’écoute n’est pas en cours d’exécution. Pour le démarrer, exécutez la commande lsnrctl start
.
Deuxièmement, pour les opérations de base de données et la connectivité des clients distants, les exécutables suivants doivent être ajoutés à la liste des exceptions du Pare-feu Windows: (voir image)
Oracle_home\bin\Oracle.exe - Exécutable de la base de données Oracle
Oracle_home\bin\tnslsnr.exe - Programme d'écoute Oracle
Enfin, installez client instantané Oracle sur la machine cliente (ordinateur B) et exécutez:
sqlplus user/password@computerA:port/XE
# . /u01/app/Oracle/product/11.2.0/xe/bin/Oracle_env.sh
# sqlplus /nolog
SQL> connect sys/password as sysdba
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
SQL> CONNECT sys/password@hostname:1521 as sysdba
Premier. Il est nécessaire d’ajouter une adresse IP statique pour l’ordinateur A AND B . Par exemple, dans mon cas, les ordinateurs A (172.20.14.13) et B (172.20.14.78).
Seconde. Dans l'ordinateur A avec Net Manager, ajoutez une nouvelle adresse au programme d'écoute (172.20.14.13) ou ajoutez manuellement un nouvel enregistrement dans le fichier listener.ora.
# listener.ora Network Configuration File: E:\app\user\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(Oracle_HOME = E:\app\user\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:E:\app\user\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host = 172.20.14.13)(PORT = 1521))
)
)
ADR_BASE_LISTENER = E:\app\user
Troisième. Avec Net Manager, créez un nom de service avec l'adresse IP de l'ordinateur B (172.20.14.78) ou ajoutez manuellement un nouvel enregistrement dans tnsnames.ora.
# tnsnames.ora Network Configuration File: E:\app\user\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
ALINADB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = alinadb)
)
)
LISTENER_ALINADB =
(ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
LOCAL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = 172.20.14.13)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = alinadb)
)
)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = 172.20.14.78)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
Quatrième. Sur l’ordinateur B (172.20.14.78), installez win64_11gR2_client (par exemple, c’est pour moi dans Windows 10 Pro 64 bits)
Cinq. Créez un écouteur avec Net Configuration Assistant (localhost) ou ajoutez manuellement un enregistrement dans listener.ora
# listener.ora Network Configuration File: F:\app\alinasoft\product\11.2.0\client_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host = myserver)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = F:\app\alinasoft
Six. Avec Net Manager, créez une dénomination de service avec un ordinateur à adresse IP A (172.20.14.13) ou ajoutez manuellement un nouvel enregistrement dans tnsnames.ora.
SERVER-DB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = 172.20.14.13)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = alinadb)
)
)
Seven (Ordinateur A - (172.20.14.13)) pour les opérations de base de données et la connectivité à partir de clients distants, les fichiers exécutables suivants doivent être ajoutés à la liste des exceptions du Pare-feu Windows: (voir image) \Oracle.exe - Exécutable Oracle Database Oracle_home\bin\tnslsnr.exe - Oracle Listener
Huit Autoriser les connexions pour le port 1158 (Ordinateur A - (172.20.14.13)) pour Oracle Enterprise Manager ( https://172.20.14.13:1158/em/console/logon/logon )
Neuvième Autoriser les connexions pour le port 1521 (entrée et sortie) (Ordinateur A - (172.20.14.17))
Dixième Dans l'ordinateur B 172.20.14.78 Sqlplus/NOLOG Système CONNECT/Oracle @ // 172.20.14.13:1521/alinadb