Impacta - SQL Server 2008.pdf

June 15, 2016 | Author: Eduardo Nicioli | Category: N/A
Share Embed Donate


Short Description

Download Impacta - SQL Server 2008.pdf...

Description

Microsoft SQL Server 2008

Módulo 1 – Introdução ao Transact-SQL e SQL Server

Módulo 2 – Programação em Transact-SQL

Módulo 3 – Administração do SQL Server

• Pós-Graduado em COMPUTAÇÃO FORENSE pela Universidade Mackenzie • Extensão Lato Sensu em DIDÁTICA • Graduado em TECNOLOGIA

EM

DO

BANCO

ENSINO SUPERIOR

DE

DADOS na Faculdade IBTA

• Formação DBA - DBA SQL Server pela Microsoft Official Curriculum - DBA Oracle através da Oracle University • Diretor na empresa DBCenter IT Solutions • Professor de Graduação e Pós-Graduação

DARCI LEANDRO DE OLIVEIRA

• Escritor de artigos técnicos para Sites, Revistas e Livros • Palestrante em Congressos • Membro da Comissão de Crimes de Alta Tecnologia - OAB-SP • Perito Forense Computacional • Contatos: e-Mail: Twitter: LinkedIn: Skype: MSN: Site:

[email protected] twitter.com/LeandroDBCenter br.linkedin.com/in/DarciLeandroDeOliveira LeandroDBCenter [email protected] www.DBCenter.com.br

Capítulo 1

“Conhecendo o Microsoft SQL Server”

Capítulo 1 - Conhecendo o Microsoft SQL Server 1. Introdução

1. Introdução

2. Modelos de armazenamento 3. A filosofia cliente/servidor

O Microsoft SQL Server 2008 apresenta as seguintes características:

4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicações para o SQL Server

- É um gerenciador de banco de dados do tipo relacional cliente/servidor

6. Serviços do SQL Server 7. Banco de dados de sistema 8. Metadados 9. Objetos de um banco de dados do SQL Server 10. Nomes dos objetos

- Desenvolvido para processar transações e gerenciar o armazenamento de dados

- Possui tecnologia para armazenamento e gerenciamento de dados dos ambientes OLAP e OLTP

- Demonstra alto desempenho

1/12

Capítulo 1 - Conhecendo o Microsoft SQL Server 1. Introdução 2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicações para o SQL Server

Um SGBD (Sistema Gerenciador de Banco de Dados) é capaz de realizar uma série de tarefas, como: - Controlar o compartilhamento, o armazenamento, a organização, a segurança e a redundância dos dados - Controlar a atomicidade das operações com dados e o acesso de múltiplos usuários (concorrência) - Processar os dados armazenados nos banco de dados

6. Serviços do SQL Server

- Fornecer e controlar a integridade dos dados

7. Banco de dados de sistema

- Permitir a recuperação de dados perdidos devido a falhas

8. Metadados

- Oferecer a independência dos dados

9. Objetos de um banco de dados do SQL Server

- Controlar a estrutura do banco de dados

10. Nomes dos objetos

- Aceitar requerimento de dados de uma aplicação - Possibilitar que diferentes usuários visualizem os dados - Transferir os dados desejados por meio da instrução do sistema operacional - Entre outras... 2/12

Capítulo 1 - Conhecendo o Microsoft SQL Server 1. Introdução 2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados

2. Modelos de armazenamento - OLTP Online Transaction Processing

- OLAP Online Analytical Processing

5. Arquitetura de aplicações para o SQL Server 6. Serviços do SQL Server

- Tabela página 21

7. Banco de dados de sistema 8. Metadados 9. Objetos de um banco de dados do SQL Server 10. Nomes dos objetos

3/12

Capítulo 1 - Conhecendo o Microsoft SQL Server 1. Introdução

3. A filosofia cliente / servidor

2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicações para o SQL Server 6. Serviços do SQL Server 7. Banco de dados de sistema 8. Metadados 9. Objetos de um banco de dados do SQL Server 10. Nomes dos objetos

Vantagens: - Migração do sistema para um banco de dados diferente - Redução do tráfego de rede - Compartilhamento dos dados - Escalabilidade

Desvantagens: - Migração de todas as stored procedures - Lentidão no processamento de regras de negócio em uma máquina cliente 4/12

Capítulo 1 - Conhecendo o Microsoft SQL Server 1. Introdução

3.1 Protocolo

2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicações para o SQL Server 6. Serviços do SQL Server 7. Banco de dados de sistema 8. Metadados

Comunicação via rede entre todos os servidores e clientes envolvidos no processo. - TCP/IP

(recomendado)

- Named Pipes - Shared Memory - VIA

9. Objetos de um banco de dados do SQL Server 10. Nomes dos objetos

5/12

Capítulo 1 - Conhecendo o Microsoft SQL Server 1. Introdução

4. APIs aprimoradas para acesso a dados

2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados

- API (Application Programming Interface) - Utilizado pelo programador para conectar conectar--se ao SGBD

5. Arquitetura de aplicações para o SQL Server 6. Serviços do SQL Server 7. Banco de dados de sistema 8. Metadados 9. Objetos de um banco de dados do SQL Server 10. Nomes dos objetos

6/12

Capítulo 1 - Conhecendo o Microsoft SQL Server 1. Introdução

5. Arquitetura de aplicações para o SQL Server

2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicações para o SQL Server 6. Serviços do SQL Server 7. Banco de dados de sistema 8. Metadados 9. Objetos de um banco de dados do SQL Server 10. Nomes dos objetos

É possível dividir uma aplicação em três camadas ‘lógicas’ - Camada de dados - Camada de negócios - Camada de apresentação

5.1 Estrutura da arquitetura das aplicações - Servidor Inteligente - Cliente Inteligente - Sistemas de N Camadas - Internet

7/12

Capítulo 1 - Conhecendo o Microsoft SQL Server 1. Introdução

6. Serviços do SQL Server

2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicações para o SQL Server 6. Serviços do SQL Server 7. Banco de dados de sistema 8. Metadados 9. Objetos de um banco de dados do SQL Server

- SQL Server (MSSQLSERVER) (principal serviço)

- SQL Server Agent (serviço agendamento)

- SQL Server FullText Search (pesquisa em colunas do tipo text) text)

- Reporting Services (Gerenciador de Relatório)

- Other Services

10. Nomes dos objetos

- Instance - MSSQLServer MSSQLServer$ $Compras - MSSQLServer MSSQLServer$ $RecursosHumanos

8/12

Capítulo 1 - Conhecendo o Microsoft SQL Server 1. Introdução

7. Banco de dados de sistema

2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicações para o SQL Server 6. Serviços do SQL Server 7. Banco de dados de sistema 8. Metadados 9. Objetos de um banco de dados do SQL Server

7.1 MASTER Principal banco de dados 7.2 TEMPDB Rotinas temporárias 7.3 MODEL Database template template,, modelo 7.4 MSDB Agent Services

10. Nomes dos objetos

9/12

Capítulo 1 - Conhecendo o Microsoft SQL Server 1. Introdução

8. Metadados

2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados

- Dados dos Dados - Tabelas e Views que armazenam informações sobre as características dos demais objetos

5. Arquitetura de aplicações para o SQL Server 6. Serviços do SQL Server 7. Banco de dados de sistema

8.1 Obtendo metadados select name, name, xtype from sysObjects

8. Metadados 9. Objetos de um banco de dados do SQL Server 10. Nomes dos objetos

8.1.1 Procedures que retornam metadados páginas 33 e 34

8.1.2 Funções que retornam metadados páginas 35 e 36 10/12

Capítulo 1 - Conhecendo o Microsoft SQL Server 1. Introdução

9. Objetos de um banco de dados do SQL Server

2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados

- Database - Table

5. Arquitetura de aplicações para o SQL Server

- View

6. Serviços do SQL Server

- Procedure

7. Banco de dados de sistema

- Function

8. Metadados 9. Objetos de um banco de dados do SQL Server 10. Nomes dos objetos

- Trigger - Entre outros: -

Constraint Default Index Rule User Defined DataType 11/12

Capítulo 1 - Conhecendo o Microsoft SQL Server 1. Introdução

10. Nomes dos objetos

2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicações para o SQL Server 6. Serviços do SQL Server

- Totalmente qualificado - Parcialmente qualificado

Estrutura: Server.Database.Schema.Object

7. Banco de dados de sistema 8. Metadados 9. Objetos de um banco de dados do SQL Server

Exemplo: srvsql1.compra.felipe srvsql1.compra. felipe..tb_cliente

10. Nomes dos objetos

12/12

EXERCÍCIOS Páginas 519 até 521

Capítulo 2

“Instalando o SQL Server”

Capítulo 2 - Instalando o SQL Server 1. Introdução 2. Edições do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Considerações sobre a instalação do SQL Server

1. Introdução - Edições do Microsoft SQL Server - Requisitos de Hardware - Licenciamento do Software - Mecanismo de autenticação

6. Collation 7. Configurando o uso de relatórios de erros 8. Instalando o SQL Server através de scripts

- Collation adequado - Bibliotecas de rede a serem utilizadas - Contexto de segurança da conta dos serviços

9. Comunicação cliente/servidor 10. Solucionando problemas

- Método de instalação a ser utilizado com o SQL Server

1/11

Capítulo 2 - Instalando o SQL Server 1. Introdução 2. Edições do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Considerações sobre a instalação do SQL Server

2. Edições do Microsoft SQL Server 2008 2.1 Express Edition Versão gratuita 2.2 Workgroup Edition Ideal para pequenas e médias empresas 2.3 Developer Edition Exclusiva para Desenvolvimento

6. Collation 7. Configurando o uso de relatórios de erros 8. Instalando o SQL Server através de scripts 9. Comunicação cliente/servidor 10. Solucionando problemas

2.4 Standard Edition Excelente opção para empresa de pequeno, médio e grande porte, porém, limitada em recursos avançados 2.5 Enterprise Edition Edição Full do Software 2.6 Web Edition Voltada para Provedores de Internet 2.7 Compact 3.5 Edition Especialmente desenvolvida para PocketPC

2/11

Capítulo 2 - Instalando o SQL Server 1. Introdução 2. Edições do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Considerações sobre a instalação do SQL Server

3. Requisitos de hardware, Software e Sistemas Operacionais 3.1 Express Edition 3.2 Workgroup Edition 3.3 Developer Edition

6. Collation

3.4 Standard Edition

7. Configurando o uso de relatórios de erros

3.5 Enterprise Edition

8. Instalando o SQL Server através de scripts

3.6 Web Edition

9. Comunicação cliente/servidor 10. Solucionando problemas

3.7 Espaço em Disco Verificar antes de instalar se tem livre 1.6 GB devido a arquivos temporários que serão utilizados no momento da instalação.

3/11

Capítulo 2 - Instalando o SQL Server 1. Introdução 2. Edições do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Considerações sobre a instalação do SQL Server 6. Collation 7. Configurando o uso de relatórios de erros

4. Otimizando o hardware - Processador 2, 4, 8 processadores - Disco RAID – “Redundant Array of Inexpensive Disks” (vamos estudar no capítulo 3) - Memória 2, 4, 8 GB

8. Instalando o SQL Server através de scripts 9. Comunicação cliente/servidor 10. Solucionando problemas

4/11

Capítulo 2 - Instalando o SQL Server 1. Introdução 2. Edições do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Considerações sobre a instalação do SQL Server

5. Considerações sobre a instalação do SQL Server 5.1 Licenças CALL (Client (Client Access License) License) - Processor

->

Processadores

- User

->

Usuários

- Device

->

Instâncias

6. Collation 7. Configurando o uso de relatórios de erros 8. Instalando o SQL Server através de scripts 9. Comunicação cliente/servidor 10. Solucionando problemas

5/11

Capítulo 2 - Instalando o SQL Server 1. Introdução 2. Edições do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Considerações sobre a instalação do SQL Server

5. Considerações sobre a instalação do SQL Server 5.2 Componentes da instalação (advanced (advanced)) 5.2.1 Especificando os componentes da instalação “Escolhendo o que irá ser instalado” - SQL Server Database

6. Collation 7. Configurando o uso de relatórios de erros 8. Instalando o SQL Server através de scripts

- Analysis Services - Reporting Services - Notification Services

9. Comunicação cliente/servidor 10. Solucionando problemas

- Integration Services - Workstation Components, Components, Books Online, Development 6/11

Capítulo 2 - Instalando o SQL Server 1. Introdução 2. Edições do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Considerações sobre a instalação do SQL Server

5. Considerações sobre a instalação do SQL Server 5.3 Instâncias do SQL Server - Instance Default MSSQLSERVER - Named Instance MSSQLSERVER$nome_que_voce_atribuiu MSSQLSERVER$ nome_que_voce_atribuiu

6. Collation 7. Configurando o uso de relatórios de erros 8. Instalando o SQL Server através de scripts 9. Comunicação cliente/servidor 10. Solucionando problemas

5.4 Especificando a conta do administrador - Service Account - Aqui é definido o nome da conta que o Microsoft SQL Server irá ser executado

7/11

Capítulo 2 - Instalando o SQL Server 1. Introdução 2. Edições do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Considerações sobre a instalação do SQL Server

5. Considerações sobre a instalação do SQL Server 5.4.1 Especificando uma conta por serviço 5.4.2 Especificando uma conta pertencente ao sistema - Local System 5.4.3 Especificando uma conta pertencente ao dominio

6. Collation 7. Configurando o uso de relatórios de erros 8. Instalando o SQL Server através de scripts 9. Comunicação cliente/servidor

- Domain Account 5.5 Especificando os serviços que serão iniciados automaticamente - Auto Start

10. Solucionando problemas

8/11

Capítulo 2 - Instalando o SQL Server 1. Introdução 2. Edições do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Considerações sobre a instalação do SQL Server 6. Collation 7. Configurando o uso de relatórios de erros

6. Collation Conjunto de regras internas responsável por determinar critérios para a comparação, ordenação e apresentação dos dados CS CI

- Case Sensitive - Case Insensitive

AS AI

- Accent Sensitive - Accent Insentive

8. Instalando o SQL Server através de scripts

Execute sp_HelpSort

9. Comunicação cliente/servidor

Select * from fn_HelpCollations() fn_HelpCollations()

10. Solucionando problemas

9/11

Capítulo 2 - Instalando o SQL Server 1. Introdução 2. Edições do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware

7. Configurando o uso de relatórios de erros 7.1 Error Reporting Ao ocorrer algum erro no Software do SQL Server é possível reportar automaticamente a Microsoft sobre a mensagem de erro.

5. Considerações sobre a instalação do SQL Server 6. Collation 7. Configurando o uso de relatórios de erros 8. Instalando o SQL Server através de scripts

7.2 Feature Usage Periodicamente é enviado um relatório para a Microsoft.

9. Comunicação cliente/servidor 10. Solucionando problemas

10/11

Capítulo 2 - Instalando o SQL Server 1. Introdução 2. Edições do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Considerações sobre a instalação do SQL Server 6. Collation 7. Configurando o uso de relatórios de erros 8. Instalando o SQL Server através de scripts 9. Comunicação cliente/servidor 10. Solucionando problemas

8. Instalando o SQL Server através de scripts O SQL Server pode ser instalado pela forma Gráfica ou através de Scripts.

9. Comunicação Cliente / Servidor O SQL Server instalada um protocolo nativo que pode ser utilizado através dos sistemas em comunicação com o Software de Banco de Dados. SQL Native Client

10. Solucionando problemas Na página 89 é apresentado algumas dicas de como solucionar alguns problemas, porém, pode ocorrer muito mais problemas, sendo assim o ideal é acessar o site da Microsoft para “tentar” entender o que possa estar ocorrendo. 11/11

EXERCÍCIOS Páginas 523 até 538

Capítulo 3

“Banco de dados de usuário”

Capítulo 3 - Banco de dados de usuário 1. Introdução

1. Introdução

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

-

Data File

-

Log File

-

FileGroup

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

1/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

2. Arquivos (Files)

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

-

Tipos de arquivos: - Primary Data File

.mdf

(dados)

- Secondary Data File

.ndf

(dados)

- Transaction Log File

.ldf

(transaction log) log)

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

2/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

2. Arquivos (Files)

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

2.1 Atributos dos arquivos - Nome Lógico - Nome Físico

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

- Tamanho inicial - Tamanho máximo - Crescimento

3/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

2. Arquivos (Files)

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

2.2 Grupo de arquivos (FileGroup (FileGroup)) - Melhora a performance - Vários arquivos

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

- Vários HDs - Alocação dinâmica

4/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

2. Arquivos (Files)

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

2.2.1 Tipos de Grupos de Arquivos - FileGroup Padrão - FileGroup Definido pelo Usuário

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

5/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

2. Arquivos (Files)

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

2.3 Regras dos arquivos e grupos de arquivos - FileGroup existe somente em Data File - Não existe FileGroup para Log File

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

- 1 FileGroup contém vários Data File - 1 Data File pertence a 1 FileGroup

6/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

2. Arquivos (Files)

2. Arquivos (files) 3. Criando bancos de dados com comandos

2.4 Recomendações para o uso de arquivos e grupos de arquivos

4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

- Tabelas e Índices em FileGroup diferentes - Arquivos de Dados em discos separados - As tabelas que são utilizadas no mesmo Join o ideal é criacria-las em FileGroup diferentes

7/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

3. Criando bancos de dados com comandos

2. Arquivos (files) 3. Criando bancos de dados com comandos

- Comando CREATE DATABASE

4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

3.1 Cláusulas do comando Create Database -

Database_Name On Primary Log On Name FileName Size MaxSize Unlimited FileGrowth

Nome do Database Inicio do FileGroup Nome do Primeiro FileGroup Inicio do Transaction Log Nome Lógico do arquivo Nome Físico do arquivo Tamanho inicial do arquivo Tamanho máximo do arquivo Irá crescer de forma ilimitada Forma de crescimento

8/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

3. Criando bancos de dados com comandos

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

3.2 SPs que fornecem informações sobre os databases - sp_helpdb

Databases existentes

- sp_spaceused

Espaço utilizado

- sp_helpfilegroup

Filegroup existentes

- sp_helpfile

Informações sobre os arquivos

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

9/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

3. Criando bancos de dados com comandos

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

3.3 Exemplos de criação de databases Databases - Vendas - Biblioteca - Biblioteca - Produtos - Teste - Cliente

página página página página página página

108 109 110 111 112 112

10/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

4. Transaction Log

2. Arquivos (files) 3. Criando bancos de dados com comandos

1- A aplicação envia uma transação de dados

4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

2- A transação é executada 3- As páginas de dados afetadas são carregadas do disco para a memória “data cache”. cache”. Isto não irá ocorrer caso uma query anterior já tenha carregado essas páginas no “data cache”. cache”. 4- Cada comando emitido é registrado no log. Este registra as alterações antes das mesmas serem registradas no database. 5- Por um processo automático denominado “checkpoint”, as alterações já registradas são escritas em suas tabelas correspondentes.

11/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

4. Transaction Log

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

4.1 Situações que produzem atividade excessiva do log - Carregamento de dados em tabelas com índice - Transações que executam modificações em excesso - Uso de WriteText ou UpdateText com With Log para incluir/alterar dados Text ou Image. Image. 4.2 Gerenciando o crescimento do arquivo de Dados e de Log - Monitorar o crescimento constantemente

12/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

5. Alterando um Banco de Dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

Comando ALTER DATABASE - Database

Nome do Database

- Add File

Adiciona um arquivo de Dados

- Name

Nome Lógico do arquivo

- FileName

Nome Físico do arquivo

- Size

Tamanho inicial do arquivo

- MaxSize

Tamanho máximo do arquivo

- Unlimited

Irá crescer de forma ilimitada

- FileGrowth

Forma de crescimento

- To FileGroup

Nome do filegroup

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

13/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

5. Alterando um Banco de Dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

Comando ALTER DATABASE - Add Log File

Adiciona um arquivo de Log

- Remove File

Remove um arquivo fisico

- Add FileGroup

Adiciona um filegroup

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

- Remove FileGroup Remove um filegroup - Modify File

Modifica ((size size,, filename, filename, maxsize e FileGrowth) FileGrowth) do arquivo indicado

- ReadOnly

Configura o database apenas para leitura

- ReadWrite

Configura o database para escrita e leitura

- Default

Indica qual filegroup será default

14/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

5. Alterando um Banco de Dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

5.1 Adicionando um arquivo (112) 5.2 Adcionando um grupo de arquivos (112) 5.3 Adicionando um arquivo em um FileGroup (113)

6. Alocação de espaços 7. Opções de configuração de um banco de dados

5.4 Configurando um FileGroup como padrão (113) - depois voltar o [primary [primary]] para default

8. RAID (Redundant Array of Inexpensive Disks)

5.5 Removendo um arquivo (114) 5.6 Removendo um arquivo do FileGroup (114) 5.7 Aumentando o tamanho de um arquivo (114) 5.8 Reduzindo o tamanho de um banco de dados (final da página 115) NoTruncate -> não libera para o S.O. TrucateOnly -> libera para o S.O. 15/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

5. Alterando um Banco de Dados

2. Arquivos (files) 3. Criando bancos de dados com comandos

5.9 Reduzindo o tamanho de um arquivo (final da página 116)

4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

5.10 Reduzindo automaticamente o tamanho de um arquivo - Opção ““Auto_Shrink Auto_Shrink”” - O próprio SQL Server irá reduzir para o tamanho que ele achar necessário e realizará essa atividade no momento (horário) que ele achar melhor. ALTER DATABASE

Biblioteca

SET AUTO_SHRINK ON

16/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

5. Alterando um Banco de Dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

5.11 Considerações sobre redução A redução só poderá ser realizada nos espaços não utilizados. 5.12 Reduzindo o arquivo de log de transações As vezes não é possível reduzir o arquivo de log no exato momento devido ao SQL Server estar utilizando para realizar alguma transação. Após um restart no serviço a redução irá se efetivar. 5.13 Removendo um banco de dados (119) 5.14 Alterando o nome de um banco de dados (120)

17/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

6. Alocação de espaços

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

6.1 Páginas de Dados - Cada página de dados contém 8192 Bytes que é equivalente a 8 KB - 8192 Bytes (cada página) * 128 páginas = 1 MB - Cada página possui: - Cabeçalho - Linhas de Dados - Row Offset (final de cada tabela) - Entrada (espaço livre)

18/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

6. Alocação de espaços

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

6.2 Extents - Um extent é composto por 8 páginas contínuas. - 8192 Bytes (cada página) * 8 páginas = 64 KB

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

- 64 KB (1 extent) extent) * 16 (extent (extent)) = 1MB - Dois tipos de Extents: Extents: - Extent Uniformes = único objeto - Extent Mistas = vários objetos

19/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

6. Alocação de espaços

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

6.3 Dimensionando uma tabela - Obter a média das colunas de tamanho variável para calcular o número de bytes ocupados por uma linha da tabela.

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

Exemplo: 98 bytes por registro

- Dividir 8060 pelo tamanho (em bytes) de uma linha da tabela para calcular a quantidade de linhas em uma página de dados da tabela. Exemplo: 8060 bytes por página / 98 bytes por registro = 82 registros por página

- Dividir a quantidade total de linhas da tabela pela quantidade de registro que a página suporta. Exemplo: 5325 total registros / 82 registros por pagina = 64 páginas 20/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

7. Opções de configuração de um banco de dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7.1 Opções do SQL ANSI_NULL_DEFAULT on on|| OFF Define se o padrão será Null ou Not Null ANSI_NULLS on | OFF Se comparado com NULL irá retornar verdadeiro ANSI_PADDING on | OFF Retira os espaços no final do campo quando for char no momento da visualização ANSI_WARNINGS on | OFF Não aparece mensagens de erros, por exemplo, quando estoura um limite de um campo

-------------------------------------------------------------------http://msdn.microsoft.com/pt--br/library/ms190356.aspx http://msdn.microsoft.com/pt br/library/ms190356.aspx 21/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

7. Opções de configuração de um banco de dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

7.1 Opções do SQL ARITHABORT on | OFF Mesmo apresentando erro na divisão por zero o processo continua normalmente

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

CONCAT_NULL_YIELDS_NULL on | OFF Permite concatenar conteúdo com valor nulo QUOTED_IDENTIFIER on | OFF Não permite utilizar aspas duplas NUMERIC_ROUNDABORT on | OFF Não apresenta mensagem caso arredondar e perder precisão RECURSIVE_TRIGGERS on | OFF Não permite que um trigger acione ele mesmo 22/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

7. Opções de configuração de um banco de dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

7.2 Opções de automação AUTO_CLOSE ON (express (express)| )| OFF (demais) Fecha o banco de dados e libera os recursos quando nenhum usuário está conectado

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

AUTO_CREATE_STATISTICS ON | off As estatísticas dos índices serão criadas automaticamente quando houver necessidade AUTO_UPDATE_STATISTICS ON | off As estatísticas dos índices serão atualizadas automaticamente quando houver necessidade AUTO_SHRINK on | OFF Não reduz o tamanho dos arquivos de dados e log automaticamente

23/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

7. Opções de configuração de um banco de dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7.3 Opções de disponibilidade do banco de dados ONLINE O database está aberto EMERGENCY O database fica aberto, porém, somente para leitura e só consegue conectarconectar-se quem tiver com o privilégio de sysAdmin OFFLINE O database está fechado READ_ONLY Os dados podem ser apenas lidos (select (select). ). Não podem ser modificados (insert (insert,,update,delete) update,delete) READ_WRITE Os dados poderão ser lidos e modificados 24/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

7. Opções de configuração de um banco de dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7.3 Opções de disponibilidade do banco de dados SINGLE_USER Apenas um único usuário irá conseguir se conectar RESTRICTED_USER Irá conectarconectar-se somente os usuários que tiver o privilégio de dbCreator dbCreator,, sysAdmin e db_owner MULTI_USER Todos os usuários conseguem conectarconectar-se

25/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

7. Opções de configuração de um banco de dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

7.4 Opção de parametrização SIMPLE O próprio SQL Server escolhe qual consulta ele irá parametrizar para facilitar a pesquisa.

6. Alocação de espaços 7. Opções de configuração de um banco de dados

FORCED O SQL Server irá parametrizar todas as consultas.

8. RAID (Redundant Array of Inexpensive Disks)

26/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

7. Opções de configuração de um banco de dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7.5 Opções de recuperação RECOVERY - FULL (padrão) Armazena no arquivo de Transaction Log todas as transações. - BULK_LOGGED Registra no arquivo de Transacton Log o mínimo possível das transações (create (create index,, bcp) index bcp) - SIMPLE Não registra as transações no arquivo de Transaction Log

27/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

7. Opções de configuração de um banco de dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

7.5 Opções de recuperação PAGE_VERIFY Forma de verificar a integridade do conteúdo das páginas de dados

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

Formas de cálculos diferentes: - CHECKSUM (padrão) - TORN_PAGE_DETECTION - NONE

28/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

7. Opções de configuração de um banco de dados

2. Arquivos (files) 3. Criando bancos de dados com comandos

7.6 Opções de comportamento do Cursor

6. Alocação de espaços

CURSOR_CLOSE_ON_COMMIT on | OFF Os cursores continuam abertos mesmo quando a transação chegou ao fim. É necessário fechar o cursor.

7. Opções de configuração de um banco de dados

CURSOR_DEFAULT

4. Transaction Log 5. Alterando um banco de dados

8. RAID (Redundant Array of Inexpensive Disks)

- LOCAL O cursor existirá somente de forma local, ou seja, dentro da procedure, procedure, trigger, trigger, bloco tt- sql sql.. - GLOBAL (padrão) O cursor existirá de forma global, ou seja, qualquer procedure, procedure, trigger ou bloco t-sql que for executado poderá utilizar esse mesmo cursor. 29/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

7. Opções de configuração de um banco de dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

7.7 Opções de nível de isolamento das transações ALLOW_SNAPSHOT_ISOLATION on | OFF O próprio SQL Server controla o nível de isolamento das transações.

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

READ_COMMITTED_SNAPSHOT on | OFF O próprio SQL Server controla o nível de lock das transações.

30/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

7. Opções de configuração de um banco de dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7.8 Opções de monitoramento dos eventos ENABLE_BROKER Habilita o Service Broker DISABLE_BROKER (padrão) Desabilita o Service Broker NEW_BROKER Cria um novo Broker Identifier ERROR_BROKER_CONVERSATIONS Caso ocorrer erros mensagens são emitidas

31/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

7. Opções de configuração de um banco de dados

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados

7.9 Opções de controle de acesso externo DB_CHAINING on | OFF Não permite que scripts acessem objetos de outro banco de dados caso não tenha privilégio direto.

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

TRUSTWORTHY on | OFF Informa que o banco de dados pode não ser confiável após um Attach/ Attach/Detach 7.10 Opção para otimizar a correlação dos dados on | OFF Quando ON otimiza o desempenho criando estatísticas quando é realizada comparação entre campos datetime dentro de um Join caso o campo for PK ou FK. 7.11 Resumo das opções Página 142 32/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

8. RAID (Redundant (Redundant Array of Inexpensive Disks)

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

8.1 Tipos de RAID Baseados em Hardware - Muito utilizado - Compra de discos Baseados em Software - Não é muito utilizado por alguns fatores: - Depende de um Sistema Operacional e da capacidade de processamento do computador para atingir um desempenho satisfatório - É mais lento - Exige maiores esforços de configuração 33/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

8. RAID (Redundant (Redundant Array of Inexpensive Disks)

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

8.2 Níveis de RAID Raid 0 (striping sem tolerância à falha)

- Dois ou mais discos rígidos são agrupados. - Os dados são gravados distribuindo-se a carga entre os discos - É rápido, pois a leitura e a gravação são distribuídas. - Não é muito seguro, já que se um disco falhar, todos os dados serão perdidos.

34/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

8. RAID (Redundant (Redundant Array of Inexpensive Disks)

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

8.2 Níveis de RAID Raid 1 (mirroring - espelhamento)

- Um dos discos serve de espelho para o outro. - Tudo que é gravado em um dos discos é gravado no outro - Isso faz com que a performance de gravação seja prejudicada - É uma forma bem segura porém cara, visto que é preciso duplicacar os HD´s

35/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

8. RAID (Redundant (Redundant Array of Inexpensive Disks)

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

8.2 Níveis de RAID Raid 5 (paridade distribuída)

- Para esse tipo de RAID, há necessidade de no mínimo 3 discos. - As informações de paridade são gravadas em cada disco. - Boa performance em Leitura, Escrita e apresenta segurança. - Se um disco falhar, as informações nele contidas podem ser reconstruídas através da paridade existente em cada disco.

36/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

8. RAID (Redundant (Redundant Array of Inexpensive Disks)

2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

8.2 Níveis de RAID Raid 10 (mirroring e striping com alta performance)

- Para esse tipo de RAID, há necessidade de no mínimo 4 discos. - Os dois primeiros trabalharão em modo Striping (aumentando o desempenho) - Os outros dois armazenarão uma cópia exata dos dois primeiros (mantendo uma tolerância à falhas) - Este modo é uma junção do RAID 0 com o RAID 1 - É muito utilizado em servidores de Banco de Dados que necessitem alta performance e tolerância à falhas.

37/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

8. RAID (Redundant (Redundant Array of Inexpensive Disks)

2. Arquivos (files) 3. Criando bancos de dados com comandos

8.3 Considerações sobre a forma de armazenamento de dados

4. Transaction Log 5. Alterando um banco de dados

- Utilizar o RAID ou criar os logs de transações em discos rígidos separados

6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

- Para cada disco físico existente, criar um arquivo - O database tempdb deve ser colocado em um sistema I/O diferente dos users databases - Volumes compactados não devem ser utilizados - Utilizar discos formatados com NTFS - Utilizar mais de um FileGroup para agrupar os arquivos - A tolerância a falhas não é fornecida por FileGroups 38/39

Capítulo 3 - Banco de dados de usuário 1. Introdução

8. RAID (Redundant (Redundant Array of Inexpensive Disks)

2. Arquivos (files) 3. Criando bancos de dados com comandos

8.3 Considerações sobre a forma de armazenamento de dados

4. Transaction Log 5. Alterando um banco de dados 6. Alocação de espaços 7. Opções de configuração de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

- A tecnologia RAID pode ser utilizada com FileGroups - As tabelas e seus índices nonclustered devem ser armazenados em discos diferentes - A utilização da tecnologia RAID pode ser mais vantajosa do que o emprego de FileGroups. FileGroups. O gerenciamento de FileGroups implica em uma carga administrativa extra, o que não acontece com o uso de RAID - Se o computador possuir diversos processadores e discos, o SQL Server realizará o scan paralelo dos dados - Caso o FileGroup de uma tabela apresente vários arquivos, o SQL Server realizará vários scans paralelos para essa tabela 39/39

EXERCÍCIOS Páginas 539 até 553

Capítulo 4

“Índices”

Capítulo 4 - Índices O que é? - Considerado um objeto - Usado e mantido automaticamente pelo SGBD - Pode reduzir a E/S do disco usando um método rápido de acesso a caminhos para localizar os dados rapidamente - Utilizado para acelerar a recuperação de linhas usando um ponteiro - Necessário realizar atualização periódica - Em alguns SGBD, os índices são baseados em estatísticas

1/17

Capítulo 4 - Índices Quando não criar?

- Tabela for pequena - Colunas não forem utilizadas com freqüência em uma cláusula where - Alta Densidade X Baixa Seletividade - Tabela atualizada com freqüência

2/17

Capítulo 4 - Índices Quando criar?

- Um coluna possuir uma ampla faixa de valores; - Uma coluna contiver um grande número de valores nulos; - Colunas forem utilizadas com freqüência na cláusula where ou em alguma condição de junção; - Tabela for grande com Alta Seletividade

3/17

Capítulo 4 - Índices Simples # 1 2

Root Page

# 3 3 4 4

Index Page

Código 4600 9000

Código

# 5 5 6 6

1230 1780 3920 4600

Código 5230 6490 7520 9000

1

Data Page

Código 1230 1780

Nome Maria André

Status Ativo Ativo 3

Código 3920 4600

2

Nome Aline Felipe

Status Ativo Ativo

Código 5230 6490

Nome Status Claudia Ativo Marcos Inativo

4

5

Código 7520 9000

Nome Pedro Rangel

Status Ativo Ativo 6

select * from cliente select * from cliente where codigo = 6490 select nome, status from cliente where codigo >= 6000 4/17

Capítulo 4 - Índices Composto # Código

Root Page

1 2

Index Page

#

Código

3 3 4 4

1230 1780 1780 4600

Nome Felipe Rangel

4600 9000

Nome Maria Aline Marcos Felipe

#

Código

5 5 6 6

5230 6490 7520 9000

Nome Cláudia André Pedro Rangel

1

Data Page

Código 1230 1780

Nome Maria Aline

Status Ativo Ativo 3

Código 1780 4600

2

Nome Status Marcos Ativo Ativo Felipe 4

Código 5230 6490

Nome Status Cláudia Ativo Marcos Inativo

Código 7520 9000

5

Nome Pedro Rangel

Status Ativo Ativo 6

select * from cliente where codigo = 4600 select nome from cliente where codigo = 7520 select * from cliente where codigo = 1780 and nome = ‘Marcos’ 5/17

Capítulo 4 - Índices - Clustered - Os dados são organizado fisicamente CREATE CLUSTERED INDEX nome_do_indice ON nome_da_tabela (nome_da_coluna) nome_da_coluna) - NonClustered - É criado um novo objeto onde as informações são organizadas logicamente e através de ponteiros acessam os dados físicos. CREATE NONCLUSTERED INDEX nome_do_indice ON nome_da_tabela (nome_da_coluna) nome_da_coluna) - Unique - Pode ser Clustered ou NonClustered - Não pode ter dados duplicados

6/17

Capítulo 4 - Índices - Composto - São índices composto por mais de uma coluna. - Exemplo: Nome, Cidade, nesse caso irá ordenar por nome quando os nomes forem iguais irá ordenar pela segunda coluna. - É possível fazer índice composto com até 16 colunas - Pilhas - São tabelas que não possuem índice clustered. clustered. - IAM - Index Allocation Map - São páginas responsáveis pelo mapeamento das demais páginas (extents (extents)) de cada objeto - PFS - Page Free Space - São páginas responsáveis por dizer quais são os extents que contém espaço disponível

7/17

Capítulo 4 - Índices create table teste_um ( cod_teste int not null, null, nome_teste char(20) char(20) not null); null); insert insert insert insert

teste_um teste_um teste_um teste_um

values values values values

(1, (2, (3, (3,

‘Calor’) ‘Vapor’) ‘Temperatura’) ‘Pressão’)

create unique clustered index i_TesteUm on teste_um (cod_teste) cod_teste) with ignore_dup_key select * from teste_um create table teste_dois ( cod_teste int not null, null, nome_teste char(20) char(20) not null); null); create unique clustered index i_TesteDois on teste_dois (cod_teste) cod_teste) with ignore_dup_key insert teste_dois select * from teste_um select * from teste_dois 8/17

Capítulo 4 - Índices - Criando índices no modo gráfico Páginas 190 até 192 - Quais são os índices que uma determinada tabela contém ? execute

sp_helpIndex nome_tabela

- Desfragmentando um índice DBCC IndexDefrag (‘ (‘nome_banco nome_banco’, ’, ‘‘nome_tabela nome_tabela’, ’, ‘‘nome_index nome_index’) ’) - Reconstruindo um índice create index i_TesteUm on teste_um (cod_teste) cod_teste) with drop_existing

9/17

Capítulo 4 - Índices - Características das páginas da tabela DBCC ShowContig (‘ (‘nome_tabela nome_tabela’) ’) - Os índices são baseados em estatísticas - Identificando as estatísticas DBCC Show_Statistics (nome_tabela, nome_tabela, nome_index) nome_index) - Atualizando as estatísticas update statistics nome_tabela - Criando as estatísticas create statistics nome_index on nome_tabela (nome_coluna) nome_coluna)

10/17

Capítulo 4 - Índices Montando o Cenário 1) Criar a tabela Funcionario CREATE TABLE Funcionario ( Cod_Func int Nome_Func varchar(100) Data_CadFunc datetime SexoFunc char(1) Sal_Func numeric(9,2) End_Func varchar(100) ) go

not not not not not not

null null, null , null, null, null

Identity,

2) Inserir registros na tabela Funcionario insert into funcionario values ('Romeu', getdate(), 'M', 6000, ‘R.A') insert into funcionario values ('Claudia', getdate(), 'F', 3000, ‘R.B') insert into funcionario values ('Julia', getdate(), 'F', 7000, 'Rua C') go 11/17

Capítulo 4 - Índices 3) Criar a tabela Dependente CREATE TABLE Dependente ( Cod_Dep int Cod_Func int Nome_Dep varchar(100) Sexo_Dep char(1) Data_NascDep datetime Observacao text ) go

not null not null, not null, not null, not null, null

Identity,

4) Inserir registros na tabela Dependente insert into dependente values (1,'Antonio‘, 'M', getdate(), ‘este é o primeiro’) insert into dependente values (2,'Arnaldo', 'M', getdate(), ‘este é do segundo’) insert into dependente values (2,'Thomas', 'M', getdate(), ‘terceiro é aqui’) go

12/17

Capítulo 4 - Índices Plano de Execução - Clicar no botão: “Display Estimated Execution Plan” Plan” - Analisar da direita para a esquerda e de baixo para cima - Não é bom quando aparece ““Full Full Table Scan” Scan” - É bom quando aparece ““Index Index Seek” Seek” - Posicione o mouse em cima do ícone para entender o que está ocorrendo naquele passo 5)

select * from funcionario “Ver plano de execução”

6)

select * from dependente “Ver plano de execução” 13/17

Capítulo 4 - Índices Plano de Execução 7)

select Nome_Func, Nome_Func, Nome_Dep from funcionario f inner join on f.cod_func = d.cod_func

dependente d

“Ver plano de execução” 8) Criar Primary Key na tabela Funcionário alter table Funcionario add Constraint PK_Func Primary Key(Cod_Func Key(Cod_Func)) 9)

select from on

Nome_Func, Nome_Func, Nome_Dep funcionario f inner join dependente d f.cod_func = d.cod_func

“Ver plano de execução” 14/17

Capítulo 4 - Índices Plano de Execução 10) Criar Primary Key e Foreign Key na tabela Dependente alter table Dependente add Constraint PK_Dep Primary Key(Cod_Dep) alter table Dependente add Constraint FK_Dep Foreign Key (Cod_Func) References Funcionario(Cod_Func) 11)

select from on

Nome_Func, Nome_Func, Nome_Dep funcionario f inner join dependente d f.cod_func = d.cod_func

“Ver plano de execução”

15/17

Capítulo 4 - Índices Full Text Index - Pesquisa de palavras em cima de campo do tipo Text - É necessário que a tabela contenha uma PK - É criado um arquivo físico em uma pasta informada por você - É necessário inicializar o Serviço “SQL Server FullText Search” - Criando um FTI ((Full Full Text Index) Index) Seguir instruções através do modo gráfico

16/17

Capítulo 4 - Índices Full Text Index

select nome_dep, nome_dep, observacao from dependente where freetext (observacao, observacao, ‘este') select nome_dep, nome_dep, observacao from dependente where freetext (observacao observacao,, ‘este, segundo') select nome_dep, nome_dep, observacao from dependente where contains (observacao, observacao, ‘terceiro') select nome_dep, nome_dep, observacao from dependente where contains (observacao, observacao, ‘ “segundo" or “aqui” ’)

17/17

EXERCÍCIOS Páginas 555 até 562

Capítulo 5

“Backup”

Capítulo 5 – Backup 1. Introdução

1. Introdução

2. Backup 3. Restore

- Fundamental para a segurança dos dados - Definir estratégia de Backup com datas e horários - Teste de Restore com objetivo de validar o backup

1/19

Capítulo 5 – Backup 1. Introdução

2. Backup

2. Backup 3. Restore

2.1 Considerações sobre Backup - Definir horário e periodicidade de acordo com o seu negócio - Database de DW não há necessidade de realizar backup constante - A localização física dos data files são armazenadas no momento do backup para facilitar o restore - Os usuários podem continuar a utilizar o database mesmo quando está sendo executado o backup - É colocado um Checkpoint no momento do backup garantindo assim a integridade de todas as transações dos usuários

2/19

Capítulo 5 – Backup 1. Introdução

2. Backup

2. Backup 3. Restore

2.2 Quem pode executar backup no SQL Server - Os usuários que possuírem os seguintes privilégios: - Database Role - db_backupoperator - db_owner

- Server Role - sysAdmin

3/19

Capítulo 5 – Backup 1. Introdução

2. Backup

2. Backup 3. Restore

2.3 Tipo de mídia para armazenar backup - Tape Backup Devices = Fita - Disk Backup Devices = Disco 2.4 Devices de Backup - Nome físico do device de backup backup database impacta to disk = ‘c:\ ‘c:\Backup\ Backup\bkpImpacta. bkpImpacta.bak’ bak’ - Nome lógico do device de backup execute sp_AddumpDevice ‘Disk’, ‘bkpTeste ‘bkpTeste’, ’, ‘c:\ ‘c:\Backup\ Backup\bkpTeste. bkpTeste.bak’ bak’ backup database impacta to bkpTeste 4/19

Capítulo 5 – Backup 1. Introdução

2. Backup

2. Backup 3. Restore

2.5 Backup Set, media set, media family, family, initial media, continuation media - Backup Set = denominação da operação - Media Family = todos os backup - Media set = um backup set - Initial media: o primeiro backup set - Continuation media: próximos backup

5/19

Capítulo 5 – Backup 1. Introdução

2. Backup

2. Backup 3. Restore

2.6 Usando múltiplos backup devices - Um Backup permite o uso de 64 devices, devices, ou seja, no mesmo arquivo pode ter até 64 backup. - Se for utilizar vários backup em um único arquivo o ideal é deixar uma fita exclusiva para esse arquivo - Cuidado no controle de fitas para não deixar arquivos espalhados pois no momento de um possível restore isso pode dificultar o processo.

6/19

Capítulo 5 – Backup 1. Introdução

2. Backup

2. Backup 3. Restore

2.7 Atividades que não podem ser executadas durante o processo de backup - Criação de índice - Criação do Database - Alteração do Database - Execução de operações não registradas no Log File - Autocrescimento

7/19

Capítulo 5 – Backup 1. Introdução

2. Backup

2. Backup 3. Restore

2.8 Tipos de Backup - Backup completo - Backup diferencial - Backup do arquivo de log - Backup dos arquivos e dos grupos de arquivos

8/19

Capítulo 5 – Backup 1. Introdução

2. Backup

2. Backup 3. Restore

2.8.1 Backup completo do banco de dados - Realiza o “backup full”, full”, ou seja, nesse momento ele cria um outro arquivo com extensão .bak .bak e dentro desse arquivo coloca todas as informações consistentes no banco de dados até esse exato momento.

2.8.2 Backup diferencial do banco de dados - Realiza um “backup differential”, differential”, ou seja, todas as informações novas desde o último backup full

9/19

Capítulo 5 – Backup 1. Introdução

2. Backup

2. Backup 3. Restore

2.8.3 Backup do Transaction Log - Realiza um “backup log” log” de todas as informações desde o último full ou desde o último backup log.

2.8.4 Backup de arquivo e de grupo de arquivo - É possível fazer backup apenas de arquivos específicos separadamente ou de grupos de arquivos. - Interessante caso o banco de dados seja muito grande

10/19

Capítulo 5 – Backup 1. Introdução

2. Backup

2. Backup 3. Restore

2.9 Modelo de recovery - SIMPLE Não registra as transações no arquivo de Transaction Log - FULL (padrão) Armazena no arquivo de Transaction Log todas as transações. - BULK_LOGGED Registra no arquivo de Transacton Log o mínimo possível das transações (create (create index,, bcp) index bcp)

2.9.1 Configurando um modelo de query alter database nome_do_banco_de_dados set recovery uma_das_opções_acima

11/19

Capítulo 5 – Backup 1. Introdução

2. Backup

2. Backup 3. Restore

2.10 Comando de execução de backup completo ou diferencial de um banco de dados - Página 272

2.11 Comando de execução de backup de arquivo ou de grupo de arquivos de um banco de dados - Página 273

2.12 Comando de execução de backup de arquivo de log de um banco de dados - Página 274

12/19

Capítulo 5 – Backup 1. Introdução

2. Backup

2. Backup 3. Restore

2.13 Cláusulas do comando backup - Páginas 275 até 285

13/19

Capítulo 5 – Backup 1. Introdução

3. Restore

2. Backup 3. Restore

3.1 Verificações para restaurar um backup - Antes de restaurar um backup é possível obter várias informações para ter certeza se iremos restaurar o backup correto. - Restore HeaderOnly - exibe informações sobre o cabeçalho do backup Restore HeaderOnly from disk = ‘c:\ ‘c:\Backup\ Backup\bkpImpacta. bkpImpacta.bak’ bak’ - Restore FileListOnly - exibe quais são os arquivos que estão dentro desse backup Restore FileListOnly from disk = ‘c:\ ‘c:\Backup\ Backup\bkpImpacta. bkpImpacta.bak’ bak’ 14/19

Capítulo 5 – Backup 1. Introdução

3. Restore

2. Backup 3. Restore

3.1 Verificações para restaurar um backup - Restore LabelOnly - exibe informações sobre o Label Family Restore LabelOnly from disk = ‘c:\ ‘c:\Backup\ Backup\bkpImpacta. bkpImpacta.bak’ bak’ - Restore VerifyOnly - verifica se vai ser possível restaurar todos os arquivos Restore VerifyOnly from disk = ‘c:\ ‘c:\Backup\ Backup\bkpImpacta. bkpImpacta.bak’ bak’

15/19

Capítulo 5 – Backup 1. Introdução

3. Restore

2. Backup 3. Restore

3.2 Restaurando um database Drop database Impacta

Restore database Impacta from disk = ‘c:\ ‘c:\Backup\ Backup\bkpImpacta. bkpImpacta.bak’ bak’

16/19

Capítulo 5 – Backup 1. Introdução

3. Restore

2. Backup 3. Restore

3.3 Restaurando um arquivo ou grupo de arquivos - Página 289

3.4 Restaurando o Transaction Log - Página 290

3.5 Cláusulas do comando Restore - Páginas 291 até 297

17/19

Capítulo 5 – Backup 1. Introdução

3. Restore

2. Backup 3. Restore

3.6 Restaurando e reconstruindo os bancos de dados do sistema - Não é possível realizarmos um restore de um database caso algum database de sistema esteja com problemas - primeiro é necessário reconstruir os system database

3.6.1 Reconstruindo os bancos de dados do sistema - Utilizar RebuildDatabase com o valor 1 start /wait /wait setup.exe //qb qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REINSTALL= SQL_Engine REBUILDDATABASE=1 SAPWD=sua_senha_do_sa SAPWD= sua_senha_do_sa SQLCOLLATION=SQL_Latin1_General_CP1_CI_AI 18/19

Capítulo 5 – Backup 1. Introdução

3. Restore

2. Backup 3. Restore

3.6.2 Anexando bancos de dados - É possível anexar banco de dados de um servidor em outro servidor, sem a necessidade de realizar backup/restore backup/ restore - Para isso utiliza a opção Attach/ Attach/Detach

19/19

EXERCÍCIOS Páginas 563 até 585

Capítulo 6

“Transferência de Dados”

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

1. Introdução - É possível realizar Importação e Exportação de dados em bases heterogêneas - SQL Server para Excel - Excel para SQL Server - SQL Server para Oracle - Oracle para SQL Server - SQL Server para Access - Access para SQL Server

1/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

2. Importando e exportando dados utilizando o SQL Server Management Studio - A Microsoft disponibiliza algumas ferramentas para a realização dessa tarefa: - SQL Server Import and Export Wizard - Bases homogêneas e heterogêneas - Bulk Copy Program (bcp bcp)) - Programa utilizado através de linha de comando do MSMS-DOS - Carga direta através de arquivo texto - Bulk Insert - Comandos T T--SQL - Carga direta através de arquivo texto

2/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3. SQL Server Import and Export Wizard - Managment Studio - Expandir a pasta Database - Botão direito no database que você deseja trabalhar - Escolher opção Tasks - Clicar em Import Data ou Export Data

3/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.1 Escolhendo a origem de dados - Neste ponto é escolhido qual será a fonte dos dados: - SQL Server - Excel - Access - Texto - Outras fontes

4/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.1.1 .Net Framework Data Provider for SQL Server - Data Source - seleciona o servidor que deseja trabalhar - Initial Catalog - nome do database - Integrated Security - True : autenticação pelo Windows - False False:: autenticação pelo SQL Server - User ID & Password - nome e senha do usuário do SQL Server

5/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.1.2 Microsoft OLE DB Provider for SQL Server e SQL Native Client - Server Name - nome do servidor - Use Windows Authentication - autenticação através de um usuário do Windows - Use SQL Server Authentitcation - autenticação através de um usuário do SQL Server - User Name & Password - informa o nome do usuário e senha caso tenha sido escolhido a forma de autenticação pelo SQL Server - Database - seleciona qual será o nome do database - Refresh - atualiza com os nomes dos databases

6/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.1.3 Microsoft Excel - Excel file path - pasta e nome do arquivo - Browse - localiza o arquivo de banco de dados - Excel version - seleciona a versão do Excel

7/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.1.4 Microsoft Acess - File name - pasta e nome do arquivo - Browse - localiza o arquivo de banco de dados - User name & Password - nome e senha do usuário - Advanced - ajustes de configuração do arquivo ((user user,,pwd) pwd)

8/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.1.5 Flat File Source - Página General - seleciona o arquivo texto - Página Columns - informações sobre colunas e linhas do arquivo - Página Advanced - informações sobre compatibilidade entre os tipos de dados do arquivo (data type) type) - Página Preview - visão do conteúdo configurado (tabulado)

9/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard

3. SQL Server Import and Export Wizard 3.2 Escolhendo o destino dos dados - Nesse ponto deve deve--se informar qual será o “destino” das informações configuradas até o momento

4. Ferramentas de Transformação e cópia de dados

10/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.2.1 Microsoft OLE DB Provider for SQL Server ou SQL Native Client - Server Name - nome do servidor - “Windows Authentication” - “SQL Server Authentitcation” Authentitcation” - User Name & Password - informa o nome do usuário e senha caso tenha sido escolhido a forma de autenticação pelo SQL Server - Database - seleciona qual será o nome do database - Refresh - atualiza com os nomes dos databases - New - habilita para você criar um novo database 11/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.2.2 Flat File Destination - File name - pasta e nome do arquivo - Browse - localiza o arquivo de banco de dados - Locale - configura o formato de data e hora e também a ordenação de classificação dos caracteres - Unicode - habilita a utilização de Unicode - Code Page - Collation - continua...

12/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.2.2 Flat File Destination - Format - Fixed width: width: largura fixa da coluna - Delimited Delimited:: delimitador de coluna - Ragged right: right: todos as colunas com a mesma largura, exceto a última coluna - Text qualifier - informar qual será o caractere delimitador caso a opção “Delimited “Delimited”” tenha sido escolhida - Columns names in first data row - informa que a primeira linha está destinada para o nome das colunas

13/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.2.3 Microsoft Excel - Excel file path - pasta e nome do arquivo - Browse - localiza o arquivo de banco de dados - Excel version - seleciona a versão do Excel

14/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.2.4 Microsoft Access - File name - pasta e nome do arquivo - Browse - localiza o arquivo de banco de dados - User name & Password - nome e senha do usuário - Advanced - ajustes de configuração do arquivo ((user user,,pwd) pwd)

15/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.3 Especificando como os dados serão copiados - Neste ponto é possível dizer se os dados serão copiados por inteiro ou apenas um parte deles. - Opções: - Copy data from one or more tables or view - Write a query to specify the data to transfer

16/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.4 Selecionando as tabelas que serão copiadas - Source - nome das tabelas e/ou visões - Destination - nome que esses objetos terão - Edit - é possível mapear a coluna das tabelas - Select All - seleciona todas as tabelas e/ou visões - continua...

17/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.4 Selecionando as tabelas que serão copiadas - Deselect All - desmarca todas as tabelas e/ou visões que estavam selectionadas - Preview - Pré Pré--visualização de até 200 linhas - Optimize for many tables - interessante para grandes exportações ou importações visto que o SQL Server utiliza um método de processamento mais escalável - Run in a transaction - Trata cada exportação ou importação como sendo uma transação

18/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.5 Especificando se o pacote será salvo e executado imediatamente - É possível executar imediatamente o processo - É possível salvar a rotina como um “Package” dentro do SQL Server (msdb (msdb)) - É possível salvar a rotina em um arquivo ..dtsx dtsx para ser utilizado através do .Net

3.5.1 Níveis de proteção - Um package pode ser protegido com senha de acesso

19/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.5.2 Salvando um pacote SSIS - Para salvar um package é necessário informar: - No SQL Server - Nome do package - Descrição do package (interessante) - Servidor que ele será salvo - Forma de autenticação que você estará utilizando no momento de salvar o package - Em arquivo com extensão ..dtsx dtsx - Pasta e Nome do arquivo

20/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformação e cópia de dados

3.6 Visualizando a performance da operação - Action - ação que está sendo feita no momento - Status - status de cada passo - Message - no caso de erro é exibida - Filter - é possível filtrar o tipo de ações para acompanhar com mais foco - Stop - encerra o processo - Report - no final o SQL Server disponibiliza um relatório com os detalhes do processo. 21/23

Capítulo 6 – Transferência de Dados 1. Introdução 2. Importando e exportando dados utilizando o SQL Server Managment Studio

4. Ferramentas de transformação e cópia de dados 4.1 Bulk Copy Program (bcp) bcp) - Utilitário de Prompt

3. SQL Server Import and Export Wizard

- Importa e Exporta dados de arquivo ..txt txt para o SQL Server

4. Ferramentas de Transformação e cópia de dados

bcp Farmacia Farmacia..dbo dbo.Cliente .Cliente in “c:\ “c:\clientes.txt” -T -c -t”|” -E -T -c -t -E

((trusted trusted connection) (muda de linha ‘registro’) (delimitador de coluna) (utiliza identity identity))

4.1.1 Parâmetros - Páginas 337 até 346 22/23

Capítulo 6 – Transferência de Dados 1. Introdução

4.2 Bulk Insert

2. Importando e exportando dados utilizando o SQL Server Managment Studio

- Comando Transact SQL

3. SQL Server Import and Export Wizard

- Importa dados de arquivo ..txt txt para o SQL Server de forma mais rápida

4. Ferramentas de Transformação e cópia de dados

Bulk Insert Impacta.dbo Impacta.dbo.Aluno .Aluno From ‘c: ‘c:\\carga\ carga\alunos.txt’ With ( FieldTerminator = ‘|’, RowTerminator = ‘\ ‘\n’, Fire_Triggers ) FieldTerminator (delimitador de coluna) RowTerminator (muda de linha ‘registro’) Fire_Triggers (permite que trigger seja disparado)

4.2.1 Parâmetros - Páginas 348 até 353

23/23

EXERCÍCIOS Páginas 598 até 610

Capítulo 7

“Segurança”

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

1. Principals e Securables - Principals é um conceito de grupo de segurança - Windows Principals - contas do windows - SQL Server Principals - logins do sql server - Database Principals - database role - Securables são os privilégios que os principals possui - Server Scope - objetos do servidor - Database Scope - objetos do database - Schema Scope - objetos de um esquema 1/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados

2. Autenticação do logon do usuário - Duas formas de autenticação: - Windows Only - SQL Server and Windows

2.1 Autenticação feita apenas com o Windows - Apenas usuários criados no Windows irão conseguir conectar no SQL Server

7. Credentials

2.2 Autenticação feit apelo Windows e pelo SQL Server - Essa configuração aceita dois tipos de conexão, sendo, Trusted e NonNon-Trusted Connection

2.2.1 NonNon-Trusted Connection - O SQL Server valida se o login e senha que o usuário está conectado no Windows existe também dentro do SQL Server 2/27

Capítulo 7 – Segurança 1. Principals e Securables

2.3 Vantagens de autenticação feita pelo S.O.

2. Autenticação do logon do usuário

- Validação de segurança

3. Gerenciando o acesso aos databases

- Criptografia da password

4. Atribuindo permissões aos usuários

- Auditoria

5. Schema 6. Criptografia de dados 7. Credentials

- Prazo de expiração da password - Tamanho mínimo de password - Bloqueio da conta após algumas tentativas de logon inválidas

3/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

2.4 Vantagens de autenticação feita pelo Mixed Mode - Permite que usuários de Sistema Operacional se conecta no SQL Server - Permite que sejam criados usuários dentro do Software SQL Server - Aumenta a camada de segurança, visto que o SQL Server irá pedir novamente login e senha para autenticação

4/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário

2.5 Mapeando um usuário do Windows no SQL Server Create Login [domínio\ [domínio\nomeUsuario nomeUsuario]] from Windows

3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados

2.6 Criando um usuário no SQL Server Create Login nomeUsuarioSQL with Password = ‘‘Xpt Xpt#9” #9”

7. Credentials

2.7 Default login - System Administrator (sa sa)) - administrador do SQL Server - BuiltIn BuiltIn\\Administrators - administrador do Windows

5/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados

3. Gerenciando o acesso aos databases - System Table select * from sys. sys.SysUsers

3.1 Adicionando contas nos databases do SQL Server - Pode adicionar usuários quem faz parte dos grupos:

7. Credentials

- Server role admin - Database role db_owner - db_accessAdmin

6/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário

3.1.1 Adicionando contas de usuários em um database create user nomeUsuario

3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

3.2 Conta default de usuário - todo database tem um usuário default chamado: dbo (database object owner) owner) - qualquer objeto que um System Administrator criar pertencerá ao usuário dbo - este usuário não pode ser excluído dos databases

7/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema

3.3 A conta “guest “guest”” - a conta guest (convidado) existe em todos os SQL Server - um usuário que tem acesso ao servidor, porém, não a um determinado database poderá acessáacessá-lo mesmo assim, caso a conta guest (convidado) esteja habilitada

6. Criptografia de dados 7. Credentials

3.3.1 Considerações com relação à conta guest - privilégio pode ser atribuído e retirado desta conta - pode ser excluída exceto dos databases master e tempdb

8/27

Capítulo 7 – Segurança 1. Principals e Securables

4 Atribuindo permissões aos usuários

2. Autenticação do logon do usuário

4.1 Roles

3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados

- O SQL Server oferece a possibilidade de trabalharmos com “Roles” que representam ‘grupos de privilégios’ - Existem dois tipos de Roles: - Server Roles

7. Credentials

- Database Roles - Não é possível criarmos Server Roles - É possível criarmos Database Roles - Um usuário poderá pertencer a diversas Roles ao mesmo tempo

9/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

4.1.1 Server Roles - Segue as 8 server role existentes: 1- SysAdmin Executa qualquer atividade no SQL Server 2- DBCreator Cria e altera databases 3- DiskAdmin Gerencia arquivos 4- ProcessAdmin Gerencia os processos que estão rodando

- continua...

10/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados

4.1.1 Server Roles 5- SecurityAdmin Gerencia os logins do servidor 6- ServerAdmin Gerencia as configurações do servidor 7- SetupAdmin Gerencia as extended stored procedure

7. Credentials

8- BulkInsert Executa a instrução Bulk Insert

11/27

Capítulo 7 – Segurança 1. Principals e Securables

4.1.2 Adicionando usuários nos Server Roles

2. Autenticação do logon do usuário

Execute sp_AddSrvRoleMember nome_usuario, nome_usuario, nome_role

3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

- Os Server Roles não podem ser alterados ou removidos - Qualquer membro de um Server Role pode adicionar outro login para esse server role - A system procedure sp_AddSrvRoleMember não pode ser executada dentro de uma transação definida pelo usuário - A system procedure sp_DropSrvRoleMember remove usuários da role especificada - System Procedures disponíveis para obter informações: - sp_HelpSrvRole

(lista server roles)

- sp_SrvRolePermission (lista privilégio) 12/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

4.1.3 Database Roles - Segue as 10 database role existentes: 1- Public Mantém todas as permissões default. Inicialmente, contém permissão de leitura em todas as tabelas do catálogo do database 2- db_Owner Executa qualquer atividade no database 3- db_AcessAdmin Adiciona ou remove usuário e roles do database 4- db_ddlAdmin Adiciona, modifica ou remove objetos do database 5- db_SecurityAdmin Atribui permissões aos usuários - continua...

13/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

4.1.3 Database Roles 6- db_BackupOperator Executa backup e restore do database 7- db_DataReader Executa leitura de qualquer tabela do database 8- db_DataWriter Adiciona, modifica ou exclui dados de qualquer tabela do database 9- db_DenyDataReader Impede a leitura de dados de qualquer tabela do database 10 10-- db_DenyDataWriter Impede a adição, modificação ou exclusão de dados de qualquer tabela do database

14/27

Capítulo 7 – Segurança 1. Principals e Securables

4.1.4 Adicionando usuários nos Database Roles

2. Autenticação do logon do usuário

Execute sp_AddRoleMember nome_role, nome_role, nome_usuario

3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

- Os Databases Roles não podem ser alterados ou removidos - Qualquer membro de um Database Role pode adicionar outro login para esse mesmo Datbase Role - Podemos adicionar um ‘‘User User Defined Database Role’ como membro de um outro Database Role - A system procedure sp_DropRoleMember remove usuários da role especificada - Os database roles são armazenados na system table sysUsers dentro de cada database

15/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

4.1.5 Public - ‘Public’ Public’ é um database role especial - Características: - Contém todas as permissões default para os usuários no database - Não pode ter usuário ou roles atribuídos a ele - Está contido em todos os databases, incluindo master,, msdb, master msdb, tempodb, tempodb, model e todos os databases de usuários - Não pode ser eliminado do database - Sem permissão específica, um usuário terá apenas as permissões do role public

16/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

4.1.5 Public - O role Public pode: - Executar comandos que não requerem permissões como o comando ‘Print ‘Print’’ - Ler informações das system tables - Executar certas system sotred procedures para recuperar informações do database

17/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados

4.1.6 User Defined Database Role - Podemos criar as nossas próprias database role - Só quem for membro das roles sp_SecurityAdmin e db_Owner é que podem criar - System Procedures: Procedures: - sp_AddRole Cria um database role

7. Credentials

- sp_AddRoleMember Adiciona um membro em um determinado database role - sp_DropRoleMember Elimina um membro de um determinado database role - sp_HelpRole Exibe uma lista dos database roles existentes 18/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário

4.1.7 Application Role

3. Gerenciando o acesso aos databases

- São roles específicas a uma determinada aplicação (seu sistema) impedindo que aplicativos diversos (excel (excel,, access)) acessem os dados access

4. Atribuindo permissões aos usuários

- Não é possível adicionar membros a Aplication Role

5. Schema 6. Criptografia de dados

- Para utilizá utilizá--la é necessário ativáativá-la durante a conexão do seu sistema

7. Credentials

- System Procedures - sp_AppAppRole - cria um application role - sp_Drop - elimina um application role - spSetAppRole - ativa um application role - sp_Help_Role - exibe os roles de database, inclusive os application roles 19/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema

4.2 Permissões - Existem duas maneiras de atribuirmos privilégios aos usuários: - Roles (grupo já com diversos privilégios) - Privilégios Específicos

6. Criptografia de dados 7. Credentials

4.2.1 Tipos de permissão - Permissão de Comando - Create Create,, Alter, Alter, Drop - Permissão de objeto - Select Select,, Insert, Insert, Update, Update, Delete, References, References, Execute - Permissão Predefinida - Fixed roles, Object Owner 20/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

4.2.2 Atribuindo permissões - Grant - garante o direito de executar uma determinada ação - Deny - nega o direito de executar uma determinada ação - Revoke - Revoga o direito ou negação de executar uma determinada ação

21/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

4.2.3 Grant - Os privilégios são concedidos para um database específico - Pode conceder privilégio quem fizer parte dos grupos: -

SysAdmin db_Owner db_SecurityAdmin proprietário do objeto

- Permissão de comando GRANT comando TO usuario_role - Permissão de objeto GRANT comando ON objeto TO usuario_role WITH GRANT OPTION (permite que esse usuário conceda a mesma permissão para outro usuário) 22/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

4.2.4 Deny - Os privilégios são negados para um database específico - Pode negar o privilégio quem fizer parte dos grupos: - SysAdmin - db_Owner - db_SecurityAdmin - proprietário do objeto - Sintaxe: DENY comando TO usuario_role CASCADE (todos os usuários que receberam privilégios através do with grant option irão perder neste momento)

23/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados

4.2.5 Revoke - Os privilégios são removidos para um database específico - Pode remover o privilégio quem fizer parte dos grupos: - SysAdmin - db_Owner - db_SecurityAdmin - proprietário do objeto

7. Credentials

- Sintaxe: REVOKE comando from usuario_role CASCADE (todos os usuários que receberam privilégios através do with grant option irão perder neste momento)

24/27

Capítulo 7 – Segurança 1. Principals e Securables

5 Schema

2. Autenticação do logon do usuário

5.1 Do SQL Server 2000 para o SQL Server 2005

3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados

- Esquema é considerado um NameSpace - Esquema traz a independência do objeto em relação ao dono dele - É possível criar um Schema (create schema schema))

7. Credentials

- Ao criar um objeto é possível informar que o dono desse objeto é o Schema - Dessa forma você pode excluir um determinado usuário sem precisar excluir todos os objetos dele. - Pode trocar todos os objetos de esquema

25/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

5.1.1 Benefícios da separação User - Schema - Vários usuários podem possuir um único Schema - Ao eliminar um usuário não é necessário alterar o nome do dono dos objetos - Mais organização para os desenvolvedores, visto que podem criar um schema para cada módulo do sistema - Nome totalmente qualificado: select * from server.database. server.database.Schema Schema..object

5.2 Default Schemas - Todo usuário criado no SQL Server pode ter seu Schema_Default 26/27

Capítulo 7 – Segurança 1. Principals e Securables 2. Autenticação do logon do usuário 3. Gerenciando o acesso aos databases 4. Atribuindo permissões aos usuários 5. Schema 6. Criptografia de dados 7. Credentials

6 Criptografia de dados - Garantir a segurança dos dados 6.1 Mecanismos de criptografia - Certificates - Asymmetric Keys - Symmetric Keys 6.1.1 Certificates - Certificados que são utilizados para criptografar dados 7 Credentials - Torna fácil acessar recursos externos do SQL Server

EXEMPLO PRÁTICO http://www.devmedia.com.br/articles/viewcomp.asp?comp http://www.devmedia.com.br/articles/viewcomp.asp? comp=4402 =4402 27/27

EXERCÍCIOS Páginas 600 até 609

Capítulo 8

“Automação, Jobs, Alertas e Operadores”

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução

1 Introdução

2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs

- Automatizar processos - Agendar Backup

5. Operadores 6. Alerts (alertas)

- Rotinas em batch

7. Ambiente de múltiplos servidores

- Processamento noturno (regras de negócios)

8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

1/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails

2 SQL Server Agent - É um serviço do SQL Server responsável por gerenciar os agendamentos

4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de múltiplos servidores 8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

2.1 PréPré-requisitos do SQL Server Agent - Serviço precisa estar em “Start” - Interessante deixar para iniciar automaticamente

2.1.1 A conta em que o SQL Server Agent é executado - Ideal utilizar conta de Dominio (igual ao serviço principal do SQL Server)

2.1.2 Autenticação do SQL Server Agent no SQL Server - Só é permitido através de Windows Authentication 2/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução

3 Configurando o SQL Server para enviar ee-mails

2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs

- O SQL Server traz a possibilidade de enviar e e--mails 3.1 SQL Mail

5. Operadores 6. Alerts (alertas) 7. Ambiente de múltiplos servidores 8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

- Recurso criado na versão 2000 - É necessário instalar um software de e e--mail - Ferramenta gráfica ou comando xp_SendMail 3.2 Database Mail - Recurso criado na versão 2005 - Não é necessário instalar software de e e--mail - Não fica ativo por padrão. Deve Deve--se habilitáhabilitá-lo através do “SQL Server Surface Area Configuration” Configuration” - Ferramenta gráfica ou comando sp_Send_DBMail

3/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução

4 Jobs

2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails

- Automatiza processo executando automaticamente em um determinado dia e horario

4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de múltiplos servidores 8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

- Fatores importantes em cada Job: Job: - Usuário que criou o Job - Será executado localmente ou em diversos servidores - Verificar se está habilitado - Especificar sua categoria

4/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução

4.1 Definindo os passos de um Job

2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs

- Job e vários Steps - Steps com diversas categorias

5. Operadores 6. Alerts (alertas) 7. Ambiente de múltiplos servidores 8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

4.1.1 Jobs que executam comandos TransactTransact-SQL - Comandos T T--SQL 4.1.2 Jobs CmdExec e ActiveScripting - Comandos do Sistema Operacional 4.1.3 Jobs de replicação - Replication (criado automático)

5/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução

4.2 Determinando o fluxo lógico de ação de cada job

2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs

- Step 1, Step 2 - Error ?

5. Operadores 6. Alerts (alertas) 7. Ambiente de múltiplos servidores 8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

4.3 Programando o horário de execução de um Job - Schedule - diário - semanal - semanal intervalo entre os dias - mensal - hora - minuto - intervalo de tempo

6/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução

4.4 Histórico dos Jobs

2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs

- Ferramente Gráfica - Comandos T T--SQL

5. Operadores

select * from msdb. msdb.dbo. dbo.SysJobHistory

6. Alerts (alertas) 7. Ambiente de múltiplos servidores 8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

4.4.1 Visualizando o histórico dos jobs -

Tempo de execução Data e horário da execução Status Método de notificar o operador (e (e--mail, net send) send) Qual operador foi notificado

7/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução

5 Operadores

2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails

- Usuários notificados

4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de múltiplos servidores

5.1 Atribuindo nomes para os operadores - Utilizar nomes totalmente qualificados evitando assim nomes duplicados

8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

8/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução

6 Alertas

2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs

- SQL Server emite - Nossos Alertas

5. Operadores 6. Alerts (alertas)

- Alerta dispara Job

7. Ambiente de múltiplos servidores 8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

6.1 Alertas definidos em erros do SQL Server - Mais de um alerta por erro - Número do erro deve estar definido para que seja escrito no log de aplicativo do Windows - Alertas são disparados em cima de erros desde que o erro indicado exista na view sys sys..Messages

9/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails

6.2 Alertas definidos na severidade de um erro do SQL Server - 19 e 25 é escrito no EventViewer

4. Jobs 5. Operadores

- 20 e 25 são erros fatais

6. Alerts (alertas) 7. Ambiente de múltiplos servidores 8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

6.3 Alertas definidos em erros criados pelos usuários do SQL Server - Podemos criar nossas próprias mensagens de erros - Um erro pode gerar um alerta que pode executar um Job que pode notificar o DBA

10/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução

6.3.1 Criando uma mensagem de erro de usuário

2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs

- Verificar se o número do erro já existe Select * from sys. sys.Messages

5. Operadores 6. Alerts (alertas) 7. Ambiente de múltiplos servidores 8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

- Criar a mensagem de erro Execute sp_AddMessage 50001, 16, ‘O Cliente %d foi excluido por %s’, ‘us_english’, us_english’, ‘true’ true’

11/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução

6.3.2 Gerando um erro a partir de um aplicativo

2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de múltiplos servidores 8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

Create Procedure P_RemoveCliente @Cod_Cli varchar varchar(05) (05) = null As Begin Transaction Delete cliente where cod_cli = @ @cod_cli cod_cli RaisError(50001,16,1,@ RaisError (50001,16,1,@Cod_Cli Cod_Cli,, User_Name()) User_Name()) Commit Transaction Resultado: “O Cliente 732 foi excluído pelo Aluno1”

12/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails

6.3.3 Gravando eventos no log de aplicativos do Event Viewer - Erros são gravados no Event Viewer

4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de múltiplos servidores 8. Solução de problemas

6.4 Alertas em contadores de Performance Monitor - Ultrapassa um limite

9. System stored procedures para configurar jobs, alertas e operadores

13/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução

7 Ambiente de múltiplos servidores

2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails

- Gerenciamento centralizado

4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de múltiplos servidores 8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

7.1 Definindo um servidor master - Master & Target

7.2 Alterando as definições de um Job criado em um servidor master - Alterações são feitas no Master

7.3 Histórico dos Jobs de ambientes MultiServidores - SysJobHistory - sysJobServers 14/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução

8 Solução de problemas

2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs

- SQL Server Agent ligado - Direitos administrativos da conta de serviço

5. Operadores 6. Alerts (alertas)

- Permissões do proprietário do Job

7. Ambiente de múltiplos servidores

- Funcionamento do mail client

8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

- Tamanho do log de aplicativos do Windows - Histórico - SQL Server Agent error Log - Loop do alerta (performance monitor) - Atraso do alerta (alto processamento)

15/16

Capítulo 8 – Automação, Jobs, Alertas e Operadores 1. Introdução 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails

9 System stored procedures para configurar jobs, jobs, alertas e operadores JOB sp_Add_Job sp_Update_Job sp_Delete_Job sp_Help_Job

4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de múltiplos servidores 8. Solução de problemas 9. System stored procedures para configurar jobs, alertas e operadores

SCHEDULE sp_Update_JobSchedule sp_Add_JobSchedule sp_Delete_JobSchedule sp_Help_JobSchedule STEP sp_Update_JobStop sp_Add_JobStop sp_Delete_JobStop sp_Help_JobStop 16/16

EXERCÍCIOS Páginas 612 até 643

Capítulo 9

“Replicação”

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

1 Introdução - Replicar dados entre servidores - Atender regra de negócio - Matriz e Filiais - Dois tipo: - Transação Distribuída - Replicação

1/15

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

1.1 Transação Distribuída - Atomicidade - Online tempo integral - Interessante quando há necessidade de sincronização constante entre todos Matriz São Paulo

Goiânia

Porto Alegre

Salvador

2/15

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

1.2 Replicação - Periodicamente - Pode ficar Offline - Interessante quando há necessidade de replicar alguns dados entre um ou mais servidores Matriz São Paulo

Goiânia

Porto Alegre

Salvador

3/15

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

1.3 A escolha do método de distribuição de dados - Mapear o seu ambiente de infraestrutura - Analisar sua regra de negócio - Tempo de latência - Autonomia dos sites

4/15

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

2. O processo de replicação - Origem -> Destino - Metáfora Publisher

=

Editor

Distributor

=

Distribuidor

Subscriber

=

Assinante

5/15

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

2.1 Metáfora de replicação - Publisher (editor) - Servidor com os dados de origem - Distributor (distribuidor) - Servidor responsável por distribuir as alterações - Suporta diversos servidores destino - Subscriber (assinante) - Destino dos dados

Obs:: o servidor ‘‘Distributor Obs Distributor’’ pode ser um servidor separado ou o mesmo servidor que o ‘Subscriber ‘Subscriber’’ 6/15

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

2.2 Publicações e artigos - Publicações - O dados replicados são chamados conceitualmente de Publicações - Publicações = Publications - Artigos - Artigos são tabelas, queries - Artigos = Articles - Publications pode conter um ou mais ‘‘Articles Articles’’

7/15

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

2.2.1 Filtrando dados - Vertical - Horizontal - Vertical e Horizontal

2.3 Tipos de assinaturas - Push Subscription - Configurada no Server Publisher (editor) - Consome recurso do Server Distributor - Pull Subscription - Configurada no Server Subscriber (assinante) - Consome recurso desse mesmo servidor

8/15

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

Resumo até o momento - Server Publisher

=

editor

- Server Distributor =

distribuidor

- Server Subscriber =

assinante

- Publications

=

publicações

- Articles

=

artigos (tabela, query) query)

- Push Subscription =

Tipo de publicação (editor)

- Pull Subscription

Tipo de publicação (assinante)

=

9/15

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

2.4 Agentes da replicação - Agents in background - Snapshot Agent - prepara os dados a serem replicados - armazena no server distributor - Distributor Agent - Transporta os dados que foram separados - Log Reader Agent - Monitor o arquivo de Transaction Log com objetivo de identificar o que precisa ser replicado - Merge Agent - Responsável por fundir os dados que foram replicados

10/15

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

2.5 Tipos de publicação - Tipos de publicação: - Snapshot - Transactional - Merge - Heterogeneous

11/15

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

2.5.1 Snapshot Publication -

Foto Envia todos os dados Utilização de Recursos Tipo mais simples de replicação

2.5.2 Transactional Publication -

Todos os dados ou apenas parte dele Utiliza o arquivo Transaction Log Monitora Insert, Insert, Update e Delete Envia do Publisher (editor) ao Subscriber (assinante)

12/15

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

2.5.3 Merge Publication - Todos os servidores envolvidos trocam dados entre si - Conflitos podem ser gerados - Coluna UniqueIdentifier em cada tabela - Caso já exista, a mesma será utilizada - Índice é criado nessa coluna (caso não exista) - Tabelas são criadas - Triggers são criados e dados inseridos em System Table

2.5.4 Resolução de conflitos - Resolução automática e garante consistência 13/15

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

3 Cenário de replicação 3.1 Cenário de replicação Client/Server Client/Server 3.2 Cenário de replicação entre servidores - Integração de dados - Melhor disponibilidade e escalabilidade - Dados presentes em servidores OLTP - Servidores dedicado de processamento em lote

14/15

Capítulo 9 - Replicação 1. Introdução 2. O processo de replicação 3. Cenário de replicação 4. Restrições de replicação

4 Restrições de replicação - Primary Key - Coluna UniqueIdentifier é adicionada - Database que não podem ser replicados: - Master - Model - Distributor - MSDB - TempDB

15/15

EXERCÍCIOS Páginas 646 até 665

Capítulo 10

“Monitorando e Ajustando a Performance”

Capítulo 10 – Monitorando e Ajustando a Performance 1. Introdução 2. Considerações para uma boa performance na fase de projeto de um sistema 3. Fatores que afetam o tempo de resposta 4. Planejando o ajuste de performance 5. Ferramentas de monitoramento

1 Introdução - Tempo de resposta rápido - Desde o início do projeto deve deve--se pensar em performance - Com o tempo pode diminuir a performance: - quantidade de usuários - dados armazenados - fragmentação de dados - Monitoramento e ajuste de performance são tarefas frequentes

1/8

Capítulo 10 – Monitorando e Ajustando a Performance 1. Introdução 2. Considerações para uma boa performance na fase de projeto de um sistema 3. Fatores que afetam o tempo de resposta

2 Considerações para uma boa performance na fase de projeto de um sistema - Modelagem de dados - Regras de normalização

4. Planejando o ajuste de performance 5. Ferramentas de monitoramento

2/8

Capítulo 10 – Monitorando e Ajustando a Performance 1. Introdução 2. Considerações para uma boa performance na fase de projeto de um sistema 3. Fatores que afetam o tempo de resposta

3 Fatores que afetam o tempo de resposta - Configuração de hardware - Concorrência em registros

4. Planejando o ajuste de performance

- Otimização do SGBD e da Aplicação

5. Ferramentas de monitoramento

- Atividades realizadas pelo servidor

3/8

Capítulo 10 – Monitorando e Ajustando a Performance 1. Introdução 2. Considerações para uma boa performance na fase de projeto de um sistema 3. Fatores que afetam o tempo de resposta 4. Planejando o ajuste de performance 5. Ferramentas de monitoramento

3.1 O que fazer para diminuir o tempo de resposta - Reduções - transação curta e dados específicos - Hardware - disco, processador, memória - Configurações e Gerenciamentos - SGBD - SO - Queries - boa lógica e excelente conhecimento de T T--SQL

- continua...

4/8

Capítulo 10 – Monitorando e Ajustando a Performance 1. Introdução 2. Considerações para uma boa performance na fase de projeto de um sistema 3. Fatores que afetam o tempo de resposta 4. Planejando o ajuste de performance 5. Ferramentas de monitoramento

3.1 O que fazer para diminuir o tempo de resposta Conhecimento importante que você deve ter antes de começar o trabalho de análise de performance: - Como ocorre o acesso aos dados - O quão seletivo são os dados - Como a aplicação é utilizada em sistemas OLTP e OLAP - Qual a estrutura física e lógica dos dados e como eles são utilizados - Qual o ambiente em que a aplicação é executada, bem como seus usuários e dados - Quais são as queries executadas pelos usuários e quantas queries são processadas pelo servidor de forma concorrente 5/8

Capítulo 10 – Monitorando e Ajustando a Performance 1. Introdução 2. Considerações para uma boa performance na fase de projeto de um sistema 3. Fatores que afetam o tempo de resposta 4. Planejando o ajuste de performance 5. Ferramentas de monitoramento

4 Planejando o ajuste de performance 4.1 Situação atual do sistema e os objetivos a serem alcançados - Fazer levantamento atual e Definir um modelo ideal 4.2 Ajustando a performance de uma aplicação - Ajuste do banco de dados (estrutura) - Ajusto do SQL Server (configurações) - Ajuste da configuração do hardware - Identificação de gargalos - Estratégias de índices e de queries - Agendamento adequado de tarefas de manutenção 6/8

Capítulo 10 – Monitorando e Ajustando a Performance 1. Introdução 2. Considerações para uma boa performance na fase de projeto de um sistema 3. Fatores que afetam o tempo de resposta 4. Planejando o ajuste de performance 5. Ferramentas de monitoramento

4.2 Ferramentas adequadas ao monitoramento 4.3 Ferramentas adequadas ao monitoramento - Transact Transact--SQL - comandos administrativos - Event Viewer - log de eventos - Performance Monitor - contadores de monitoramento - Profiler - rastreamento - Tuning Advisor - sugestão de índice

7/8

Capítulo 10 – Monitorando e Ajustando a Performance 1. Introdução 2. Considerações para uma boa performance na fase de projeto de um sistema 3. Fatores que afetam o tempo de resposta 4. Planejando o ajuste de performance 5. Ferramentas de monitoramento

5 Ferramentas de monitoramento 5.1 Performance Monitor - Diversos contadores - Páginas 450 até 456 5.2 SQL Profiler - Diversos categorias e eventos - Páginas 457 até 479 5.3 TransactTransact-SQL - System Procedures - Comandos SQL - Variáveis Globais - DBCC - Activity Monitor - Event Viewer

8/8

EXERCÍCIOS Páginas 668 até 679

Capítulo 11

“Mantendo a Alta Disponibilidade”

Capítulo 11 – Mantendo a Alta Disponibilidade 1. Introdução 2. Determinando a disponibilidade de um sistema de banco de dados 3. Soluções para os requisitos de disponibilidade de um sistema 4. Alta disponibilidade implementada com cluster 5. Servidor de espera e de remessa de log 6. Database Mirroring no SQL Server 2005

1 Introdução - Tempo de disponibilidade - Três categorias: - Disponibilidade básica - Alta disponibilidade - Disponibilidade contínua

7. Servidores envolvidos na configuração 8. Alguns itens importantes sobre o espelhamento de databases 9. Modelos de configuração do espelhamento 10. Transaction Safety

1/8

Capítulo 11 – Mantendo a Alta Disponibilidade 1. Introdução 2. Determinando a disponibilidade de um sistema de banco de dados 3. Soluções para os requisitos de disponibilidade de um sistema 4. Alta disponibilidade implementada com cluster 5. Servidor de espera e de remessa de log

1.1 Disponibilidade básica - Hardware (discos, memórias) - Restore - Contrato de suporte por tempo

1.2 Alta disponibilidade - Log Shipping

6. Database Mirroring no SQL Server 2005 7. Servidores envolvidos na configuração 8. Alguns itens importantes sobre o espelhamento de databases

1.3 Disponibilidade contínua - Database Mirroring

9. Modelos de configuração do espelhamento 10. Transaction Safety

2 /8

Capítulo 11 – Mantendo a Alta Disponibilidade 1. Introdução 2. Determinando a disponibilidade de um sistema de banco de dados 3. Soluções para os requisitos de disponibilidade de um sistema 4. Alta disponibilidade implementada com cluster 5. Servidor de espera e de remessa de log 6. Database Mirroring no SQL Server 2005 7. Servidores envolvidos na configuração

2 Determinando a disponibilidade de um banco de dados 2.1 Horário de operação do sistema - range de horário de utilização 2.2 Conectividade com o servidor de dados - tempo que pode ficar Offline 2.3 Interação síncrona/assíncrona - Síncrona processa, pára e devolve - Assíncrona processa e devolve em paralelo

8. Alguns itens importantes sobre o espelhamento de databases 9. Modelos de configuração do espelhamento 10. Transaction Safety

3 /8

Capítulo 11 – Mantendo a Alta Disponibilidade 1. Introdução 2. Determinando a disponibilidade de um sistema de banco de dados 3. Soluções para os requisitos de disponibilidade de um sistema 4. Alta disponibilidade implementada com cluster

3 Soluções para os requisitos de disponibilidade de um sistema

3.1 Horário de operação do sistema - range de horário de utilização

5. Servidor de espera e de remessa de log 6. Database Mirroring no SQL Server 2005 7. Servidores envolvidos na configuração 8. Alguns itens importantes sobre o espelhamento de databases 9. Modelos de configuração do espelhamento 10. Transaction Safety

4 /8

Capítulo 11 – Mantendo a Alta Disponibilidade 1. Introdução 2. Determinando a disponibilidade de um sistema de banco de dados 3. Soluções para os requisitos de disponibilidade de um sistema 4. Alta disponibilidade implementada com cluster 5. Servidor de espera e de remessa de log 6. Database Mirroring no SQL Server 2005 7. Servidores envolvidos na configuração

4 Alta Disponibilidade implementada com cluster - Servidores que atuam em conjunto - Microsoft Cluster Server - Virtual Server (nó) 4.1 Cluster para a tolerância a falhas do SQL Server 4.1.1 Cluster Ativo / Passivo 4.1.2 Cluster Ativo / Ativo

8. Alguns itens importantes sobre o espelhamento de databases 9. Modelos de configuração do espelhamento 10. Transaction Safety

5 /8

Capítulo 11 – Mantendo a Alta Disponibilidade 1. Introdução 2. Determinando a disponibilidade de um sistema de banco de dados 3. Soluções para os requisitos de disponibilidade de um sistema 4. Alta disponibilidade implementada com cluster 5. Servidor de espera e de remessa de log

5 Servidor de espera e de remessa de Log - Log Shipping - Alta Disponibilidade

6 Database Mirroring no SQL Server 2005 - Espelhamento - Disponibilidade contínua

6. Database Mirroring no SQL Server 2005 7. Servidores envolvidos na configuração 8. Alguns itens importantes sobre o espelhamento de databases

7 Servidores envolvidos na configuração - Server Principal - Server Mirror - Server Witness

-> -> ->

origem dos dados destino dos dados controlador

9. Modelos de configuração do espelhamento 10. Transaction Safety

6 /8

Capítulo 11 – Mantendo a Alta Disponibilidade 1. Introdução 2. Determinando a disponibilidade de um sistema de banco de dados 3. Soluções para os requisitos de disponibilidade de um sistema 4. Alta disponibilidade implementada com cluster

8 Alguns itens importantes sobre o espelhamento de databases - Full (recovery model full) full) - Backup (principal) e Restore ((mirror mirror)) - Database com o mesmo nome

5. Servidor de espera e de remessa de log 6. Database Mirroring no SQL Server 2005 7. Servidores envolvidos na configuração 8. Alguns itens importantes sobre o espelhamento de databases 9. Modelos de configuração do espelhamento 10. Transaction Safety

7 /8

Capítulo 11 – Mantendo a Alta Disponibilidade 1. Introdução 2. Determinando a disponibilidade de um sistema de banco de dados 3. Soluções para os requisitos de disponibilidade de um sistema 4. Alta disponibilidade implementada com cluster 5. Servidor de espera e de remessa de log 6. Database Mirroring no SQL Server 2005 7. Servidores envolvidos na configuração 8. Alguns itens importantes sobre o espelhamento de databases 9. Modelos de configuração do espelhamento 10. Transaction Safety

9 Modelos de configuração do espelhamento 10 Transaction Safety 10.1 Quorum e Witness Server - Alta disponibilidade - Transaction Safety (transação nos dois) - 2 servidores no mínimo - Witness requirido - Failover automático ou manual - Alta proteção - Transaction Safety (transação nos dois) - 2 servidores no mínimo - Failover manual - Alta Performance - Transaction Safety (transação só no principal) - Failover manual 8 /8

EXERCÍCIOS Páginas 682 até 695

Apêndice I – Ferramentas Administrativas

Ferramentas Administrativas - Books Online - Configuration Manager - Business Intelligence Development Studio - Management Studio - Profiler - Upgrade Advisor

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF