Upload
ottavio-raimondi
View
215
Download
0
Embed Size (px)
Citation preview
Progettare sistemi SQL Server 2005 per soluzioni mission critical
Silvano CorianiDeveloper EvangelistMicrosoft
Agenda
Benefici architetturali
Strategie di aggiornamento alle nuove funzionalità
Partizionamento di dati e indici
Disponibilità di dati e serviziFailover clusteringDatabase mirroringDatabase snapshot Snapshot isolation
Benefici architetturali
SQL Server 2005 fornisce Caratteristiche di gestione dati di tipo enterpriseTecnologie evolute (XML, Broker, ecc.)Costi di gestione minimizzati
Quando le esigenze di scalabilità aumentano
I sistemi crescono in scalabilità senza la necessità di una riprogettazione
La scalabilità è incrementaleÈ possibile implementare funzionalità scalabili quando necessarie
Evoluzioni architetturaliTecnologia Evoluzione Quando
Sicurezza Policy di sicurezza native
Sicurezza su dati e metadati
Principio del minor privilegio
Immediata all’upgrade
Service Broker
Implementazione di soluzioni scalabili
Code e dialoghi con consistenza transazionale
Aggiornamento
architetturale
Supporto XML
Storage, schema, query, indici
Dati semistrutturati e documenti
Supporto nativo ai web service
Aggiornamento
architetturale
SQLCLR Applicazioni di calcolo intensivo
Estensione del Transact-SQL
Aggiornamento
architetturale
T-SQL Funzionalità avanzate
Gestione delle eccezioniAggiornament
o minimo
Quali vantaggi?Quanto costa utilizzare le varie tecnologie?
Separazione Separazione User/SchemaUser/Schema
Query NotificationQuery Notification SQLCLRSQLCLR Nuovi Data TypeNuovi Data Type T-SQL TRY/CATCHT-SQL TRY/CATCH Evoluzioni T-SQLEvoluzioni T-SQL Paginazione dei Paginazione dei
datadata Elaborazione di Elaborazione di
dati XMLdati XML
Beneficiimmediati
Interventiminimi
Aggiornamentoarchitetturale
Policy di Policy di sicurezzasicurezza
Sicurezza nei Sicurezza nei metadatimetadati
Permission Permission granularigranulari
Supporto delle Supporto delle funzionalità funzionalità avanzate avanzate dell’hardware e dell’hardware e del S.O.del S.O.
Prestazioni del Prestazioni del motore motore relazionalerelazionale
Service BrokerService Broker Web ServiceWeb Service Infrastruttura per Infrastruttura per
la cifratura dei datila cifratura dei dati Contesto di Contesto di
esecuzione delle esecuzione delle stored procedurestored procedure
Utilizzo del data Utilizzo del data type XMLtype XML
UDT /UD AggregateUDT /UD Aggregate
Migliorare la sicurezza e la scalabilità dall’aggiornamento al design
Consente di affrontare l’aggiornamento per gradi
Scalabilità attraverso l’hardware
Ottimizzazioni di SQL Server per sfruttare al meglio hardware e sistema operativo
Conosciute come "SQLOS"
Queste consentono un miglior supporto per
Architetture a 64 bitSistemi NUMA
Gestione thread tipo “task”Affinità nella gestione della memoria
Evoluzioni del sistema operativoWindows Server 2003
Supporto multi core senza costi
aggiuntivi
Integrazione con Windows Server
Adozione delle policy di sicurezza del sistema operativo anche per login SQL
Aggiunta di memoria “a caldo”
Gestione dinamica di AWE
Supporto nativo 64 bit
Supporto SOAP attraverso HTTP.SYS
Inizializzazione istantanea dei file
Cluster di SQL Server 2005 a 8 nodi ** Enterprise * Enterprise
EditionEdition
Scalabilità a livello di servizio
Funzionalità disponibili in SQL ServerAttività asincrone - Service Broker
Per ottenere scalabilità in sistemi con forti carichi di lavoro
Funzionalità garantita anche in situazioni di parziale malfunzionamento, grazie alle code di messaggi
Gestione CacheNotifiche e invalidazione
Web ServiceSupporto agli standard industriali
Servizi implementabili attraverso T-SQL o SQLCLR
Migliori prestazioni e deployment flessibile
Disponibilità di dati e serviziCosa significa per noi?
Non poter supportare l’attività dei nostri utenti perchè…
Il sito non è disponibileIl sistema non è disponibileIl database non è disponibileIl database è parzialmente non disponibileLa tabella non è disponibileIl dato non è disponibile Disponibilità 24x7x365Disponibilità 24x7x365
Barriere alla disponibilitàMalfunzionamenti isolati
Continuare a lavorare in presenza di malfunzionamenti isolati
Limitare l’impatto dei malfunzionamenti
Disponibilità parziale dei databaseOnline Restore *
Tecnologie abilitantiInizializzazione istantanea dei file
Come funziona?
* Enterprise * Enterprise EditionEdition
Cosa succede quando…
I dischi si romponoIn SQL Server™ 2000
Il database è marcato come “suspect”
Gli utenti non possono connettersi al database
In SQL Server™ 2005 Il filegroup è marcato come “offline”
Gli utenti sono in grado di accedere ai dati non danneggiati
Cosa succede quando…
Inizia il recoveryIn SQL Server™ 2000
Il database è in fase di recovery
Gli utenti non sono in grado di accedere al database
I file devono essere ricreati e inizializzati con byte a zero
Il restore dei dati può procedere – il database è sempre offline
In SQL Server™ 2005 Il Filegroup è in fase di recovery
Gli utenti possono collegarsi ai dati non danneggiati
I file vengono ricreati in un istante
Il restore parziale può procedere – il database è online e i dati recuperati sono accessibili subito *
* Enterprise * Enterprise EditionEdition
Partizionamento logico / fisicoSeparazione oggetti/datiOrganizzazione logica degli oggetti
Oggetti posizionati in differenti filegroup
Strategie di partizionamento basate sul tempo Per supportare scenari di tipo “sliding window”
Per sfruttare al massimo la disponibilità parziale dei dati utilizzare il partizionamento fisico dei dati in tabelle e indiciPartizionamento – nuova funzionalitò in SQL Server™ 2005 per semplificare la creazione e la gestione di basi dati di grandi dimensioni * * Enterprise * Enterprise
EditionEdition
Benefici del partizionamento
Prestazioni nella gestione di sliding window Manipolazione di porzioni di dati all’esterno
della tabella attiva
Backup parziali Backup più frequenti delle porzioni di dati
attivi, meno frequenti per dati “storicizzati”
Disponibilità parziale dei database Dati disponibili anche se un filegroup non lo è
Restore parziali Durante il restore, i dati non danneggiati
rimangono disponibili
Disponibilità parziale dei datiAumentare la disponibilità in caso di rotture isolateI dati non danneggiati rimangono
accessibiliLo stato dei file è disponibile nella vista sys.database_filesLe pagine dati in errore sono scritte nella tabella sys.suspect_pages in msdbI seguenti alert sono disponibili:
Notifica di file danneggiatiPossibilità di mettere automaticamente offline il database, se necessarioPossibilitò di automatizzare il restore, tipicamente per dati read-only
00
11
22
33
44
55
66
77
88
99
1010
1111
1212
1313
1414
1515
1616
1717
1919
2020
2121
2222
2323
1818
File HeaderFile Header
extentextent
00extentextent
11extentextent
22
Anatomia di un Database
Database composto da…Filegroup composto da…
File composto da…Extent composto da…
Page composta da dati
2424
2525
2727
2828
2929
3030
3131
2626
……
extentextent
33
TicketSalesTicketSalesDBDB
File2File2
File3File3
LogLog
Readw
rit
efile
gro
up
File4File4
File5File5
File6File6
Readonly
file
gro
up
s
20042004
20032003
20022002
20012001
PrimaryPrimary
File1File1
Alta disponibilità dei datiDisponibilità parziale dei dati
Silvano CorianiDeveloper EvangelistMicrosoft
Restore online dei dati *Disponibilità migliorata durante il recovery
Praticamente ogni componente del database (page, file, filegroup) può esere recuperato – ONLINESe una pagina è danneggiata
Recupero della sola pagina da un backup (del file, filegroup o intero database) disponibile
Se un file è danneggiato…
Se un filegroup è danneggiato…
I filegroup readonly non necessitano della ri-applicazione del transaction logGli utenti possono accedere ai dati disponibili durante il restore
* Enterprise * Enterprise EditionEdition
Inizializzazione istantanea dei fileAumentare la disponibilità riducendo I downtime
SQL Server™ 2000Tutti i file dati e log devono essere inizializzati
Il tempo di creazione e inizializzazione dei file di grandi dimensioni ha un impatto significativo durante il restore
SQL Server™ 2005Solo i file di log devono essere inizializzati
Il downtime è fortemente ridotto
Benefici legati non solo al RestoreCreazione di nuovi database
Cambiamenti delle dimensioni dei file: autogrow, resize manuale
Alta disponibilità dei datiRestore parziale online
Silvano CorianiDeveloper EvangelistMicrosoft
Riassumendo: danneggiamenti isolati
Tecnologia Evoluzione Quando
Disponibilità
parziale del
database
Disponibilità dei datiI dati/partizioni non danneggiati
rimangono disponibili Tempo di recovery
Solo per i dati effettivamente da recuperare
Immediata all’upgrade
Inizializzazione
istantanea dei file
Tempo di creazione del databaseNon c’è l’inizializzazione iniziale Restore di File, Filegroup, e Database File mancanti ricreati
rapidamente Autogrow e Manual Growth
Operazioni più rapide Recovery Time – tempi ridotti
Immediata all’upgrade
Restore online
Disponibilità dei dati I dati/partizioni rimangono disponibili
durante il restore Tempi di Recovery
Solo per i dati danneggiati – online
Immediata all’upgrade
Barriere alla disponibilitàGestione della concorrenza
Il Database è disponibile ma l’applicazione/utente non può svolgere le sua attivitàImpatto delle attività amministrative
Operazioni amministrative possono richiedere lock
Nuova funzionalità di rebuild online degli indici
Impatto delle attività applicativeProgettazione errata dell’attività transazionale
Diverse tipologie di workload (es. Report vs OLTP)
Snapshot Isolation
Cosa succede quando…
Dobbiamo ricostruire gli indiciIn SQL Server™ 2000
Lock esclusivo a livello di tabella
Gli utenti non possono accedere ai dati
In SQL Server™ 2005Rebuild online tranne alcuni casi specifici
Gli utenti accedono normalmente ai dati
Operazioni online sugli indici *Aumentare la disponibilità durante la manutenzione
SQL Server™ 2000Attività offline
DBCC DBREINDEX
CREATE with DROP_EXISTING
SQL Server™ 2005ALTER INDEX…REBUILD:
ONLINE – dati disponibili durante il rebuild
OFFLINE – simile a SQL Server 2000
Se non è possibile il rebuild online le alternative possibili necessitano di una riprogettazione dello schema
* Enterprise * Enterprise EditionEdition
Online Index Rebuild
Silvano CorianiDeveloper EvangelistMicrosoft
Cosa succede quando…Reader e Writer lavorano sugli stessi dati
In SQL Server™ 2000Viene usato il locking per garantire la consistenza transazionale
Gli utenti devono attendere il rilascio del lock
La concorrenza e le prestazioni sono compromesse
Se viene abbassato il livelli di isolamento transazionale pregiudichiamo invece la consistenza
In SQL Server™ 2005Locking o Versioning sono le due alternative
Usando il versioning: Readers won’t block writers and writers won’t block readers
Miglioramento delle prestazioni là dove esiste la concorrenza
La consistenza non è compromessa
Migliorare l’accesso concorrenteRead Committed Snapshot IsolationOpzione del DB: READ_COMMITTED_SNAPSHOT
Usa lock per le scritture, versioning per le letture Incrementa la disponibilità dei dati riducendo i deadlock
“Readers won’t block writers; writers won’t block readers”
La consistenza a livello di statement è garantita via row versioning Impatto sulle applicazioni
Nessun cambiamento richiesto per le applicazioni in letturaPermette la migrazione “trasparente” da ambienti che usano il versioning… Attenzione al tempdb…
Migliorare l’accesso concorrenteSnapshot Isolation a livello di connessione
Opzione del DB: ALLOW_SNAPSHOT_ISOLATIONUsa il locking di defaultIncrementa la disponibilità dei dati riducendo i deadlock
“Readers won’t block writers; writers won’t block readers”
Consistenza a livello di transazione attraverso il row versioning quando il livello di isolamento è SET TRANSACTION ISOLATION LEVEL SNAPSHOT
Impatto sulle applicazioniNessun cambiamento per applicazioni in letturaGestione di eventuali conflitti per transazioni che eseguono modifiche sui datiAttenzione al tempdb…
Snapshot Isolation
Silvano CorianiDeveloper EvangelistMicrosoft
Barriere alla disponibilitàFailure hw o sw
Il database non è disponibileIl server subisce un grave failoverLa sede XYZ non è più raggiungibileTecnologie di standby
Failover ClusteringDatabase MirroringReplicaLog Shipping
Tecnologie abilitantiFast Recovery
Failover ClusteringNovità in SQL Server™ 2005
Failover più rapidi con il Fast RecoverySupporto fino a 8-nodi con la Enterprise EditionSupporto fino a 2-nodi con la Standard EditionSupporto ai mounted volume per una definizione più granulare del sottosistema I/O – aiuta in scenari di server consolidationSupporto dinamico ad AWESetup unattendedTutti i servizi di SQL Server cluster-aware
Database Engine, SQL Server Agent, Full-Text SearchAnalysis Services – istanze multiple
RedoRedo
Fast Recovery *Riduzione dei downtime
Ne beneficiano molti serviziLa fase di Recovery garantisce la consistenza in fase di startup, restore, failover..Due fasi di Recovery:
REDO: riapplica le transazioni committed
UNDO: roll back delle transazioni fallite
In SQL Server™ 2005 i dati disponibili dopo il REDO
SQL Server™ 2005SQL Server™ 2005 SQL Server™ 2000SQL Server™ 2000
ONLINEONLINE
UndoUndo
ONLINEONLINE
* Enterprise * Enterprise EditionEdition
Database MirroringRidondanza a livello di Database
Tecnologia per l’alta disponibilità
Rilasciata per testing e prototipazione con SQL Server™ 2005 RTM
Certificato per l’uso in produzione dalla prima metà del 2006
Supporta tre configurazioni:High AvailabilityHigh ProtectionHigh Performance
Database MirroringOverview sulla tecnologia
Il database Principal gestisce l’attività degli utentiIl database Mirror riceve le modifiche attraverso un canale TCP sicuro e dedicato Il server di Mirror non richiede una
licenza in caso serva solo a questo scopo
Server Witness opzionale Meccanismo leggero per la definizione di
un quorum Qualsiasi edizione di SQL Server
(Express?)
Commit
Scrittura nel
Log
Trasmessa al Mirror
Scrittura nel Log
Acknowledge
Commit nel Log
Redo costante nel Mirror
Acknowledge
Database MirroringMirroring sincrono
Log DBDB Log
Database MirroringOpzioni di configurazione
Il database Mirror disponibile in alcuni secondiNormalmente offline ma disponibile attraverso Database Snapshot
Nessuna Nessuna individuazione individuazione guastiguasti
Failover Failover manualemanuale
Mirroring Mirroring sincronosincrono
No WitnessNo Witness Overhead come Overhead come
il precedenteil precedente
High Availability
High Protection High Performance
Individuazione Individuazione guastiguasti
Failover Failover automaticoautomatico
Mirroring Mirroring sincronosincrono
Richiede il Richiede il WitnessWitness
Esiste un Esiste un overhead sul overhead sul Principal Principal inversamente inversamente proporzionale proporzionale alla larghezza alla larghezza di bandadi banda
Nessuna Nessuna individuazione individuazione guastiguasti
Failover Failover manualemanuale
Mirroring Mirroring asincronoasincrono
No WitnessNo Witness Performance Performance
non influenzate non influenzate da rete e da rete e distanzadistanza
Database Mirroring
Silvano CorianiDeveloper EvangelistMicrosoft
In sintesi
SQL Server™ 2005 offre caratteristiche immediate per l’alta disponibilità
Molte tecnologie sono disponibili semplicemente all’upgrade!Altre necessitano di aggiornamenti architetturali o di implementazione
SQL Server™ 2005 garantisceDatabase disponibili anche in presenza di danneggiamenti a filegroup, file o pagineDatabase disponibili in fase di recoveryInizializzazione istantanea dei file, recovery rapidoNuove alternative di replica
SQL Server™ 2005 nasce robusto e affidabile!
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.