Remarques :

Installer et configurer le gestionnaire de connexions Oracle

Introduction

Oracle Connection Manager (CMAN) est un utilitaire Oracle qui agit en tant que serveur proxy pour transférer les demandes de connexion des clients vers les bases de données. Il fonctionne au niveau de la session et est généralement installé sur un serveur distinct.

image

Cas d'emploi CMAN

Objectifs

Prérequis

Tâche 1 : configuration initiale de l'installation d'Oracle Connection Manager

Dans ce tutoriel, nous allons utiliser les adresses IP suivantes.

Ouvrir une connexion de 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.

Tâche 2 : installer Oracle Connection Manager sur la machine virtuelle Oracle Connection Manager

  1. Préparez la machine virtuelle CMAN pour l'installation. Exécutez la commande suivante pour créer l'utilisateur Oracle, installer des packages, modifier les paramètres du noyau, etc.

    $sudo su - root
    $yum install oracle-database-preinstall-21c.x86_64
    
  2. Exécutez la commande mkdir -p $HOME/stage pour créer le répertoire.

  3. Téléchargez Oracle Client 21.3.0 à partir de : Oracle Database 21c, copiez sur la machine virtuelle CMAN à l'aide de winscp 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 21c Oracle Database 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
    
  4. 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
    
  5. Installez maintenant CMAN et SQL*Plus.

    Exécutez la commande suivante pour créer les répertoires utilisateur Oracle (oracle), de base et d'accueil 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
    
  6. 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 
    
  7. Exécutez la commande suivante pour installer CMAN.

    $HOME/stage/client/runInstaller -silent -responseFile $HOME/client21.rsp  ORACLE_HOME_NAME=cman2130
    
  8. Finalisez l'installation en tant qu'utilisateur root. Exécutez-le en tant qu'utilisateur root pour terminer l'installation.

    $ /u01/app/oraInventory/orainstRoot.sh
    $ /u01/app/oracle/product/cman2130/root.sh
    
  9. Ajoutez les lignes suivantes à votre fichier .bash_profile ($HOME/.bash_profile) pour faciliter l'accès aux utilitaires cmctl 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/
    
  10. 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 processus d'écoute CMAN doit utiliser sur la machine virtuelle CMAN. Dans cet exemple, nous utilisons le port 1999 pour démontrer qu'il ne doit pas nécessairement s'agir de 1521 et pour le distinguer du port de processus d'écoute de base de données. En tant qu'utilisateur root :

$firewall-cmd --permanent --add-port=1999/tcp
$firewall-cmd –reload
  1. Configuration CMAN normale.

    En tant qu'utilisateur Oracle, créez le fichier de configuration CMAN cman.ora sous $TNS_ADMIN avec le contenu suivant.

    Remarque : 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
    
  2. Configuration CMAN basée sur des règles.

    Si vous revenez en arrière et que vous vérifiez la règle dans le fichier cman.ora, vous trouverez le contenu suivant.

    (src=*)(dst=*)(srv=*)(act=accept)
    

    Nous autorisons donc les connexions à partir de n'importe quelle source, à n'importe quelle cible et à n'importe quel service. A l'aide de la liste de règles, il est possible de définir vos propres règles pour autoriser ou rejeter les connexions à partir de clients spécifiques, de cibles spécifiques ou de services spécifiques. 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. Il s'agit simplement d'un exemple de configuration simple. Pour plus de détails sur la configuration, notamment en matière de sécurité, consultez la documentation Oracle.

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 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, il 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 inscrite auprès du processus 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 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 Hop

Si la modification du paramètre de base de données REMOTE_LISTENER n'est pas possible au niveau de la base de données cible, nous devons utiliser hop dans le fichier cman.ora ou dans le fichier TNS client.

Option 1 : ajout du 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

Remerciements

Ressources de formation supplémentaires

Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation produit, consultez le site Oracle Help Center.