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
Scarica

DAT400: Overview of what`s new for developers in SQL