Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zur Registrierung für einen kostenlosen Account finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Ersetzen Sie diese Werte nach Abschluss der Übung durch Werte, die für Ihre Cloud-Umgebung spezifisch sind.
Oracle Connection Manager installieren und konfigurieren
Einführung
Oracle Connection Manager (CMAN) ist ein Oracle-Utility, das als Proxyserver fungiert, um Verbindungsanforderungen von Clients an Datenbanken weiterzuleiten. Es funktioniert auf Sitzungsebene und wird normalerweise auf einem separaten Server installiert.
CMAN-Anwendungsfälle
-
Szenario 1: Zugriffskontrolle
Verwenden Sie eine regelbasierte Konfiguration, um bestimmte Clientanforderungen abzulehnen oder zu akzeptieren, z. B. basierend auf der Client-IP-Adresse.
Im folgenden Diagramm wird beim Herstellen einer Verbindung zwischen Client und Rechner-IP
192.168.0.74
die Verbindung AKZEPTIERT für die Verbindung zur Datenbank verwendet. Wenn jedoch ein Client versucht, eine Verbindung von Rechner192.168.0.75
herzustellen, wird die Verbindung REJECTED verwendet. Ebenso können wir einen Bereich von IP-Adressen angeben, die zugelassen und abgelehnt werden sollen. -
Szenario 2: Transitrouting
Clients haben keinen direkten Zugriff auf eine oder mehrere Datenbanken. CMAN leitet die Verbindungen von den Clients zu den entsprechenden Datenbanken um.
-
Szenario 3: Verschiedene Ports
Zieldatenbanken verwenden unterschiedliche Ports, z.B.
1521
und1522
. Diese Ports sind jedoch auf Clientseite nicht geöffnet. Konfigurieren Sie CMAN so, dass ein anderer Port verwendet wird. Beispiel:1999
. -
Szenario 4: Verschiedene IP-Protokolle
Clients und Datenbanken verwenden unterschiedliche IP-Protokolle. Beispiel: Der Client verwendet IPv6, die Datenbank verwendet jedoch IPv4. CMAN dient als Netzwerkbrücke zwischen IPv6 und IPv4. In diesem Tutorial muss CMAN auf einem Dual-Stack-Host ausgeführt werden, der mit mindestens einer IPv6- und mindestens einer IPv4-Schnittstelle konfiguriert ist.
Ziele
- Richten Sie einen Oracle Connection Manager (CMAN) ein, um Verbindungen zur Datenbank einzuschränken oder zuzulassen.
Voraussetzungen
-
Stellen Sie OCI-Umgebungen wie (Compartment, virtuelles Cloud-Netzwerk (VCN), Subnetz usw.) bereit.
-
Oracle Base Database Service-Datenbank bereitstellen Beispiel: Ziel.
-
Stellen Sie Oracle Cloud Infrastructure (OCI) Compute-VM (CMAN-Host) bereit.
-
Host-Compute des virtuellen Clients (VM). Beispiel: Quelle.
Aufgabe 1: Erstmaliges Setup für die Installation von Oracle Connection Manager
In diesem Tutorial verwenden wir die folgenden IP-Adressen.
- OCI Compute-VM mit dem Namen
client
, IP =192.168.0.74
und IP =192.168.0.75
. - OCI Compute-VM mit dem Namen
cman
, IP =192.168.0.199
. - Oracle Base Database Service-VM mit dem Namen
dbcs01
, IP =192.168.0.48
.
Offene Firewallverbindung
Port muss von Client-VM zu CMAN-VM auf 1999 und von CMAN-VM zu Datenbankserver auf 1521 geöffnet sein.
-
1. Verbindung vom CMAN zum Datenbankserver:
[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)
-
2. Verbindung, von Client-VM zu CMAN-VM:
Wir verwenden Port 1999 für CMAN. Port 1999 ist nicht standardmäßig geöffnet. Daher müssen Sie diesen Port öffnen.
Führen Sie den folgenden Befehl als Root auf dem CMAN-Host aus, um den 1999-Port zu öffnen.
$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)
Aufgabe 2: Oracle Connection Manager auf der virtuellen Oracle Connection Manager-Maschine installieren
-
Bereiten Sie die CMAN-VM für die Installation vor. Führen Sie den folgenden Befehl aus, um den Oracle-Benutzer zu erstellen, Packages zu installieren, Kernel-Parameter zu ändern usw.
$sudo su - root $yum install oracle-database-preinstall-21c.x86_64
-
Führen Sie den Befehl
mkdir -p $HOME/stage
aus, um das Verzeichnis zu erstellen. -
Laden Sie den Oracle-Client
21.3.0
von Oracle Database 21c herunter, kopieren Sie ihn mitwinscp
oder einem anderen Dateiübertragungsutility unter$HOME/stage
auf die CMAN-VM.Wenn Sie SSH nicht verwenden können, öffnen Sie die Downloadseite des Oracle Database-Clients 21c im Browser, und klicken Sie, um die Datei
LINUX.X64_213000_client.zip
für Linux herunterzuladen. Öffnen Sie den Browser, klicken Sie mit der rechten Maustaste auf die Datei unter Downloads, und wählen Sie den Downloadlink kopieren wie folgt aus.Der URL-Parameter AuthParam variiert jedes Mal, wenn Sie auf den Downloadlink klicken. Navigieren Sie auf dem Linux-Rechner zu dem erforderlichen Verzeichnis (z.B.
$HOME/stage
), und geben Sie den folgenden Befehl ein:$ wget "https://download.oracle.com/otn/linux/oracle21c/LINUX.X64_213000_client.zip?AuthParam=1631008911_576110421cdef54a2d47d9562bee0e5a" -O LINUX.X64_213000_client.zip
-
Entpacken Sie die Clientsoftware als Oracle-Benutzer. Ein Verzeichnis mit dem Namen client wird erstellt.
[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
-
Installieren Sie jetzt CMAN und SQL*Plus.
Führen Sie den folgenden Befehl aus, um die neuen Oracle-Benutzerverzeichnisse (
oracle
), die Basisverzeichnisse und die Homeverzeichnisse zur Ausführung von CMAN zu erstellen (installieren Sie die Librarys vor der Installation der neuesten Version von Oracle Database, um den Oracle-Benutzer in Linux einzurichten).$ 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
-
Bereiten Sie die Antwortdatei für die Installation von CMAN und SQL*Plus vor.
$ 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
-
Führen Sie folgenden Befehl aus, um CMAN zu installieren.
$HOME/stage/client/runInstaller -silent -responseFile $HOME/client21.rsp ORACLE_HOME_NAME=cman2130
-
Schließen Sie die Installation als Root-Benutzer ab. Führen Sie den Vorgang als Root-Benutzer aus, um die Installation abzuschließen.
$ /u01/app/oraInventory/orainstRoot.sh $ /u01/app/oracle/product/cman2130/root.sh
-
Hängen Sie die folgenden Zeilen an die Datei
.bash_profile
($HOME/.bash_profile
) an, um den einfachen Zugriff auf die Utilityscmctl
und SQL*Plus zu ermöglichen, wenn Sie sich als Oracle-Benutzer anmelden.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/
-
Führen Sie den folgenden Befehl aus, um sicherzustellen, dass SQL*Plus und CMAN ausgeführt werden.
[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>
Aufgabe 3: Oracle Connection Manager konfigurieren
In dieser Aufgabe konfigurieren wir CMAN. Öffnen Sie zunächst den Port, den der CMAN-Listener auf der CMAN-VM verwenden soll. In diesem Beispiel verwenden wir Port 1999, um zu demonstrieren, dass er nicht unbedingt 1521 sein muss, und um ihn vom Datenbank-Listener-Port zu unterscheiden. Als Root:
$firewall-cmd --permanent --add-port=1999/tcp
$firewall-cmd –reload
-
Normale CMAN-Konfiguration.
Erstellen Sie als Oracle-Benutzer die CMAN-Konfigurationsdatei
cman.ora
unter$TNS_ADMIN
mit dem folgenden Inhalt.Hinweis: Ändern Sie die Host-IP-Adresse in Ihre CMAN-VM-IP.
$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
-
Regelbasierte CMAN-Konfiguration.
Wenn Sie zurückgehen und die Regel in der Datei
cman.ora
prüfen, finden Sie den folgenden Inhalt.(src=*)(dst=*)(srv=*)(act=accept)
Wir erlauben also Verbindungen von jeder Quelle, zu jedem Ziel und zu jedem Service. Mithilfe der Regelliste können Sie eigene Regeln definieren, um Verbindungen von bestimmten Clients, zu bestimmten Zielen oder zu bestimmten Services zuzulassen oder abzulehnen. Beispiel:
$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 ist ein leistungsfähiges Werkzeug. Dies ist nur ein Beispiel und eine einfache Konfiguration. Weitere Konfigurationsdetails, insbesondere was die Sicherheit betrifft, finden Sie in der Oracle Dokumentation.
Aufgabe 4: Oracle Connection Manager-Services starten
Stellen Sie mit dem Wallet eine Verbindung zur Quell- und Zielcontainerdatenbank her, und erstellen Sie eine Konfiguration mit der Oracle Data Guard-Befehlszeilenschnittstelle (DGMGRL). Dies ist dasselbe wie bei einer normalen Oracle Data Guard-Konfiguration. Der einzige Unterschied besteht darin, dass wir dies für beide Containerdatenbanken tun müssen, da beide Primärdatenbanken sind.
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.
Führen Sie den folgenden Befehl aus, um den Status und die Services zu prüfen.
CMCTL:cman> show status
CMCTL:cman> show services
Aufgabe 5: Verbindung zur Datenbank über Oracle Connection Manager
Ansatz 1: Parameter der Zieldatenbank verwenden
Damit CMAN eingehende Verbindungen an Datenbanken weiterleiten kann, muss CMAN diese Datenbanken kennen. Um dies zu erreichen, müssen Sie REMOTE_LISTENER
in der Zieldatenbank festlegen. Legen Sie außerdem VALID_NODE_CHECKING_REGISTRATION_CMAN = OFF
in der Datei cman.ora
für eine erfolgreiche Registrierung fest.
Zieldatenbank:
alter system set REMOTE_LISTENER='10.0.0.8:1999' scope=both sid='*';
alter system register;
Fügen Sie die folgende Zeile in die Datei cman.ora
ein.
VALID_NODE_CHECKING_REGISTRATION_CMAN = OFF
Führen Sie den folgenden Befehl aus, um CMAN neu zu starten und zu prüfen, ob die Datenbank beim CMAN-Listener registriert ist.
CMCTL:cman> show services
Verbindung validieren:
Stellen Sie über die Client-VM mit CMAN-IP und -Port eine Verbindung zur Datenbank her. Erstellen Sie einen neuen TNS-Alias in der Datei tnsnames.ora
auf der Client-VM.
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)))
Der obige Servicename muss in der Ausgabe CMAN> show services
sichtbar sein.
$sqlplus system/MyPasswd__48@GGC1_CM
Prüfen Sie die CMAN-Tracedatei.
/home/oracle/base/diag/netcman/cman/cman/trace/cman.log
/u01/app/oracle/diag/netcman/cman/cman_test/trace/ log.xml
Ansatz 2: Mit Hop
Falls die Änderung des Datenbankparameters REMOTE_LISTENER
in der Zieldatenbank nicht möglich ist, müssen Sie Hop entweder in der Datei cman.ora
oder in der TNS-Clientdatei verwenden.
Option 1: Hop in der Datei cman.ora
hinzufügen
$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: Hop in TNS-Datei des Clients hinzufügen
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)
)
)
Führen Sie den folgenden Befehl aus, um die Verbindung zu validieren.
$sqlplus system/MyPasswd__48@GGC1_CM
Verwandte Links
Danksagungen
- Autor - Dharmesh Patel (Principal Cloud Architect, Oracle North America Cloud Services - NACIE)
Weitere Lernressourcen
Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie im Oracle Learning YouTube-Channel auf weitere kostenlose Lerninhalte zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Install and Configure Oracle Connection Manager
G16507-01
September 2024