Creare database link con connettività eterogenea gestita dal cliente a database non Oracle su un endpoint privato
Puoi creare database link da un Autonomous AI Database on Dedicated Exadata Infrastructure a un Oracle Database Gateway per accedere AI database non Oracle che si trovano su un endpoint privato.
Oracle Database Gateway è un gateway progettato per accedere a un sistema non Oracle specifico. Utilizzando Oracle Database Gateway, puoi accedere ai dati ovunque in un sistema di database distribuito senza conoscere la posizione dei dati o il modo in cui vengono memorizzati. L'uso dei database link su Autonomous AI Database con Oracle Database Gateway supporta ambienti eterogenei ed elimina la necessità di personalizzare le applicazioni per accedere AI dati da sistemi non Oracle.
Nota: la creazione di collegamenti al database con connettività eterogenea gestita dal cliente ai database non Oracle su un endpoint privato è supportata solo con le versioni 19.25 e successive per 19c e 23.6 e successive per 23ai.
Prerequisiti
Per utilizzare i database link da un'istanza di Autonomous AI Database su un endpoint pubblico, effettuare le operazioni riportate di seguito.
-
Configurare Oracle Database Gateway per accedere a un database non Oracle. Per ulteriori dettagli, vedere Oracle Database Gateways in Oracle Database 19c Database Heterogeneous Connectivity User's Guide o Oracle Database 26ai Database Heterogeneous Connectivity User's Guide.
A seconda del database a cui si desidera connettersi, è possibile fare riferimento alla Guida all'installazione e alla configurazione corrispondenti e alla Guida per l'utente del gateway.
Ad esempio, per Oracle Database Gateway for SQL Server, vedere:
-
Installazione e configurazione di Oracle Database Gateway for SQL Server in Oracle Database 19c Installation and Configuration Guide for Microsoft Windows o in Oracle Database 26ai Installation and Configuration Guide for Microsoft Windows
-
Introduzione a Oracle Database Gateway for SQL Server in Oracle Database 19c Gateway for SQL Server User's Guide. o Oracle Database 26ai Gateway for SQL Server User's Guide.
-
Configurare Oracle Net per il gateway in Oracle Database 19c Installation and Configuration Guide for Microsoft Windows o in Oracle Database 26ai Installation and Configuration Guide for Microsoft Windows.
-
-
Configurare Oracle Net Listener per gestire le richieste in entrata in Oracle Database Gateway.
-
Creare un wallet con firma automatica in Oracle Database Gateway.
È inoltre possibile eseguire le operazioni descritte 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.
-
Per una destinazione su un endpoint privato,
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKsupporta la specifica di un singolo nome host con il parametrohostname. 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_LINKsupporta l'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN).
-
-
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.
-
Connettività eterogenea gestita dal cliente ai database non Oracle su un endpoint privato (senza wallet)
È possibile creare database link da un Autonomous AI Database a un Oracle Database Gateway per accedere AI database non Oracle che si trovano su un endpoint privato con un wallet (TCPS) o senza un wallet (TLS). Questa sezione descrive la creazione di un database link senza wallet.
Per creare database link da un'istanza di Autonomous AI Database su un endpoint privato a un gateway di destinazione, utilizzando database link e una connessione TLS, effettuare le operazioni riportate di seguito.
-
In Autonomous AI Database, creare le credenziali per accedere al database di destinazione. Il nome utente e la password specificati con
DBMS_CLOUD.CREATE_CREDENTIALsono le credenziali per il database di destinazione utilizzato all'interno del database link (dove si accede al database di destinazione tramite Oracle Database Gateway).Ad esempio:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DB_LINK_CRED', username => 'NICK', password => 'password' ); END;/Specificare il parametro
credential_namecome obbligatorio.I caratteri del parametro
usernamedevono essere tutte lettere maiuscole.Questa operazione memorizza le credenziali nel database in un formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale.
-
Creare il database link al gateway di destinazione utilizzando
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Ad esempio:
BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name => 'SALESLINK', hostname => 'example.com', port => '1522', service_name => 'example_service_name', ssl_server_cert_dn => 'ssl_server_cert_dn', credential_name => 'DB_LINK_CRED', directory_name => NULL, gateway_link => TRUE, private_target => TRUE, gateway_params => NULL ); END;/Il parametro
ssl_server_cert_dnè facoltativo se la connessione viene creata come database link basato su TCP (senza wallet).Quando
directory_nameèNULL, la connessione viene creata come database link basato su TCP (senza wallet).Il parametro
private_targetdeve essere impostato suTRUEquando la destinazione non Oracle Database si trova in un endpoint privato, ovvero il database link accede a un nome host che deve essere risolto in un server DNS VCN. Seprivate_targetèTRUE, il parametrohostnamedeve essere un singolo nome host (su un endpoint privato, che utilizza un indirizzo IP, un IP SCAN o un nome host SCAN non è supportato).Quando
gateway_linkèTRUEegateway_paramsèNULL, viene specificato che il database link è a un gateway Oracle gestito dal cliente.Gli utenti diversi da ADMIN richiedono privilegi per eseguire
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Per ulteriori informazioni, vedere Procedura CREATE_DATABASE_LINK.
-
Utilizzare il database link creato per accedere ai dati sul gateway di destinazione.
Ad esempio:
SELECT * FROM employees@SALESLINK;
Per le credenziali create nel Passo 1, le credenziali di Oracle Database Gateway, 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;
/
La nuova password è la posizione della 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 UPDATE_CREDENTIAL Procedure.
Connettività eterogenea gestita dal cliente ai database non Oracle su un endpoint privato (con un wallet)
È possibile creare database link da un Autonomous AI Database a un Oracle Database Gateway per accedere AI database non Oracle che si trovano su un endpoint privato con un wallet (TCPS) o senza un wallet (TLS). Questa sezione descrive la creazione di un database link con un wallet.
Per creare database link da un'istanza di Autonomous AI Database su un endpoint privato a un gateway di destinazione, in connessione con un wallet, effettuare le operazioni riportate di seguito.
-
Copiare il wallet con firma automatica del gateway di destinazione, ad esempio
cwallet.sso, contenente i certificati per Oracle Database Gateway nell'area di memorizzazione degli oggetti.Il file wallet, insieme all'ID utente e alla password del database, fornisce l'accesso ai dati disponibili tramite il gateway di destinazione. Memorizzare i file wallet in una posizione sicura. Condividere i file wallet solo con utenti autorizzati.
-
In Autonomous AI Database, creare le credenziali per accedere all'area di memorizzazione degli oggetti in cui memorizzare
cwallet.sso.Per informazioni sui parametri di nome utente e password per diversi servizi di storage degli oggetti, vedere Procedura CREDENTIAL.
-
Creare una directory in Autonomous AI 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 Creare directory in Autonomous AI Database.
-
Utilizzare
DBMS_CLOUD.GET_OBJECTper caricare il wallet con firma automatica del gateway 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 ebucketnameè il nome del bucket. Per ulteriori informazioni, vedere Informazioni sugli spazi di nomi dello storage degli oggetti.Nota: il
credential_nameutilizzato in questo passo è costituito dalle credenziali per l'area di memorizzazione degli oggetti. Nel passo successivo si creano le credenziali per accedere al gateway di destinazione. -
In Autonomous AI Database, creare le credenziali per accedere al database di destinazione. Il nome utente e la password specificati con
DBMS_CLOUD.CREATE_CREDENTIALsono le credenziali per il database di destinazione utilizzato all'interno del database link (dove si accede al database di destinazione tramite Oracle Database Gateway).Ad esempio:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name =>'DB_LINK_CRED', username =>'NICK', password =>'password' ); END; /Specificare il parametro
credential_namecome obbligatorio.I caratteri del parametro
usernamedevono essere tutte lettere maiuscole.Questa operazione memorizza le credenziali nel database in un formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale.
-
Creare il database link al gateway di destinazione utilizzando
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Ad esempio:
BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name =>'SALESLINK', hostname =>'example.com', port =>'1522', service_name =>'example_service_name', ssl_server_cert_dn =>'ssl_server_cert_dn', credential_name =>'DB_LINK_CRED', directory_name =>'DBLINK_WALLET_DIR', gateway_link =>TRUE, private_target =>TRUE, gateway_params =>NULL ); END; /Se
directory_namenon èNULL, viene creato un database link basato su TCPS.Il parametro
private_targetdeve essere impostato suTRUEquando la destinazione non Oracle Database si trova in un endpoint privato, ovvero il database link accede a un nome host che deve essere risolto in un server DNS VCN. Seprivate_targetèTRUE, il parametrohostnamedeve essere un singolo nome host (su un endpoint privato, che utilizza un indirizzo IP, un IP SCAN o un nome host SCAN non è supportato).Quando
gateway_linkèTRUEegateway_paramsèNULL, viene specificato che il database link è a un gateway Oracle gestito dal cliente.Gli utenti diversi da ADMIN richiedono privilegi per eseguire
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Per ulteriori informazioni, vedere Procedura CREATE_DATABASE_LINK.
-
Utilizzare il database link creato per accedere ai dati sul gateway di destinazione.
Ad esempio:
SELECT * FROM employees@SALESLINK;
Per le credenziali create nel Passo 5, le credenziali di Oracle Database Gateway, 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;
/
La nuova password è la posizione della 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 UPDATE_CREDENTIAL Procedure.