-
Cos’è Oracle Database?
-
Perché è necessario connettersi a Oracle Database?
-
Metodo 1: Connettersi a Oracle utilizzando SQL*Plus
-
Metodo 2: Connessione a Oracle tramite Python
-
Metodo 3: Connessione ai database Oracle tramite SQL Developer
-
Proteggi i tuoi dati con la soluzione Vinchin per il backup aziendale
-
Domande frequenti su come connettersi a un database Oracle
-
Conclusione
Connettersi a un database Oracle è una competenza fondamentale per qualsiasi amministratore IT o sviluppatore. Che tu stia eseguendo query, creando applicazioni o gestendo backup, hai bisogno di un metodo affidabile per accedere ai tuoi dati Oracle. In questa guida esamineremo cos’è Oracle Database — inclusa la sua architettura — perché le connessioni sono fondamentali nelle operazioni quotidiane e come connettersi utilizzando SQL*Plus, Python (oracledb) e SQL Developer.
Cos’è Oracle Database?
Oracle Database è un potente sistema di gestione di basi di dati relazionali (RDBMS) utilizzato a livello mondiale da numerose organizzazioni. Memorizza i dati in tabelle, supporta query complesse tramite blocchi di codice SQL o PL/SQL e offre funzionalità avanzate in materia di sicurezza, scalabilità, elevata disponibilità e prestazioni. Settori quali quello finanziario e sanitario vi fanno affidamento grazie alla sua solida gestione delle transazioni e alle garanzie di tempo di attività.
Panoramica dell’architettura Oracle
Prima di connettersi a un’istanza di database Oracle come amministratore o sviluppatore, è utile comprendere alcuni concetti architettonici fondamentali:
Istanza vs Database: Un'istanza è costituita da strutture di memoria (SGA) e processi in background che gestiscono l’accesso; una database indica i file fisici che memorizzano i dati dell’utente.
Architettura multitenant: Le versioni moderne supportano la multitenancy: un singolo database container (CDB) può ospitare più database plug-in (PDB). Ciascun PDB funziona come un database logico indipendente, ma condivide le risorse con il CDB.
File critici: I file principali includono
SPFILE(file dei parametri del server),CONTROLFILE,REDO LOGSe i file dati, tutti essenziali per le operazioni di avvio e arresto.Comprendere questi concetti fondamentali vi aiuterà a scegliere il metodo di connessione più adatto, soprattutto quando si opera in ambienti che contengono sia SID obsoleti sia nomi di servizio moderni associati a configurazioni CDB/PDB.
Perché è necessario connettersi a Oracle Database?
Connettersi a Oracle Database consente di interagire direttamente con la risorsa più preziosa della tua organizzazione: i dati. Ma perché questo è così importante nelle operazioni quotidiane?
Gli amministratori IT si connettono al database per diversi motivi:
Eseguire backup e verificarne l'integrità: Prima di eseguire il backup di un database o ripristinarlo dopo un incidente, gli amministratori spesso interrogano viste di sistema come V$DATABASE o utilizzano script RMAN.
Monitorare le prestazioni: L'accesso a viste dinamiche come V$SESSION consente di monitorare le sessioni attive degli utenti e individuare eventuali rallentamenti.
Automatizzare le attività: I processi pianificati tramite DBMS_SCHEDULER richiedono una connessione diretta per la configurazione e il monitoraggio.
Gestire utenti e sicurezza: L'assegnazione di ruoli tramite istruzioni SQL, ad esempio GRANT DBA TO user, richiede una sessione autenticata.
Eseguire verifiche di audit e conformità: La revisione delle autorizzazioni assegnate con query come SELECT * FROM DBA_ROLE_PRIVS aiuta a garantire la conformità alle politiche di sicurezza.
Senza connessioni sicure disponibili tramite diversi metodi — strumenti a riga di comando come SQL*Plus per l'automazione e gli script, interfacce grafiche come SQL Developer per la gestione visiva e API come la libreria oracledb di Python per lo sviluppo di applicazioni — il rischio è di subire ritardi durante le finestre di manutenzione o in caso di interruzioni del servizio.
Metodo 1: Connettersi a Oracle utilizzando SQL*Plus
SQL*Plus è il classico strumento a riga di comando di Oracle, incluso in ogni installazione di Oracle Database. È ancora oggi molto utilizzato perché funziona in qualsiasi ambiente, dai server locali agli host remoti accessibili tramite SSH, e supporta l'automazione mediante script e processi batch.
Prima di iniziare, assicurati di avere a disposizione:
Il tuo nome utente e la password.
Per le connessioni remote, richiedi al tuo DBA le seguenti informazioni:
l'indirizzo host o IP; la porta di connessione (generalmente 1521); il Service Name o il SID del database.
Per connettersi utilizzando SQL*Plus:
1. Apri un prompt dei comandi (Windows) o un terminale (Linux).
2. Digitare sqlplus, quindi premere Invio.
3. Al prompt Nome utente, inserisci il tuo nome utente, quindi premi Invio.
4. Al prompt Password, inserisci la tua password e premi quindi Invio.
Per database remoti che utilizzano la sintassi Easy Connect:
sqlplus username/password@hostname:port/service_name
Esempio:
sqlplus hr/yourpassword@dbserver.example.com:1521/XEPDB1
In caso di esito positivo, verrà visualizzato il prompt SQL>, dove è possibile eseguire comandi come:
SELECT * FROM employees;
Digita exit, quindi premi Invio al termine.
Sui sistemi Linux, impostare le variabili di ambiente come ORACLE_HOME e aggiornare la variabile PATH prima di avviare SQL*Plus, se non sono già configurate.
Comprensione degli identificatori di connessione: SID rispetto al nome del servizio
Quando ci si connette tramite strumenti CLI o si configurano applicazioni, si incontreranno due principali identificatori:
SID (Identificatore di sistema): Utilizzato principalmente nelle configurazioni obsolete non multitenant; identifica una specifica istanza su un server.
Nome del servizio: Consigliato oggi; può essere mappato direttamente su un PDB all’interno di un ambiente CDB oppure può fare riferimento anche a database legacy a istanza singola.
La stringa Easy Connect prevede sempre un nome di servizio, non un SID, anche se in alcuni documenti i due termini vengono usati in modo intercambiabile! Se non sei sicuro di quale identificatore utilizzare, chiedi al tuo amministratore di database (DBA).
Utilizzo di TNSNAMES.ORA per semplificare le connessioni
Digitare ogni volta nomi host lunghi diventa rapidamente noioso! Invece, utilizza gli alias definiti nel file locale chiamato TNSNAMES.ORA—solitamente situato nella directory $ORACLE_HOME/network/admin.
Esempio di voce:
hr_alias = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver.example.com)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = XEPDB1) ) )
Ora basta digitare:
sqlplus hr/yourpassword@hr_alias
Questo approccio rende gli script portabili tra diversi ambienti, poiché è sufficiente aggiornare solo il file TNSNAMES, senza dover modificare ogni singolo script.
Metodo 2: Connessione a Oracle tramite Python
Python abilita l’automazione, dai semplici script fino alle applicazioni web complete, e consente una connessione agevole, grazie soprattutto al driver ufficiale oracledb mantenuto direttamente da Oracle.
Installazione delle librerie richieste
Installa il driver più recente:
pip install oracledb
Le guide più vecchie menzionano cx_Oracle; a partire dalla versione 8+, questo è stato integrato in questo pacchetto.
Modalità Thick rispetto a modalità Thin
Esistono due modi in cui Python può comunicare con Oracle:
Modalità avanzata: utilizza le librerie Instant Client installate localmente—necessarie per alcune funzionalità avanzate, ma richiedono una configurazione aggiuntiva.
Modalità Thin: Implementazione in Python puro che non richiede librerie esterne—per la maggior parte dei compiti è più semplice!
Per impostazione predefinita, la modalità thin viene attivata, a meno che non si chiamino funzioni di inizializzazione speciali.
Connessione utilizzando esclusivamente la modalità Thin (senza necessità di Oracle Instant Client)
Ecco come connettersi senza dover installare nulla oltre ai pacchetti Python:
import oracledb
# Nessuna necessità di init_oracle_client(), a meno che non si cambi modalità!
connection = oracledb.connect(
user="hr",
password="yourpassword",
dsn="dbserver.example.com:1521/XEPDB1"
)
cursor = connection.cursor()
cursor.execute("SELECT employee_id FROM employees")
for row in cursor:
print(row)
cursor.close()
connection.close()Se le credenziali sono corrette, vedrai i risultati della query stampati.
Gestione sicura delle credenziali
Non inserire mai le password direttamente negli script! Utilizza invece le variabili d’ambiente:
import os
user = os.getenv("ORACLE_USER")
pwd = os.getenv("ORACLE_PASS")
dsn = "dbserver.example.com:1521/XEPDB1"
connection = oracledb.connect(user=user, password=pwd, dsn=dsn)Raggruppamento delle connessioni e migliori pratiche
Per i carichi di lavoro in produzione — o anche per script amministrativi molto utilizzati — risulta estremamente vantaggioso raggruppare le connessioni anziché aprirle e chiuderle ogni volta:
pool = oracledb.create_pool(
user=os.getenv("ORACLE_USER"),
password=os.getenv("ORACLE_PASS"),
dsn="dbserver.example.com:1521/XEPDB1",
min=2,
max=5,
increment=1
)
with pool.acquire() as conn:
cur = conn.cursor()
cur.execute("SELECT status FROM v$instance")
print(cur.fetchone())
cur.close()
pool.close()Il pooling migliora le prestazioni riducendo al contempo il carico sulle risorse sia sul lato client che su quello server.
Metodo 3: Connessione ai database Oracle tramite SQL Developer
SQL Developer offre un’interfaccia grafica ideale per esplorare visivamente gli schemi oppure eseguire query ad hoc senza dover memorizzare la sintassi della riga di comando.
Inizia lanciando SQL Developer dal menu del desktop (Windows/Linux/MacOS).
Nel riquadro a sinistra, fai clic sull’icona verde con il segno “+” etichettata “Nuova connessione”.
Compila questi campi:
Nome connessione – qualsiasi etichetta desiderata (“HR_PDB”, ecc.)
Nome utente – ad esempio, HR
Password – inserisci in modo sicuro
Sotto “Tipo di connessione”, selezionare “Base”. Quindi fornire:
Nome host – ad esempio, dbserver.example.com
Porta – solitamente 1521
Nome del servizio – ad esempio, XEPDB1
Fare clic su “Test.” Se lo stato visualizzato è “Successo,” fare clic su “Connetti.” La nuova sessione verrà visualizzata nel riquadro Connessioni, pronta per esplorare tabelle/viste o eseguire codice!
Per scollegarsi in un secondo momento, fare clic con il tasto destro su tale voce > Scollega oppure chiudere completamente l’app.
Connessione ai database pluggable (PDB)
Nelle configurazioni multitenant ogni PDB ha un proprio nome di servizio univoco, spesso identico esattamente al nome assegnato (“XEPDB1”, “SALES_PDB”). Verificare sempre il target di destinazione prima di connettersi, in modo che le modifiche non influenzino il contenitore errato!
Utilizzo delle opzioni avanzate di connessione
Hai bisogno di maggiore sicurezza? Molte aziende richiedono tunnel crittografati tra desktop/host intermedi/database:
Esempio di tunnel SSH
Supponiamo che la porta diretta del database non sia esposta esternamente, ma il server jump consenta l’accesso tramite SSH:
Sul computer locale eseguire:
ssh -L 1522:dbserver.internal.net:1521 jumpbox.company.net
Quindi configura l’hostname di SQL Developer come «localhost», la porta come «1522» e il nome del servizio come di consueto: il tunnel inoltra il traffico in modo sicuro!
Sessioni crittografate SSL/TLS
Alcuni siti richiedono collegamenti crittografati end-to-end tramite il protocollo TCPS anziché socket TCP/IP non crittografati: in tal caso, chiedere agli amministratori di database (DBA) informazioni sui certificati/impostazioni richiesti.
Proteggi i tuoi dati con la soluzione Vinchin per il backup aziendale
Dopo aver garantito pratiche sicure di connettività, diventa fondamentale proteggere il contenuto effettivo del tuo database, soprattutto alla luce degli attuali rischi informatici e dei requisiti normativi.
Vinchin si distingue come soluzione professionale di backup a livello aziendale, progettata specificamente per ambienti virtuali e database diffusi, tra cui Oracle, MySQL, SQL Server, MariaDB, PostgreSQL e PostgresPro.
Vinchin Backup & Recovery offre capacità complete di protezione, quali l’integrazione del backup cloud e le opzioni di archiviazione su nastro; il supporto per backup completi, incrementali e dei log — inclusi backup dei log archiviati specificamente progettati per ambienti Oracle e PostgreSQL; l’automazione programmata dei backup insieme a tecnologie di compressione e deduplicazione per risparmiare spazio; la funzionalità di ripristino istantaneo su un nuovo server, nonché opzioni di ripristino in qualsiasi punto nel tempo, laddove supportate; meccanismi avanzati di difesa contro il ransomware — e molto altro ancora.
La sua console web intuitiva semplifica la gestione dei backup in quattro semplici passaggi, personalizzati specificamente per ciascuna piattaforma supportata:
1. Seleziona il tuo database Oracle di destinazione

2. Scegli la posizione o le posizioni di archiviazione

3. Configura le strategie di backup,

4. Invia il lavoro.

Unisciti a migliaia di clienti internazionali che ogni giorno affidano a Vinchin soluzioni altamente valutate: inizia subito a proteggere i tuoi carichi di lavoro critici con la nostra prova gratuita completa di 60 giorni, cliccando qui sotto per scaricare il programma di installazione!
Domande frequenti su come connettersi a un database Oracle
D1: Cosa devo fare se ricevo l’errore ORA‑12514 durante la connessione?
A1: Verificare nuovamente di utilizzare il nome corretto del servizio nella stringa di connessione e assicurarsi che il processo di ascolto sia in esecuzione sul server di destinazione.
D2: Posso connettermi senza installare il software client completo?
A2: Sì, è possibile utilizzare soluzioni leggere come i pacchetti Instant Client (o la modalità “thin” puramente Python tramite “oracledb”), senza dover eseguire installazioni ingombranti.
D3: Come mi connetto da Linux utilizzando l’autenticazione del sistema operativo?
A3: Sudo/Passa all’account Oracle OS, quindi esegui sqlplus /as sysdba al prompt della shell (nessuna password richiesta).
D4: Esiste una differenza quando ci si connette a un database pluggabile (PDB)?
A4: È necessario utilizzare il nome del servizio del PDB (non del CDB) nella stringa di connessione; in genere, il nome del servizio corrisponde al nome del PDB.
Conclusione
Stabilire una connessione sicura al database Oracle è essenziale per gestire, analizzare e proteggere i dati critici. Che tu utilizzi la riga di comando, le API Python o strumenti con interfaccia grafica, ciascun metodo offre vantaggi unici per le tue operazioni quotidiane. Per una protezione affidabile dei backup, Vinchin fornisce funzionalità enterprise di livello professionale, già adottate e apprezzate da organizzazioni globali: prova gratuitamente il prodotto e porta la sicurezza a un livello superiore.
Condividi su: