| |
Oracle 8i
|
Microsoft SQL Server 2000
|
| Istanza
e Database |
Una istanza corrisponde alla creazione della SGA ed ai processi
in Background che girano dentro...
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
|
| 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.
|
SQL Server è autocommittante (anche se si può cambiare questo
comportamento mediante l'istruzione SET
AUTOCOMMIT 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;
mentre l'importazione può essere fatta con i comandi
Import (per importare una esportazione
fatta con export) oppure SQLloader
|
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).
|