Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer...

40

Transcript of Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer...

Page 1: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.
Page 2: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

Progettare sistemi SQL Server 2005 per soluzioni mission critical

Silvano CorianiDeveloper EvangelistMicrosoft

Page 3: 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 serviziFailover clusteringDatabase mirroringDatabase snapshot Snapshot isolation

Page 4: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 5: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 6: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 7: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 8: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 9: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 10: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 11: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 12: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 13: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 14: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 15: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 16: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 17: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 18: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

Alta disponibilità dei datiDisponibilità parziale dei dati

Silvano CorianiDeveloper EvangelistMicrosoft

Page 19: Progettare sistemi SQL Server 2005 per soluzioni mission critical 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 – 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

Page 20: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 21: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

Alta disponibilità dei datiRestore parziale online

Silvano CorianiDeveloper EvangelistMicrosoft

Page 22: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 23: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 24: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 25: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 26: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

Online Index Rebuild

Silvano CorianiDeveloper EvangelistMicrosoft

Page 27: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 28: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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…

Page 29: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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…

Page 30: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

Snapshot Isolation

Silvano CorianiDeveloper EvangelistMicrosoft

Page 31: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 32: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 33: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 34: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 35: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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?)

Page 36: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 37: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

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

Page 38: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

Database Mirroring

Silvano CorianiDeveloper EvangelistMicrosoft

Page 39: Progettare sistemi SQL Server 2005 per soluzioni mission critical 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 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!

Page 40: Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.