Connessione a un'istanza dell'infrastruttura Exadata Cloud

Questo argomento spiega come connettersi a un'istanza dell'infrastruttura Exadata Cloud utilizzando SSH o SQL Developer.

La modalità di connessione dipende dall'impostazione della rete cloud. È possibile trovare informazioni su vari scenari di rete in Panoramica di rete, ma per suggerimenti specifici su come connettersi a un database nel cloud, contattare l'amministratore della sicurezza di rete.

Nota

I server dell'infrastruttura Exadata Cloud non possono essere uniti ai domini Active Directory e il servizio non supporta l'uso di Active Directory per l'autenticazione e l'autorizzazione degli utenti.

Prerequisiti

Lista dei requisiti per l'accesso SSH a un nodo di calcolo in un'istanza dell'infrastruttura Exadata Cloud.

Avrai bisogno di:

  • Il percorso completo del file che contiene la chiave privata associata alla chiave pubblica utilizzata all'avvio del sistema.

  • Indirizzo IP pubblico o privato dell'istanza dell'infrastruttura Exadata Cloud.

    Utilizzare l'indirizzo IP privato per connettersi al sistema dalla rete on premise o dalla rete cloud virtuale (VCN, Virtual Cloud Network). È inclusa la connessione da un host situato in locale che si connette tramite una VPN o FastConnect alla VCN o da un altro host nella stessa VCN. Utilizza l'indirizzo IP pubblico per connetterti al sistema dall'esterno del cloud (senza VPN). Puoi trovare gli indirizzi IP in Oracle Cloud InfrastructureConsole come indicato di seguito:

    • Cluster VM cloud (nuovo modello di risorse): nella pagina Dettagli cluster VM Exadata, fare clic su Virtual Machine nella lista Risorse.
    • Sistemi DB: nella pagina Dettagli sistema DB, fare clic su Nodi nella lista Risorse.

    I valori vengono visualizzati nelle colonne Indirizzo IP pubblico e Indirizzo IP privato e nome DNS della tabella che visualizzano le Virtual Machine o i nodi dell'istanza dell'infrastruttura Exadata Cloud.

Impostazione porta listener SCAN

Quando si crea un cluster VM cloud, è possibile designare un numero di porta del listener SCAN diverso.

La porta listener SCAN predefinita per i cluster VM cloud è 1521. Quando si utilizza la console Per creare una risorsa cluster VM cloud, è possibile designare un numero di porta listener SCAN diverso. Questa opzione viene visualizzata nella console OCI in Opzioni avanzate durante la creazione del cluster.

Nota

La modifica manuale della porta del listener SCAN di un cluster VM dopo il provisioning mediante il software backend non è supportata. Questa modifica può impedire il provisioning di Data Guard.

Connessione a una virtual machine con SSH

È possibile connettersi alle virtual machine in un sistema di infrastruttura Exadata Cloud utilizzando una connessione Secure Shell (SSH).

La maggior parte dei sistemi di tipo Unix (inclusi Linux, Oracle Solaris e macOS) include un client SSH. Per i sistemi Microsoft Windows, è possibile scaricare un client SSH gratuito denominato PuTTY dal seguente sito: "http://www.putty.org".

Argomenti correlati

Connessione da un sistema Unix-Style

Per accedere a una virtual machine su un sistema ExaDB-D Oracle da un sistema di tipo Unix che utilizza SSH, attenersi alla procedura riportata di seguito.

  • Immettere il seguente comando SSH per accedere alla virtual machine:
    ssh –i private-key user@node

    Nella sintassi precedente:

    • private-key è il percorso completo e il nome del file che contiene la chiave privata SSH che corrisponde a una chiave pubblica registrata nel sistema.
    • user è l'utente del sistema operativo che si desidera utilizzare per la connessione:
      • Per eseguire operazioni come proprietario del software Oracle Database, connettersi come opc e su oracle. L'utente oracle non dispone dell'accesso utente root alla virtual machine.
      • Per eseguire operazioni che richiedono l'accesso root alla virtual machine, ad esempio l'applicazione di patch, connettersi come opc. L'utente opc può utilizzare il comando sudo -s per ottenere l'accesso root alla virtual machine.
    • node indica il nome host o l'indirizzo IP della virtual machine a cui si desidera accedere.

Connessione a una Virtual Machine da un sistema Microsoft Windows mediante PuTTY

Impara ad accedere a una virtual machine da un sistema Microsoft Windows utilizzando PuTTY.

Prima di iniziare

Prima di utilizzare il programma PuTTY per connettersi a una macchina virtuale, è necessario quanto segue:
  • L'indirizzo IP della virtual machine

  • File della chiave privata SSH che corrisponde alla chiave pubblica associata alla distribuzione. Questo file di chiavi private deve essere in formato PuTTY .ppk. Se il file di chiave privata è stato originariamente creato sulla piattaforma Linux, è possibile utilizzare il programma PuTTYgen per convertirlo nel formato .ppk.

Per connettersi a una macchina virtuale utilizzando il programma PuTTY in Windows:

  1. Scaricare e installare PuTTY.

    Per scaricare PuTTY, andare a http://www.putty.org/ e fare clic sul collegamento È possibile scaricare PuTTY qui.

  2. Eseguire il programma PuTTY (putty.exe).

    Viene visualizzata la finestra Configurazione PuTTY, che mostra il pannello Sessione.

  3. Nel campo Nome host (o indirizzo IP), immettere il nome host o l'indirizzo IP della virtual machine a cui si desidera accedere.
  4. Verificare che l'opzione Tipo di connessione sia impostata su SSH.
  5. Nella struttura ad albero Categoria espandere Connessione, se necessario, quindi fare clic su Dati.

    Viene visualizzato il pannello Dati.

  6. Nel campo Nome utente login automatico, immettere l'utente del sistema operativo che si desidera connettere come:
    1. Connettersi come utente opc per eseguire operazioni che richiedono l'accesso root o oracle alla virtual machine, quali ad esempio l'esecuzione di backup o l'applicazione di patch; questo utente può utilizzare il comando sudo per ottenere l'accesso root o oracle alla VM.
  7. Verificare che l'opzione Quando il nome utente non viene specificato sia impostata su Richiedi.
  8. Nella struttura ad albero Categoria espandere SSH, quindi fare clic su Autore.

    Viene visualizzato il pannello Autore.

  9. Fare clic sul pulsante Sfoglia accanto al campo File di chiavi private per l'autenticazione. Quindi, nella finestra Seleziona file di chiavi private, individuare e aprire il file di chiavi private che corrisponde alla chiave pubblica associata alla distribuzione.
  10. Nella struttura ad albero Categoria fare clic su Sessione.

    Viene visualizzato il pannello Sessione.

  11. Nel campo Sessioni salvate, immettere un nome per la configurazione di connessione. quindi fare clic su Salva.
  12. Fare clic su Apri per aprire la connessione.

    La finestra di configurazione PuTTY si chiude e viene visualizzata la finestra del terminale PuTTY.

    Se questa è la prima volta che ci si connette alla VM, viene visualizzata la finestra Avviso di sicurezza PuTTY, in cui viene richiesto di confermare la chiave pubblica. Fare clic su per continuare la connessione.

Accesso a un database dopo la connessione alla Virtual Machine

Dopo aver eseguito la connessione a una virtual machine, è possibile utilizzare la serie di comandi riportata di seguito per identificare un database e connettersi ad esso.

  1. SSH come utente opc.
  2. sudo su oracle
  3. Utilizzare la utility srvctl situata nella directory home di Oracle Grid Infrastructure per elencare i database nel sistema. Ad esempio:
    /u01/app/12.2.0.1/grid/bin/srvctl config database -v
    nc122   /u02/app/oracle/product/12.2.0/dbhome_6 12.2.0.1.0
    s12c    /u02/app/oracle/product/12.2.0/dbhome_2 12.2.0.1.0
  4. Identificare le istanze di database per il database a cui si desidera accedere. Ad esempio:
    /u01/app/12.2.0.1/grid/bin/srvctl status database -d s12c
    Instance s12c1 is running on node node01
    Instance s12c2 is running on node node02
  5. Configurare le impostazioni di ambiente per il database a cui si desidera accedere. Ad esempio:
    . oraenv
    ORACLE_SID = [oracle] ? s12c
    The Oracle base has been set to /u02/app/oracle
    export ORACLE_SID=s12c1
  6. È possibile utilizzare il comando svrctl per visualizzare informazioni più dettagliate sul database. Ad esempio:
    srvctl config database -d s12c
    Database unique name: s12c
    Database name:
    Oracle home: /u02/app/oracle/product/12.2.0/dbhome_2
    Oracle user: oracle
    Spfile: +DATAC4/s12c/spfiles12c.ora
    Password file: +DATAC4/s12c/PASSWORD/passwd
    Domain: example.com
    Start options: open
    Stop options: immediate
    Database role: PRIMARY
    Management policy: AUTOMATIC
    Server pools:
    Disk Groups: DATAC4
    Mount point paths:
    Services:
    Type: RAC
    Start concurrency:
    Stop concurrency:
    OSDBA group: dba
    OSOPER group: racoper
    Database instances: s12c1,s12c2
    Configured nodes: node01,node02
    CSS critical: no
    CPU count: 0
    Memory target: 0
    Maximum memory: 0
    Default network number for database services:
    Database is administrator managed
  7. È possibile accedere al database utilizzando SQL*Plus. Ad esempio:
    sqlplus / as sysdba
    
    SQL*Plus: Release 12.2.0.1.0 Production ...
    
    Copyright (c) 1982, 2016, Oracle.  All rights reserved.
    
    Connected to:
    Oracle Database 12c EE Extreme Perf Release 12.2.0.1.0 - 64bit Production

Utilizzo di Oracle Net Services per connettersi a un database

Oracle Database Exadata Cloud Infrastructure supporta l'accesso remoto al database utilizzando Oracle Net Services.

Poiché Exadata Cloud Infrastructure utilizza Oracle Grid Infrastructure, è possibile creare connessioni Oracle Net Services utilizzando le connessioni Single Client Access Name (SCAN). SCAN è una funzione che fornisce un meccanismo coerente per consentire ai client di accedere alle istanze di Oracle Database in esecuzione in un cluster.

Per impostazione predefinita, SCAN è associato a tre indirizzi IP virtuali (VIP). Ogni VIP SCAN è inoltre associato a un listener SCAN che fornisce un endpoint di connessione per le connessioni a Oracle Database utilizzando Oracle Net Services. Per massimizzare la disponibilità, Oracle Grid Infrastructure distribuisce i VIP SCAN e i listener SCAN nei nodi cluster disponibili. Inoltre, se si verifica una chiusura o un errore del nodo, viene eseguita automaticamente la migrazione dei VIP SCAN e dei listener SCAN in un nodo rimasto. L'uso delle connessioni SCAN consente di migliorare la capacità dei client Oracle Database di disporre di un set affidabile di endpoint di connessione in grado di servire tutti i database in esecuzione nel cluster.

I listener SCAN si aggiungono ai listener Oracle Net eseguiti su ogni nodo del cluster, noti anche come listener dei nodi. Quando una connessione Oracle Net Services viene eseguita tramite una connessione SCAN, il listener SCAN instrada la connessione a uno dei listener dei nodi e non svolge alcuna ulteriore parte nella connessione. Una combinazione di fattori, tra cui la disponibilità del listener, il posizionamento delle istanze di database e la distribuzione del carico di lavoro, determina quale listener di nodi riceve ogni connessione.

Nota

Questa documentazione fornisce i requisiti di base per la connessione ai database dell'infrastruttura Exadata Cloud utilizzando Oracle Net Services.

Prerequisiti per la connessione a un database con Oracle Net Services

Rivedere i prerequisiti per connettersi a un'istanza di Oracle Database in Oracle ExaDB-D utilizzando Oracle Net Services.

Per connettersi a un'infrastruttura Oracle Database on Exadata Cloud con Oracle Net Services, sono necessari gli elementi riportati di seguito.
  • Gli indirizzi IP dei VIP SCAN o il nome host o l'indirizzo IP di una virtual machine che ospita il database a cui si desidera accedere.
  • L'identificativo di database: l'identificativo di sistema (SID) del database o un nome di servizio.

Connessione a un database con SQL Developer

È possibile connettersi a un database con SQL Developer utilizzando uno dei metodi riportati di seguito.

  • Creare un tunnel SSH temporaneo dal computer al database. Questo metodo fornisce l'accesso solo per la durata del tunnel. Al termine dell'utilizzo del database, assicurarsi di chiudere il tunnel SSH uscendo dalla sessione SSH.
  • Aprire la porta utilizzata come listener SCAN Oracle aggiornando la lista di sicurezza utilizzata per il cluster VM cloud o la risorsa del sistema DB nell'istanza di Exadata Cloud Service. La porta predefinita del listener SCAN è 1521. Questo metodo garantisce un accesso più duraturo al database. Per ulteriori informazioni, vedere Aggiornamento della lista di sicurezza.

Dopo aver creato un tunnel SSH o aperto la porta del listener SCAN come descritto in precedenza, puoi connetterti a un'istanza dell'infrastruttura Exadata Cloud utilizzando gli indirizzi IP SCAN o gli indirizzi IP pubblici, a seconda di come viene impostata la rete e da dove ti stai connettendo. È possibile trovare gli indirizzi IP nella console nella pagina dei dettagli del database.

Per connettersi utilizzando gli indirizzi IP SCAN

È possibile connettersi al database utilizzando gli indirizzi IP SCAN se il client è in locale e si sta eseguendo la connessione utilizzando una connessione VPN FastConnect o da sito a sito.

Sono disponibili le opzioni riportate di seguito.
  • Utilizzare gli indirizzi IP SCAN privati, come mostrato nell'esempio tnsnames.ora riportato di seguito.

    testdb=
      (DESCRIPTION =
        (ADDRESS_LIST=
          (ADDRESS = (PROTOCOL = TCP)(HOST = <scanIP1>)(PORT = 1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = <scanIP2>)(PORT = 1521)))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = <dbservice.subnetname.dbvcn.oraclevcn.com>)
        )
      )
  • Definire un nome SCAN esterno nel server DNS in locale. L'applicazione può risolvere questo nome SCAN esterno con gli indirizzi IP SCAN privati del sistema DB e quindi può utilizzare una stringa di connessione che include il nome SCAN esterno. Nell'esempio tnsnames.ora riportato di seguito, extscanname.example.com è definito nel server DNS in locale.

    testdb =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = <extscanname.example.com>)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = <dbservice.subnetname.dbvcn.oraclevcn.com>)
        )
      )
Per connettersi utilizzando indirizzi IP pubblici

È possibile utilizzare l'indirizzo IP pubblico del nodo per connettersi al database se il client e il database si trovano in VCN diverse o se il database si trova in una VCN con un gateway Internet.

Tuttavia, ci sono importanti implicazioni da considerare:

  • Quando il client utilizza l'indirizzo IP pubblico, il client ignora il listener SCAN e raggiunge il listener del nodo, in modo che il bilanciamento del carico lato server non sia disponibile.
  • Quando il client utilizza l'indirizzo IP pubblico, non può usufruire della funzione di failover VIP. Se un nodo non è più disponibile, i nuovi tentativi di connessione al nodo si bloccheranno fino a quando non si verifica un timeout TCP/IP. È possibile impostare i parametri sqlnet lato client per limitare il timeout TCP/IP.

L'esempio tnsnames.ora riportato di seguito mostra una stringa di connessione che include il parametro CONNECT_TIMEOUT per evitare i timeout TCP/IP.

test=
  (DESCRIPTION =
    (CONNECT_TIMEOUT=60)
    (ADDRESS_LIST=
      (ADDRESS = (PROTOCOL = TCP)(HOST = <publicIP1>)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = <publicIP2>)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = <dbservice.subnetname.dbvcn.oraclevcn.com>)
    )
  )

Connessione a un database mediante SCAN

Per creare una connessione Oracle Net Services utilizzando i listener SCAN, è possibile scegliere tra due approcci.

Connessione a un database mediante un descrittore di connessione che fa riferimento a tutti i VIP SCAN

È possibile impostare un descrittore di connessione per il sistema Oracle Exadata Database Service on Dedicated Infrastructure utilizzando più listener SCAN.

Questo approccio richiede di fornire tutti gli indirizzi VIP (Virtual IP) SCAN (Single Client Access Name) e consente a Oracle Net Services di connettersi a un listener SCAN disponibile.

  1. Utilizzare il seguente modello per definire un alias di Net Services, che in genere viene utilizzato per fornire un nome conveniente per il descrittore di connessione:
    alias-name = (DESCRIPTION=
      (ADDRESS_LIST=
        (ADDRESS=(PROTOCOL=tcp)(HOST=SCAN-VIP-1)(PORT=1521))
        (ADDRESS=(PROTOCOL=tcp)(HOST=SCAN-VIP-2)(PORT=1521))
        (ADDRESS=(PROTOCOL=tcp)(HOST=SCAN-VIP-3)(PORT=1521)))
      (CONNECT_DATA=(sid-or-service-entry)))

    Dove:

    alias-name è il nome utilizzato per identificare l'alias.

    SCAN-VIP-[1–3] sono gli indirizzi IP per i VIP SCAN.

    sid-or-service-entry identifica il SID del database o il nome del servizio utilizzando uno dei seguenti formati:
    • SID=sid-name. Ad esempio: SID=S12C1.
    • SERVICE_NAME=service-name. Ad esempio: SERVICE_NAME=PDB1.example.yourcloud.com.
    Nota

    Per impostazione predefinita, Oracle Net Services seleziona in modo casuale uno degli indirizzi nella lista di indirizzi per bilanciare il carico tra i listener SCAN.

Connessione a un database Utilizzare un descrittore di connessione che fa riferimento a un nome SCAN personalizzato

È possibile impostare un descrittore di connessione per il sistema Oracle Exadata Database Service on Dedicated Infrastructure utilizzando un nome SCAN personalizzato.

Utilizzando questo approccio, si definisce un nome SCAN (Single Client Access Name) personalizzato nel server dei nomi di dominio (DNS), che viene risolto nei tre indirizzi IP virtuali SCAN (VIP).

  1. Utilizzare il seguente modello per definire un alias di Net Services che faccia riferimento al nome SCAN personalizzato:
    alias-name = (DESCRIPTION=
      (ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=scan-name)(PORT=1521)))
      (CONNECT_DATA=(sid-or-service-entry)))

    Dove:

    alias-name è il nome utilizzato per identificare l'alias.

    scan-name è il nome SCAN personalizzato.

    sid-or-service-entry identifica il SID del database o il nome del servizio utilizzando uno dei seguenti formati:
    • SID=sid-name. Ad esempio: SID=S12C1.
    • SERVICE_NAME=service-name. Ad esempio: SERVICE_NAME=PDB1.example.yourcloud.com.
    In alternativa, è possibile utilizzare il metodo di connessione semplice per specificare un descrittore di connessione con il formato seguente:
    scan-name:1521/sid-or-service-entry
    Ad esempio:
    exa1scan.example.com:1521/S12C1
    oppure
    exa1scan.example.com:1521/PDB1.example.yourcloud.com

Connessione a un database mediante un listener di nodi

Per connettersi a un'istanza di Oracle Database nell'infrastruttura Exadata Cloud con un descrittore di connessione che ignora i listener SCAN, utilizzare questa procedura per instradare la connessione direttamente a un listener dei nodi.

Utilizzando questo metodo, si rinuncia all'alta disponibilità e al bilanciamento del carico forniti da SCAN. Tuttavia, questo metodo potrebbe essere auspicabile se si desidera indirizzare le connessioni a un nodo o a un'interfaccia di rete specifica. Ad esempio, è possibile assicurarsi che le connessioni da un programma che esegue il caricamento di massa dei dati utilizzino la rete di backup.

Questo approccio consente di indirizzare la connessione utilizzando il nome host o l'indirizzo IP del nodo.

Esempio 4-2 Definizione di un alias di servizio di rete che fa riferimento direttamente al nodo

alias-name = (DESCRIPTION=
  (CONNECT_TIMEOUT=timeout)					
  (ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=node)(PORT=1521)))
  (CONNECT_DATA=(sid-or-service-entry)))

Dove:

alias-name è il nome utilizzato per identificare l'alias.

timeout specifica un periodo di timeout (in secondi), che consente di terminare un tentativo di connessione senza dover attendere un timeout TCP. Il parametro (CONNECT_TIMEOUT=timeout) è facoltativo.

node è il nome host o l'indirizzo IP della virtual machine che si desidera utilizzare.

sid-or-service-entry identifica il SID del database o il nome del servizio utilizzando uno dei seguenti formati:
  • SID=sid-name. Ad esempio, SID=S12C1.
  • SERVICE_NAME=service-name. Ad esempio, SERVICE_NAME=PDB1.example.oraclecloudatcust.com.
In alternativa, è possibile utilizzare il metodo di connessione semplice per specificare un descrittore di connessione con il formato seguente:
node:1521/sid-or-service-entry
Ad esempio:
exa1node01.example.com:1521/S12C1
O
exa1node01.example.com:1521/PDB1.example.oraclecloudatcust.com