Amministrare SQL Server “Yukon”: le novità, dai tools alla High Availability. Silvano Coriani Developer & Platform Evangelism Microsoft 1 Agenda Architettura e configurazione Le novità nella security Monitoring Security Development Availability Data Access Concurrency Database Server Failure or Disaster Database Maintenance and Operations Manageability Scalability and Reporting 2 Architettura: i componenti Database Engine Fino a 50 instanze supportate in Enterprise Edition Analysis Services Cluster aware, istanze multiple Notification Services Reporting Services SQL Server Agent Fulltext Search Service Broker Tutti in versione 32-bit e 64-bit 3 Fulltext Search Architettura completamente rifatta Ora i cataloghi degli indici sono inclusi in Backup e Restore Attach e Detach del db includono i cataloghi Multi-Instanza Una istanza di FTS per SQL Server 4 Configurazione dinamica Tutti i parametri di configurazione dinamici Nessun restart modificando i parametri CPU Affinity I/O Affinity Address Windowing Extensions (AWE) Modifiche alla dimensione fisica non richiedono downtime Configurazione dinamica (Min / Max) Limitata solo dalla memoria fisica Gestisce dinamicamente la memoria “hot-add” Richiede Windows Server 2003 5 Supporto “Hot-add” La memoria fisica può essere aggiunta senza restart di servizio o del server Elimina i failover pianificati per la manutenzione Richiede HW appropriato Windows Server 2003 6 Setup Il setup è basato su Windows Installer Il Setup Consistency Checker consente di prevenire possibili incompatibilità Setup remoto ora basato su WMI Failover Cluster Supporta fino a 8 nodi Report sul progresso delle installazioni per setup su nodi multipli Setup di Analysis Services in cluster Setup unattended sul cluster 7 Connettività Accesso HTTP Nuova “Net-lib” alternativa a TCP/IP, Named Pipes e Shared Memory SQL Server implementa uilizza il lister HTTP Può convivere con IIS, ma IIS non è richiesto Disabilitato all’installazione (secure by default) Possibilità di restringere l’accesso ai utenti, SP e database Possibilità di consentire l’accesso a batch di comandi o query ad-hoc 8 Virtual Table ‘Tabelle’ che riflettono lo stato dei parametri interni di funzionamento Almeno 25 nuove Virtual Tables per aiutare il DBA a: Monitorare il server Diagnosticare il problema syswaits è l’esempio migliore Statistiche sui tempi di attesa dei thread di sistema Unione di Grafo degli stati di wait Informazioni in sysprocesses Colonne in syswaits waitingTask waitType spid resource waitTime blockingTask 9 Server Events Eventi generati da operazioni di tipi DML e DDL Applicazioni e utenti possono registrarsi per ricevere una notifica all’avvenire di un certo evento Registrazione che avviene attraverso WMI per essere notificato di operazioni DDL, DML ed eventi di trace 10 SQL Server Trace Architettura “alleggerita” per dare la possibilità di eseguire trace in forma continuativa e regolare Nuovi eventi disponibili Filtering migliorato per evitare di omettere informazioni importanti Es. Omettere tutto quello che ha ‘password’ nel testo Non è più necessario essere sysadmin per eseguire il trace 11 Strumenti di amministrazione Suite di tool integrati Supporto per tutti i servizi di SQL Server Compatibilità con SQL Server 7.0, 2000, e Yukon SQL Server Agent è stato completamente ridisegnato Obiettivo: performance, sicurezza e scalabilità Profiler Funziona anche per Analysis Server Showplan Events, Deadlock Events Replay Migliorata la capacità di replay di trace catturati su processi multipli e paralleli 12 Security Security su catalogo e metadati Chi si collega vede solo i metadati sui quali ha qualche permission!!! Separazione tra User e Schema Controllo granulare sulle permission È possibile assegnare permission che in precedenza erano riservato solo a ruoli particolare Es: Profiler per i non-SA I fixed roles sono ancora disponibili Enforcement di policy sulle password Password strength, expiration Row-level security 13 Catalogo di sistema e metadati Il System Catalog è cambiato radicalmente Consente una architettura di sicurezza più robusta e aggiornamenti più rapidi Nessun accesso diretto alle tabelle di sistema Row-level security applicata a tutti gli oggetti del catalogo You only see what you have access to Compatibilità con il passato attraverso un set di viste dedicato Se non sono state utilizzate cose non documentate Circa 100 nuove “Catalog Views” Schema normalizzato; nomenclatura consistente Nessun campo gestito a “bit” Meno chiamate a OBJECTPROPERTY Nessuna colonna “For internal use only” 14 Catalogo di sistema e metadati Il catalogo di sistema risiede nel “resource database” – e non nel “master” Il database catalog appare nello schema sys di ogni database sys.sp_help, sys.tables, sys.objects, … Attraverso le viste è possibile accedere ai vari metadati del sistema Esistono viste per: Le tabelle di sistema di SQL Server 2000 Le viste di INFORMATION_SCHEMA Le funzioni “Property” Funzioni built-in 15 Data types Varchar(1-8000), Nvarchar(1-4000), Varbinary(1-8000) La dimensione max della colonna rimane 8,000 bytes Un record può ora superare la dimensione di una pagina Varchar(max), Nvarchar(max), Varbinary(max) Possono ospitare più di 8000 character / byte Varbinary(max) Filestream Date, Time – data e ora separata (sono tipi CLR) XML – Supporto completo al nuovo tipo UDDT – User-defined Data Types utilizzando il 16 CLR FILESTREAM FILESTREAM permettono un accesso al filesystem attraverso le API del database server (transazionali) in modo trasparente Per applicazioni che gestiscono immagini, documenti, video, ecc. FILESTREAM è un’attributo dello storage che può essere specificato per colonne varbinary(max) La gestione delle colonne FILESTREAM avviene attraverso comendi DDL 17 Access via Database Application Win32 NTFS Filesystem SQL Server SQL Server’s Row Data FILESTREAM Data 18 Access via Database Application Win32 NTFS Filesystem SQL Server SQL Server’s Row Data FILESTREAM Data 19 Access via Database Application Win32 NTFS Filesystem SQL Server SQL Server’s Row Data FILESTREAM Data 20 Access via Database Application Win32 NTFS Filesystem SQL Server SQL Server’s FILESTREAM Agent SQL Server’s Row Data FILESTREAM Data 21 Access via Database Application Win32 NTFS Filesystem SQL Server SQL Server’s FILESTREAM Agent SQL Server’s Row Data FILESTREAM Data 22 Access via Database Application Win32 NTFS Filesystem SQL Server SQL Server’s FILESTREAM Agent SQL Server’s Row Data FILESTREAM Data 23 Access via Filesystem Application Win32 NTFS Filesystem SQL Server SQL Server’s FILESTREAM Agent SQL Server’s Row Data FILESTREAM Data 24 Access via Filesystem Path obtained from SQL Server Application Win32 NTFS Filesystem SQL Server SQL Server’s FILESTREAM Agent SQL Server’s Row Data FILESTREAM Data 25 Access via Filesystem Path obtained from SQL Server Application Win32 NTFS Filesystem SQL Server Security check SQL Server’s Row Data SQL Server’s FILESTREAM Agent FILESTREAM Data 26 Access via Filesystem Path obtained from SQL Server Application Win32 NTFS Filesystem SQL Server Security check SQL Server’s Row Data SQL Server’s FILESTREAM Agent FILESTREAM Data 27 Access via Filesystem Path obtained from SQL Server Application Win32 NTFS Filesystem SQL Server Security check SQL Server’s Row Data SQL Server’s FILESTREAM Agent FILESTREAM Data 28 Access via Both Path obtained from SQL Server Application Win32 NTFS Filesystem SQL Server Transaction Manager Security check SQL Server’s Row Data SQL Server’s FILESTREAM Agent FILESTREAM Data 29 Fast Recovery Restart o Restore SQL Server 2000 Database disponibile dopo l’Undo Redo Time Undo Available 30 Fast Recovery Restart or Restore SQL Server 2000 Database is available after Undo completes Redo Undo Available Time Yukon Database disponibile all’inizio dell’Undo Redo Undo Available 31 Database “ViewPoint” Copia consistente e read-only del database Ottimo per soluzioni di reporting Posso fare rollback di un db ad un certo ViewPoint Per correggere errori dell’applicazion o del DBA Non “sincronizzato” con il database dal quale proviene Poco costoso Veloce alla creazione Economico in termini di spazio Tecnologia “Copy-on-Write” Possono essere creati per qualsiasi database Di produzione Per copie di standby di un Database Mirroring 32 Snapshot Isolation Nuovo livello transazionale Aumenta la disponibilità dei dati per le applicazioni in lettura Permette la lettura non-bloccante e consistente in un database OLTP Writers don’t block readers Readers don’t block writers Permette la modifica dei dati, ma questo causa conflitti Nel caso, è obbligatorio un sistema di individuazione e gestione dei conflitti 33 Operazioni online sugli indici Ora le operazioni sugli indici possono essere fatte durante la modifica delle tabelle sottostanti Update, Insert, Delete Manutenzion online degli indici Creazione, Rebuild e cancellazione Riorganizzazione (includendo i BLOB) Anche sui vincoli basati sugli indici (PK, Unique) Gli aggiornamenti possono provocare costi aggiuntivi durante una operazione sugli indici Vengono mantenute le copie nuova e vecchia dell’indice 34 Database Mirroring Meccanismo di failover semplice e istantaneo Failover veloce … meno di 3 secondi Automatico o manuale Nessuna perdita di dati Re-sync automatico dopo un failover Hardware Nessun bisogno di hardware certificato Nessuno storage condiviso Minimo impatto sulle operazioni transazionali È possibile pensarlo sulle macchine di produzione I client vengono rediretti automaticamente Il server mirror non è “online” Ma posso usare un ViewPoint per creare una soluzione di reporting simile al Log Shipping 35 Database Mirroring Fault tolerant virtual database Witness Clients Principal Mirror 36 Redirezione automatica del client Nessuna modifica al codice delle applicazioni Il client viene automaticamente rediretto se la sessione cade MDAC conosce il server Principal e il Mirror Dopo la connessioni iniziale al principal, MDAC mantiene in cache il nome del Mirror Quando il client prova a riconnettersi Se il Principal è disponibile apre la connessione Altrimenti, MDAC redirige sul Mirror 37 Connessione amministrativa dedicata Fornisce un accesso amministrativo al server indipendentemente dal carico di lavoro del server Accesso privilegiato rispetto alle connessioni degli utenti Nessun bisogno di far ripartire il server per riguadagnarne il controllo Ovviamente, riservata ai sysadmin 38 Restore Online Online Restore Il database rimane online Solo i dati in fase di restore sono offline L’unità di disponibilità è il filegroup e non il db Piecemeal Restore Restore online dei filegroup per priorità Tracking delle pagine danneggiate Page-Level Restore Restore di pagine individuali mentre il database è online 39 Backup e Restore Il backup dei dati non blocca il backup del log Possono andare in concorrenza È possibile solo un backup dei dati alla volta per database Backup / Restore includono gli indici FullText e i dati di tipo FILESTREAM 40 Estensioni DDL Attach e Detach includono i cataloghi Fulltext, e i tipi Filestream Per creare un db partendo dai file dati, ricostruendo il log… CREATE DATABASE <dbname> … FOR ATTACH_REBUILD_LOG I file possono essere spostati come posizione Era solo sul tempdb, ora per qulunque db Operazione offline ALTER DATABASE <dbname> MODIFY FILE ( name = <logical name>, filename = <new path>) 41 Miglioramenti sugli indici La ricostruzione di un indice Clustered, non causa la ricostruzione di tutti i Nonclustered correlati Indici con Included Columns Permettono l’inserimento di dati di altre colonne nel livello foglia di un indice Le colonne non chiave non sono incluse nella struttura dell’indice e nella verifica della dimensione limite Possibilità di creare più indici ‘covering’ Disabilitare gli indici Possibilità di stoppare l’utilizzo e l’aggiornamento di un indice Disallocazione dello spazio ma mantenimento dei metadati Occorre ricostruire prima di poter utilizzare di nuovo Semplice riattivazione, avendo i metadati disponibili ALTER INDEX … REBUILD 42 Caricamento massivo di dati Nuovo formato XML-based Fornisce tutte le funzionalità del precedente ma ne consente molte di più Formato semplice da specificare e comprendere Supportato dai comandi T-SQL e BCP Il vecchio formato può essere ancora utilizzato Il vecchio formato dati può essere caricato utilizzando i nuovi format file XML Problematiche di sicurezza Utilizza i privilegi dell’utente Windows che ha lanciato il programma per leggere/scrivere i file da disco Performance migliorate 43 Caricamento massivo di dati Logging degli errori L’operazione va a termine anche se ci sono errori Le righe non correttamente formattate vengono redirette sul file di log per analisi successive Le righe che violano qualche constraint vengono redirette su una tabella degli errori insieme con il messaggio generato Modello uniforme con il comando di Insert L’Insert-Select del T-SQL guadagna gli stessi miglioramenti e ottimizzazioni Es: Logging OPENROWSET migliorato per leggere i dati da file esterni 44 Partizionamento dei dati Il partizionamento suddivide un oggetto in parti più facilmente gestibili Trasparente alle applicazioni Consente la gestione di tabelle e indici di grandissime dimensioni in maniera semplice La riga è l’unità di partizionamento Tutte le partizioni devono risiedere nello stesso database Non Partizionata Partizionata A, B, C, D, E, F, G, H, I, J, K, L A, B, C D, E, F G, H, I J, K, L 45 Perchè partizionare? Tabelle e indici molto grandi possono essere gestiti in modo semplice Esempio: i dati di vendita separati per trimestre – backup e operazioni di manutenzione a livello di partizione Per avvantaggiarsi di macchie con più CPU (16-64) (machine scale-up) Ogni CPU può lavorare sulla propria partizione indipendentemente (concorrenza migliorata) 46 Partizionamento dei dati Le partizioni possono essere aggiunte e cancellate senza perdere la disponibilità della tabella stessa La tabella rimane completamente disponibile durante il caricamento e l’indicizzazione di una nuova partizione La creazione di nuove partizioni e la cancellazione delle vecchie è immediata Velocità di caricamento molto elevate Se gli indici sono allineati, è possibile muovere partizioni dentro e fuori da una tabella Scenario “Sliding window” 47 Cosa può essere partizionato Gli oggetti partizionabili sono Tabelle di base Indici (clustered e non clustered) Viste indicizzate Solo partizionamento “orizzontale” Riga come più piccola unità di partizionamento 48 Come partizionare Ogni riga è assegnata ad una partizione attraverso una “partition function” Ogni funzione di partizionamento è mappata ad un elemento di storage specifico (Filegroup) attraverso un “partition scheme” 49 Partition Function Mappa una riga ad una partizione sulla base del valore delle colonne MyPtnFunc(T.salesdate) --> (1, 2, 3, ...) Due tipi di funzioni di partizionamento Hash – hashing definito dal sistema; L’utente definisce le colonne della chiave e il numero di partizioni Range – L’utente definisce le colonne chiave, il numero delle partizione e i confini di ogni partizione Le funzioni di partizionamento devono mappare completamente il dominio del range di input Tutti i possibili valori per quel tipo di colonna 50 Partition Scheme Assegna una partizione ad un elemento di storage fisico (Filegroup) Più partizioni possono essere mappate sullo stesso o su differenti Filegroup In SQL Server 2000, tabelle e indici erano mappati su Filegroup – ora vengono mappati a partition scheme Una funzione di partizionamento può essere legata a più partition scheme 51 Database Tuning Advisor Il successore del “Index Tuning Wizard” Applicazione completa – nuova e più ricca UI Non solo per indici e viste indicizzate Aggiunta di partizione e tuning multi database Suggerimenti sulle nuove feature legate agli indici Es: indici con Included Columns, ecc. Raccomandazioni sulla high availability tengono conto dei criteri di disponibilità (es. Solo indici che possono essere ricostruiti online) Limiti di tempo alle operazioni L’amministratore decide il ‘think’ time Analisi “What-if” sulla base dei suggerimenti del52 tool Replica dei dati Programmabilità e BI Prestazioni e Scalabilità Enterprise Data Management Replicazione dei tipi .NET Programmazione attraverso le .NET API Pubblicazione dei dati da Oracle a SQL Server Replicazione su HTTP / HTTPS Riduzione dei tempi di replica Supporto di un più largo numero di subscriber Miglioramento della concorrenza con le applicazioni Increase uptime Semplifica il setup e l’amministrazione Nuovo sistema di controllo dello stato della replicazione (health monitor) 53 In sintesi Ci sono una “tonnellata” di novità in Yukon per l’amministratore del sistema I focus particolari: Sicurezza Disponibilità dei dati Scalabilità Semplificazione delle attività amministrative Per saperne di più: http://www.microsoft.com/sql/yukon http://blogs.gotdotnet.com/scoriani ☺ 54 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. 55