Datenbankverbindung herstellen

Sie können eine Verbindung zu einer Datenbank in Data Infrastructure herstellen, nachdem Sie eine Verbindung zu einer VM hergestellt haben, oder über Oracle Net Services remote.

Verwenden Sie SSH, um eine Verbindung zu einer VM herzustellen, wenn Sie Betriebssystemzugriff benötigen, bevor Sie eine Verbindung zu einer Datenbank herstellen. Verwenden Sie Oracle Net Services, wenn Sie Remote-Datenbankzugriff von einem Client benötigen.

Verbindung zu einer Datenbank herstellen, nachdem Sie eine Verbindung zu einer VM hergestellt haben

Nachdem Sie die Verbindung zu einer VM hergestellt haben, können Sie mit Betriebssystembefehlen eine Datenbank identifizieren und eine Verbindung zu ihr herstellen.

  1. Stellen Sie als Benutzer opc eine Verbindung zur VM her.

    Ausführliche Schritte finden Sie unter Verbindung zu einer VM mit SSH herstellen.

  2. Wechseln Sie zum Benutzer oracle.

    sudo su - oracle
  3. Verwenden Sie das Utility srvctl im Home-Verzeichnis von Oracle Grid Infrastructure, um die Datenbanken im VM-Cluster aufzulisten.

    grid-home/bin/srvctl config database -v
  4. Identifizieren Sie die Datenbankinstanzen für die Datenbank, auf die Sie zugreifen möchten.

    grid-home/bin/srvctl status database -d <dbname>
  5. Konfigurieren Sie die Umgebungseinstellungen für die Datenbank, auf die Sie zugreifen möchten.

    . oraenv

    Geben Sie in der Eingabeaufforderung die Oracle-System-ID (SID) für die Datenbank ein.

    ORACLE_SID = [oracle] ? <dbname>
  6. Legen Sie die Umgebungsvariable ORACLE_SID auf die Datenbankinstanz fest, auf die Sie zugreifen möchten.

    export ORACLE_SID=<dbname1>
  7. Verwenden Sie optional den Befehl srvctl, um detailliertere Informationen zur Datenbank anzuzeigen.

    srvctl config database -d <dbname>
  8. Stellen Sie mit SQL*Plus eine Verbindung zu der Datenbank ein.

    sqlplus / as sysdba

Verbindungen zu Datenbanken mit Oracle Net Services herstellen

Sie können sich mit Oracle Net Services remote bei einer Datenbank in Data Infrastructure anmelden.

Da Data Infrastructure Oracle Grid Infrastructure verwendet, können Sie mit Single Client Access Name-(SCAN-)Verbindungen Oracle Net Services-Verbindungen herstellen. SCAN bietet einen konsistenten Mechanismus für den Zugriff auf Datenbankinstanzen, die in einem VM-Cluster ausgeführt werden.

Standardmäßig ist der SCAN mit drei virtuellen IP-Adressen (VIPs) verknüpft. Jede SCAN-VIP ist mit einem SCAN-Listener verknüpft, welcher einen Verbindungsendpunkt für Datenbankverbindungen über Oracle Net Services bereitstellt. Zur maximalen Verfügbarkeit verteilt Oracle Grid Infrastructure die SCAN-VIPs und SCAN-Listener auf die verfügbaren VM-Clusterknoten. Wenn ein Knoten heruntergefahren wird oder ausfällt, werden die SCAN-VIPs und SCAN-Listener automatisch zu einem verfügbaren Knoten migriert.

Durch die Verwendung von SCAN-Verbindungen verfügen Oracle AI Database-Clients über ein zuverlässiges Set von Verbindungsendpunkten, die Datenbanken bedienen können, die im VM-Cluster ausgeführt werden.

Die SCAN-Listener sind zusätzlich zu den Oracle Net-Listenern, die auf jedem Knoten im VM-Cluster ausgeführt werden, die auch als Knoten-Listener bezeichnet werden. Wenn eine Oracle Net Services-Verbindung über eine SCAN-Verbindung hergestellt wird, leitet der SCAN-Listener Die Verbindung an einen der Node Listener weiterleiten und spielt bei der Verbindung keine weitere Funktion. Anhand verschiedener Faktoren, einschließlich Listener-Verfügbarkeit, Platzierung der Datenbankinstanz und Workload-Verteilung, wird bestimmt, welcher Node Listener die einzelnen Verbindungen empfängt.

Diese Dokumentation beschreibt grundlegende Voraussetzungen für die Verbindung zu Datenbanken über Oracle Net Services in Data Infrastructure.

Voraussetzungen für Verbindungen zu Datenbanken mit Oracle Net Services

Verbindungen zu Datenbanken über SCAN

Um eine Oracle Net Services-Verbindung über die SCAN-Listener zu erstellen, können Sie zwischen den folgenden Möglichkeiten wählen:

Verbindung zu einer Datenbank über einen Verbindungsdeskriptor herstellen, der alle SCAN-VIPs referenziert

Sie können einen Verbindungsdeskriptor mit mehreren SCAN-Listenern einrichten.

Bei dieser Lösung müssen Sie alle SCAN/VIP-Adressen angeben. Oracle Net Services kann dann die Verbindung zu einem verfügbaren SCAN-Listener herstellen.

  1. Verwenden Sie die folgende Vorlage, um einen Net Services-Alias zu definieren:

    <alias-name> = (DESCRIPTION=
      (ADDRESS_LIST=
        (ADDRESS=(PROTOCOL=tcp)(HOST=<SCAN-VIP-1>)(PORT=1521))
        (ADDRESS=(PROTOCOL=tcp)(HOST=<SCAN-VIP-2>)(PORT=1521))
        (ADDRESS=(PROTOCOL=tcp)(HOST=<SCAN-VIP-3>)(PORT=1521)))
      (CONNECT_DATA=(<sid-or-service-entry>)))

    Hierbei gilt:

    • <alias-name> ist der Name, mit dem Sie den Alias identifizieren.
    • <SCAN-VIP-1>, <SCAN-VIP-2> und <SCAN-VIP-3> sind die IP-Adressen für die SCAN-VIPs.
    • <sid-or-service-entry> identifiziert die Datenbank-SID oder den Servicenamen mit einem der folgenden Formate:
      • SID=sid-name. Beispiel: SID=DBNAME1.
      • SERVICE_NAME=service-name. Beispiel: SERVICE_NAME=pdb1.example.com.

Standardmäßig wird von Oracle Net Services nach dem Zufallsprinzip eine der Adressen in der Adressliste ausgewählt, um die Last zwischen den SCAN-Listenern auszugleichen.

Mit einem Verbindungsdeskriptor eine Verbindung zu einer Datenbank herstellen, die einen benutzerdefinierten SCAN-Namen referenziert

Sie können einen Verbindungsdeskriptor mit einem benutzerdefinierten SCAN-Namen einrichten.

Mit diesem Ansatz definieren Sie einen benutzerdefinierten SCAN-Namen in Ihrem Domain Name Server (DNS). Der benutzerdefinierte SCAN-Name wird in die drei SCAN-VIP-Adressen aufgelöst.

  1. Verwenden Sie die folgende Vorlage, um einen Net Services-Alias zu definieren, der den benutzerdefinierten SCAN-Namen referenziert:

    <alias-name> = (DESCRIPTION=
      (ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=<scan-name>)(PORT=1521)))
      (CONNECT_DATA=(<sid-or-service-entry>)))

    Hierbei gilt:

    • <alias-name> ist der Name, mit dem Sie den Alias identifizieren.
    • <scan-name> ist der benutzerdefinierte SCAN-Name.
    • <sid-or-service-entry> identifiziert die Datenbank-SID oder den Servicenamen mit einem der folgenden Formate:
      • SID=sid-name. Beispiel: SID=DBNAME1.
      • SERVICE_NAME=service-name. Beispiel: SERVICE_NAME=pdb1.example.com.
  2. Alternativ können Sie mit der Easy Connect-Methode einen Verbindungsdeskriptor im folgenden Format angeben:

    <scan-name>:1521/<sid-or-service-entry>

    Beispiel:

    dbscan.example.com:1521/DBNAME1

    oder:

    dbscan.example.com:1521/pdb1.example.com

Verbindungen zu Datenbanken über einen Node Listener

Um eine Verbindung zu einer Datenbank mit einem Verbindungsdeskriptor herzustellen, der die SCAN-Listener umgeht, leiten Sie die Verbindung direkt an einen Knoten-Listener weiter.

Mit dieser Methode geben Sie auf die High Availability und die Load Balancing von SCAN. Diese Methode kann jedoch nützlich sein, wenn Sie Verbindungen zu einem bestimmten Knoten oder einer bestimmten Netzwerkschnittstelle leiten möchten.

  1. Verwenden Sie die folgende Vorlage, um einen Net Services-Alias zu definieren, der den Knoten direkt referenziert:

    <alias-name> = (DESCRIPTION=
      (CONNECT_TIMEOUT=<timeout>)
      (ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=<node>)(PORT=1521)))
      (CONNECT_DATA=(<sid-or-service-entry>)))

    Hierbei gilt:

    • <alias-name> ist der Name, mit dem Sie den Alias identifizieren.
    • <timeout> gibt einen Timeoutzeitraum in Sekunden an, in dem Sie einen Verbindungsversuch beenden können, ohne dass auf einen TCP-Timeout gewartet werden muss. Der Parameter (CONNECT_TIMEOUT=timeout) ist optional.
    • <node> ist der Hostname oder die IP-Adresse der zu verwendenden VM.
    • <sid-or-service-entry> identifiziert die Datenbank-SID oder den Servicenamen mit einem der folgenden Formate:
      • SID=sid-name. Beispiel: SID=DBNAME1.
      • SERVICE_NAME=service-name. Beispiel: SERVICE_NAME=pdb1.example.com.
  2. Alternativ können Sie mit der Easy Connect-Methode einen Verbindungsdeskriptor im folgenden Format angeben:

    <node>:1521/<sid-or-service-entry>

    Beispiel:

    node01.example.com:1521/DBNAME1

    oder:

    node01.example.com:1521/pdb1.example.com