Datenbanklinks zu einer Oracle-Datenbank erstellen, die keine autonome Datenbank ist

Sie können Datenbanklinks von einer Autonomous Database zu einer Oracle-Datenbank erstellen, die sich auf einem privaten Endpunkt oder einem öffentlichen Endpunkt befindet (öffentlich zugänglich).

Hinweis

Siehe Datenbanklinks aus Autonomous Database in eine andere Autonomous Database erstellen, wenn das Ziel für Ihren Datenbanklink eine andere Autonomous Database ist.

Datenbanklinks von Autonomous Database zu einer öffentlich zugänglichen Oracle Database mit einem Wallet (mTLS) erstellen

Sie können Datenbanklinks von einer Autonomous Database zu einer Oracle-Zieldatenbank erstellen, die sich auf einem öffentlichen Endpunkt befindet.

Um Datenbanklinks mit Autonomous Database zu verwenden, muss die Zieldatenbank so konfiguriert sein, dass TCP/IP mit SSL-(TCPS-)Authentifizierung verwendet wird. Autonome Datenbanken verwenden standardmäßig TCP/IP mit SSL-(TCPS-)Authentifizierung, sodass Sie keine zusätzliche Konfiguration in der Zieldatenbank vornehmen müssen, um eine Verknüpfung mit einer anderen Autonomous Database herzustellen. Andere Oracle-Datenbanken müssen für die Verwendung von TCP/IP mit SSL-(TCPS-)Authentifizierung konfiguriert sein. Weitere Informationen finden Sie unter Secure Sockets Layer-Authentifizierung konfigurieren.

Um Datenbanklinks zu einem öffentlichen Ziel zu erstellen, muss auf das Oracle Database-Ziel zugegriffen werden können. Einige Datenbanken können den Zugriff einschränken (z.B. mit Access Control-Listen). Stellen Sie sicher, dass die Zieldatenbank den Zugriff von der Quelldatenbank aus ermöglicht, damit der Datenbanklink funktioniert. Wenn Sie den Zugriff mit Access Control-Listen (ACLs) einschränken, können Sie die ausgehende IP-Adresse der Quell-Autonomous Database ermitteln und zulassen, dass diese IP-Adresse eine Verbindung zur Zieldatenbank herstellt.

Weitere Informationen finden Sie unter Datenbanklink von Ihrer Autonomous Database zu einer Database Cloud Service-Instanz erstellen.

So erstellen Sie Datenbanklinks zu einer Oracle-Zieldatenbank mit einem Wallet (mTLS):

  1. Kopieren Sie das Zieldatenbank-Wallet cwallet.sso, das die Zertifikate für die Zieldatenbank enthält, in den Objektspeicher.

    Beachten Sie Folgendes für die Wallet-Datei:

    • Die Wallet-Datei sowie die Datenbankbenutzer-ID und das Kennwort ermöglichen den Zugriff auf Daten in der Oracle Database-Zielinstanz. Speichern Sie die Wallet-Dateien an einem sicheren Speicherort. Geben Sie Wallet-Dateien nur für autorisierte Benutzer frei.

    • Benennen Sie die Wallet-Datei nicht um. Die Wallet-Datei in Object Storage muss den Namen cwallet.sso haben.

  2. Erstellen Sie Zugangsdaten für den Zugriff auf den Objektspeicher, in dem Sie die Wallet-Datei cwallet.sso speichern. Informationen zu den Benutzernamen- und Kennwortparametern für verschiedene Objektspeicherservices finden Sie unter Prozedur CREATE_CREDENTIAL.

    Das Erstellen von Zugangsdaten für den Zugriff auf den Oracle Cloud Infrastructure-Objektspeicher ist nicht erforderlich, wenn Sie Resource-Principal-Zugangsdaten aktivieren. Weitere Informationen finden Sie unter Resource Principal für den Zugriff auf Oracle Cloud Infrastructure-Ressourcen nutzen.

  3. Erstellen Sie ein Verzeichnis in Autonomous Database für die Wallet-Datei cwallet.sso.

    Beispiel:

    CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';
                

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

  4. Mit DBMS_CLOUD.GET_OBJECT können Sie das Zieldatenbank-Wallet in das Verzeichnis hochladen, das Sie im vorherigen Schritt erstellt haben, DBLINK_WALLET_DIR.

    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 => 'DBLINK_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

    Die in diesem Schritt verwendete credential_name sind die Zugangsdaten für den Objektspeicher. Im nächsten Schritt erstellen Sie die Zugangsdaten für den Zugriff auf die Zieldatenbank.

    Das Erstellen von Zugangsdaten für den Zugriff auf den Oracle Cloud Infrastructure-Objektspeicher ist nicht erforderlich, wenn Sie Resource-Principal-Zugangsdaten aktivieren. Weitere Informationen finden Sie unter Resource Principal für den Zugriff auf Oracle Cloud Infrastructure-Ressourcen nutzen.

  5. Erstellen Sie in der Autonomous Database-Instanz Zugangsdaten für den Zugriff auf die Zieldatenbank. Die username und password, die Sie mit DBMS_CLOUD.CREATE_CREDENTIAL angeben, sind die Zugangsdaten für die Zieldatenbank, mit der Sie den Datenbanklink erstellen.
    Hinweis

    Die Angabe des Parameters credential_name ist erforderlich.

    Beispiel:

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

    Die Zeichen im Parameter username müssen Großbuchstaben enthalten.

    Hinweis

    Sie können Vault-Secret-Zugangsdaten für die Zieldatenbankzugangsdaten in einem Datenbanklink verwenden. Weitere Informationen finden Sie unter Vault-Secret-Zugangsdaten verwenden.

    Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen für den Zugangsdatennamen 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 => 'SALESLINK',
            hostname => 'adb.eu-frankfurt-1.oraclecloud.com', 
            port => '1522',
            service_name => 'example_medium.adb.example.oraclecloud.com',
            ssl_server_cert_dn => 'CN=adb.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US',
            credential_name => 'DB_LINK_CRED',
            directory_name => 'DBLINK_WALLET_DIR');
    END;
    /

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

    Wenn die Wallet-Datei im Verzeichnis, das mit directory_name angegeben ist, nicht cwallet.sso ist, meldet die Prozedur einen Fehler wie: ORA-28759: failure to open file.

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

    Beispiel:

    SELECT * FROM employees@SALESLINK;
                

Für die Zugangsdaten, die Sie in Schritt 5 erstellen, die Zieldatenbankzugangsdaten. Wenn sich das Kennwort des Zielbenutzers ändert, können Sie die Zugangsdaten mit den Zugangsdaten des Zielbenutzers folgendermaßen aktualisieren:

BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
        credential_name => 'DB_LINK_CRED',
        attribute => 'PASSWORD',
        value => 'password' );
END;
/

wobei password das neue Passwort ist.

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

Hinweis

Sie können Links zu Big Data Service mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK erstellen. Weitere Informationen finden Sie unter Big Data Service-Hadoop-(HDFS-)Daten aus Autonomous Database abfragen.

Weitere Informationen finden Sie hier:

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

Sie können Datenbanklinks von einer Autonomous Database zu einer Oracle Database-Zielinstanz erstellen, die sich auf einem privaten Endpunkt befindet.

Je nach Typ und Konfiguration der Oracle-Zieldatenbank:

Weitere Informationen finden Sie unter Datenbanklink von Ihrer Autonomous Database zu einer Database Cloud Service-Instanz erstellen.

Themen

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

Listet die Voraussetzungen zum Erstellen von Datenbanklinks aus einer Autonomous Database-Datenbank 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:

  • Der Zugriff auf die Zieldatenbank muss über das Oracle Cloud Infrastructure-VCN der Quelldatenbank möglich sein. Beispiel: Sie können sich bei der Zieldatenbank anmelden, wenn:

    • Die Zieldatenbank befindet sich auf einem privaten Endpunkt.

    • Sowohl die Quelldatenbank als auch die Zieldatenbank befinden sich in demselben Oracle Cloud Infrastructure-VCN.

    • Die Quelldatenbank 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 zur Angabe der Zieldatenbank. 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 mindestens einen 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 mit Hostnamen im Parameter rac_hostnames angeben, verwendet CREATE_DATABASE_LINK alle angegebenen Hostnamen als Adressen in der Verbindungszeichenfolge. Wenn einer der angegebenen Hosts in der Oracle RAC-Zieldatenbank nicht 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 der Quelldatenbank oder in der Netzwerksicherheitsgruppe, sodass der Traffic über TCP an die 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.

    Informationen zum Konfigurieren privater Endpunkte mit Ingress- und Egress-Regeln finden Sie unter Netzwerkzugriff mit privaten Endpunkten konfigurieren.

Hinweis

Wenn Ihre Autonomous Database-Instanz mit einem privaten Endpunkt konfiguriert ist, setzen Sie den Datenbankparameter ROUTE_OUTBOUND_CONNECTIONS auf "PRIVATE_ENDPOINT", um anzugeben, dass alle ausgehenden Datenbanklinks den Egress-Regeln des privaten Endpunkt-VCN der Autonomous Database-Instanz unterliegen. Weitere Informationen finden Sie unter Erweiterte Sicherheit für ausgehende Verbindungen mit privaten Endpunkten.

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 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 kein SSL/TCPS konfiguriert ist.

Führen Sie die erforderlichen Schritte aus. Weitere Informationen finden Sie unter Voraussetzungen für Datenbanklinks von Autonomous Database zu einer Autonomous Database-Zielinstanz an 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 username und password, die Sie mit DBMS_CLOUD.CREATE_CREDENTIAL angeben, sind die Zugangsdaten für die Zieldatenbank, die innerhalb des Datenbanklinks verwendet wird (wo auf die Zieldatenbank über das VCN zugegriffen wird).

    Beispiel:

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

    Die Zeichen im Parameter username müssen Großbuchstaben enthalten.

    Hinweis

    Sie können Vault-Secret-Zugangsdaten für die Zieldatenbankzugangsdaten in einem Datenbanklink verwenden. Weitere Informationen finden Sie unter Vault-Secret-Zugangsdaten verwenden.

    Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen für den Zugangsdatennamen 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 mindestens einen 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 den Wert localhost für hostname oder den Parameter rac_hostnames nicht.

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

    Wie im Beispiel dargestellt, sind alle folgenden Schritte 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 sein.

    • Der Parameter ssl_server_cert_dn muss NULL sein.

    • Der Parameter private_target muss TRUE sein.

      Hinweis

      Wenn Sie ROUTE_OUTBOUND_CONNECTIONS auf PRIVATE_ENDPOINT setzen, ist das Festlegen des Parameters private_target auf TRUE in dieser API nicht erforderlich. Weitere Informationen finden Sie unter Erweiterte Sicherheit für ausgehende Verbindungen mit privaten Endpunkten.
  3. Verwenden Sie den von Ihnen erstellten Datenbanklink, um auf Daten in der Zieldatenbank zuzugreifen.

    Beispiel:

    SELECT * FROM employees@PRIVATE_ENDPOINT_LINK;
                  
Hinweis

Wenn sich das Kennwort des Zielbenutzers ändert, können Sie für die Zugangsdaten, die Sie in Schritt 1 erstellen, die Oracle Database-Zugangsdaten folgendermaßen aktualisieren, wenn sich das Kennwort des Zielbenutzers ändert:
BEGIN
     DBMS_CLOUD.UPDATE_CREDENTIAL (
         credential_name => 'DB_LINK_CRED',
         attribute => 'PASSWORD',
         value => 'password');
END;
/

Dabei ist password das neue Kennwort.

Nach diesem Vorgang funktionieren die vorhandenen Datenbanklinks, die diese Zugangsdaten verwenden, weiter, ohne die Datenbanklinks löschen und neu erstellen zu 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 zu einer Oracle-Zieldatenbank erstellen, die sich auf einem privaten Endpunkt befindet.

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 kein SSL/TCPS konfiguriert ist, haben Sie zwei Optionen:

Führen Sie die erforderlichen Schritte aus. Weitere Informationen finden Sie unter Voraussetzungen für Datenbanklinks von Autonomous Database zu einer Autonomous Database-Zielinstanz an 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 Zieldatenbank-Wallet cwallet.sso, das die Zertifikate für die Zieldatenbank enthält, in den Objektspeicher.
    Hinweis

    Die Wallet-Datei sowie die Datenbankbenutzer-ID und das Kennwort ermöglichen den Zugriff auf Daten in der Oracle-Zieldatenbank. 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 cwallet.sso speichern. Informationen zu den Benutzernamen- und Kennwortparametern 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. Mit DBMS_CLOUD.GET_OBJECT können Sie das Zieldatenbank-Wallet in das Verzeichnis hochladen, das Sie im vorherigen Schritt erstellt haben, WALLET_DIR.

    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

    Die in diesem Schritt verwendete credential_name sind 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 username und password, die Sie mit DBMS_CLOUD.CREATE_CREDENTIAL angeben, sind die Zugangsdaten für die Zieldatenbank, die innerhalb des Datenbanklinks verwendet wird (wo auf die Zieldatenbank über das VCN zugegriffen wird).
    Hinweis

    Die Angabe des Parameters credential_name ist erforderlich.

    Beispiel:

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

    Die Zeichen im Parameter username müssen Großbuchstaben enthalten.

    Hinweis

    Sie können Vault-Secret-Zugangsdaten für die Zieldatenbankzugangsdaten in einem Datenbanklink verwenden. Weitere Informationen finden Sie unter Vault-Secret-Zugangsdaten verwenden.

    Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen für den Zugangsdatennamen 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;
    /
    Hinweis

    Wenn Sie ROUTE_OUTBOUND_CONNECTIONS auf PRIVATE_ENDPOINT setzen, ist das Festlegen des Parameters private_target auf TRUE in dieser API nicht erforderlich. Weitere Informationen finden Sie unter Erweiterte Sicherheit für ausgehende Verbindungen mit privaten Endpunkten.

    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 mindestens einen 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 den Wert localhost für hostname oder den Parameter rac_hostnames nicht.

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

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

    Beispiel:

    SELECT * FROM employees@PEDBLINK1;
                  
Note

For the credentials you create in Step 5, the Oracle Database credentials, if the password of the target user changes you can update the credential that contains the target user's credentials as follows:
BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
        credential_name => 'DB_LINK_CRED',
        attribute => 'PASSWORD',
        value => 'password');
END;
/

Dabei ist password das neue Kennwort.

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

Weitere Informationen finden Sie unter Prozedur CREATE_DATABASE_LINK.

Hinweise zu Datenbanklinks mit einer Ziel-Oracle Database

Bietet Hinweise zum Erstellen von Datenbanklinks zu einer Oracle-Zieldatenbank (wenn das Ziel keine Autonomous Database ist)

Hinweise zu Datenbanklinks zu anderen Oracle-Datenbanken:

  • Wenn Sie Datenbanklinks zwischen Autonomous Database und anderen Oracle-Datenbanken verwenden, müssen Sie möglicherweise Patch 33843368 auf der Oracle Database einspielen, die keine Autonomous Database ist. Dies gilt für Fälle, in denen die Autonomous Database-Instanz entweder die Quelle oder das Ziel des Datenbanklinks ist.

    Weitere Einzelheiten finden Sie in der My Oracle Support Knowledge Base: Patchanforderung für Datenbanklinks zwischen ADB-S und anderen Oracle-Datenbanken (Dok.-ID 2874244.1).

  • Pro Verzeichnis ist nur eine Wallet-Datei zur Verwendung mit Datenbanklinks gültig. Sie können jeweils nur eine cwallet.sso in das Verzeichnis hochladen, das Sie für Wallet-Dateien auswählen (z.B. DBLINK_WALLET_DIR). Das bedeutet, dass Sie mit einer cwallet.sso 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 in einem anderen Verzeichnis ablegen. Wenn Sie Datenbanklinks mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK erstellen, geben Sie das Verzeichnis, das das Wallet enthält, mit dem Parameter directory_name an.

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

  • Unterstützte Oracle-Zieldatenbankversionen für Datenbanklinks zu einer anderen Oracle Database: 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, und 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 Ansicht ALL_DB_LINKS. Weitere Informationen finden Sie unter ALL_DB_LINKS.

  • Die Wallet-Datei sowie die Datenbankbenutzer-ID und das Datenbankkennwort ermöglichen den Zugriff auf Daten in der Oracle-Zieldatenbank. 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, gibt es zwei Optionen zur Angabe der Zieldatenbank: 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 mindestens einen 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 mit Hostnamen im Parameter rac_hostnames angeben, verwendet CREATE_DATABASE_LINK alle angegebenen Hostnamen als Adressen in der Verbindungszeichenfolge. Wenn einer der angegebenen Hosts in der Oracle RAC-Zieldatenbank nicht 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 den Wert localhost für hostname oder den Parameter rac_hostnames nicht.

  • Wenn Sie private_target => TRUE verwenden, wird das Erstellen von Realm-übergreifenden Datenbanklinks, bei denen sich die Quelldatenbank und die Zieldatenbank in verschiedenen Oracle Cloud Infrastructure-Realms befinden, nicht unterstützt.