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.