Creare database link da un Autonomous AI Database a un Oracle Database su un endpoint privato
È possibile creare database link da un Autonomous AI Database a un Oracle Database di destinazione che si trova su un endpoint privato.
Nota: i collegamenti al database da un database Oracle di destinazione che si trova su un endpoint privato sono supportati solo nelle aree commerciali e nelle aree governative degli Stati Uniti. Questa funzione è abilitata per impostazione predefinita in tutte le aree commerciali. Questa funzione è abilitata per impostazione predefinita nelle aree del governo degli Stati Uniti per i nuovi database di cui è stato eseguito il provisioning. Per i database esistenti del governo degli Stati Uniti su un endpoint privato, se si desidera creare collegamenti di database da un Autonomous AI Database a una destinazione in un'area del governo degli Stati Uniti, è possibile presentare una richiesta di servizio all'indirizzo Oracle Cloud Support e richiedere di abilitare l'endpoint privato nella funzione di collegamento al database delle aree governative. Le regioni del governo degli Stati Uniti includono quanto segue:
A seconda del tipo e della configurazione del database Oracle di destinazione:
-
Altro Oracle Database, ad esempio in locale o in un database Database Cloud Service, su un endpoint privato configurato per SSL (TCPS): in questo caso è possibile creare il database link con un wallet e il database link comunica con TCPS. Per i dettagli, vedere Create Database Links from Autonomous AI Database to Oracle Databases on a Private Endpoint with a Wallet (mTLS).
-
Oracle Database, ad esempio in locale o in un database Database Cloud Service, su un endpoint privato configurato per TCP: in questo caso, si crea il database link senza un wallet e il database link comunica con TCP. Per informazioni dettagliate, vedere Creare database link a database Oracle in un endpoint privato senza wallet.
Prerequisiti per i database link da Autonomous AI Database AI database Oracle in un endpoint privato
Elenca i prerequisiti per creare database link da un Autonomous AI Database a un database Oracle di destinazione che si trova in 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
hostnameo il parametrorac_hostnames:-
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). -
Quando la destinazione è un database Oracle RAC, utilizzare il parametro
rac_hostnamesper specificare uno o più nomi host conDBMS_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 valorerac_hostnamesnon è supportato.Quando si specifica un elenco di nomi host nel parametro
rac_hostnames,CREATE_DATABASE_LINKutilizza 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.
-
Creare database link ai database Oracle in un endpoint privato senza wallet
Utilizzare DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK per creare database link da un Autonomous AI 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 in 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 AI Database AI database Oracle 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:
-
In Autonomous AI Database creare le credenziali per accedere al database di destinazione. Le credenziali
usernameepasswordspecificate conDBMS_CLOUD.CREATE_CREDENTIALsono 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
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 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_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).Quando la destinazione è un database Oracle RAC, utilizzare il parametro
rac_hostnamesper specificare uno o più nomi host conDBMS_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 valorerac_hostnamesnon è 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_LINKnon supporta il valorelocalhostper il parametrohostnameo nel parametrorac_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_LINKa 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_namedeve essereNULL. -
Il parametro
ssl_server_cert_dndeve essereNULL. -
Il parametro
private_targetdeve essereTRUE.
-
-
Utilizzare il database link creato per accedere ai dati nel database di destinazione.
Ad esempio:
SELECT * FROM employees@PRIVATE_ENDPOINT_LINK;
Per le credenziali create nel Passo 1, 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 la procedura CREATE_DATABASE_LINK.
Creare database link da Autonomous AI Database AI database Oracle in un endpoint privato con un wallet (mTLS)
È possibile creare database link da un Autonomous AI 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:
-
È possibile configurare il database Oracle di destinazione in modo che utilizzi l'autenticazione TCP/IP con SSL (TCPS). Per informazioni sulla configurazione di SSL/TCPS, vedere Configuring Transport Layer Security Authentication in Oracle Database 19c Security Guide o Oracle Database 26ai Security Guide.
-
È possibile connettersi al database Oracle di destinazione con TCP. Per informazioni dettagliate, vedere Creare database link a database Oracle in un endpoint privato senza wallet.
Eseguire i passi dei prerequisiti, se necessario. Per i dettagli, vedere Prerequisiti per i database link da Autonomous AI Database AI database Oracle 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):
-
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.
-
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 Procedura CREDENTIAL. -
Creare una directory in Autonomous AI 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 AI Database.
-
Utilizzare
DBMS_CLOUD.GET_OBJECTper 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 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 database di destinazione. -
In Autonomous AI Database creare le credenziali per accedere al database di destinazione. Le credenziali
usernameepasswordspecificate conDBMS_CLOUD.CREATE_CREDENTIALsono 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
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 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; /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).Quando la destinazione è un database Oracle RAC, utilizzare il parametro
rac_hostnamesper specificare uno o più nomi host conDBMS_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 valorerac_hostnamesnon è 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_LINKnon supporta il valorelocalhostperhostnameo nel parametrorac_hostnames.Gli utenti diversi da ADMIN richiedono privilegi per eseguire
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. -
Utilizzare il database link creato per accedere ai dati nel database di destinazione.
Ad esempio:
``sql SELECT * DA impiegati@PEDBLINK1;
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 la procedura CREATE_DATABASE_LINK.
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 AI Database)
Note per i collegamenti al database ad altri database Oracle:
-
Un solo file wallet è valido per ogni directory da utilizzare con i database link. È possibile caricare un solo file
cwallet.ssoalla volta nella directory scelta per i file wallet, ad esempio DBLINK_WALLET_DIR. Ciò significa che con uncwallet.ssoin DBLINK_WALLET_DIR è possibile creare solo database link ai database per i quali il wallet in tale directory è valido. Per utilizzare più filecwallet.ssocon database link è necessario creare directory aggiuntive e inserire ogni filecwallet.ssoin una directory diversa. Quando si creano database link conDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK, specificare la directory che contiene il wallet con il parametrodirectory_name.Per informazioni sulla creazione di directory, vedere Crea directory in Autonomous AI 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.
Nota: per informazioni complete sulle versioni supportate, vedere Matrice di supporto per l'interoperabilità dei server client per versioni Oracle diverse (ID documento 207303.1)
-
Autonomous AI Database imposta il parametro
SEC_CASE_SENSITIVE_LOGONsutruee questo valore non può essere modificato. Se il database di destinazione non è un Autonomous AI Database, è necessario impostare ` SEC_CASE_SENSITIVE_LOGONparameter totrueon the target database. IfSEC_CASE_SENSITIVE_LOGONis set tofalseon the target database, then errorORA-28040: non viene generato alcun protocollo di autenticazione corrispondente. -
Per elencare i database link, utilizzare la vista
ALL_DB_LINKS. Per ulteriori informazioni, vedere ALL_DB_LINKS in Oracle Database 19c Database Reference o Oracle Database 26ai Database Reference. -
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 AI Database si trova su un endpoint privato, sono disponibili due opzioni per specificare il database di destinazione: utilizzare il parametro
hostnameo il parametrorac_hostnames:-
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). -
Quando la destinazione è un database Oracle RAC, utilizzare il parametro
rac_hostnamesper specificare uno o più nomi host conDBMS_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 valorerac_hostnamesnon è supportato.Quando si specifica un elenco di nomi host nel parametro
rac_hostnames,CREATE_DATABASE_LINKutilizza 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_LINKnon supporta il valorelocalhostperhostnameo nel parametrorac_hostnames.
-