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.