Progettare sistemi SQL
Server 2005 per soluzioni
mission critical
Silvano Coriani
Developer Evangelist
Microsoft
Agenda
Benefici architetturali
Strategie di aggiornamento alle nuove
funzionalità
Partizionamento di dati e indici
Disponibilità di dati e servizi
Failover clustering
Database mirroring
Database snapshot
Snapshot isolation
Benefici architetturali
SQL Server 2005 fornisce
Caratteristiche di gestione dati di tipo
enterprise
Tecnologie 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 architetturali
Tecnologia
Sicurezza
Service Broker
Supporto XML
SQLCLR
T-SQL
Evoluzione
Policy di sicurezza native
Sicurezza su dati e metadati
Principio del minor privilegio
Implementazione di soluzioni scalabili
Code e dialoghi con consistenza
transazionale
Storage, schema, query, indici
Dati semistrutturati e documenti
Supporto nativo ai web service
Applicazioni di calcolo intensivo
Estensione del Transact-SQL
Funzionalità avanzate
Gestione delle eccezioni
Quando
Immediata
all’upgrade
Aggiornamento
architetturale
Aggiornamento
architetturale
Aggiornamento
architetturale
Aggiornamento
minimo
Quali vantaggi?
Quanto costa utilizzare le varie tecnologie?
Interventi
minimi
Benefici
immediati





Policy di sicurezza
Sicurezza nei
metadati
Permission
granulari
Supporto delle
funzionalità
avanzate
dell’hardware e del
S.O.
Prestazioni del
motore relazionale










Aggiornamento
architetturale
Separazione
User/Schema
Query Notification
SQLCLR

Nuovi Data Type
T-SQL TRY/CATCH
Evoluzioni T-SQL
Paginazione dei data

Elaborazione di dati
XML




Service Broker
Web Service
Infrastruttura per la
cifratura dei dati
Contesto di
esecuzione delle
stored procedure
Utilizzo del data type
XML
UDT /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 bit
Sistemi NUMA
Supporto multi core
senza costi
aggiuntivi
Gestione thread tipo “task”
Affinità nella gestione della memoria
Evoluzioni del sistema operativo
Windows Server 2003
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 Edition
Scalabilità a livello di servizio
Funzionalità disponibili in SQL Server
Attività 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 Cache
Notifiche e invalidazione
Web Service
Supporto agli standard industriali
Servizi implementabili attraverso T-SQL o SQLCLR
Migliori prestazioni e deployment flessibile
Disponibilità di dati e servizi
Cosa significa per noi?
Non poter supportare l’attività dei nostri
utenti perchè…
Il sito non è disponibile
Il sistema non è disponibile
Il database non è disponibile
Il database è parzialmente non disponibile
La tabella non è disponibile
Il dato non è disponibile
Disponibilità 24x7x365
Barriere alla disponibilità
Malfunzionamenti isolati
Continuare a lavorare in presenza di
malfunzionamenti isolati
Limitare l’impatto dei malfunzionamenti
Disponibilità parziale dei database
Online Restore *
Tecnologie abilitanti
Inizializzazione istantanea dei file
Come funziona?
* Enterprise Edition
Cosa succede quando…
I dischi si rompono
In 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 recovery
In 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 Edition
Partizionamento logico / fisico
Separazione oggetti/dati
Organizzazione 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 indici
Partizionamento – nuova funzionalitò in SQL
Server™ 2005 per semplificare la creazione e la
gestione di basi dati di grandi dimensioni *
* Enterprise Edition
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 dati
Aumentare la disponibilità in caso di rotture isolate
I dati non danneggiati rimangono accessibili
Lo stato dei file è disponibile nella vista
sys.database_files
Le pagine dati in errore sono scritte nella tabella
sys.suspect_pages in msdb
I seguenti alert sono disponibili:
Notifica di file danneggiati
Possibilità di mettere automaticamente offline il
database, se necessario
Possibilitò di automatizzare il restore, tipicamente per
dati read-only
Anatomia di un Database
Readonly
filegroups
Readwrite
filegroup
TicketSalesD
BPrimary
File1
File2
2004
File3
2003
File4
2002
File5
2001
Database composto da…
Filegroup composto da…
File composto da…
Extent composto da…
Page composta da dati
File Header 0
4
8
12
16
20
24
28
1
5
9
13
17
21
25
29
2
6
10
14
18
22
26
30
3
7
11
15
19
23
27
31
File6
Log
extent
extent
extent
extent
0
1
2
3
…
Alta disponibilità dei dati
Disponibilità parziale dei dati
Silvano Coriani
Developer Evangelist
Microsoft
Restore online dei dati *
Disponibilità migliorata durante il recovery
Praticamente ogni componente del database (page, file,
filegroup) può esere recuperato – ONLINE
Se 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 log
Gli utenti possono accedere ai dati disponibili durante il
restore
* Enterprise Edition
Inizializzazione istantanea dei file
Aumentare la disponibilità riducendo I downtime
SQL Server™ 2000
Tutti 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™ 2005
Solo i file di log devono essere inizializzati
Il downtime è fortemente ridotto
Benefici legati non solo al Restore
Creazione di nuovi database
Cambiamenti delle dimensioni dei file: autogrow, resize
manuale
Alta disponibilità dei dati
Restore parziale online
Silvano Coriani
Developer Evangelist
Microsoft
Riassumendo: danneggiamenti isolati
Tecnologia
Evoluzione
Quando
Disponibilità dei dati
I dati/partizioni non danneggiati rimangono
Immediata
disponibili
all’upgrade
 Tempo di recovery
Solo per i dati effettivamente da recuperare
Tempo di creazione del database
Non c’è l’inizializzazione iniziale
Inizializzazione  Restore di File, Filegroup, e Database
Immediata
File mancanti ricreati rapidamente
istantanea dei
all’upgrade

Autogrow
e
Manual
Growth
file
Operazioni più rapide
 Recovery Time – tempi ridotti
Disponibilità dei dati
I dati/partizioni rimangono disponibili
Immediata
durante il restore
Restore online
all’upgrade
 Tempi di Recovery
Solo per i dati danneggiati – online
Disponibilità
parziale del
database
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à applicative
Progettazione errata dell’attività transazionale
Diverse tipologie di workload (es. Report vs OLTP)
 Snapshot Isolation
Cosa succede quando…
Dobbiamo ricostruire gli indici
In SQL Server™ 2000
Lock esclusivo a livello di tabella
Gli utenti non possono accedere ai dati
In SQL Server™ 2005
Rebuild online tranne alcuni casi specifici
Gli utenti accedono normalmente ai dati
Operazioni online sugli indici *
Aumentare la disponibilità durante la manutenzione
SQL Server™ 2000
Attività offline
DBCC DBREINDEX
CREATE with DROP_EXISTING
SQL Server™ 2005
ALTER 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 Edition
Online Index Rebuild
Silvano Coriani
Developer Evangelist
Microsoft
Cosa succede quando…
Reader e Writer lavorano sugli stessi dati
In SQL Server™ 2000
Viene 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™ 2005
Locking 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 concorrente
Read Committed Snapshot Isolation
Opzione 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 lettura
Permette la migrazione “trasparente” da ambienti che usano il
versioning… 
Attenzione al tempdb…
Migliorare l’accesso concorrente
Snapshot Isolation a livello di connessione
Opzione del DB: ALLOW_SNAPSHOT_ISOLATION
Usa il locking di default
Incrementa 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 applicazioni
Nessun cambiamento per applicazioni in lettura
Gestione di eventuali conflitti per transazioni che eseguono
modifiche sui dati
Attenzione al tempdb…
Snapshot Isolation
Silvano Coriani
Developer Evangelist
Microsoft
Barriere alla disponibilità
Failure hw o sw
Il database non è disponibile
Il server subisce un grave failover
La sede XYZ non è più raggiungibile
Tecnologie di standby
Failover Clustering
Database Mirroring
Replica
Log Shipping
Tecnologie abilitanti
Fast Recovery
Failover Clustering
Novità in SQL Server™ 2005
Failover più rapidi con il Fast Recovery
Supporto fino a 8-nodi con la Enterprise Edition
Supporto fino a 2-nodi con la Standard Edition
Supporto ai mounted volume per una definizione
più granulare del sottosistema I/O – aiuta in
scenari di server consolidation
Supporto dinamico ad AWE
Setup unattended
Tutti i servizi di SQL Server cluster-aware
Database Engine, SQL Server Agent, Full-Text Search
Analysis Services – istanze multiple
Fast Recovery *
Riduzione dei downtime
* Enterprise Edition
Ne beneficiano molti servizi
La 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™ 2005
Redo
ONLINE
SQL Server™ 2000
Undo
ONLINE
Database Mirroring
Ridondanza 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 Availability
High Protection
High Performance
Database Mirroring
Overview sulla tecnologia
Il database Principal gestisce l’attività degli
utenti
Il 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?)
Database Mirroring
Mirroring sincrono
Acknowledge
Acknowledge
Commit
Redo costante
nel Mirror
Trasmessa al Mirror
Scrittura
nel Log
DB
Commit
nel Log
Log
Scrittura nel
Log
Log
DB
Database Mirroring
Opzioni di configurazione
High
Availability

Individuazione
guasti

High Protection
High
Performance


Failover
automatico
Nessuna
individuazione
guasti
Nessuna
individuazione
guasti

Failover manuale

Failover manuale

Mirroring sincrono

Mirroring sincrono

Mirroring asincrono

Richiede il
Witness

No Witness

No Witness

Overhead come il
precedente

Performance non
influenzate da rete
e distanza

Esiste un
overhead sul
Il database Mirror disponibile in alcuni secondi
Principal
inversamente
Normalmente offline ma disponibile attraverso Database
proporzionale
Snapshot alla
Database Mirroring
Silvano Coriani
Developer Evangelist
Microsoft
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 garantisce
Database disponibili anche in presenza di
danneggiamenti a filegroup, file o pagine
Database disponibili in fase di recovery
Inizializzazione istantanea dei file, recovery rapido
Nuove 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.
Scarica

Disponibilità dei dati