sql
sql
ORACLE
Difficile lavorare con Oracle – dalla prima versione era già buono, sicuro, sql non tanto. Instance –
l’utente si connetta. RAC: Real Application Cluster: più istance un database (se rompe, si rompe).
Streams: tante istance tante database: tutti gli utenti devono usare gli stessi dati, per questo streams
replica i dati di ogni database una volta che vengono modificati. Ha bisogno di una rete locale di
elevata capacità, minimo usare la fibra. Elevata disponibilità. DATA GUARD: 1 standby, 2
esecuzione.
CARTELLA:dbhomeXE\
CMD
C:\Users\Administrator>sqlplus /nolog
SQL> connect / as sysdba
*Utente tipo amministrativo e quello utente installa oracle: Amministratore sempre sysdba
SQL> sho user → USER Þ "SYS"
sho errors – errori delle procedure
sho sga -
Total System Global Area 645921624 bytes
Fixed Size 9857880 bytes
Variable Size 289406976 bytes
Database Buffers 343932928 bytes
Redo Buffers 2723840 bytes
sho parameters-→ parametri di inizializzazione
archive log list
SQL> SELECT parallel FROM v$instance; stiamo dentro un RAC?
select * from dba_streams_administrator; → stiamo dentro un stream?
→ Nessuna riga selezionata = no
select protection_level from v$database;
PROTECTION_LEVEL
--------------------
UNPROTECTED = non stiamo dentro un data guard
SMON: system monitor viene avviato a inizio serve per localizzare montare validare il controlfile e
poi apre il db.
*ControlFile, senza questo oracle si ferma.
PMON: Process monitor: monitorare i processi di sessione, controlla quello che fanno gli utenti,
risolve problemi di sessione
Redo Log Buffer è sempre 1/3 vuoto: le query sono cosi lunghe che possono occupare piu di 1/3
dello spazio.
shutdown normal
Database chiuso.
NOMOUNT del database eseguito.
Istanza ORACLE chiusa.
Startup
come capire 99% dei problemi? → STARTUP NOMOUNT legge i parametri di inizializzazione e
avvia a distanza, file dei parametri di inizializzazione.
alter database mount; → errore? Controlfile il problema
alter database open; → errore? Apre tutti i quanti tipi file, problema? Tipifile.
SHUTDOWN!!
normal: default: chiude tutte le sezioni prima di spegnere la istanza
transactional: ← più usata: aspetta chiusura delle transazioni in corso, non accetta nuove sezioni,
non accetta nuove query.
Immediate: non accetta nuove connessione e neanche nuove query. Anche quelli non completate,
saranno annullate.
Abort: rimuove tutti i processi, e chiude, non aspetta niente. Come staccare la corrente.
-----------------------------------------------------08/01-----------------------------------------------------------
cd .. – fino ad administrator
sqlplus /nolog
connect / as sysdba
describe hr.employees – con questa tabella capiamo che i dati sono stati importati
estrai sqldeveloper – altra cartella sqldeveloper – copia su desktop tutta la cartella – apre
applicazione sqldeveloper
finestra inutile – NO
apre per vedere se funziona
no registrazione ORACLE
chiude tutto e fai un’istantanea
avvia dc1, apre sqldeveloper
Nuovo/Seleziona database: hr connessione
utente hr
password: 1234 – test
salva connetti
lsnrctl → programma listner, che aiuta a connettere a Oracle -start,stop, restart, status
→ archive log list : archiviazione automatica e stata abilitata, consente fari turi i tipi di backup
→select log_mode from v$database; : stessa identica informazione, se l’archivio e abilitato o no,
questo serve anche alle applicazione più vecchie
→shutdown immediate – l’istanza deve essere chiusa e riavviata facendo questo con...
→startup mount
i file dati sono ancora fermi
BACKUP!!!
→exit
→rman target / - recovery manager
→ backup database;
Archived Redo Log Files vengono salvati spesso non si fa il backup di questi, ne di inizializzazione
RIPRISTINA BACKUP!!!
controlfile aperti
→ restore database;
→ recover database;
exit
sqlplus /nolog – connect / as sysdba – archive log list
alter database open;
C:\app\Administrator\product\21c\oradata\XE - creare cartella con il nome flashback
serve per contenere flashback db – riporta il db a un punto specifico/data, torna indietro ma torna
indietro anche il backup – si puo tornare indietro nel caso di un attacco hacker
query un singolo dato com’era un determinato giorno
tables…
FLASHBACK!!!
C:\app\Administrator\product\21c\oradata\XE\FlashBack
cmd: alter system set db_recovery_file_dest_size=10G;
alter system set db_recovery_file_dest='C:\app\Administrator\product\21c\oradata\XE\FlashBack';
alter database flashback on;
C:\app\Administrator\product\21c\database
SQL> alter system
2 set trace_enabled = false
3 scope = spfile;
Memoria: SQL> alter system
2 set trace_enabled = false
3 scope = memory;
------------------------09/01-------------------------------------------------------------
gestire in modo corretto undo – flashback
indici rendono piu veloce
sql – su oracle – ti da tutto il codice di come fare la tabella
ORACLE
between: 122 and 180…includono sempre gli estremi
like (come…)
% si mette per cercare qualcosa dopo il nome, una parte che non si conosce per intero
Mallin: ‘Ma%’ tutti i cognomi che iniziano per Ma… ‘%in’ tutti quelli che finiscono in -in-
(_) carattere joly che vale solo per uno carattere ‘A_k%’ trova AtKinson – underscore si mette la
quantità di uno solo carattere.
(OR) una o altra opzione
(IN) sostituto di OR (60,70,80)
alcuni funzioni, oltre la funzione, non possiamo mettere il nome delle colonne
SELECT LENGTH(first_name)
FROM employees;
5 quanti carattere c’è un nome, ma in questo caso non c’è il nome, ossia la persona
c’è solo il numero
SELECT first_name
FROM employees
WHERE LENGTH(first_name) = 11;
Christopher/Jose Manuel
13/01
backup prima del flashback – perché questo elimina i file del log
SEGMENT_TYPE COUNT(1)
------------------ ----------
CLUSTER 10
INDEX 1818
TABLE 1657
LOBSEGMENT 584
LOBINDEX 584
TABLE PARTITION 603
INDEX PARTITION 484
LOB PARTITION 23
NESTED TABLE 8
TABLE SUBPARTITION 32
SYSTEM STATISTICS 1
SEGMENT_TYPE COUNT(1)
------------------ ----------
ROLLBACK 1
TYPE2 UNDO 10
13 righe selezionate.
CREARE TABLESPACE
Creata tablespace.