Datenbanklinks von einer Autonomous Database zu einer Oracle Database auf einem privaten Endpunkt erstellen

Sie können Datenbanklinks von einer Autonomous Database-Instanz zu einer Oracle Database-Zielinstanz auf einem privaten Endpunkt erstellen.

Hinweis:

Datenbanklinks von einer Autonomous Database zu einer Oracle-Zieldatenbank, die sich auf einem privaten Endpunkt befindet, werden nur in kommerziellen Regionen und US-Regierungsregionen unterstützt.

Dieses Feature ist standardmäßig in allen kommerziellen Regionen aktiviert.

Dieses Feature ist in US Government-Regionen für neu bereitgestellte Datenbanken standardmäßig aktiviert.

Wenn Sie für vorhandene US Government-Datenbanken auf einem privaten Endpunkt Datenbanklinks von einer autonomen Datenbank zu einem Ziel in einer US Government-Region erstellen möchten, können Sie eine Serviceanfrage bei Oracle Cloud Support stellen und die Aktivierung des privaten Endpunkts im Datenbanklinkfeature für US Government-Regionen anfordern.

US Government-Regionen umfassen:

Abhängig vom Typ und der Konfiguration der Oracle-Zieldatenbank:

Verwandte Themen

Voraussetzungen für Datenbanklinks von Autonomous Database zu Oracle-Datenbanken auf einem privaten Endpunkt

Listet die Voraussetzungen für das Erstellen von Datenbanklinks von einer Autonomous Database-Instanz zu einer Oracle-Zieldatenbank auf, die sich auf einem privaten Endpunkt befindet.

So erstellen Sie einen Datenbanklink zu einer Oracle-Zieldatenbank auf einem privaten Endpunkt:

  • Die Zieldatenbank muss über das Oracle Cloud Infrastructure-VCN der Quelldatenbank zugänglich sein. Beispiel: Sie können in folgenden Fällen eine Verbindung zur Zieldatenbank herstellen:

    • Die Zieldatenbank befindet sich auf einem privaten Endpunkt.

    • Die Quell- und die Zieldatenbank befinden sich in demselben Oracle Cloud Infrastructure-VCN.

    • Die Quell- und die Zieldatenbank befinden sich in verschiedenen Oracle Cloud Infrastructure-VCNs, die gepaart sind.

    • Die Zieldatenbank ist eine On-Premise-Datenbank, die mit FastConnect oder VPN mit dem Oracle Cloud Infrastructure-VCN der Quelldatenbank verbunden ist.

  • Es gibt zwei Optionen, um die Zieldatenbank anzugeben. Verwenden Sie den Parameter hostname oder den Parameter rac_hostnames:

    • Bei einem Ziel auf einem privaten Endpunkt unterstützt DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK die Angabe eines einzelnen Hostnamens mit dem Parameter hostname. Auf einem privaten Endpunkt wird die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens nicht unterstützt (wenn sich das Ziel auf einem öffentlichen Endpunkt befindet, unterstützt CREATE_DATABASE_LINK die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens).

    • Wenn das Ziel eine Oracle RAC-Datenbank ist, geben Sie mit dem Parameter rac_hostnames einen oder mehrere Hostnamen mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK an. Auf diese Weise können Sie die High Availability-Funktionen von Oracle RAC nutzen. Die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens im Wert rac_hostnames wird nicht unterstützt.

      Wenn Sie eine Liste der Hostnamen im Parameter rac_hostnames angeben, verwendet CREATE_DATABASE_LINK alle angegebenen Hostnamen als Adressen in der Verbindungszeichenfolge. Wenn einer der angegebenen Hosts nicht in der Oracle RAC-Zieldatenbank verfügbar ist, versucht Autonomous Database automatisch, eine Verbindung mit einem anderen Hostnamen aus der Liste herzustellen.
  • Die folgenden Ingress- und Egress-Regeln müssen für den privaten Endpunkt definiert werden:

    • Definieren Sie eine Egress-Regel in der Subnetzsicherheitsliste oder Netzwerksicherheitsgruppe der Quelldatenbank, sodass der Traffic über TCP zur IP-Adresse und Portnummer der Zieldatenbank zulässig ist.

    • Definieren Sie eine Ingress-Regel in der Subnetzsicherheitsliste oder Netzwerksicherheitsgruppe der Zieldatenbank, sodass der Traffic über TCP von der IP-Adresse der Quelldatenbank zum Zielport zulässig ist.

Datenbanklinks zu Oracle-Datenbanken auf einem privaten Endpunkt ohne Wallet erstellen

Mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK können Sie Datenbanklinks von einer Autonomous Database-Instanz zu einer Oracle-Zieldatenbank erstellen, die sich auf einem privaten Endpunkt befindet, und eine Verbindung ohne Wallet (TCP) herstellen.

Hinweis:

Diese Option gilt für Oracle-Zieldatenbanken, die sich auf einem privaten Endpunkt befinden und für die SSL/TCPS nicht konfiguriert ist.

Führen Sie bei Bedarf die vorbereitenden Schritte aus. Weitere Einzelheiten finden Sie unter Voraussetzungen für Datenbanklinks von Autonomous Database zu Oracle-Datenbanken auf einem privaten Endpunkt.

So erstellen Sie einen Datenbanklink zu einer Zieldatenbank auf einem privaten Endpunkt mit einer sicheren TCP-Verbindung ohne Wallet:

  1. Erstellen Sie in Autonomous Database Zugangsdaten für den Zugriff auf die Zieldatenbank. Die Parameter username und password, die Sie mit DBMS_CLOUD.CREATE_CREDENTIAL angeben, sind die Zugangsdaten für die Zieldatenbank, die im Datenbanklink (wo über das VCN auf die Zieldatenbank zugegriffen wird) verwendet werden.

    Beispiel:

    BEGIN
         DBMS_CLOUD.CREATE_CREDENTIAL(
             credential_name => 'PRIVATE_ENDPOINT_CRED',
             username => 'NICK',
             password => 'password'
             );
    END;
    /

    Der Parameter username darf nur Großbuchstaben enthalten.

    Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen als Zugangsdatenname verwenden.

  2. Erstellen Sie den Datenbanklink zur Zieldatenbank mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Beispiel:

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
             db_link_name => 'PRIVATE_ENDPOINT_LINK', 
             hostname => 'exampleHostname',
             port => '1522',
             service_name => 'exampleServiceName',
             ssl_server_cert_dn => NULL,
             credential_name => 'PRIVATE_ENDPOINT_CRED',
             directory_name => NULL,
             private_target => TRUE);
    END;
    /

    Bei einem Ziel auf einem privaten Endpunkt unterstützt DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK die Angabe eines einzelnen Hostnamens mit dem Parameter hostname. Auf einem privaten Endpunkt wird die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens nicht unterstützt (wenn sich das Ziel auf einem öffentlichen Endpunkt befindet, unterstützt CREATE_DATABASE_LINK die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens).

    Wenn das Ziel eine Oracle RAC-Datenbank ist, geben Sie mit dem Parameter rac_hostnames einen oder mehrere Hostnamen mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK an. Auf diese Weise können Sie die High Availability-Funktionen von Oracle RAC nutzen. Die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens im Wert rac_hostnames wird nicht unterstützt.

    Beispiel: Verwenden Sie bei einer Oracle RAC-Zieldatenbank den Parameter rac_hostnames:

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
             db_link_name => 'PRIVATE_ENDPOINT_LINK', 
             rac_hostnames => '["sales1-svr1.example.adb.us-ashburn-1.oraclecloud.com", 
                                "sales1-svr2.example.adb.us-ashburn-1.oraclecloud.com", 
                                "sales1-svr3.example.adb.us-ashburn-1.oraclecloud.com"]', 
             port => '1522',
             service_name => 'exampleServiceName',
             ssl_server_cert_dn => NULL,
             credential_name => 'PRIVATE_ENDPOINT_CRED',
             directory_name => NULL,
             private_target => TRUE);
    END;
    /

    DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK unterstützt keinen Wert von localhost für den Parameter hostname oder rac_hostnames.

    Andere Benutzer als ADMIN benötigen Berechtigungen zum Ausführen von DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Wie im Beispiel dargestellt, ist Folgendes erforderlich, um einen Datenbanklink mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK zu einer Zieldatenbank auf einem privaten Endpunkt mit einer sicheren TCP-Verbindung ohne Wallet zu erstellen:

    • Der Parameter directory_name muss NULL lauten.

    • Der Parameter ssl_server_cert_dn muss NULL lauten.

    • Der Parameter private_target muss TRUE sein.

  3. Verwenden Sie den erstellten Datenbanklink, um auf Daten in der Zieldatenbank zuzugreifen.

    Beispiel:

    SELECT * FROM employees@PRIVATE_ENDPOINT_LINK;
                  

Hinweis:

Wenn sich für die Zugangsdaten, die Sie in Schritt 1 erstellt haben (die Oracle Database-Zugangsdaten), das Kennwort des Zielbenutzers ändert, können Sie die Zugangsdaten mit den Zugangsdaten des Zielbenutzers wie folgt ändern:
BEGIN
     DBMS_CLOUD.UPDATE_CREDENTIAL (
         credential_name => 'DB_LINK_CRED',
         attribute => 'PASSWORD',
         value => 'password');
END;
/

Dabei ist Kennwort das neue Kennwort.

Nach diesem Vorgang funktionieren die vorhandenen Datenbanklinks, die diese Zugangsdaten verwenden, weiterhin, ohne dass Sie die Datenbanklinks löschen und neu erstellen müssen.

Weitere Informationen finden Sie unter Prozedur CREATE_DATABASE_LINK.

Datenbanklinks von Autonomous Database zu Oracle-Datenbanken auf einem privaten Endpunkt mit einem Wallet (mTLS) erstellen

Sie können Datenbanklinks von einer Autonomous Database-Instanz zu einer Oracle-Zieldatenbank auf einem privaten Endpunkt erstellen.

Hinweis:

Diese Option gilt für Oracle-Zieldatenbanken, für die SSL/TCPS konfiguriert ist und die sich auf einem privaten Endpunkt befinden.

Wenn für die Oracle-Zieldatenbank SSL/TCPS nicht konfiguriert ist, haben Sie zwei Optionen:

Führen Sie bei Bedarf die vorbereitenden Schritte aus. Weitere Einzelheiten finden Sie unter Voraussetzungen für Datenbanklinks von Autonomous Database zu Oracle-Datenbanken auf einem privaten Endpunkt.

So erstellen Sie einen Datenbanklink zu einer Oracle Zieldatenbank auf einem privaten Endpunkt mit TCP/IP mit SSL-(TCPS-)Authentifizierung:

  1. Kopieren Sie das Wallet der Zieldatenbank cwallet.sso mit den Zertifikaten für die Zieldatenbank in den Objektspeicher.

    Hinweis:

    Die Wallet-Datei ermöglicht zusammen mit der Datenbankbenutzer-ID und dem Kennwort Zugriff auf Daten in der Ziel-Oracle-Datenbank. Speichern Sie die Wallet-Dateien an einem sicheren Speicherort. Geben Sie Wallet-Dateien nur für autorisierte Benutzer frei.
  2. Erstellen Sie Zugangsdaten für den Zugriff auf den Objektspeicher, in dem Sie die Datei cwallet.sso speichern. Informationen zu den Parametern für Benutzername und Kennwort für verschiedene Objektspeicherservices finden Sie unter Prozedur CREATE_CREDENTIAL.
  3. Erstellen Sie ein Verzeichnis in Autonomous Database für die Wallet-Datei cwallet.sso.

    Beispiel:

    CREATE DIRECTORY wallet_dir AS 'directory_path_of_your_choice';
                  

    Informationen zum Erstellen von Verzeichnissen finden Sie unter Verzeichnis in Autonomous Database erstellen.

  4. Verwenden Sie DBMS_CLOUD.GET_OBJECT, um das Wallet der Zieldatenbank in das Verzeichnis WALLET_DIR hochzuladen, das Sie im vorherigen Schritt erstellt haben.

    Beispiel:

    BEGIN 
        DBMS_CLOUD.GET_OBJECT(
            credential_name => 'DEF_CRED_NAME',
            object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/cwallet.sso',
            directory_name => 'WALLET_DIR'); 
    END;
    /

    In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

    Hinweis:

    Als credential_name verwenden Sie in diesem Schritt die Zugangsdaten für den Objektspeicher. Im nächsten Schritt erstellen Sie die Zugangsdaten für den Zugriff auf die Zieldatenbank.
  5. Erstellen Sie in Autonomous Database Zugangsdaten für den Zugriff auf die Zieldatenbank. Die Parameter username und password, die Sie mit DBMS_CLOUD.CREATE_CREDENTIAL angeben, sind die Zugangsdaten für die Zieldatenbank, die im Datenbanklink (wo über das VCN auf die Zieldatenbank zugegriffen wird) verwendet werden.

    Hinweis:

    Sie müssen den Parameter credential_name angeben.

    Beispiel:

    BEGIN
       DBMS_CLOUD.CREATE_CREDENTIAL(
          credential_name => 'DB_LINK_CRED',
          username => 'NICK',
          password => 'password');
    END;
    /

    Der Parameter username darf nur Großbuchstaben enthalten.

    Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen als Zugangsdatenname verwenden.

  6. Erstellen Sie den Datenbanklink zur Zieldatenbank mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Beispiel:

    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name => 'PEDBLINK1', 
            hostname => 'example1.adb.ap-osaka-1.oraclecloud.com',
            port => '1522',
            service_name => 'example_high.adb.oraclecloud.com',
            ssl_server_cert_dn => 'ssl_server_cert_dn',
            credential_name => 'DB_LINK_CRED',
            directory_name => 'WALLET_DIR',
            private_target => TRUE);
    END;
    /

    Bei einem Ziel auf einem privaten Endpunkt unterstützt DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK die Angabe eines einzelnen Hostnamens mit dem Parameter hostname. Auf einem privaten Endpunkt wird die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens nicht unterstützt (wenn sich das Ziel auf einem öffentlichen Endpunkt befindet, unterstützt CREATE_DATABASE_LINK die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens).

    Wenn das Ziel eine Oracle RAC-Datenbank ist, geben Sie mit dem Parameter rac_hostnames einen oder mehrere Hostnamen mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK an. Auf diese Weise können Sie die High Availability-Funktionen von Oracle RAC nutzen. Die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens im Wert rac_hostnames wird nicht unterstützt.

    Beispiel: Verwenden Sie bei einer Oracle RAC-Zieldatenbank den Parameter rac_hostnames:

    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name => 'PEDBLINK1', 
            rac_hostnames => '["sales1-svr1.example.adb.us-ashburn-1.oraclecloud.com",
                               "sales1-svr2.example.adb.us-ashburn-1.oraclecloud.com",
                               "sales1-svr3.example.adb.us-ashburn-1.oraclecloud.com"]',
            port => '1522',
            service_name => 'example_high.adb.oraclecloud.com',
            ssl_server_cert_dn => 'ssl_server_cert_dn',
            credential_name => 'DB_LINK_CRED',
            directory_name => 'WALLET_DIR',
            private_target => TRUE);
    END;
    /

    DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK unterstützt keinen Wert von localhost für den Parameter hostname oder rac_hostnames.

    Andere Benutzer als ADMIN benötigen Berechtigungen zum Ausführen von DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

  7. Verwenden Sie den erstellten Datenbanklink, um auf Daten in der Zieldatenbank zuzugreifen.

    Beispiel:

    SELECT * FROM employees@PEDBLINK1;
                  

Hinweis:

Wenn sich für die Zugangsdaten, die Sie in Schritt 5 erstellt haben (die Oracle Database-Zugangsdaten), das Kennwort des Zielbenutzers ändert, können Sie die Zugangsdaten mit den Zugangsdaten des Zielbenutzers wie folgt ändern:
BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
        credential_name => 'DB_LINK_CRED',
        attribute => 'PASSWORD',
        value => 'password');
END;
/

Dabei ist Kennwort das neue Kennwort.

Nach diesem Vorgang funktionieren die vorhandenen Datenbanklinks, die diese Zugangsdaten verwenden, weiterhin, ohne dass Sie die Datenbanklinks löschen und neu erstellen müssen.

Weitere Informationen finden Sie unter Prozedur CREATE_DATABASE_LINK.

Hinweise zu Datenbanklinks mit einer Oracle Database-Zielinstanz

Enthält Hinweise zum Erstellen von Datenbanklinks zu einer Oracle-Zieldatenbank (wenn das Ziel kein Autonomous Database ist)

Hinweise zu Datenbanklinks zu anderen Oracle-Datenbanken:

  • Pro Verzeichnis ist nur eine Wallet-Datei zur Verwendung mit Datenbanklinks gültig. Sie können jeweils nur eine cwallet.sso-Datei in das Verzeichnis hochladen, das Sie für Wallet-Dateien ausgewählt haben (Beispiel: DBLINK_WALLET_DIR). Das bedeutet, dass Sie mit einer cwallet.sso-Datei in DBLINK_WALLET_DIR nur Datenbanklinks zu den Datenbanken erstellen können, für die das Wallet in diesem Verzeichnis gültig ist. Um mehrere cwallet.sso-Dateien mit Datenbanklinks zu verwenden, müssen Sie zusätzliche Verzeichnisse erstellen und jede cwallet.sso-Datei in einem anderen Verzeichnis ablegen. Wenn Sie Datenbanklinks mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK erstellen, geben Sie das Verzeichnis mit dem Wallet mit dem Parameter directory_name an.

    Informationen zum Erstellen von Verzeichnissen finden Sie unter Verzeichnis in Autonomous Database erstellen.

  • Folgende Oracle-Zieldatenbankversionen werden für Datenbanklinks zu einer anderen Oracle Database unterstützt: 19c, 12.2.0 und 12.1.0.

    Hinweis:

    Vollständige Informationen zu unterstützten Versionen finden Sie unter Client Server Interoperability Support Matrix for Different Oracle Versions (Dok.-ID 207303.1)
  • Autonomous Database setzt den Parameter SEC_CASE_SENSITIVE_LOGON auf true. Dieser Wert kann nicht geändert werden. Wenn die Zieldatenbank kein Autonomous Database ist, müssen Sie den Parameter SEC_CASE_SENSITIVE_LOGON in der Zieldatenbank auf true setzen. Wenn SEC_CASE_SENSITIVE_LOGON in der Zieldatenbank auf false gesetzt ist, wird der Fehler ORA-28040: No matching authentication protocol ausgelöst.

  • Um die Datenbanklinks aufzulisten, verwenden Sie die View ALL_DB_LINKS. Weitere Informationen finden Sie unter ALL_DB_LINKS in Oracle Database 19c Database Reference oder in der Oracle Database 23ai Database Reference.

  • Die Wallet-Datei ermöglicht zusammen mit der Datenbankbenutzer-ID und dem Kennwort Zugriff auf Daten in der Ziel-Oracle-Datenbank. Speichern Sie die Wallet-Dateien an einem sicheren Speicherort. Geben Sie Wallet-Dateien nur für autorisierte Benutzer frei.

  • Wenn sich die Autonomous Database-Instanz auf einem privaten Endpunkt befindet, können Sie die Zieldatenbank mit zwei Optionen angeben: Verwenden Sie entweder den Parameter hostname oder den Parameter rac_hostnames:

    • Bei einem Ziel auf einem privaten Endpunkt unterstützt DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK die Angabe eines einzelnen Hostnamens mit dem Parameter hostname. Auf einem privaten Endpunkt wird die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens nicht unterstützt (wenn sich das Ziel auf einem öffentlichen Endpunkt befindet, unterstützt CREATE_DATABASE_LINK die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens).

    • Wenn das Ziel eine Oracle RAC-Datenbank ist, geben Sie mit dem Parameter rac_hostnames einen oder mehrere Hostnamen mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK an. Auf diese Weise können Sie die High Availability-Funktionen von Oracle RAC nutzen. Die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens im Wert rac_hostnames wird nicht unterstützt.

      Wenn Sie eine Liste der Hostnamen im Parameter rac_hostnames angeben, verwendet CREATE_DATABASE_LINK alle angegebenen Hostnamen als Adressen in der Verbindungszeichenfolge. Wenn einer der angegebenen Hosts nicht in der Oracle RAC-Zieldatenbank verfügbar ist, versucht Autonomous Database automatisch, eine Verbindung mit einem anderen Hostnamen aus der Liste herzustellen.
    • DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK unterstützt keinen Wert von localhost für den Parameter hostname oder rac_hostnames.