Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Introduction à l' niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
Installer et configurer Oracle Connection Manager
Présentation
Oracle Connection Manager (CMAN) est un utilitaire Oracle qui agit en tant que serveur mandataire pour transmettre les demandes de connexion des clients aux bases de données. Il fonctionne au niveau de la session et est généralement installé sur un serveur distinct.
Cas d'utilisation de CMAN
-
Scénario 1 : Contrôle d'accès
Utilisez une configuration basée sur des règles pour rejeter ou accepter des demandes de client spécifiques, par exemple, en fonction de l'adresse IP du client.
Dans le diagramme suivant, si le client se connecte à partir de la connexion
192.168.0.74
de l'adresse IP de la machine, il sera ACCEPTÉ pour se connecter à la base de données. Toutefois, si un client tente de se connecter à partir de la connexion192.168.0.75
de la machine, il sera REJECTÉ. De même, nous pouvons spécifier un intervalle d'adresses IP à autoriser et à rejeter. -
Scénario 2 : Routage de transit
Les clients n'ont pas d'accès direct à une ou plusieurs bases de données. CMAN redirige les connexions des clients vers les bases de données correspondantes.
-
Scénario 3 : Ports différents
Les bases de données cibles utilisent des ports différents, par exemple
1521
et1522
, mais ces ports ne sont pas ouverts du côté client. Configurez CMAN pour utiliser un autre port, par exemple1999
. -
Scénario 4 : Différents protocoles IP
Les clients et les bases de données utilisent différents protocoles IP, par exemple, le client utilise IPv6, mais la base de données utilise IPv4. CMAN sert de pont réseau entre IPv6 et IPv4. Dans ce tutoriel, CMAN doit s'exécuter sur un hôte à double pile configuré avec au moins une interface IPv6 et au moins une interface IPv4.
Objectifs
- Configurez un gestionnaire de connexions (CMAN) Oracle pour restreindre ou autoriser les connexions à la base de données.
Préalables
-
Provisionner un environnement OCI tel que (compartiment, réseau en nuage virtuel (VCN), sous-réseau, etc.).
-
Provisionner la base de données Oracle Base Database Service. Par exemple, Cible.
-
Provisionnez une machine virtuelle de calcul pour Oracle Cloud Infrastructure (OCI) (hôte CMAN).
-
Calcul d'hôte de machine virtuelle client. Par exemple, Source.
Tâche 1 : Configuration initiale de l'installation d'Oracle Connection Manager
Dans ce tutoriel, nous utiliserons les adresses IP suivantes.
- Machine virtuelle de calcul OCI nommée
client
, IP =192.168.0.74
et IP =192.168.0.75
. - Machine virtuelle de calcul OCI nommée
cman
, IP =192.168.0.199
. - Machine virtuelle d'Oracle Base Database Service nommée
dbcs01
, IP =192.168.0.48
.
Ouvrir la connexion au pare-feu
Le port doit être ouvert de la machine virtuelle client à la machine virtuelle CMAN en 1999 et de la machine virtuelle CMAN au serveur de base de données en 1521.
-
1ère connexion, de CMAN au serveur de base de données :
[oracle@cman ~]$ curl -sv telnet://192.168.0.48:1521 * Rebuilt URL to: telnet://192.168.0.48:1521/ * Trying 192.168.0.48... * TCP_NODELAY set * Connected to 192.168.0.48 (192.168.0.48) port 1521 (#0)
-
2e connexion, de la machine virtuelle client à la machine virtuelle CMAN :
Nous utiliserons le port 1999 pour CMAN. Le port 1999 n'est pas ouvert par défaut, nous devons donc ouvrir ce port.
Exécutez la commande suivante en tant que root sur l'hôte CMAN afin d'ouvrir le port 1999.
$firewall-cmd --permanent --add-port=1999/tcp $firewall-cmd –reload [oracle@client1 ~]$ curl -sv telnet://192.168.0.199:1999 * Rebuilt URL to: telnet://192.168.0.199:1999/ * Trying 192.168.0.199... * TCP_NODELAY set * Connected to 192.168.0.199 (192.168.0.199) port 1999 (#0)
Tâche 2 : Installer Oracle Connection Manager sur la machine virtuelle d'Oracle Connection Manager
-
Préparez la machine virtuelle CMAN pour l'installation. Exécutez la commande suivante pour créer l'utilisateur Oracle, installer des ensembles, modifier les paramètres du noyau, etc.
$sudo su - root $yum install oracle-database-preinstall-21c.x86_64
-
Exécutez la commande
mkdir -p $HOME/stage
pour créer le répertoire. -
Téléchargez le client Oracle
21.3.0
à partir de : Oracle Database 21c, copiez sur la machine virtuelle CMAN à l'aide dewinscp
ou de tout autre utilitaire de transfert de fichiers sous$HOME/stage
.Si vous ne pouvez pas utiliser SSH, ouvrez la page de téléchargement du client Oracle Database 21c dans le navigateur et cliquez pour télécharger le fichier
LINUX.X64_213000_client.zip
pour Linux. Ouvrez le navigateur, cliquez avec le bouton droit de la souris sur le fichier dans Téléchargements et sélectionnez Copier le lien de téléchargement comme suit.Le paramètre d'URL AuthParam varie chaque fois que vous cliquez sur le lien de téléchargement. Sur votre ordinateur Linux, accédez au répertoire requis (par exemple,
$HOME/stage
) et entrez la commande suivante :$ wget "https://download.oracle.com/otn/linux/oracle21c/LINUX.X64_213000_client.zip?AuthParam=1631008911_576110421cdef54a2d47d9562bee0e5a" -O LINUX.X64_213000_client.zip
-
Décompressez le logiciel client en tant qu'utilisateur Oracle. Un répertoire nommé client sera créé.
[oracle@cman stage]$ ls -ltr /home/oracle/stage drwxr-xr-x. 5 oracle oinstall 90 Jul 27 2021 client -rwxr-xr-x. 1 oracle oinstall 1075931428 Sep 1 10:40 LINUX.X64_213000_client.zip
-
Installez maintenant CMAN et SQL*Plus.
Exécutez la commande suivante pour créer les nouveaux répertoires d'utilisateur Oracle (
oracle
), de base et de répertoire de base pour exécuter CMAN (installez les bibliothèques de préinstallation de la dernière version d'Oracle Database pour configurer l'utilisateur Oracle sous Linux).$ sudo su - root $ yum install oracle-database-preinstall-21c.x86_64 $ mkdir /u01 $ chown oracle:oinstall /u01 $ su - oracle $ mkdir -p /u01/app/oracle/product/cman2130
-
Préparez le fichier de réponses pour l'installation de CMAN et de SQL*Plus.
$ cat <<EOF > $HOME/client21.rsp oracle.install.responseFileVersion=/oracle/install/rspfmt_clientinstall_response_schema_v21.0.0 ORACLE_HOSTNAME=$(hostname) UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory SELECTED_LANGUAGES=en ORACLE_HOME=/u01/app/oracle/product/cman2130 ORACLE_BASE=/u01/app/oracle oracle.install.client.installType=Custom oracle.install.client.customComponents="oracle.sqlplus:21.0.0.0.0","oracle.network.client:21.0.0.0.0","oracle.network.cman:21.0.0.0.0","oracle.network.listener:21.0.0.0.0" EOF
-
Exécutez la commande suivante pour installer CMAN.
$HOME/stage/client/runInstaller -silent -responseFile $HOME/client21.rsp ORACLE_HOME_NAME=cman2130
-
Finaliser l'installation en tant qu'utilisateur racine. Exécuter en tant qu'utilisateur racine pour terminer l'installation.
$ /u01/app/oraInventory/orainstRoot.sh $ /u01/app/oracle/product/cman2130/root.sh
-
Ajoutez les lignes suivantes à votre fichier
.bash_profile
($HOME/.bash_profile
) pour faciliter l'accès aux utilitairescmctl
et SQL*Plus, chaque fois que vous ouvrez une session en tant qu'utilisateur Oracle.export ORACLE_HOME=/u01/app/oracle/product/cman2130 export LD_LIBRARY_PATH=/u01/app/oracle/product/cman2130/lib export PATH=/u01/app/oracle/product/cman2130/bin:$PATH:$HOME export TNS_ADMIN=/u01/app/oracle/product/cman2130/network/admin/
-
Exécutez la commande suivante pour vous assurer que SQL*Plus et CMAN sont en cours d'exécution.
[oracle@cman ~]$ sqlplus /nolog SQL*Plus: Release 21.0.0.0.0 - Production on Wed Sep 11 05:37:26 2024 Version 21.3.0.0.0 Copyright (c) 1982, 2021, Oracle. All rights reserved. SQL> exit [oracle@cman ~]$ cmctl CMCTL for Linux: Version 21.0.0.0.0 - Production on 11-SEP-2024 05:37:30 Copyright (c) 1996, 2021, Oracle. All rights reserved. Welcome to CMCTL, type "help" for information. CMCTL>
Tâche 3 : Configurer Oracle Connection Manager
Dans cette tâche, nous allons configurer CMAN. Tout d'abord, ouvrez le port que le module d'écoute CMAN doit utiliser sur la machine virtuelle CMAN. Dans cet exemple, nous utilisons le port 1999 pour démo qu'il ne doit pas nécessairement être 1521 et pour le distinguer du port du module d'écoute de la base de données. En tant qu'utilisateur racine :
$firewall-cmd --permanent --add-port=1999/tcp
$firewall-cmd –reload
-
Configuration CMAN normale.
En tant qu'utilisateur Oracle, créez le fichier de configuration CMAN
cman.ora
sous$TNS_ADMIN
avec le contenu suivant.Note : Remplacez l'adresse IP de l'hôte par votre adresse IP de machine virtuelle CMAN.
$cat $TNS_ADMIN/cman.ora cman = (configuration= (address=(protocol=tcp)(host=192.168.0.199)(port=1999)) (parameter_list = (aso_authentication_filter=off) (connection_statistics=yes) (log_directory=/u01/app/oracle/product/cman2130/network/log) (log_level=support) (max_connections=256) (idle_timeout=0) (inbound_connect_timeout=0) (session_timeout=0) (outbound_connect_timeout=0) (max_gateway_processes=16) (min_gateway_processes=2) (remote_admin=on) (trace_directory=/u01/app/oracle/product/cman2130/network/trace) (trace_level=support) (trace_timestamp=off) (trace_filelen=1000) (trace_fileno=1) (max_cmctl_sessions=4) (event_group=init_and_term,memory_ops) (registration_invited_nodes = *) (service_affinity=off) ) (rule_list= (rule= (src=*)(dst=*)(srv=*)(act=accept) (action_list=(aut=off)(moct=0)(mct=0)(mit=0)(conn_stats=on)) ) ) ) ) VALID_NODE_CHECKING_REGISTRATION_CMAN = OFF
-
Configuration CMAN basée sur une règle.
Si vous revenez en arrière et vérifiez la règle dans le fichier
cman.ora
, vous trouverez le contenu suivant.(src=*)(dst=*)(srv=*)(act=accept)
Ainsi, nous autorisons les connexions de n'importe quelle source, à n'importe quelle cible et à n'importe quel service. À l'aide de la liste de règles, il est possible de définir vos propres règles pour autoriser ou rejeter les connexions de clients spécifiques, vers des cibles spécifiques ou vers des services spécifiques. Par exemple :
$cat cman.ora cman = (configuration= (address=(protocol=tcp)(host=192.168.0.199)(port=1999)) (parameter_list = (aso_authentication_filter=off) (connection_statistics=yes) (log_directory=/u01/app/oracle/product/cman2130/network/log) (log_level=support) (max_connections=256) (idle_timeout=0) (inbound_connect_timeout=0) (session_timeout=0) (outbound_connect_timeout=0) (max_gateway_processes=16) (min_gateway_processes=2) (remote_admin=on) (trace_directory=/u01/app/oracle/product/cman2130/network/trace) (trace_level=support) (trace_timestamp=off) (trace_filelen=1000) (trace_fileno=1) (max_cmctl_sessions=4) (event_group=init_and_term,memory_ops) (registration_invited_nodes = 192.168.0.48) (service_affinity=off) ) (rule_list= (rule= (src=cman)(dst=127.0.0.1)(srv=cmon)(act=accept) (action_list=(aut=off)(moct=0)(mct=0)(mit=0)(conn_stats=on)) ) (rule= (src=192.168.0.74)(dst=192.168.0.48)(srv=GGC1_SJ.sub02090543360.vcnsj.oraclevcn.com)(act=accept) (action_list=(aut=off)(moct=0)(mct=0)(mit=0)(conn_stats=on)) ) (rule= (src=192.168.0.75)(dst=192.168.0.48)(srv=GGC1_SJ.sub02090543360.vcnsj.oraclevcn.com)(act=Reject) (action_list=(aut=off)(moct=0)(mct=0)(mit=0)(conn_stats=on)) ) ) ) VALID_NODE_CHECKING_REGISTRATION_CMAN = OFF
CMAN est un outil puissant. Ceci n'est qu'un exemple et une configuration simple. Pour plus de détails sur la configuration, reportez-vous à la documentation Oracle, en particulier en ce qui concerne la sécurité.
Tâche 4 : Démarrer les services Oracle Connection Manager
Connectez-vous à la base de données conteneur source et cible à l'aide du portefeuille et créez une configuration à l'aide de l'interface de ligne de commande d'Oracle Data Guard (DGMGRL). Il en va de même pour une configuration Oracle Data Guard normale. La seule différence est que nous devons le faire pour les deux bases de données conteneur, car les deux sont des bases de données principales.
cmctl
CMCTL for Linux: Version 21.0.0.0.0 - Production on 04-SEP-2024 08:59:37
Copyright (c) 1996, 2021, Oracle. All rights reserved.
Welcome to CMCTL, type "help" for information.
CMCTL> admin cman
Current instance cman is not yet started
Connections refer to (DESCRIPTION=(address=(protocol=tcp)(host=192.168.0.199)(port=1999))).
The command completed successfully.
CMCTL:cman> startup
Starting Oracle Connection Manager instance cman. Please wait...
CMAN for Linux: Version 21.0.0.0.0 - Production
Status of the Instance
----------------------
Instance name cman
Version CMAN for Linux: Version 21.0.0.0.0 - Production
Start date 04-SEP-2024 08:59:43
Uptime 0 days 0 hr. 0 min. 9 sec
Num of gateways started 2
Average Load level 0
Log Level SUPPORT
Trace Level SUPPORT
Instance Config file /u01/app/oracle/product/cman2130/network/admin/cman.ora
Instance Log directory /u01/app/oracle/diag/netcman/cman/cman/alert
Instance Trace directory /u01/app/oracle/diag/netcman/cman/cman/trace
The command completed successfully.
Exécutez la commande suivante pour vérifier le statut et les services.
CMCTL:cman> show status
CMCTL:cman> show services
Tâche 5 : Connexion à la base de données via Oracle Connection Manager
Approche 1 : Utiliser le paramètre de base de données cible
Pour que CMAN transmette les connexions entrantes aux bases de données, CMAN doit connaître ces bases de données. Pour ce faire, nous devons définir REMOTE_LISTENER
sur la base de données cible. Définissez également VALID_NODE_CHECKING_REGISTRATION_CMAN = OFF
dans le fichier cman.ora
pour une inscription réussie.
Base de données cible :
alter system set REMOTE_LISTENER='10.0.0.8:1999' scope=both sid='*';
alter system register;
Ajoutez la ligne suivante dans le fichier cman.ora
.
VALID_NODE_CHECKING_REGISTRATION_CMAN = OFF
Exécutez la commande suivante pour redémarrer CMAN et vérifier si la base de données est enregistrée auprès du module d'écoute CMAN.
CMCTL:cman> show services
Valider la connexion :
Connectez-vous à la base de données à partir de la machine virtuelle client à l'aide de l'adresse IP et du port CMAN. Créez un nouvel alias TNS dans le fichier tnsnames.ora
sur la machine virtuelle client.
GGC1_CM=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcp)
(HOST=192.168.0.199)(PORT=1999)) -- CMAN IP and Port
(CONNECT_DATA=
(SERVICE_NAME=GGC1_SJ.sub0209xxxx0543360.vcnsj.oraclevcn.com)))
Le nom de service ci-dessus doit être visible dans la sortie CMAN> show services
.
$sqlplus system/MyPasswd__48@GGC1_CM
Vérifiez le fichier trace CMAN.
/home/oracle/base/diag/netcman/cman/cman/trace/cman.log
/u01/app/oracle/diag/netcman/cman/cman_test/trace/ log.xml
Approche 2 : Utiliser le saut
Si la modification du paramètre de base de données REMOTE_LISTENER
n'est pas possible dans la base de données cible, nous devons utiliser hop dans le fichier cman.ora
ou dans le fichier TNS du client.
Option 1 : Ajouter un saut dans le fichier cman.ora
$cat cman.ora
cman =
(configuration=
(address=(protocol=tcp)(host=192.168.0.199)(port=1999))
(parameter_list =
(aso_authentication_filter=off)
……
(service_affinity=off)
)
(next_hop=(description=(address=(protocol=tcp)(port=1521)(host=192.168.0.48))))
(rule_list=
(rule=
(src=cman)(dst=127.0.0.1)(srv=cmon)(act=accept)
(action_list=(aut=off)(moct=0)(mct=0)(mit=0)(conn_stats=on))
)
)
)
Option 2 : Ajouter un saut dans le fichier TNS du client
GGC1_SJ_CM =
(DESCRIPTION =
(SOURCE_ROUTE = YES)
(ADDRESS =
(PROTOCOL = TCP)(HOST = 192.168.0.199)(PORT = 1999)
)
(ADDRESS =
(PROTOCOL = TCP)(HOST = 192.168.0.48)(PORT = 1521)
)
(CONNECT_DATA = (SERVICE_NAME=GGC1_SJ.sub02090543360.vcnsj.oraclevcn.com)
)
)
Exécutez la commande suivante pour valider la connexion.
$sqlplus system/MyPasswd__48@GGC1_CM
Liens connexes
Confirmation
- Auteur - Dharmesh Patel (architecte en nuage principal, services en nuage d'Oracle en Amérique du Nord - NACIE)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Install and Configure Oracle Connection Manager
G16509-01
September 2024