Recursos de Gerenciamento de
SQL Server
Wandenkolk T. Neto
Consultor MCS
Microsoft Brasil
[email protected]
Objetivos
Como tornar a sua vida mais fácil com relação ao
gerenciamento de SQL Server 2008 R2 e Denali para
situações de alto volume e otimizações
Quais os próximos passos... O que mais há lá fora de
interessante para novos projetos com SQL Server
SQL 2008 R2
Multi Core Suporte melhorado
Unicode Compression
Data Tier Applications
Virtualização
Data Center Edition …
Denali
Management Studio
Debugger
Distributed Replay
Contained Databases
…
Multi Core Suporte (2008 R2)
Suporte a até 256 processadores lógicos
rodando em Windows 2008 R2
Suporte a até 15K Partições, também
suportado em SQL Server 2008 SP2
exec sp_db_increased_partitions'<database-name>','ON'
Como tirar proveito ?
Paralelismo intra-query (famoso MAXDOP hint)
Espalhando o backup em multiplos discos, cria-se
multiplas threads
Distribuição de arquivos do banco, tempdb etc em
multiplos discos
Unicode Compression
Entenda data compression primeiro
SPARSE columns : A idéia é comprimir dados nulos, para cada
nulo, gasta-se um espaço para dizer ao sql server que aquela
posição é nula
ROW Compression
PAGE Compression – Método mais eficiente, comprime o dado no
nível de página
Unicode Compression – SCSU (Standard compression
scheme for Unicode)
Ativada compressão especifica para unicode em ROW ou Page
Compression (preferencialmente PAGE compression)
Avalie o beneficio da compressão com
sp_estimate_data_compression_savings
Não aplicável a nvarchar(max)
Na prática a mudança ocorre sob o capô, o sql server define
automaticamente o algorítmo apropriado para a compressão
Demo Compressão
Pacote de instalação
Schema
Logins
Outros Elementos
Mapa da Mina
Extraír o Data Tier Application, criando um DACPAC em
desenvolvimento/homologação
De posse do DACPAC, pode se importá-lo em produção bem
como compará-lo com o schema de um outro database ja
operando
DACPAC contém apenas schema e a criação de
demais objetos. Não contem dados.
Ferramentas para o gerenciamento de Dacpacs
(importaçao exportacao com inclusão de dados)
DACImportExportClient
Build
Extract
Deploy
DAC
database
model
Upgrade
Import
Export
DACPAC
http://www.microsoft.com/download/en/details.aspx?displ
aylang=en&id=7826
High
Availability
Scalability &
Performance
Security &
Manageability
SQL Server
AlwaysOn
Up to 15K
Partitions/Table
User-Defined
Server Roles
Reliable,
Integrated
Failover Detection
Column Store
Index, “Apollo”
Contained
Database
Authentication
Application
Centric Failover
Fast
FILESTREAM
Database
Recovery Advisor
Dev &
Beyond
Relational
Web &
Breadth
Business
Intelligence
EIM
Microsoft
Project
“Juneau”
Win32 Access
to Database files
PHP Driver
Unified Semantic
Model
SSIS Server
Local DB
Runtime
Crescent
Data Quality
Distributed
Replay
FileTable
UTF-16
In-memory BI for
corporate
Enhanced MDS
Fast Full-Text
Search
Audit
Enhancements
Semantic Search
with FT
Paging for result
sets
Alerting
MDS add-in for
Excel
Active
Secondaries
Fast Spatial
Performance
Full Globe
Spatial Support
JDBC 4.0 driver
Reporting as
SharePoint
Shared Service
Online
Operations
DBC & OLTP
Appliances/RAs
Management
Pack for High
Availability
Default Schema
for Windows
Group
Active Directory
w/ SharePoint
for SSRS
DAC
Enhancements
ODBC for Linux
PowerPivot
Enhancements
HA for
StreamInsight
Windows Server
Core Support
T-SQL & CLR
enhancement
Hybrid
Applications
with SQL Azure
Baseado em WPF
Suporte a multiplos monitores
Mais atalhos de teclado
Debugger Melhorado
Watch / Quick Watch
Data Tip
Permite debug de SQL 2005 SP2 ou
superior
Client
Client
Dispatch
Controller
Servidor Alvo
Client
Client
Instalar o Controller e Client para Distributed Replay em
conjunto com o client tools do SQL Server (pré-requisito)
2.Capturar o Workload como se fosse executar o replay
via profiler
3.Pré-processar o arquivo
dreplay preprocess -m SERVER1 -i c:\replay\replay.trc -d
C:\replay\work\
-m – controller
-I – arquivo de input a ser consumido
-d – diretório onde o dispatch será gerado
Executar o Replay
Dreplay replay -m SERVER1.denali.lab -d C:\Replay\Work\
-s SERVER3\SQLC -w SERVER1.denali.lab
- m – servidor controller
-d – working folder com o dispatch file
-s – servidor target
-w – servidores client
* ferramentas localizadas em c:\Program
Files(x86)\Microsoft SQL Server\110\Tools\Binn
Problema:
Mover bancos de dados entre servers, espcecialmente em cenários
com alto número de bancos de dados, e alta criticidade para
aplicações;
•Impactos
Mover databases entre servers é trabalhoso
Depende do dba acertar detalhes de segurança – logins com users
Precisa-se mapear todas as dependencias que o database possui
para funcionar
E sempre durante qualquer movimentação uma depencia não
mapeada aparece
Contained Databases
Feature do Denali que permite que um db seja até certo ponto
indepentente do server onde está localizado. Ainda implementado
parcialmente ou seja, a feature atual endereça aspectos
fundamentais, mas não todos
Application Model
Todos os objetos que estão no âmbito da aplicação:
Database system catalog views (sys.objects... )
Data Types
T-SQL
Criação de Objetos
Direitos / Permissões
SETs
Funções built-in
Stored procedures de usuário
DBCC
Server Catalog Views (sys.databases)
Compatilbility views (sysobjects, sysdatabases....)
Alguns CREATE/ DROP/ ALTER
FILESTREAM
até porque acessa recursos externos, no caso o share com o
blob
Change Data Capture
Server trace procedures
Linked Server
Full Text Search
Tabelas locais dentro de um partially contained são
permitidas
Objetos dentro de um modelo partially contained podem
ser mapeados com sys.dm_db_uncontained_entities
Tabelas temporárias não podem usar constraints
nomeadas
Tabelas temporárias não podem usar User Defined Types,
User Defined Functions ou XML Schema Collection
Segurança em Contained databases
Db_owners ou db_security admin tem
automaticamente permissão de logar na instancia
uma vez que o db tenha containment partial;
Acesso a outros banco é permitido pelo usuário
guest. Sem guest sem acesso
Contained users tem senhas atribuidas a eles;
AUTO_CLOSE sempre desligado;
Master não pode ser contained
Funciona com compatibility levels inferiores (90 – sql
2005 / 100 - 2008)
Um banco em partial pode ser enviado de volta para
none - Desde que caracteristicas especificas de
contained databases sejam removidas (users com
password por exemplo)
Novos server roles
Permissoes aplicadas a:
Endpoints
Logins
Servers
Availability Groups ( Servidor virtual do Always on)
Server Roles
USE [master] GO
CREATE SERVER ROLE [test_role] GO
use [master] GO GRANT ALTER ANY DATABASE TO [test_role] WITH
GRANT OPTION GO
use [master] GO GRANT ADMINISTER BULK OPERATIONS TO [test_role]
GO
Download de patches antes da instalação!
Suporte a cluster georgráfico com multiplas subredes
Suporte a mountpoints montados em discos locais
em cluster
Always On
Mirror com suporte a virtual servers, como um cluster
Redundancia de Data Center com logshipping integrado ao
Always On
Microsoft SQL Server website
http://www.microsoft.com/SQL
SQL Server Customer Advisory Team
http://www.sqlcat.com
Documentação do SQL Server Denali no MSDN
http://msdn.microsoft.com/enus/library/bb418432(v=SQL.10).aspx
Download

SQL Server 2008 R2 – Recursos de Gerenciamento de SQL Server