workshop sql server 2012
TRANSCRIPT
Workshop SQL Server 2012
Viviane RibeiroEspecialista em Banco de Dados e [email protected]
SQL Server AlwaysONColumnStore Index
Novidades para o SSASPower Pivot e Power View
High AvailabilityAlwaysOn
Tecnologias para HA/DR Failover Clustering
(Nível Instância)
Database Mirroring(Nível de Banco de Dados)
Tecnologias para HA/DR
Log Shipping(Nível Banco de Dados)
Replicação(Nível de Banco de Dados)
Tecnologias para HA/DR
Snapshot de Banco de Dados
Definindo a Solução
Failover Clustering e Database MirroringDetecção automática de Falha e FailoverManual failoverRedirecionamento transparente do cliente
Considerações:Failover Clustering requer hardware específicoDatabase Mirroring atua no escopo de Banco de Dados
Cenário
7 |
1. Alta disponibilidade local (site principal) com failover automático.
A
A
2. Réplica do banco de dados em um terceiro servidor no site principal para execucão de relatórios.
3. Se o site principal cair, deve-se fazer failover para o site de contingência (DR).
5. Permitir a execução de backup no terceiro servidor do site principal.
Site Principal
Site Contingência(DR)
4. Para reduzir custo, replicação entre storage não é uma opção.
Movimentação de dados Síncrona
Movimentação de dados Assíncrona
Backups
Relatórios
A
Failover Clustering
DB Mirroring
Log Shipping
Alta Disponibilidade Hoje
Failover Clustering (FC) Requer uma storage compartilhada Não permite nó secundário ativo (leitura ou backup) Para disaster recovery (DR)
Requer replicação síncrona entre storages ou uma combinação de FC com Database Mirroring ou Log Shipping
8 |
Database Mirroring Failover automático: requer SNAC ou o parâmetro
FailoverPartner na string de conexão, Witness Não permite conexão dos sistemas utilizando nome virtual É possível leitura no secundário utilizando database
snapshot no mirror
Alta Disponibilidade hoje
Log Shipping Não permite failover automático Nós secundários offline (não permite leitura nos secundários) Failover manual no nível de banco de dados
9 |
SQL Server AlwaysOn
10 |
Multisite Clustering através de subnets
Política de Failover Flexível
Windows Server Core TEMPDB em disco local
Failover de múltiplos bancos de dados
Múltiplos servidores secundários
Sevidores secundários ativos Gerenciamento integrado
através de um Dashboard Suporte a nome e IP virtual
AlwaysOn Availability Groupsproteção no nível de banco de dados
AlwaysOn Failover Cluster Instancesproteção no nível de instância
Novas soluções com AlwaysOn
AlwaysOn Availability Groups
11 |
Availability Groups fornece alta disponibilidade e disaster recovery no nível de banco de dados combinando database mirroring e log shipping
Failover de múltiplos bancos de dados
Múltiplos secundários Total de 4 secundários 2 síncronos
1 par com failover automático 2 assíncronos
Compressão e criptografia integrada
Failover automático e manual Política de failover flexível Recuperação de páginas
automático
Servidores secundários ativos Leitura nos secundários Backup nos secundários
Redirecionamento automático da aplicação utilizando nome virtual
Configuração utilizando Wizard
Dashboard Integrado Integração com System
Center Automação via power-shell
Integração e eficiênciaFlexibilidade
Availability Groups - Arquitetura
12 |
Windows Server Failover Cluster (WSFC)
Sincronização de Log Sincronização de Log
InstânciaA InstânciaB InstânciaC
Primário Secundário
As instâncias do SQL Server não
são clusterizadas
Secundário
AA A
Detecção da saúde entre os nós, Coordenação do Failover, Armazenamento distribuído dos dados de configuração e status do
Availability Group Notificações distribuída das alterações
Availability Group usa WSFC para:
Suporte a Nome e IP Virtual
26/11/2011 | Footer Goes Here13 |
“Availability Groups Listener”: permite o failover transparente das aplicações para qualquer dos nós secundários As aplicações se conectam utilizando um IP e nome
virtual
Primário Secundário
-server VAG_RH;-catalog DB_RH
As aplicações tentam reconexão durante o failover
A conexão é reestabelecida com o novo primário assim que o failover é concluído e o nome virtual ficar online
Primário SecundárioSecundário
InstânciaA InstânciaB InstânciaC
DB_RH DB_RHDB_RH
Secundário
AG_RH
VAG_RH
Resumo
26/11/2011 |14 |
SQL Server AlwaysOn é uma solução de alta
disponibilidade com muito mais abrangência
Maior disponibilidade para as aplicações Maior retorno sobre o investimento Simplicidade para implementação e gerenciamento Atende a pequenos médios e grandes ambientes Baixo custo (reaproveitamento de hardware)
Maior flexibilidade e eficiência na configuração
de alta disponibilidade com AlwaysOn
Availability Group
SQL Server AlwaysOn Availability Group
Failover para múltiplos databases Multiplos servidores secundários Servidores secundários como leitura Backup nos servidores secundários Movimentação de dados Síncrona e
Assíncrona Compressão e criptografia integrados Failover automático e manual Política de failover mais flexível Reparação de páginas automático Redirecionamento automático das
aplicações usando nome e IP virtual Configuração através de Wizard AlwaysOn Dashboard Integração com System Center Automação via power-shell Rica infraestrutura de diagnósticos
Conteúdo Relacionado
“Denali” AlwaysOn Resource Center http://msdn.microsoft.com/en-us/sqlserver/gg490638(en-us,MSDN.10)
SQL Server® Code Name “Denali” websitewww.microsoft.com/sqlserver
Download do Denali CPT3Documentação
What's New topic for Availability Enhancements on MSDN
http://msdn.microsoft.com/en-us/library/cc645581(v=SQL.110).aspx
SQL Server Denali (CTP 3) Product Guide v1.0http://www.microsoft.com/download/en/details.aspx?id=27069
PerformanceColumnIndex Store
Projeto Apollo
Otimiza as consultas ao data warehouse Novo columnstore index Melhora a execução de consultas query execution
Fácil de Usar Reduz TCO
Data warehouse schemas and queries
Star schema Tabelas Fato coloque columnstore indexes aqui Tabelas Dimensão
Star joins Consultas que contém agregações de dados
Star schemaFactSales
DimCustomer
FactSales(CustomerKey int, ProductKey int,EmployeeKey int,StoreKey int,OrderDateKey int,SalesAmount money)
DimCustomer(CustomerKey int,FirstName nvarchar(50),LastName nvarchar(50),Birthdate date,EmailAddress nvarchar(50))
DimProduct …
DimDate
DimEmployee
DimStore
Star join query
SELECT TOP 10 p.ModelName, p.EnglishDescription, SUM(f.SalesAmount) as SalesAmountFROM FactResellerSalesPart f, DimProduct p, DimEmployee eWHERE f.ProductKey=p.ProductKey AND e.EmployeeKey=f.EmployeeKey AND f.OrderDateKey >= 20030601 AND p.ProductLine = 'M' -- Mountain AND p.ModelName LIKE '%Frame%' AND e.SalesTerritoryKey = 1 GROUP BY p.ModelName, p.EnglishDescriptionORDER BY SUM(f.SalesAmount) desc;
Estrutura
Uses VertiPaq compression
C1 C2 C3 C5 C6C4
…
Pages
Row store:
Column store:
Menos I/O usando columnstore indexes
• Busca apenas as colunas necessárias no disco
• Colunas são compactadas• Reduz IO
C1
C2
C4 C5 C6
C3
SELECT region, sum (sales) …
Considerações
• Tabela base deve ter um indíce clustered B-tree or heap
• Columnstore index:− nonclustered − Um por tabela− Deve ser partition-aligned− Não permitido em indexed view
Criando o Columnstore Index
Crie a Tabela Carregue os dados dentro da Tabela Crie um non-clustered Columnstore index em
todas, ou algumas colunasCREATE NONCLUSTERED COLUMNSTORE INDEX ncci ON myTable(OrderDate, ProductID, SaleAmount)
Object Explorer
Criando o Columnstore Index
Usando hints com columnstore indexes• Use o columnstore index
• Use um indíce diferente
• Ignore columnstore
select distinct (SalesTerritoryKey)from dbo.FactResellerSales with (index (ci))
select distinct (SalesTerritoryKey)from dbo.FactResellerSales with (index (ncci))
select distinct (SalesTerritoryKey)from dbo.FactResellerSalesoption(ignore_nonclustered_columnstore_index)
Novos elementos no Showplan
Restrições – Tipos de Dados
−Tipos não suportados− decimal > 18 digits− Binary− BLOB− (n)varchar(max)− Uniqueidentifier− Date/time types > 8 bytes− CLR
Carregando Novos Dados em um columnstore index
− Columnstore deixa a tabela read-only− Partition switching é permitido− INSERT, UPDATE, DELETE, and MERGE não são permitidos− Dois métodos recomendados para Carga de Dados:
Disable, update, rebuild Partition switching
Adicionando Dados na Tabela com
Columnstore IndexMétodo 1: Desabilitar o columnstore index
Desabilitar (ou excluir) o indíce ALTER INDEX my_index ON MyTable DISABLE
Atualize a Tabela Recontrua o Columnstore index
ALTER INDEX my_index ON MyTable REBUILD
Método 2: Use Particionamento
Carregue os novos dados dentro de uma staging table
Construa o columnstore index CREATE NONCLUSTERED COLUMNSTORE INDEX my_index ON
StagingT(OrderDate, ProductID, SaleAmount) Faça o Split para Partição vazia Faça o Switch da partição para dentro da tabela
ALTER TABLE StagingT SWITCH TO T PARTITION 5
Adicionando Dados na Tabela com
Columnstore Index
Quando criar um Columnstore index
Maior parte do Workload Read-only Workflow permite particionamento ou recriação do
índice Queries com agregações de uma grande
quantidade de dados
Quais tabelas devem ter Columnstore index? Tabelas Fato Grandes (Talvez) Grandes Dimensões
Quando não utilizar um Columnstore Index
Atualizações Frequentes na tabela Partition switching ou rebuilding index não seja
possível como parte do workflow Frequente pequenas consultas look up
Neste caso Indíce B-tree traz uma melhor performance
Resumo
Astonishing speedup for DW queries
Columnstore technology+
Advanced query processing
Business IntelligenceO que há de Novo no SSAS
BI Semantic Model
Client Tools Analytics, Reports, Scorecards,
Dashboards, Custom Apps
Data SourcesDatabases, LOB Applications, OData Feeds,
Spreadsheets, Text Files
BI Semantic Model
Data model
Business logic and queries
Data accessBI na
EquipePowerPivot for SharePoint
BI PessoalPowerPivot for Excel
BI CorporativoAnalysis Services
Um Modelo para todas as Experiências do Usuário final
BI Semantic Model - Arquitetura
3 Tipos de Instalação:
Multidimensional and Data Mining (default) PowerPivot for Sharepoint Tabular
demo
Usuário Avançado de Excel
Construindo modelos usando PowerPivot
demo
Profissional de TI
Restaurando Modelos no SSMS
demo
Profissional de BI
Construindo Modelos no BIDS
BI Semantic Model - Upgrade
Perguntas?
• Learning Hub BI: http://technet.microsoft.com/pt-br/hh318524
• Learning Hub Banco de Dados: http://technet.microsoft.com/pt-br/hh210186
• Blog: http://vivianeribeiro1.wordpress.com• Twitter: @viviane_sql
50 |
© 2011 Microsoft Corporation. Todos os direitos reservados.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.