Creare database link a un Oracle Database che non è un Autonomous Database

È possibile creare database link da un'istanza di Autonomous Database a un database Oracle che si trova su un endpoint privato o su un endpoint pubblico (accessibile pubblicamente).

Nota

Se la destinazione per il database link è un altro Autonomous Database, vedere Crea database link da Autonomous Database a un altro Autonomous Database.

Creare database link da Autonomous Database a Oracle Database con accesso pubblico con wallet (mTLS)

È possibile creare database link da un'istanza di Autonomous Database a un database Oracle di destinazione che si trova su un endpoint pubblico.

Per utilizzare i database link con Autonomous Database, è necessario che il database di destinazione sia configurato per utilizzare l'autenticazione TCP/IP con SSL (TCPS). Per impostazione predefinita, gli Autonomous Database utilizzano l'autenticazione TCP/IP con SSL (TCPS), pertanto non è necessario eseguire alcuna configurazione aggiuntiva nel database di destinazione per il collegamento a un altro Autonomous Database. Gli altri database Oracle devono essere configurati per l'uso di TCP/IP con autenticazione SSL (TCPS). Per ulteriori informazioni, vedere Configurazione dell'autenticazione Secure Sockets Layer.

Per creare database link a una destinazione pubblica, è necessario che l'Oracle Database di destinazione sia accessibile. Alcuni database possono limitare l'accesso (ad esempio, utilizzando le liste di controllo dell'accesso). Assicurarsi di abilitare il database di destinazione per consentire l'accesso dal database di origine affinché il database link funzioni. Se limiti l'accesso con le liste di controllo dell'accesso (ACL), puoi trovare l'indirizzo IP in uscita dell'Autonomous Database di origine e consentire a tale indirizzo IP di connettersi al database di destinazione.

Per ulteriori informazioni, vedere Come creare un database link da Autonomous Database a un'istanza di Database Cloud Service.

Per creare i database link a un database Oracle di destinazione con un wallet (mTLS):

  1. Copiare il wallet del database di destinazione, cwallet.sso, contenente i certificati per il database di destinazione nell'area di memorizzazione degli oggetti.

    Tenere presente quanto riportato di seguito per il file wallet.

    • Il file wallet, insieme all'ID utente e alla password del database, fornisce l'accesso ai dati nell'Oracle Database di destinazione. Memorizzare i file wallet in una posizione sicura. Condividere i file wallet solo con utenti autorizzati.

    • Non rinominare il file wallet. Il file wallet nello storage degli oggetti deve essere denominato cwallet.sso.

  2. Creare le credenziali per accedere all'area di memorizzazione degli oggetti in cui memorizzare il file wallet cwallet.sso. Per informazioni sui parametri di nome utente e password per diversi servizi di storage degli oggetti, vedere CREATE_CREDENTIAL Procedure.

    La creazione di una credenziale per accedere all'area di memorizzazione degli oggetti di Oracle Cloud Infrastructure non è necessaria se si abilitano le credenziali del principal risorsa. Per ulteriori informazioni, consulta la sezione Usa principal risorsa per accedere alle risorse di Oracle Cloud Infrastructure.

  3. Creare una directory in Autonomous Database per il file wallet cwallet.sso.

    Ad esempio:

    CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';
                

    Per informazioni sulla creazione di directory, vedere Crea directory in Autonomous Database.

  4. Utilizzare DBMS_CLOUD.GET_OBJECT per caricare il wallet del database di destinazione nella directory creata nel passo precedente, DBLINK_WALLET_DIR.

    Ad esempio:

    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 questo esempio, namespace-string è lo spazio di nomi dello storage degli oggetti Oracle Cloud Infrastructure e bucketname è il nome del bucket. Per ulteriori informazioni, vedere Informazioni sugli spazi di nomi dello storage degli oggetti.

    Nota

    Il credential_name utilizzato in questo passo è costituito dalle credenziali per l'area di memorizzazione degli oggetti. Nel passo successivo si creano le credenziali per accedere al database di destinazione.

    La creazione di una credenziale per accedere all'area di memorizzazione degli oggetti di Oracle Cloud Infrastructure non è necessaria se si abilitano le credenziali del principal risorsa. Per ulteriori informazioni, consulta la sezione Usa principal risorsa per accedere alle risorse di Oracle Cloud Infrastructure.

  5. Nell'istanza di Autonomous Database, creare le credenziali per accedere al database di destinazione. Le credenziali username e password specificate con DBMS_CLOUD.CREATE_CREDENTIAL sono le credenziali per il database di destinazione utilizzato per creare il database link.
    Nota

    È necessario specificare il parametro credential_name.

    Ad esempio:

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

    I caratteri del parametro username devono essere tutte lettere maiuscole.

    Nota

    È possibile utilizzare una credenziale segreta del vault per la credenziale del database di destinazione in un database link. Per ulteriori informazioni, vedere Usa credenziali segrete vault.

    Questa operazione memorizza le credenziali nel database in un formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale.

  6. Creare il database link al database di destinazione utilizzando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Ad esempio:

    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;
    /

    Gli utenti diversi da ADMIN richiedono privilegi per eseguire DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Se il file wallet nella directory specificata con directory_name non è cwallet.sso, la procedura segnala un errore, ad esempio: ORA-28759: failure to open file.

  7. Utilizzare il database link creato per accedere ai dati nel database di destinazione.

    Ad esempio:

    SELECT * FROM employees@SALESLINK;
                

Per le credenziali create nel Passo 5, le credenziali del database di destinazione, se la password dell'utente di destinazione viene modificata, è possibile aggiornare la credenziale che contiene le credenziali dell'utente di destinazione come indicato di seguito.

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

Dove password corrisponde alla nuova password.

Dopo questa operazione, i database link esistenti che utilizzano questa credenziale continuano a funzionare senza dover eliminare e ricreare i database link.

Nota

È possibile creare collegamenti a Big Data Service utilizzando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Per ulteriori informazioni, vedere Query Big Data Service - Dati Hadoop (HDFS) di Autonomous Database.

Per ulteriori informazioni, vedere:

Creare database link da Autonomous Database a Oracle Database su un endpoint privato

È possibile creare database link da un'istanza di Autonomous Database a un'istanza di Oracle Database di destinazione che si trova su un endpoint privato.

A seconda del tipo e della configurazione del database Oracle di destinazione:

Per ulteriori informazioni, vedere Come creare un database link da Autonomous Database a un'istanza di Database Cloud Service.

Argomenti

Prerequisiti per i database link da Autonomous Database ai database Oracle in un endpoint privato

Elenca i prerequisiti per creare database link da un'istanza di Autonomous Database a un database Oracle di destinazione che si trova su un endpoint privato.

Per creare un database link a un database Oracle di destinazione su un endpoint privato, effettuare le operazioni riportate di seguito.

  • Il database di destinazione deve essere accessibile dalla VCN Oracle Cloud Infrastructure del database di origine. Ad esempio, è possibile connettersi al database di destinazione quando:

    • Il database di destinazione si trova su un endpoint privato.

    • Sia il database di origine che il database di destinazione si trovano nella stessa VCN di Oracle Cloud Infrastructure.

    • Il database di origine e il database di destinazione si trovano in diverse reti VCN di Oracle Cloud Infrastructure abbinate.

    • Il database di destinazione è un database in locale connesso alla VCN Oracle Cloud Infrastructure del database di origine utilizzando FastConnect o VPN.

  • Sono disponibili due opzioni per specificare il database di destinazione, utilizzare il parametro hostname o il parametro rac_hostnames:

    • Per una destinazione su un endpoint privato, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK supporta la specifica di un singolo nome host con il parametro hostname. In un endpoint privato, l'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN non è supportato (quando la destinazione si trova su un endpoint pubblico, CREATE_DATABASE_LINK supporta l'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN).

    • Quando la destinazione è un database Oracle RAC, utilizzare il parametro rac_hostnames per specificare uno o più nomi host con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Ciò consente di sfruttare le funzionalità di alta disponibilità di Oracle RAC. L'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN nel valore rac_hostnames non è supportato.

      Quando si specifica un elenco di nomi host nel parametro rac_hostnames, CREATE_DATABASE_LINK utilizza tutti i nomi host specificati come indirizzi nella stringa di connessione. Se uno degli host specificati non è disponibile nel database Oracle RAC di destinazione, Autonomous Database tenta automaticamente di connettersi utilizzando un altro nome host dalla lista.
  • Le seguenti regole di entrata e uscita devono essere definite per l'endpoint privato:

    • Definire una regola di uscita nella lista di sicurezza della subnet del database di origine o nel gruppo di sicurezza di rete in modo che il traffico su TCP sia consentito all'indirizzo IP e al numero di porta del database di destinazione.

    • Definire una regola di entrata nella lista di sicurezza della subnet del database di destinazione o nel gruppo di sicurezza di rete in modo che il traffico su TCP sia consentito dall'indirizzo IP del database di origine alla porta di destinazione.

    Per informazioni sulla configurazione degli endpoint privati con regole di entrata e uscita, vedere Configura accesso di rete con endpoint privati.

Nota

Quando l'istanza di Autonomous Database è configurata con un endpoint privato, impostare il parametro del database ROUTE_OUTBOUND_CONNECTIONS su 'PRIVATE_ENDPOINT' per specificare che tutti i database link in uscita sono soggetti alle regole di uscita della VCN dell'endpoint privato dell'istanza di Autonomous Database. Per ulteriori informazioni, vedere Sicurezza avanzata per le connessioni in uscita con endpoint privati.

Creare database link a database Oracle in un endpoint privato senza wallet

Utilizzare DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK per creare database link da un'istanza di Autonomous Database a un database Oracle di destinazione che si trova su un endpoint privato e connettersi senza un wallet (TCP).

Nota

Questa opzione è valida per i database Oracle di destinazione che si trovano su un endpoint privato e non dispongono di SSL/TCPS configurati.

Eseguire i passi dei prerequisiti, se necessario. Per i dettagli, vedere Prerequisiti per i database link da Autonomous Database a un Autonomous Database di destinazione in un endpoint privato.

Per creare un database link a un database di destinazione su un endpoint privato utilizzando una connessione TCP sicura senza wallet:

  1. In Autonomous Database creare le credenziali per accedere al database di destinazione. Le credenziali username e password specificate con DBMS_CLOUD.CREATE_CREDENTIAL sono le credenziali per il database di destinazione utilizzato all'interno del database link, in cui è possibile accedere al database di destinazione tramite la VCN.

    Ad esempio:

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

    I caratteri del parametro username devono essere tutte lettere maiuscole.

    Nota

    È possibile utilizzare una credenziale segreta del vault per la credenziale del database di destinazione in un database link. Per ulteriori informazioni, vedere Usa credenziali segrete vault.

    Questa operazione memorizza le credenziali nel database in un formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale.

  2. Creare il database link al database di destinazione utilizzando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Ad esempio:

    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;
    /

    Per una destinazione su un endpoint privato, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK supporta la specifica di un singolo nome host con il parametro hostname. In un endpoint privato, l'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN non è supportato (quando la destinazione si trova su un endpoint pubblico, CREATE_DATABASE_LINK supporta l'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN).

    Quando la destinazione è un database Oracle RAC, utilizzare il parametro rac_hostnames per specificare uno o più nomi host con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Ciò consente di sfruttare le funzionalità di alta disponibilità di Oracle RAC. L'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN nel valore rac_hostnames non è supportato.

    Ad esempio, con un database Oracle RAC di destinazione utilizzare il parametro 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 non supporta il valore localhost per hostname o nel parametro rac_hostnames.

    Gli utenti diversi da ADMIN richiedono privilegi per eseguire DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Come mostrato nell'esempio, per creare un database link con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK a un database di destinazione su un endpoint privato utilizzando una connessione TCP sicura senza un wallet, sono necessari tutti i seguenti elementi:

    • Il parametro directory_name deve essere NULL.

    • Il parametro ssl_server_cert_dn deve essere NULL.

    • Il parametro private_target deve essere TRUE.

      Nota

      Se si imposta ROUTE_OUTBOUND_CONNECTIONS su PRIVATE_ENDPOINT, l'impostazione del parametro private_target su TRUE non è obbligatoria in questa API. Per ulteriori informazioni, vedere Sicurezza avanzata per le connessioni in uscita con endpoint privati.
  3. Utilizzare il database link creato per accedere ai dati nel database di destinazione.

    Ad esempio:

    SELECT * FROM employees@PRIVATE_ENDPOINT_LINK;
                  
Nota

Per le credenziali create nel Passo 1, le credenziali di Oracle Database, se la password dell'utente di destinazione cambia, è possibile aggiornare la credenziale che contiene le credenziali dell'utente di destinazione come indicato di seguito.
BEGIN
     DBMS_CLOUD.UPDATE_CREDENTIAL (
         credential_name => 'DB_LINK_CRED',
         attribute => 'PASSWORD',
         value => 'password');
END;
/

Dove password corrisponde alla nuova password.

Dopo questa operazione, i database link esistenti che utilizzano questa credenziale continuano a funzionare senza dover eliminare e ricreare i database link.

Per ulteriori informazioni, vedere CREATE_DATABASE_LINK Procedure.

Creare database link da Autonomous Database ai database Oracle in un endpoint privato con wallet (mTLS)

È possibile creare database link da un'istanza di Autonomous Database a un database Oracle di destinazione che si trova su un endpoint privato.

Nota

Questa opzione è valida per i database Oracle di destinazione per i quali è configurato SSL/TCPS e che si trovano in un endpoint privato.

Se nel database Oracle di destinazione non è configurato SSL/TCPS, sono disponibili due opzioni:

Eseguire i passi dei prerequisiti, se necessario. Per i dettagli, vedere Prerequisiti per i database link da Autonomous Database a un Autonomous Database di destinazione in un endpoint privato.

Per creare un database link a un database Oracle di destinazione su un endpoint privato utilizzando TCP/IP con autenticazione SSL (TCPS):

  1. Copiare il wallet del database di destinazione, cwallet.sso, contenente i certificati per il database di destinazione nell'area di memorizzazione degli oggetti.
    Nota

    Il file wallet, insieme all'ID utente e alla password del database, fornisce l'accesso ai dati nel database Oracle di destinazione. Memorizzare i file wallet in una posizione sicura. Condividere i file wallet solo con utenti autorizzati.
  2. Creare le credenziali per accedere all'area di memorizzazione degli oggetti in cui si memorizza cwallet.sso. Per informazioni sui parametri di nome utente e password per diversi servizi di storage degli oggetti, vedere CREATE_CREDENTIAL Procedure.
  3. Creare una directory in Autonomous Database per il file wallet cwallet.sso.

    Ad esempio:

    CREATE DIRECTORY wallet_dir AS 'directory_path_of_your_choice';
                  

    Per informazioni sulla creazione di directory, vedere Crea directory in Autonomous Database.

  4. Utilizzare DBMS_CLOUD.GET_OBJECT per caricare il wallet del database di destinazione nella directory creata nel passo precedente, WALLET_DIR.

    Ad esempio:

    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 questo esempio, namespace-string è lo spazio di nomi dello storage degli oggetti Oracle Cloud Infrastructure e bucketname è il nome del bucket. Per ulteriori informazioni, vedere Informazioni sugli spazi di nomi dello storage degli oggetti.

    Nota

    Il credential_name utilizzato in questo passo è costituito dalle credenziali per l'area di memorizzazione degli oggetti. Nel passo successivo si creano le credenziali per accedere al database di destinazione.
  5. In Autonomous Database creare le credenziali per accedere al database di destinazione. Le credenziali username e password specificate con DBMS_CLOUD.CREATE_CREDENTIAL sono le credenziali per il database di destinazione utilizzato all'interno del database link, in cui è possibile accedere al database di destinazione tramite la VCN.
    Nota

    È necessario specificare il parametro credential_name.

    Ad esempio:

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

    I caratteri del parametro username devono essere tutte lettere maiuscole.

    Nota

    È possibile utilizzare una credenziale segreta del vault per la credenziale del database di destinazione in un database link. Per ulteriori informazioni, vedere Usa credenziali segrete vault.

    Questa operazione memorizza le credenziali nel database in un formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale.

  6. Creare il database link al database di destinazione utilizzando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Ad esempio:

    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;
    /
    Nota

    Se si imposta ROUTE_OUTBOUND_CONNECTIONS su PRIVATE_ENDPOINT, l'impostazione del parametro private_target su TRUE non è obbligatoria in questa API. Per ulteriori informazioni, vedere Sicurezza avanzata per le connessioni in uscita con endpoint privati.

    Per una destinazione su un endpoint privato, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK supporta la specifica di un singolo nome host con il parametro hostname. In un endpoint privato, l'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN non è supportato (quando la destinazione si trova su un endpoint pubblico, CREATE_DATABASE_LINK supporta l'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN).

    Quando la destinazione è un database Oracle RAC, utilizzare il parametro rac_hostnames per specificare uno o più nomi host con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Ciò consente di sfruttare le funzionalità di alta disponibilità di Oracle RAC. L'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN nel valore rac_hostnames non è supportato.

    Ad esempio, con un database Oracle RAC di destinazione utilizzare il parametro 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 non supporta il valore localhost per hostname o nel parametro rac_hostnames.

    Gli utenti diversi da ADMIN richiedono privilegi per eseguire DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

  7. Utilizzare il database link creato per accedere ai dati nel database di destinazione.

    Ad esempio:

    SELECT * FROM employees@PEDBLINK1;
                  
Nota

Per le credenziali create nel Passo 5, le credenziali di Oracle Database, se la password dell'utente di destinazione viene modificata, è possibile aggiornare la credenziale che contiene le credenziali dell'utente di destinazione come indicato di seguito.
BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
        credential_name => 'DB_LINK_CRED',
        attribute => 'PASSWORD',
        value => 'password');
END;
/

Dove password corrisponde alla nuova password.

Dopo questa operazione, i database link esistenti che utilizzano questa credenziale continuano a funzionare senza dover eliminare e ricreare i database link.

Per ulteriori informazioni, vedere CREATE_DATABASE_LINK Procedure.

Database Link Notes con Oracle Database di destinazione

Fornisce note per la creazione di collegamenti al database a un database Oracle di destinazione (quando la destinazione non è un Autonomous Database)

Note per i collegamenti al database ad altri database Oracle:

  • Se stai utilizzando i database link tra Autonomous Database e altri database Oracle, potrebbe essere necessario applicare la patch 33843368 su Oracle Database che non è un Autonomous Database. Ciò si applica ai casi in cui l'istanza di Autonomous Database è l'origine o la destinazione del database link.

    Per ulteriori dettagli, consultare la Knowledge Base di My Oracle Support: Requisito di patch per i database link tra ADB-S e altri database Oracle (ID documento 2874244.1).

  • Un solo file wallet è valido per ogni directory da utilizzare con i database link. È possibile caricare un solo file cwallet.sso alla volta nella directory scelta per i file wallet, ad esempio DBLINK_WALLET_DIR. Ciò significa che con un cwallet.sso in DBLINK_WALLET_DIR è possibile creare solo database link ai database per i quali il wallet in tale directory è valido. Per utilizzare più file cwallet.sso con database link è necessario creare directory aggiuntive e inserire ogni file cwallet.sso in una directory diversa. Quando si creano database link con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK, specificare la directory che contiene il wallet con il parametro directory_name.

    Per informazioni sulla creazione di directory, vedere Crea directory in Autonomous Database.

  • Le versioni di database Oracle di destinazione supportate per i database link a un altro Oracle Database sono: 19c, 12.2.0 e 12.1.0.

  • Autonomous Database imposta il parametro SEC_CASE_SENSITIVE_LOGON su true e questo valore non può essere modificato. Se il database di destinazione non è un Autonomous Database, è necessario impostare il parametro SEC_CASE_SENSITIVE_LOGON su true nel database di destinazione. Se SEC_CASE_SENSITIVE_LOGON è impostato su false nel database di destinazione, viene generato l'errore ORA-28040: No matching authentication protocol.

  • Per elencare i database link, utilizzare la vista ALL_DB_LINKS. Per ulteriori informazioni, vedere ALL_DB_LINKS.

  • Il file wallet, insieme all'ID utente e alla password del database, fornisce l'accesso ai dati nel database Oracle di destinazione. Memorizzare i file wallet in una posizione sicura. Condividere i file wallet solo con utenti autorizzati.

  • Quando l'istanza di Autonomous Database si trova su un endpoint privato, sono disponibili due opzioni per specificare il database di destinazione: utilizzare il parametro hostname o il parametro rac_hostnames:

    • Per una destinazione su un endpoint privato, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK supporta la specifica di un singolo nome host con il parametro hostname. In un endpoint privato, l'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN non è supportato (quando la destinazione si trova su un endpoint pubblico, CREATE_DATABASE_LINK supporta l'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN).

    • Quando la destinazione è un database Oracle RAC, utilizzare il parametro rac_hostnames per specificare uno o più nomi host con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Ciò consente di sfruttare le funzionalità di alta disponibilità di Oracle RAC. L'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN nel valore rac_hostnames non è supportato.

      Quando si specifica un elenco di nomi host nel parametro rac_hostnames, CREATE_DATABASE_LINK utilizza tutti i nomi host specificati come indirizzi nella stringa di connessione. Se uno degli host specificati non è disponibile nel database Oracle RAC di destinazione, Autonomous Database tenta automaticamente di connettersi utilizzando un altro nome host dalla lista.
    • DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK non supporta il valore localhost per hostname o nel parametro rac_hostnames.

  • Quando private_target => TRUE, la creazione di database link cross-realm, in cui il database di origine e il database di destinazione si trovano in realm diversi di Oracle Cloud Infrastructure, non è supportata.