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