Índice AGRADECIMENTOS COMO UTILIZAR ESTE LIVRO Top XIV XV 0. INTRODUÇÃO 1 1. INTRODUÇÃO AO SQL SERVER 2012 5 1.1 SQL Server 5 1.2 Plataforma do SQL Server 2012 5 1.3 Potencialidades do SQL Server 2012 6 1.3.1 Policy-Based Management (PBM) 13 1.3.2 Auditoria e controlo de alterações 14 1.3.3 Resource Governor 15 1.3.4 Segurança 15 1.3.5 Tipos de dados 15 1.4 Novidades do SQl Server 2012 17 1.4.1 StreamInsight 17 1.4.2 PowerPivot 17 1.4.3 Compressão unicode 18 1.4.4 AlwaysOn/HADR (High Availability Disaster Recovery) 18 1.4.5 Projeto Appolo Column-Store Index 19 1.4.6 Distributed Replay 19 1.4.7 Projeto Crescent Reporting Services 19 1.4.8 Data Quality Services 19 1.4.9 Cloud On Your Terms 20 1.5 Edições do SQL Server 2012 20 1.5.1 SQL Server 2012 Compact 20 1.5.2 SQL Server 2012 Express 22 1.5.3 SQL Server 2012 Standard 23 1.5.4 SQL Server 2012 Business Intelligence 23 1.5.5 SQL Server 2012 Enterprise 24 1.5.6 SQL Server 2012 Developer 24 1.5.7 SQL Azure 24 1.5.7.1 SQL Azure Web 25 1.5.7.2 SQL Azure Business 25 1.5.8 SQL Server 2012 64 bits 25 1.5.9 Comparação entre várias edições do SQL Server 2012 26 1.6 Licenciamento do SQL Server 2012 32 1.6.1 Licenciamento por núcleo 33 1.6.2 Servidor mais licença de Acesso Dispositivo Cliente (CAL) 33 1.6.3 Licenciamento para virtualização 35 1.6.3.1 Licenciamento para máquinas virtuais individuais 35 1.6.3.2 Licenciamento para ambientes densamente virtualizados 36 1.6.4 Licenciamento em ambientes de alta disponibilidade 36 1.7 Papel do administrador de bases de dados (DBA) 38 1.7.1 O que é o DBA? 39 1.7.2 Administração de bases de dados 40 1.7.3 Tarefas do DBA 41 1.7.3.1 Instalação e configuração 41 1.7.3.2 Segurança 42 1.7.3.3 Operações do dia a dia 43 1.7.3.4 Monitorização do sistema 44 1.7.3.5 Rotinas de manutenção 44 2. DESENHO E PLANEAMENTO 45 2.1 Do hardware 45
2.1.1 Disco duro 46 2.1.1.1 Características de um disco duro 47 2.1.2 Sistemas de discos tolerantes a falhas 49 2.1.2.1 Mirroring de discos 50 2.1.2.2 Duplexing de discos 50 2.1.2.3 Striping de discos 51 2.1.2.4 Redundant Array of Independent Disks (RAID) 52 2.1.2.5 Performance dos sistemas de RAID 59 2.1.2.6 Network Attached Storage (NAS) 63 2.1.2.7 Storage Area Network (SAN) 64 2.1.2.8 Princípios básicos do desenho do subsistema de armazenamento 65 2.1.2.9 Boas práticas 66 2.1.3 Plataforma 32 bits ou 64 bits? 68 2.1.3.1 X86 68 2.1.3.2 X64 69 2.1.3.3 Itanium 70 2.2 Do software 70 2.2.1 Versões do Windows 70 2.2.1.1 Windows de 32 bits e suas limitações de memória 72 2.2.2 SQL Server 2012 de 32 bits ou de 64 bits 74 3. INSTALAÇÃO DO SQL SERVER 2012 77 3.1 Planeamento da instalação 77 3.2 Como instalar o SQL Server 2012 80 3.2.1 SQL Server Installation Center 80 3.2.2 Upgrade para SQL Server 2012 91 3.2.3 Instalação a partir da linha de comandos 93 4. O SQL SERVER 2012 E A REDE 99 4.1 Funcionamento dos serviços de rede 99 4.1.1 API do SQL Server 2012 100 4.1.1.1 ODBC 100 4.1.1.2 OLE DB 101 4.1.1.3 JDBC 101 4.1.2 Bibliotecas de rede e protocolos do SQL Server 101 4.1.2.1 TCP/IP 101 4.1.2.2 Named Pipes 102 4.1.2.3 Shared Memory 102 4.1.3 SQL Native Client (SNAC) 103 4.1.4 Configurar os protocolos de rede 103 4.1.4.1 SQL Server Services 104 4.1.4.2 Configurar protocolos do servidor de base de dados 110 4.1.4.3 Configuração do SNAC 113 4.1.4.4 Aliases 116 4.1.5 Serviço SQL Server Browser 118 4.2 Dificuldades em estabelecer ligações remotas 119 4.2.1 Configurar SQL Server para aceitar ligações remotas 120 4.2.2 Iniciar SQL Server Browser 121 4.2.3 Configurar firewall 122 4.2.4 Erro de falha de login 124 5. SQL SERVER MANAGEMENT STUDIO 127 5.1 O SQL Server Management Studio (SSMS) 127 5.1.1 Explorar o SSMS 131 5.1.1.1 Registered Servers 132
5.1.1.2 Object Explorer 134 5.1.1.3 Document Area 135 5.1.1.4 Menu View 137 5.1.1.5 Menu Tools 139 5.1.1.6 Barra de ferramentas do SSMS 140 5.1.1.7 Opções do SSMS 141 5.1.2 Query Editor 142 6. GESTÃO DE SERVIDOR SQL 147 6.1 Gerir servidores de SQL Server 2012 147 6.1.1 Propriedades gerais 148 6.1.2 Propriedades de memória 150 6.1.3 Propriedades de processadores 153 6.1.4 Propriedades de segurança 156 6.1.5 Propriedades de ligações 159 6.1.6 Propriedades de bases de dados 160 6.1.7 Propriedades avançadas 162 6.1.8 Propriedades de permissões 166 6.2 Pastas do motor de base de dados SQL Server 167 6.2.1 Pasta Databases 168 6.2.1.1 Bases de dados do sistema (Subpasta System Databases) 168 6.2.1.2 Snapshots de bases de dados (Subpasta Database Snapshots) 169 6.2.1.3 Bases de dados do utilizador 170 6.2.2 Pasta Security 170 6.2.2.1 Subpasta Logins 171 6.2.2.2 Subpasta Server Roles 171 6.2.2.3 Subpasta Credentials 171 6.2.2.4 Subpasta Cryptographic Providers 171 6.2.2.5 Subpasta Audits 172 6.2.2.6 Subpasta Audit Specifications 172 6.2.3 Pasta Server Objects 172 6.2.3.1 Subpasta Backup Devices 172 6.2.3.2 Subpasta Endpoints 173 6.2.3.3 Subpasta Linked Servers 173 6.2.3.4 Subpasta Triggers 174 6.2.4 Pasta Replication 175 6.2.5 Pasta AlwaysOn High Availability 175 6.2.6 Pasta Management 175 6.2.6.1 Subpasta Policy Management 175 6.2.6.2 Subpasta Data Collection 176 6.2.6.3 Subpasta Resource Governor 176 6.2.6.4 Subpasta Extended Events 177 6.2.6.5 Subpasta Maintenance Plans 177 6.2.6.6 Subpasta SQL Server Logs 178 6.2.6.7 Subpasta Database Mail 178 6.2.6.8 Subpasta Distributed Transaction Coordinator 179 6.2.6.9 Subpasta Legacy 179 6.3 Administrar propriedades de uma base de dados 180 6.3.1 Página General 180 6.3.2 Página Files 181 6.3.2.1 Criar filegroups adicionais 183 6.3.2.2 Criar ficheiros adicionais para a base de dados 184 6.3.2.3 Configurar o Autogrowth 185 6.3.3 Página Filegroups 185 6.3.4 Página Options 186
6.3.5 Página Change Tracking 194 6.3.6 Página Permissions 195 6.3.7 Página Extended Properties 196 6.3.8 Página Mirroring 197 6.3.9 Página Transaction Log Shipping 197 6.4 Tarefas de gestão adicionais do SQL Server 198 6.4.1 Relatórios informativos do motor de base de dados 198 6.4.2 Criar scripts de objetos de uma base de dados 201 6.4.3 Detach e attach de uma base de dados 201 6.4.4 Backup e restore de uma base de dados 204 6.4.5 Colocar uma base de dados offline 204 6.4.6 Shrink 206 6.4.6.1 Fazer shrink a uma base de dados 206 6.4.6.2 Fazer shrink aos ficheiros 209 6.4.6.3 Shrink do ficheiro de log 212 6.5 Contained Databases 214 7. SEGURANÇA 221 7.1 Introdução 221 7.2 Características de segurança 222 7.2.1 Autenticação 222 7.3 Principals e Securables 223 7.3.1 Principals 223 7.3.1.1 Logins 224 7.3.1.2 Autenticação Windows 224 7.3.1.3 Autenticação mista 225 7.3.1.4 Criar logins 225 7.3.1.5 Server Roles e Database Roles 230 7.3.1.6 Users 234 7.3.2 Securables 238 7.3.2.1 Schemas 238 7.4 Permissões 242 7.4.1 Tipos de permissões 242 7.4.1.1 Permissões de servidor 243 7.4.1.2 Permissões de bases de dados 243 7.4.1.3 Permissões a instruções 248 7.5 Gestão de políticas 250 7.6 Encriptação de bases de dados 258 7.6.1 Hierarquia de chave criptográfica 259 7.6.1.1 Service Master Key 260 7.6.1.2 Database Master Key 262 7.6.1.3 Chaves assimétricas 264 7.6.1.4 Certificados 265 7.6.1.5 Chaves simétricas 266 7.6.2 Transparent Data Encryption 270 7.6.2.1 Como ativar o TDE 270 7.6.2.2 Encriptação column-level ou cell-level 273 7.6.2.3 Extensible Key Management 274 7.7 Auditoria no SQL Server 2012 274 7.7.1 Auditoria ao servidor do SQL Server 279 7.7.2 Auditoria a bases de dados 282 8. AUTOMAÇÃO, MONITORIZAÇÃO E MANUTENÇÃO 285 8.1 Introdução 285 8.2 SQL Server Agent 286
8.2.1 Subpasta Jobs 291 8.2.1.1 Como criar um job 291 8.2.1.2 Criar notificações e operadores para as mesmas 295 8.2.2 Subpasta Job Activity Monitor 297 8.2.3 Subpasta Alerts 298 8.2.3.1 Criar alertas de erros do SQL Server 300 8.2.4 Subpasta Operators 305 8.2.5 Subpasta Proxies 305 8.2.5.1 Subpasta Error Logs 309 8.3 Planos de manutenção 310 8.3.1 Criar plano de manutenção através do assistente 310 8.3.2 Criar plano de manutenção através do SSIS 317 8.4 SQL Command (SQLCMD) 323 8.4.1 Ligação dedicada de administrador (DAC) 326 8.5 Database Mail 326 8.6 SQL Profiler 331 8.7 Verificação de consistência da base de dados 334 8.7.1 Comandos DBCC 335 8.7.1.1 Comando DBCC CHECKDB 336 8.7.1.2 Comando DBCC CHECKTABLE 339 8.7.1.3 Comando DBCC CHECKALLOC 340 8.7.1.4 Comando DBCC CHECKCATALOG 342 8.7.1.5 Comando DBCC CHECKCONSTRAINTS 342 8.7.1.6 Comando DBCC CHECKIDENT 344 8.8 Resource Governor 346 8.8.1 Resource pools 348 8.8.2 Workload groups 350 8.8.3 Classification 354 8.9 Extended Events 355 8.9.1 Packages (pacotes) 356 8.9.2 Events (eventos) 357 8.9.3 Targets (destinos) 357 8.9.4 Actions (ações) 358 8.9.5 Predicates (predicados) 358 8.9.6 Interface gráfico 359 8.10 Distributed Replay Controller 369 8.10.1 Pré-processamento (preprocess) 371 8.10.2 Replay 371 8.10.3 Instalação 372 8.10.3.1 Pré-requisitos 372 8.10.3.2 Instalação através do SQL Server Installation Center 373 9. ADMINISTRAÇÃO MULTISSERVIDOR 377 9.1 Ferramenta SQL Server Utility 377 9.1.1 Criar um UCP 381 9.1.2 Registar uma instância no UCP 383 9.1.3 Utility Explorer 388 9.1.3.1 Nó Managed Instances 391 9.1.3.2 Nó Utility Administration 396 9.1.4 Gerir definições através do Utility Administration 397 9.1.4.1 Separador Policy 397 9.1.4.2 Separador Security 400 9.1.4.3 Separador Data Warehouse 401 10. BACKUPS E RESTORES 403
10.1 Backups 403 10.1.1 Transaction log 404 10.1.2 Modelos de recuperação 405 10.1.2.1 Modelo de recuperação Simple 405 10.1.2.2 Modelo de recuperação Full 406 10.1.2.3 Modelo de recuperação Bulk-logged 406 10.1.3 Tipos de backups 408 10.1.3.1 Backups de dados 409 10.1.3.2 Backups diferenciais 416 10.1.3.3 Backup dos logs 418 10.1.3.4 Copy Only Backups 420 10.1.3.5 Database Backup Compression 422 10.2 Restores 428 10.2.1 Restauro completo, diferencial e do log 429 10.2.2 Botão Timeline (Point in Time) 435 10.2.3 Restauro de ficheiros e grupos de ficheiros 439 10.2.4 Restauro de páginas de uma base de dados 440 10.3 Sintaxe do comando RESTORE 443 11. ALTA DISPONIBILIDADE 449 11.1 Introdução 449 11.2 Soluções de alta disponibilidade 452 11.3 SQL Server AlwaysOn 453 11.3.1 Availability Groups (grupos de disponibilidade) 456 11.3.2 AlwaysOn Failover Cluster Instances (FCI) 461 11.4 Database Mirroring 463 11.4.1 Modos de operação 465 11.4.1.1 Modo de alta disponibilidade 466 11.4.1.2 Modo de alta proteção 466 11.4.1.3 Modo de alta performance 467 11.4.2 Pré-requisitos 467 11.4.3 Configuração 468 11.4.3.1 Autenticação por Windows 469 11.4.3.2 Autenticação por certificados 472 11.4.3.3 Estabelecer o mirror 476 11.4.3.4 Estabelecer a ligação principal/mirror 477 11.4.3.5 Criação do Database Mirroring através do SSMS 478 11.4.4 Resolução de problemas 483 11.4.5 Monitorizar o Database Mirroring 486 11.4.5.1 Database Mirroring Monitor (DMM) 486 11.4.5.2 Stored procedures do sistema e views 488 11.5 Database Snapshot 489 11.5.1 Como funciona o Database Snapshot 490 11.5.2 Criar e gerir um Database Snapshot 492 11.5.3 Reverter o Database Snapshot 495 11.5.4 Limitações dos snapshots 496 11.6 SQL Server e Windows Clustering 497 11.6.1 O que é o cluster? 497 11.6.1.1 Componentes de um cluster 498 11.7 Log Shipping 499 11.7.1 Cenários de implementação 500 11.7.1.1 Servidor em espera (warm standby) 500 11.7.1.2 Recuperação de desastres (disaster recovery) 501 11.7.1.3 Base de dados de suporte a relatórios 501 11.7.2 Arquitetura do Log Shipping 502
11.7.3 Infraestrutura 504 11.7.4 Implementação do Log Shipping 505 11.7.4.1 Primeiros passos 505 11.7.4.2 Implementação através do SSMS 506 11.7.4.3 Implementação através de comandos T-SQL 512 11.7.5 Monitorizar o Log Shipping 517 11.7.5.1 Monitorizar através do relatório de estado do Transaction Log Shipping 517 11.7.5.2 Histórico de jobs do SQL Server Agent 519 11.7.5.3 Verificar o log do SQL Server 519 11.7.6 Mudança de função dos servidores 519 11.7.6.1 Failover planeado 519 11.7.6.2 Failover não planeado 521 11.7.7 Remover o Log Shipping 521 11.8 Conclusão 523 12. REPLICAÇÃO 525 12.1 Replicação 525 12.1.1 Conceitos gerais 525 12.1.1.1 Topologias 528 12.1.2 Tipos de replicação 532 12.1.2.1 Replicação por snapshot 532 12.1.2.2 Replicação transacional 532 12.1.2.3 Replicação por merge 533 12.1.2.4 Replicação peer-to-peer 533 12.1.2.5 Publicação Oracle 533 12.1.3 Subscrições push e pull 534 12.1.3.1 Subscrição push 534 12.1.3.2 Subscrição pull 534 12.1.4 Agentes de replicação 535 12.1.5 Implementar a replicação por merge 536 12.1.5.1 Configurar o distribuidor 536 12.1.5.2 Configurar o publicador 540 12.1.5.3 Configurar o subscritor 547 12.1.6 Implementar a replicação peer-to-peer 552 12.1.6.1 Configurar o distribuidor para replicação 553 12.1.6.2 Configurar a publicação no primeiro nó 554 12.1.6.3 Habilitar a publicação para replicação peer-to-peer 555 12.1.6.4 Configurar a topologia peer-to-peer 556 12.1.6.5 Acrescentar um novo nó numa replicação peer-to-peer existente 558 12.1.7 Monitorizar a replicação 559 12.1.7.1 Replication Monitor 559 12.1.7.2 Performance Monitor 564 12.1.7.3 Dynamic Views (DMVS) de replicação 565 12.1.7.4 Stored procedure sp_replcounters 566 12.1.8 Como eliminar a replicação 567 12.1.8.1 Criar scripts da replicação 567 12.1.8.2 Eliminar subscrições locais 568 12.1.8.3 Eliminar publicações locais 568 12.1.8.4 Eliminar publicação e distribuição 569 12.1.9 Gerir as palavras-passe da replicação 570 12.2 Conclusão 571 13. SQL SERVER INTEGRATION SERVICES 573 13.1 Introdução 573
13.2 Como desenhar pacotes do SSIS 576 13.2.1 Ambiente de desenvolvimento 576 13.2.1.1 Criar um pacote através do SSDT 578 13.2.2 Assistente de importação e exportação de dados 583 13.2.3 Componentes do Control Flow 589 13.2.3.1 Tarefas 589 13.2.3.2 Contentores 593 13.2.3.3 Restrições de precedência 594 13.2.3.4 Gestores de ligação 597 13.2.4 Componentes do Data Flow 597 13.2.4.1 Agrupar componentes 604 13.2.5 Controladores de eventos (event handlers) 605 13.2.5.1 Eventos em modo de execução 606 13.3 Implementação de pacotes 607 13.3.1 Ciclo de implementação de um projeto 610 13.4 Criação de um projeto SSIS 611 13.4.1 Criar um catálogo 612 13.4.2 Criar projeto de SSIS 614 13.4.3 Implementação do projeto 616 13.4.4 Criar ambientes e variáveis de ambiente 618 13.4.5 Executar o projeto 620 13.4.6 Validar o projeto 622 14. SQL SERVER REPORTING SERVICES 623 14.1 Arquitetura do SSRS 623 14.1.1 Bases de dados do SSRS 623 14.1.2 Report Server 624 14.1.2.1 Interface de programação 625 14.1.2.2 Extensões de autenticação 625 14.1.2.3 Processador de relatórios 625 14.1.2.4 Processador de dados 625 14.1.2.5 Renderização de relatórios 626 14.1.2.6 Processador de agendamento e transferência 626 14.1.3 Report Manager 626 14.1.4 Report Designer 627 14.1.5 Utilitários de linha de comandos 627 14.1.6 Report Builder 627 14.1.7 Integração com SSMS 628 14.1.8 Reporting Services Configuration Manager 628 14.2 Configuração do SSRS 628 14.3 Criar um relatório simples 630 14.3.1 Criar manualmente relatório 638 14.3.2 Novas potencialidades 644 14.3.2.1 Tablix 644 14.3.2.2 Gauge 645 14.3.2.3 Região de dados de gráfico 646 14.3.3 Usar o Report Builder 3.0 648 14.3.3.1 Data sources 649 14.3.3.2 Datasets 651 14.3.3.3 Construir o relatório através do Report Builder 3.0 652 14.4 Conclusão 655 GLOSSÁRIO DE TERMOS PORTUGUÊS EUROPEU/PORTUGUÊS DO BRASIL 657 ÍNDICE REMISSIVO 659