|
Oracle 8i
|
Microsoft SQL Server 2000
|
Istanza
e Database |
Una istanza corrisponde alla creazione della SGA ed ai processi
in Background che girano dentro (DBWn, LGWR, PMON, SMON, ARCn,
ecc)...
Ad ogni istanza potrà essere collegato un unico Database con
gli schema di sistema (SYS, SYSTEM)
|
Una istanza corrisponde a un server di database; e cioè
i servizi MSSQLServer e -eventualmente- SQLServerAgent e MSDTC...
Nella stessa istanza ci saranno sia i cinque database di sistema
(master, msdb, model, tempdb e replication) che gli eventuali
database utente (anche più di uno)
|
Collegamento
ad altri database |
Viene realizzato tramite un DATABASE
LINK... che può essere pubblico o privato
|
Viene realizzato tramite la stored procedure sp_addlinkedserver
oppure in Enterprise Manager, tramite Management -> Linked
Server
|
Files
di dati |
I files di dati (DATAFILES)
vengono raggruppati in uno o più TABLESPACES
che vengono gestiti in modo indipendente tra di loro
|
I gruppi di dati vengono raggruppati in FILEGROUP,
che vengono gestiti in modo globale
|
Blocchi
di dati |
I blocchi vengono definiti alla creazione del database,
e non possono essere cambiati. Devono avere una dimensione
compresa tra 2 e 32
KB.
|
Hanno una dimensione fissa di 8
KB.
|
Extents |
Si può -anzi, un buon DBA dovrebbe- specificare la
dimensione mediante 3 parametri della clausola STORAGE
(per esempio alla creazione della tabella o del tablespace):
INITIAL, NEXT e PCTINCREASE. (cioè la dimensione
del primo, del secondo, e la percentuale di ingrandimento
a partire dal terzo extent).
|
Hanno una dimensione fissa di 8
blocchi (cioè 64 KB).
|
Identificazione
degli oggetti |
Un oggetto si identifica in modo
univoco con la seguente sintassi: schema.oggetto@database |
Un oggetto si identifica in modo
univoco con la seguente sintassi: server.database.owner.oggetto |
Schema |
Un utente viene associato ad uno schema di oggetti (tabelle,
indici, ecc)...
Dentro allo schema di un utente possono esserci oggetti che
appartengono ad un altro utente. Si possono usare i sinonimi
per non dover essere costretti ad indicare il proprietario
di ogni oggetto.
|
In SQL Server è consigliabile usare l'utente dbo
come proprietario di tutti gli oggetti del database in modo
da non dover indicare il nome utente del proprietario per
più chiarezza vedere la sezione "identificazione degli
oggetti".
|
Indici |
Oracle permette di usare diversi tipi di indici: Btree,
Bitmap, ecc.
|
SQL Server implementa soltanto l'indice Btree
|
Commit |
Dopo aver effettuato un comando
insert, delete, update; bisogna eseguire il commando COMMIT
affinchè questi cambiamenti vengano riportati sul DB.
In SQL Plus si può modificare questo comportamento settando
il parametro SET AUTOCOMMIT ON
|
SQL Server è autocommittante,
in altre parole tutti i cambiamenti vengono applicati sul DB
al momento dell'istruzione insert, delete o update (si può cambiare
questo comportamento mediante l'istruzione SET
IMPLICIT_ TRANSACTION OFF ) |
Backup
e Restore |
Viene gestito all'esterno del server sia con comandi del
sistema operativo che usando l'utility RMAN
|
Viene gestito all'interno del server di database tramite
i comandi BACKUP DATABASE, BACKUP LOG e RESTORE DATABASE,
RESTORE LOG
|
Modelli
di recupero dei dati |
Due modi di funzionamento: ARCHIVELOG
e NOARCHIVELOG.
A differenza del modo NOARCHIVELOG nel quale
i file redo log vengono cancellati per essere riutilizzati in
modo ciclico, nel modo ARCHIVELOG il server prima di svuotare
i files redo creati durante il funzionamento del database, crea
dei files di log che sono la copia dei files redo log prima
dello svuotamento. Questa opzione viene attivata mediante 3
parametri nel file di INIT dell'istanza: log
archive start, log archive dest
e log archive format |
Tre modi di funzionamento: semplice,
completo e
operazioni di massa registrate. Mentre con il metodo
SEMPLICE il file di log viene svuotato ad ogni commit, con
i metodi RECUPERO DI OPERAZIONI DI MASSA REGISTRATE e COMPLETO
questi files non vengono cancellati. La differenza tra di
loro è che mentre il metodo COMPLETO registra dentro
al file di log tutte le operazioni effettuate dentro al database,
il secondo non registra (almeno no completamente) alcune operazioni
di caricamento dati come INSERT INTO e BULK COPY.
|
Kill
delle sessioni |
Si fa col commando ALTER SYSTEM fornendo DUE parametri:
ALTER SYSTEM KILL SESSION 'sid, serial'
I valori di sid e serial si possono prendere dalla vista v$session.
|
Si fa col commando KILL fornendo UN unico parametro:
KILL sid Il valore di sid si
puo prendere con la stored procedure sp_who.
|
Identificare
la propria sessione |
select sid, serial# from v$session
where audsid = userenv('sessionid');
|
select @@sid
|
Log
delle transazioni |
Sono memorizzati in 2 (o più, se configurati) files
di rollback. Quando uno di questi si riempie, Oracle
continua a memorizzare i log sull'altro.
Se il database è settato in modo ARCHIVELOG,
prima di svuotare il file pieno verrà fatta una copia del
file di log che si potrà usare per ripristinare i dati. Altrimenti,
se funziona in modo NOARCHIVELOG,
si perderà il contenuto del file di log pieno e il database
si potrà ripristinare soltanto alla situazione dell'ultimo
backup.
|
Sono memorizzati in 1 (o più, se configurati) files
di log. Quando uno di questi si riempie, SQL Server
continua a scrivere sul seguente. Se non ci fosse un altro
file dove memorizzare i log, il server si blocca (si può
svuotare questo file con il comando BACKUP
LOG). Per questo motivo, è opportuno configurare
il file di log in modo che possa crescere automaticamente
al suo riempimento (opzione filegrowth ).
|
Checkpoint |
Viene gestito dal sistema, ma è anche possibile forzarlo
tramite il comando ALTER SYSTEM CHECKPOINT
(eventualmente specificando GLOBAL o LOCAL se si lavora in
ambiente PARALLEL SERVER).
|
Dalla versione 2000, anche con SQL Server si può
forzare il checkpoint tramite il comando
CHECKPOINT.
|
Stringhe
di connessione OLE DB |
"Provider=MSDAORA.1;
Datasource= nome del server;
User=nome utente ; Password=password"
|
"Provider=SQLOLEDB;
Datasource=nome del server; Initial
Catalog=nome database ; User=nome
utente; Password=password"
|
Server
di standby |
In Oracle, la trasformazione del server di standby in server
di produzione (per esempio dopo un problema al server di produzione),
comporta che si dovrà ricreare l'ambiente nel momento
in cui si vorrà ripristinare i ruoli.
|
Tramite i comandi BACKUP e RESTORE con l'opzione STANDBY,
è possibile creare e cambiare ruolo tra server di produzione
e server di standby più volte senza bisogno di ricreare
l'ambiente.
|
Importazione
ed Esportazione dei dati |
In Oracle, l'esportazione si fa tramite il comando Export
(EXP) ; mentre l'importazione può essere fatta
con i comandi Import (IMP) (per
importare una esportazione fatta con export) oppure SQLloader
(SQLLDR)
|
Microsoft SQL Server ha uno strumento potentissimo chiamato
Data Transformation Service che
permette di fare sia l'esportazione che l'importazione dei
dati in diversi formati (praticamente qualunque formato, basta
che sul server sia installato il driver ODBC oppure OLEDB).
|
Inviare
un
e-mail |
In Oracle, si usa il package UTL_SMTP. |
In SQL Server, si fa tramite la
extended stored procedure xp_sendmail. |