AGRADECIMENTOS XV
COMO UTILIZAR ESTE LIVRO XVII
0. INTRODUÇÃO 1 1. INTRODUÇÃO AO SQL SERVER 2008 5 1.1 A plataforma SQL Server 2008 5 1.2 As potencialidades do SQL Server 2008 6 1.2.1 As novidades 13 1.2.1.1 Policy-Based Management (PBM) 14
1.2.1.2 Auditoria e controlo de alterações 14
1.2.1.3 Resource Governor 15
1.2.1.4 Segurança 15
1.2.1.5 Novos tipos de dados 16
1.3 Edições do SQL Server 17
1.3.1 SQL Server Compact Edition 17
1.3.2 SQL Server Express Edition 19
1.3.3 SQL Server Workgroup Edition 20
1.3.4 SQL Server Web Edition 20
1.3.5 SQL Server Standard Edition 20
1.3.6 SQL Server Enterprise Edition 20
1.3.7 SQL Server Developer Edition 21
1.3.8 SQL Server 2008 64-bit 22
1.4 Comparação entre várias edições do SQL Server 2008 22
1.5 O licenciamento do SQL Server 2008 28
1.5.1 Servidor mais licença de acesso utilizador cliente 29 1.5.2 Servidor mais licença de acesso dispositivo cliente 30
1.5.3 Licenciamento por processador 31
1.5.4 Licenciamento em ambientes de alta disponibilidade 32
1.6 O papel do DBA (Database Administrator) 34
1.6.1 O que é o DBA 35
1.6.2 A administração de bases de dados 35
1.6.3 Tarefas do DBA 37 1.6.3.1 Instalação e configuração 37 1.6.3.2 Segurança 38 1.6.3.3 Operações do dia-a-dia 39 1.6.3.4 Monitorização do sistema 40 1.6.3.5 Rotinas de manutenção 40 2. DESENHO E PLANEAMENTO 41 2.1 Do hardware 41 2.1.1 Discos duros 42
2.1.1.1 Características de um disco duro 43
I/O Sequencial 44
I/O Aleatório 44
2.1.2 Sistemas de discos tolerantes a falhas 45
2.1.2.1 Mirroring de discos 46
2.1.2.2 Duplexing de discos 46
2.1.2.3 Striping de discos 47
2.1.2.4 RAID (Redundant Array of Independent Disks) 48
RAID 0 - Data Striping 49
RAID 1 - Data Mirroring 50
RAID 2 - Data Striping com detecção de erros 52
RAID 3 - Data Striping com drive de paridade dedicada 52 RAID 4 - Data Striping com drive de paridade dedicada 53
RAID 5 - Data Striping com paridade distribuída 53
RAID 6 55
2.1.2.5 A performance dos sistemas de RAID 56
RAID 0 57
RAID 1 57
RAID 5 58
NAS - Network Attached Storage 61
SAN - Storage Area Network 61
2.1.2.6 Princípios básicos do desenho do subsistema de armazenamento 63
Boas práticas 64
2.1.3 Plataforma 32 bits ou 64 bits? 66
2.1.3.1 X86 66
2.1.3.2 X64 67
2.1.3.3 Itanium 68
2.2 Do software 68
2.2.1 Versões do Windows 68
2.2.1.1 Windows 32 bits e as suas limitações de memória 71
2.2.2 SQL Server 2008 32 bits ou 34 bits 72
3. INSTALAÇÃO DO SQL SERVER 2008 75
3.1 O planeamento da instalação 75
3.2 Como instalar o SQL Server 2008 78
3.2.1 SQL Server Installation Center 78
3.2.2 Upgrade para SQL Server 2008 88
3.2.3 Instalação a partir da linha de comandos 92
4. O SQL SERVER 2008 E A REDE 95
4.1 Funcionamento dos serviços de rede 95
4.1.1 API do SQL Server 2008 96
4.1.1.1 ODBC 97
4.1.1.2 OLE DB 97
4.1.1.3 JDBC 97
4.1.2 Bibliotecas de rede e protocolos do SQL Server 97
4.1.2.1 TCP/IP 98
4.1.2.2 Named Pipes 98
4.1.2.3 VIA 99
4.1.2.4 Shared Memory 99
4.1.3 SNAC (SQL Native Client) 99
4.1.4 Configurar os protocolos de rede 99
4.1.4.1 SQL Server Services 101
4.1.4.2 Configurar os protocolos do servidor de base de dados 106
4.1.4.3 Configuração do SQL Native Client 111
4.1.4.4 Aliases 115
4.1.5 O serviço SQL Server Browser 118
4.2 Dificuldades em estabelecer ligações remotas 118
4.2.1 Configurar o SQL Server 2008 para aceitar ligações remotas 120
4.2.2 Erro de "login failed" 124
5. SQL SERVER MANAGEMENT STUDIO 127
5.1 O SQL Server Management Studio 127
5.1.1 Introdução ao SQL Server Management Studio 131
5.1.1.1 Registered Servers 132 5.1.1.2 Object Explorer 135 5.1.1.3 Document Area 136 5.1.1.4 O menu View 138 5.1.1.5 O menu Tools 140 5.1.1.6 Barra de ferramentas do SSMS 141
5.1.1.7 Opções do SQL Server Management Studio 142
6. A GESTÃO DO SERVIDOR SQL 147
6.1 Gerir servidores do SQL Server 2008 147
6.1.1 Propriedades gerais 147
6.1.2 Propriedades de memória 149
6.1.3 Propriedades de processadores 152
6.1.4 Propriedades de segurança 155
6.1.5 Propriedades de ligações 157
6.1.6 Propriedades de bases de dados 159
6.1.7 Propriedades avançadas 161
6.1.8 Propriedades de permissões 165
6.2 Pastas do motor de base de dados SQL Server 166
6.2.1 Databases 166
6.2.1.1 Subpasta System Databases 167
6.2.1.2 Subpasta Database Snapshots 168
6.2.1.3 Bases de dados do utilizador 169
6.2.2 Security 169
6.2.2.1 Subpasta Logins 169
6.2.2.2 Subpasta Server Roles 170
6.2.2.3 Subpasta Credentials 170
6.2.2.4 Subpasta Cryptographic Providers 170
6.2.2.5 Subpasta Audits 170
6.2.2.6 Subpasta Audit Specifications 171
6.2.3 Server Objects 171
6.2.3.1 Backup Devices 171
6.2.3.2 Subpasta Endpoints 172
6.2.3.3 Subpasta Linked Servers 172
6.2.3.4 Subpasta Triggers 172
6.2.4 Replication 173
6.2.5 Management 174
6.2.5.1 Subpasta Policy Management 174
6.2.5.2 Subpasta Data Collection 175
6.2.5.3 Subpasta Resource Governor 175
6.2.5.4 Subpasta Maintenance Plans 176
6.2.5.5 Subpasta SQL Server Logs 176
6.2.5.6 Subpasta Database Mail 178
6.2.5.7 Subpasta Legacy 178
6.3 Administrar propriedades de uma base de dados 178
6.3.1 General 179
6.3.2 Files 180
6.3.2.1 Criar Filegroups adicionais 183
6.3.2.2 Criar ficheiros adicionais para a base de dados 183
6.3.2.3 Configurar o Autogrowth 185 6.3.3 Filegroups 185 6.3.4 Options 186 6.3.5 Change Tracking 193 6.3.6 Permissions 194 6.3.7 Extended Properties 195 6.3.8 Mirroring 195
6.3.9 Transaction Log Shipping 196
6.4 Tarefas de gestão adicionais do SQL Server 197
6.4.1 Relatórios informativos do motor de base de dados 197 6.4.2 Criar scripts de objectos de uma base de dados 200
6.4.3 Detach e attach de uma base de dados 200
6.4.4 Backup e restore de uma base de dados 203
6.4.5 Colocar uma base de dados offline 204
6.4.6.1 Fazer o shrink a uma base de dados 206
6.4.6.2 Fazer o shrink aos ficheiros 208
6.4.6.3 Shrink do ficheiro log 211
7. SEGURANÇA 213 7.1 Introdução 213 7.2 Características de segurança 214 7.2.1 Autenticação 214 7.3 Principals e Securables 215 7.3.1 Principals 215 7.3.1.1 Logins 216 7.3.1.2 Autenticação Windows 216 7.3.1.3 Autenticação mista 217 7.3.1.4 Criar logins 217
7.3.1.5 Server Roles e Database Roles 222
7.3.1.6 Users 227 7.3.2 Securables 230 7.3.2.1 Schemas 231 7.4 Permissões 235 7.4.1 Tipos de permissões 235 7.4.1.1 Permissões de servidor 236
7.4.1.2 Permissões de bases de dados 236
Atribuir permissões através do SSMS 236
Atribuir permissões usando código T-SQL 238
Revogar permissões através de código T-SQL 240
7.4.1.3 Permissões a instruções 241
Atribuir permissões através do SSMS 242
Atribuir permissões através do T-SQL 243
7.5 Gestão de políticas 243
7.6 Encriptação de bases de dados 252
7.6.1 Hierarquia de chave criptográfica 253
7.6.1.1 Service Master Key 254
7.6.1.2 Database Master Key 256
7.6.1.3 Chaves assimétricas 259
7.6.1.4 Certificados 259
7.6.1.5 Chaves simétricas 261
7.6.2 Transparent Data Encryption 264
7.6.2.1 Como activar o TDE 266
7.6.2.2 Cell-level ou column-level encryption 268
7.6.2.3 Extensible Key Management 268
7.7 Auditoria no SQL Server 2008 269
7.7.1 Auditoria ao servidor do SQL Server 273
7.7.2 Auditoria a bases de dados 276
8. AUTOMAÇÃO, MONITORIZAÇÃO E MANUTENÇÃO 279
8.1 Introdução 279
8.2 SQL Server Agent 280
8.2.1 Subpasta Jobs 284
8.2.1.1 Como criar um job 286
8.2.1.2 Criar notificações e operadores para as mesmas 289
8.2.2 Job Activity Monitor 291
8.2.3 Subpasta Alerts 292
8.2.3.1 Criar alertas de erros do SQL Server 294
8.2.4 Subpasta Operators 299
8.2.5 Subpasta Proxies 299
8.2.6 Subpasta Error Logs 303
8.3.1 Criar plano de manutenção através do assistente 305 8.3.2 Criar plano de manutenção através do SSIS 312
8.4 SQL Command (SQLCMD) 318
8.4.1 Ligação de Administrador Dedicada (DAC) 320
8.5 Database Mail 321
8.6 SQL Profiler 326
8.7 Verificação de consistência da base de dados 330
8.7.1 DBCC 330 8.7.1.1 DBCC CHECKDB 331 8.7.1.2 DBCC CHECKTABLE 334 8.7.1.3 DBCC CHECKALLOC 335 8.7.1.4 DBCC CHECKCATALOG 337 8.7.1.5 DBCC CHECKCONSTRAINTS 337 8.7.1.6 DBCC CHECKIDENT 338 9. BACKUPS E RESTORES 341 9.1 Backups 341 9.1.1 O transaction log 342 9.1.2 Modelos de recovery 343
9.1.2.1 Modelo Simple Recovery 343
9.1.2.2 Modelo Full Recovery 344
9.1.2.3 Modelo Bulk-logged Recovery 344
9.1.3 Tipos de backups 346
9.1.3.1 Backups de dados 347
Full Database Backup 347
Backup Parcial 351
Backup Files e Filegroups 352
9.1.3.2 Backups diferenciais 354
9.1.3.3 Backup dos logs 356
Tail-log Backup 358
9.1.3.4 Copy Only Backups 359
9.1.3.5 Database Backup Compression 360
9.2 Restores 367
9.2.1 Restauro completo, diferencial e do log 368
9.2.2 Restore Point in Time 372
9.2.3 Restauro de ficheiros e grupos de ficheiros 374
10. ALTA DISPONIBILIDADE 381
10.1 Introdução 381
10.2 Database Mirroring 382
10.2.1 Modos de operação 384
10.2.1.1 Modo de alta disponibilidade 385
10.2.1.2 Modo de alta protecção 386
10.2.1.3 Modo de alta performance 386
10.2.2 Pré-requisitos 386
10.2.3 Configuração 387
10.2.3.1 Autenticação por Windows 388
10.2.3.2 Autenticação por certificados 391
10.2.3.3 Estabelecer o mirror 395
10.2.3.4 Estabelecer a ligação principal/mirror 397
10.2.3.5 Criação do Database Mirroring através do Management Studio 398
10.2.4 Resolução de problemas 402
10.2.5 Monitorizar o Database Mirroring 405
10.2.5.1 Database Mirroring Monitor 405
10.2.5.2 Stored procedures do sistema e views 408
10.3 Database Snapshot 409
10.3.2 Criar e gerir um Database Snapshot 413
10.3.3 Reverter o Database Snapshot 415
10.3.4 Limitações dos snapshots 416
10.4 SQL Server e Windows Clustering 417
10.4.1 O que é o cluster? 417
10.4.1.1 Componentes de um cluster 418
10.5 Log Shipping 420
10.5.1 Cenários de implementação 420
10.5.1.1 Servidor em espera (warm standby) 420
10.5.1.2 Recuperação de desastres (disaster recovery) 421
10.5.1.3 Base de dados de suporte a relatórios 421
10.5.2 Arquitectura do Log Shipping 422
10.5.3 Infraestrutura 425
10.5.4 Implementação do Log Shipping 425
10.5.4.1 Primeiros passos 426
10.5.4.2 Implementação através do Management Studio 426 10.5.4.3 Implementação através de comandos T-SQL 433
10.5.5 Monitorizar o Log Shipping 438
10.5.5.1 Monitorizar através do relatório de Transaction Log Shipping 439
10.5.5.2 Histórico de jobs do SQL Server Agent 440
10.5.5.3 Verificar o log do SQL Server 440
10.5.6 Mudança de função dos servidores 440
10.5.6.1 Failover planeado 441
10.5.5.2 Failover não planeado 442
10.5.7 Remover o Log Shipping 443
11. REPLICAÇÃO 445
11.1 Replicação 445
11.1.1 Conceitos gerais 445
11.1.1.1 Topologias 448
Publicador central: um ou mais subscritores 448
Subscritor central: um ou mais publicadores 448
Publicador central e distribuidor remoto 449
Múltiplos publicadores e simultaneamente subscritores 450
Subscritor de actualizações 451
Peer-to-peer 452
11.1.2 Tipos de replicação 453
11.1.2.1 Replicação por snapshot 453
11.1.2.2 Replicação transaccional 453
11.1.2.3 Replicação por merge 454
11.1.2.4 Replicação peer-to-peer 454
11.1.2.5 Publicação Oracle 454
11.1.3 Subscrições pull e push 455
11.1.3.1 Push subscriptions 455
11.1.3.2 Pull subscriptions 455
11.1.4 Agentes de replicação 456
11.1.5 Implementar a replicação merge 457
11.1.5.1 Configurar o distributor (distribuidor) 457
11.1.5.2 Configurar o publisher (publicador) 461
11.1.5.3 Configurar o subscritor 469
11.1.6 Implementar a replicação peer-to-peer 473
11.1.6.1 Configurar o distribuidor para replicação 474
11.1.6.2 Configurar a publicação no primeiro nó 476
11.1.6.3 Habilitar a publicação para replicação peer-to-peer 476
11.1.6.4 Configurar a topologia peer-to-peer 477
11.1.6.5 Acrescentar um novo nó numa replicação peer-to-peer existente 480
11.1.7.1 Replication Monitor 481
Monitorizar e gerir publicadores 483
Monitorizar e gerir subscrições 484
11.1.7.2 Performance Monitor (Desempenho) 486
11.1.7.3 Dynamic Views (DMVS) de replicação 487
11.1.7.4 Stored procedure sp_replcounters 488
11.1.8 Como eliminar a replicação 489
11.1.8.1 Criar scripts da replicação 489
11.1.8.2 Eliminar subscrições locais 490
11.1.8.3 Eliminar publicações locais 490
11.1.8.4 Eliminar publicação e distribuição 491
11.1.9 Gerir as passwords da replicação 492
12. INTEGRATION SERVICES 495
12.1 Introdução 495
12.2 Como desenhar pacotes do SSIS 498
12.2.1 O ambiente de desenvolvimento 498
12.2.1.1 Data Sources 500
12.2.1.2 Data Source Views 500
12.2.2.3 Criar um pacote através do BIDS 500
12.2.2 O assistente de importação e exportação de dados 505
12.2.3 Componentes do Control Flow 510
12.2.3.1 Tarefas 511
Tarefas de manutenção 514
12.2.3.2 Contentores 515
12.2.3.3 Constraints de precedência 516
12.2.3.4 Connection managers 519
12.2.4 Componentes do Data Flow 519
12.2.4.1 Data Flow Sources 520
12.2.4.2 Data Flow Transformations 521
Transformações Business Intelligence 521
Transformações linha (row) 522
Transformações conjunto de linhas (rowset) 522
Transformações de divisão e junção (split and join) 523
Transformações de auditoria (audit) 524
12.2.5 Controladores de eventos (event handlers) 524
12.2.5.1 Eventos em modo de execução 525
12.3 Implementação dos pacotes 526
12.3.1 Pacotes de configuração 527
12.3.2 Implementação do pacote 530
12.3.3 Execução do pacote 532
13. REPORTING SERVICES 535
13.1 Arquitectura do Reporting Services 535
13.1.1 Bases de dados do SSRS 535 13.1.2 SSRS Report Server 537 13.1.2.1 Interface de programação 537 13.1.2.2 Extensões de autenticação 537 13.1.2.3 Processador de relatórios 537 13.1.2.4 Processador de dados 537 13.1.2.5 Renderização de relatórios 538
13.1.2.6 Processador de agendamento e transferência 538
13.1.3 Report Manager 538
13.1.4 Report Designer 539
13.1.5 Utilitários de linha de comandos 539
13.1.6 Report Builder 539
13.1.8 Reporting Services Configuration Manager 540
13.2 Configuração do Reporting Services 540
13.3 Criar um relatório 542
13.3.1 Criação manual de relatório 549
13.3.2 Novas potencialidades 555
13.3.2.1 Tablix 555
13.3.2.2 Gauge 556
13.3.2.3 Região de dados de gráfico 557
13.3.3 Usar o Report Builder 559
13.3.3.1 Definir o relatório modelo 559
13.3.3.2 Construir o relatório através do Report Builder 561
ANEXO A - SQL SERVER 2008 R2 567
A.1 Edições do SQL Server 2008 R2. 567
A.1.1 Edições Premium 567
A.1.2 Edições Core 568
A.1.3 Edições Especializadas 568
A.2 Administração Multi-Server 569
A.2.1 SQL Server Utility 569
A.3 Aplicações Data-Tier 573
A.4 Consolidação e Monitorização 575
A.5 Alta Disponibilidade e Virtualização 577
A.6 Report Builder 3.0 578
A.7 StreamInsight 579
A.8 PowerPivot 580
A.9 Compressão Unicode 580