Anda di halaman 1dari 220

Microsoft SQL Server 2008

Mdulo 1 Introduo ao Transact-SQL e SQL Server

Mdulo 2 Programao em Transact-SQL

Mdulo 3 Administrao do SQL Server

Ps-Graduado em COMPUTAO FORENSE pela Universidade Mackenzie Extenso Lato Sensu em DIDTICA Graduado em TECNOLOGIA
EM DO

ENSINO SUPERIOR DADOS na Faculdade IBTA

BANCO

DE

Formao DBA - DBA SQL Server pela Microsoft Official Curriculum - DBA Oracle atravs da Oracle University Diretor na empresa DBCenter IT Solutions Professor de Graduao e Ps-Graduao

DARCI LEANDRO DE OLIVEIRA

Escritor de artigos tcnicos para Sites, Revistas e Livros Palestrante em Congressos Membro da Comisso de Crimes de Alta Tecnologia - OAB-SP Perito Forense Computacional Contatos: e-Mail: Twitter: LinkedIn: Skype: MSN: Site: leandro@dbcenter.com.br twitter.com/LeandroDBCenter br.linkedin.com/in/DarciLeandroDeOliveira LeandroDBCenter Leandro.dbcenter@hotmail.com www.DBCenter.com.br

Captulo 1

Conhecendo o Microsoft SQL Server

Captulo 1 - Conhecendo o Microsoft SQL Server


1. Introduo 2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicaes para o SQL Server 6. Servios 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

1. Introduo
O Microsoft SQL Server 2008 apresenta as seguintes caractersticas:

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

- Desenvolvido para processar transaes e gerenciar o armazenamento de dados

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

- Demonstra alto desempenho

1/12

Captulo 1 - Conhecendo o Microsoft SQL Server


1. Introduo 2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicaes para o SQL Server 6. Servios 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

Um SGBD (Sistema Gerenciador de Banco de Dados) capaz de realizar uma srie de tarefas, como: - Controlar o compartilhamento, o armazenamento, a organizao, a segurana e a redundncia dos dados - Controlar a atomicidade das operaes com dados e o acesso de mltiplos usurios (concorrncia) - Processar os dados armazenados nos banco de dados - Fornecer e controlar a integridade dos dados - Permitir a recuperao de dados perdidos devido a falhas - Oferecer a independncia dos dados - Controlar a estrutura do banco de dados - Aceitar requerimento de dados de uma aplicao - Possibilitar que diferentes usurios visualizem os dados - Transferir os dados desejados por meio da instruo do sistema operacional - Entre outras...
2/12

Captulo 1 - Conhecendo o Microsoft SQL Server


1. Introduo 2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicaes para o SQL Server 6. Servios 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

2. Modelos de armazenamento
- OLTP Online Transaction Processing

- OLAP Online Analytical Processing

- Tabela pgina 21

3/12

Captulo 1 - Conhecendo o Microsoft SQL Server


1. Introduo 2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicaes para o SQL Server 6. Servios 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

3. A filosofia cliente / servidor


Vantagens: - Migrao do sistema para um banco de dados diferente - Reduo do trfego de rede - Compartilhamento dos dados - Escalabilidade

Desvantagens: - Migrao de todas as stored procedures - Lentido no processamento de regras de negcio em uma mquina cliente
4/12

Captulo 1 - Conhecendo o Microsoft SQL Server


1. Introduo 2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicaes para o SQL Server 6. Servios 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

3.1 Protocolo
Comunicao via rede entre todos os servidores e clientes envolvidos no processo. - TCP/IP (recomendado)

- Named Pipes - Shared Memory - VIA

5/12

Captulo 1 - Conhecendo o Microsoft SQL Server


1. Introduo 2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicaes para o SQL Server 6. Servios 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

4. APIs aprimoradas para acesso a dados


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

6/12

Captulo 1 - Conhecendo o Microsoft SQL Server


1. Introduo 2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicaes para o SQL Server 6. Servios 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

5. Arquitetura de aplicaes para o SQL Server


possvel dividir uma aplicao em trs camadas lgicas - Camada de dados - Camada de negcios - Camada de apresentao

5.1 Estrutura da arquitetura das aplicaes - Servidor Inteligente - Cliente Inteligente - Sistemas de N Camadas - Internet

7/12

Captulo 1 - Conhecendo o Microsoft SQL Server


1. Introduo 2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicaes para o SQL Server 6. Servios 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. Servios do SQL Server


- SQL Server (MSSQLSERVER)
(principal servio)

- SQL Server Agent


(servio agendamento)

- SQL Server FullText Search


(pesquisa em colunas do tipo text) text)

- Reporting Services
(Gerenciador de Relatrio)

- Other Services - Instance - MSSQLServer$Compras - MSSQLServer$RecursosHumanos

8/12

Captulo 1 - Conhecendo o Microsoft SQL Server


1. Introduo 2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicaes para o SQL Server 6. Servios 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

7. Banco de dados de sistema


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

9/12

Captulo 1 - Conhecendo o Microsoft SQL Server


1. Introduo 2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicaes para o SQL Server 6. Servios 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

8. Metadados
- Dados dos Dados - Tabelas e Views que armazenam informaes sobre as caractersticas dos demais objetos

8.1 Obtendo metadados select name, name, xtype from sysObjects

8.1.1 Procedures que retornam metadados pginas 33 e 34

8.1.2 Funes que retornam metadados pginas 35 e 36


10/12

Captulo 1 - Conhecendo o Microsoft SQL Server


1. Introduo 2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicaes para o SQL Server 6. Servios 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

9. Objetos de um banco de dados do SQL Server


- Database - Table - View - Procedure - Function - Trigger - Entre outros: Constraint Default Index Rule User Defined DataType
11/12

Captulo 1 - Conhecendo o Microsoft SQL Server


1. Introduo 2. Modelos de armazenamento 3. A filosofia cliente/servidor 4. APIs aprimoradas para acesso a dados 5. Arquitetura de aplicaes para o SQL Server 6. Servios 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

10. Nomes dos objetos


- Totalmente qualificado - Parcialmente qualificado

Estrutura: Server.Database.Schema.Object

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

12/12

EXERCCIOS Pginas 519 at 521

Captulo 2

Instalando o SQL Server

Captulo 2 - Instalando o SQL Server


1. Introduo 2. Edies do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Consideraes sobre a instalao do SQL Server 6. Collation 7. Configurando o uso de relatrios de erros 8. Instalando o SQL Server atravs de scripts 9. Comunicao cliente/servidor 10. Solucionando problemas

1. Introduo - Edies do Microsoft SQL Server - Requisitos de Hardware - Licenciamento do Software - Mecanismo de autenticao - Collation adequado - Bibliotecas de rede a serem utilizadas - Contexto de segurana da conta dos servios - Mtodo de instalao a ser utilizado com o SQL Server

1/11

Captulo 2 - Instalando o SQL Server


1. Introduo 2. Edies do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Consideraes sobre a instalao do SQL Server 6. Collation 7. Configurando o uso de relatrios de erros 8. Instalando o SQL Server atravs de scripts 9. Comunicao cliente/servidor 10. Solucionando problemas

2. Edies do Microsoft SQL Server 2008 2.1 Express Edition Verso gratuita 2.2 Workgroup Edition Ideal para pequenas e mdias empresas 2.3 Developer Edition Exclusiva para Desenvolvimento 2.4 Standard Edition Excelente opo para empresa de pequeno, mdio e grande porte, porm, limitada em recursos avanados 2.5 Enterprise Edition Edio Full do Software 2.6 Web Edition Voltada para Provedores de Internet 2.7 Compact 3.5 Edition Especialmente desenvolvida para PocketPC

2/11

Captulo 2 - Instalando o SQL Server


1. Introduo 2. Edies do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Consideraes sobre a instalao do SQL Server 6. Collation 7. Configurando o uso de relatrios de erros 8. Instalando o SQL Server atravs de scripts 9. Comunicao cliente/servidor 10. Solucionando problemas

3. Requisitos de hardware, Software e Sistemas Operacionais 3.1 Express Edition 3.2 Workgroup Edition 3.3 Developer Edition 3.4 Standard Edition 3.5 Enterprise Edition 3.6 Web Edition 3.7 Espao em Disco Verificar antes de instalar se tem livre 1.6 GB devido a arquivos temporrios que sero utilizados no momento da instalao.

3/11

Captulo 2 - Instalando o SQL Server


1. Introduo 2. Edies do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Consideraes sobre a instalao do SQL Server 6. Collation 7. Configurando o uso de relatrios de erros 8. Instalando o SQL Server atravs de scripts 9. Comunicao cliente/servidor 10. Solucionando problemas

4. Otimizando o hardware - Processador 2, 4, 8 processadores - Disco RAID Redundant Array of Inexpensive Disks (vamos estudar no captulo 3) - Memria 2, 4, 8 GB

4/11

Captulo 2 - Instalando o SQL Server


1. Introduo 2. Edies do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Consideraes sobre a instalao do SQL Server 6. Collation 7. Configurando o uso de relatrios de erros 8. Instalando o SQL Server atravs de scripts 9. Comunicao cliente/servidor 10. Solucionando problemas

5. Consideraes sobre a instalao do SQL Server 5.1 Licenas CALL (Client (Client Access License) License) - Processor - User - Device -> -> -> Processadores Usurios Instncias

5/11

Captulo 2 - Instalando o SQL Server


1. Introduo 2. Edies do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Consideraes sobre a instalao do SQL Server 6. Collation 7. Configurando o uso de relatrios de erros 8. Instalando o SQL Server atravs de scripts 9. Comunicao cliente/servidor 10. Solucionando problemas

5. Consideraes sobre a instalao do SQL Server 5.2 Componentes da instalao (advanced (advanced) ) 5.2.1 Especificando os componentes da instalao Escolhendo o que ir ser instalado - SQL Server Database - Analysis Services - Reporting Services - Notification Services - Integration Services - Workstation Components, Components, Books Online, Development
6/11

Captulo 2 - Instalando o SQL Server


1. Introduo 2. Edies do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Consideraes sobre a instalao do SQL Server 6. Collation 7. Configurando o uso de relatrios de erros 8. Instalando o SQL Server atravs de scripts 9. Comunicao cliente/servidor 10. Solucionando problemas

5. Consideraes sobre a instalao do SQL Server 5.3 Instncias do SQL Server - Instance Default MSSQLSERVER - Named Instance MSSQLSERVER$nome_que_voce_atribuiu MSSQLSERVER$ nome_que_voce_atribuiu

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

Captulo 2 - Instalando o SQL Server


1. Introduo 2. Edies do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Consideraes sobre a instalao do SQL Server 6. Collation 7. Configurando o uso de relatrios de erros 8. Instalando o SQL Server atravs de scripts 9. Comunicao cliente/servidor 10. Solucionando problemas

5. Consideraes sobre a instalao do SQL Server 5.4.1 Especificando uma conta por servio 5.4.2 Especificando uma conta pertencente ao sistema - Local System 5.4.3 Especificando uma conta pertencente ao dominio - Domain Account 5.5 Especificando os servios que sero iniciados automaticamente - Auto Start

8/11

Captulo 2 - Instalando o SQL Server


1. Introduo 2. Edies do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Consideraes sobre a instalao do SQL Server 6. Collation 7. Configurando o uso de relatrios de erros 8. Instalando o SQL Server atravs de scripts 9. Comunicao cliente/servidor 10. Solucionando problemas

6. Collation Conjunto de regras internas responsvel por determinar critrios para a comparao, ordenao e apresentao dos dados CS CI AS AI - Case Sensitive - Case Insensitive - Accent Sensitive - Accent Insentive

Execute sp_HelpSort Select * from fn_HelpCollations() fn_HelpCollations()

9/11

Captulo 2 - Instalando o SQL Server


1. Introduo 2. Edies do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Consideraes sobre a instalao do SQL Server 6. Collation 7. Configurando o uso de relatrios de erros 8. Instalando o SQL Server atravs de scripts 9. Comunicao cliente/servidor 10. Solucionando problemas

7. Configurando o uso de relatrios de erros 7.1 Error Reporting Ao ocorrer algum erro no Software do SQL Server possvel reportar automaticamente a Microsoft sobre a mensagem de erro.

7.2 Feature Usage Periodicamente enviado um relatrio para a Microsoft.

10/11

Captulo 2 - Instalando o SQL Server


1. Introduo 2. Edies do Microsoft SQL Server 2005 3. Requisitos de hardware, software e sistemas operacionais 4. Otimizando o hardware 5. Consideraes sobre a instalao do SQL Server 6. Collation 7. Configurando o uso de relatrios de erros 8. Instalando o SQL Server atravs de scripts 9. Comunicao cliente/servidor 10. Solucionando problemas

8. Instalando o SQL Server atravs de scripts O SQL Server pode ser instalado pela forma Grfica ou atravs de Scripts.

9. Comunicao Cliente / Servidor O SQL Server instalada um protocolo nativo que pode ser utilizado atravs dos sistemas em comunicao com o Software de Banco de Dados. SQL Native Client

10. Solucionando problemas Na pgina 89 apresentado algumas dicas de como solucionar alguns problemas, porm, pode ocorrer muito mais problemas, sendo assim o ideal acessar o site da Microsoft para tentar entender o que possa estar ocorrendo. 11/11

EXERCCIOS Pginas 523 at 538

Captulo 3

Banco de dados de usurio

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

1. Introduo Data File Log File FileGroup

1/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

2. Arquivos (Files) Tipos de arquivos: - Primary Data File - Secondary Data File - Transaction Log File .mdf .ndf .ldf (dados) (dados) (transaction log) log)

2/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

2. Arquivos (Files) 2.1 Atributos dos arquivos - Nome Lgico - Nome Fsico - Tamanho inicial - Tamanho mximo - Crescimento

3/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

2. Arquivos (Files) 2.2 Grupo de arquivos (FileGroup (FileGroup) ) - Melhora a performance - Vrios arquivos - Vrios HDs - Alocao dinmica

4/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

2. Arquivos (Files) 2.2.1 Tipos de Grupos de Arquivos - FileGroup Padro - FileGroup Definido pelo Usurio

5/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

2. Arquivos (Files) 2.3 Regras dos arquivos e grupos de arquivos - FileGroup existe somente em Data File - No existe FileGroup para Log File - 1 FileGroup contm vrios Data File - 1 Data File pertence a 1 FileGroup

6/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

2. Arquivos (Files) 2.4 Recomendaes para o uso de arquivos e grupos de arquivos - Tabelas e ndices em FileGroup diferentes - Arquivos de Dados em discos separados - As tabelas que so utilizadas no mesmo Join o ideal criacria-las em FileGroup diferentes

7/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

3. Criando bancos de dados com comandos - Comando CREATE DATABASE

3.1 Clusulas 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 Lgico do arquivo Nome Fsico do arquivo Tamanho inicial do arquivo Tamanho mximo do arquivo Ir crescer de forma ilimitada Forma de crescimento

8/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

3. Criando bancos de dados com comandos 3.2 SPs que fornecem informaes sobre os databases - sp_helpdb - sp_spaceused - sp_helpfilegroup - sp_helpfile Databases existentes Espao utilizado Filegroup existentes Informaes sobre os arquivos

9/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

3. Criando bancos de dados com comandos 3.3 Exemplos de criao de databases Databases - Vendas - Biblioteca - Biblioteca - Produtos - Teste - Cliente

pgina pgina pgina pgina pgina pgina

108 109 110 111 112 112

10/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

4. Transaction Log

1- A aplicao envia uma transao de dados 2- A transao executada 3- As pginas de dados afetadas so carregadas do disco para a memria data cache. cache. Isto no ir ocorrer caso uma query anterior j tenha carregado essas pginas no data cache. cache. 4- Cada comando emitido registrado no log. Este registra as alteraes antes das mesmas serem registradas no database. 5- Por um processo automtico denominado checkpoint, as alteraes j registradas so escritas em suas tabelas correspondentes.

11/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

4. Transaction Log 4.1 Situaes que produzem atividade excessiva do log - Carregamento de dados em tabelas com ndice - Transaes que executam modificaes 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

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

5. Alterando um Banco de Dados Comando ALTER DATABASE - Database - Add File - Name - FileName - Size - MaxSize - Unlimited - FileGrowth - To FileGroup Nome do Database Adiciona um arquivo de Dados Nome Lgico do arquivo Nome Fsico do arquivo Tamanho inicial do arquivo Tamanho mximo do arquivo Ir crescer de forma ilimitada Forma de crescimento Nome do filegroup
13/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

5. Alterando um Banco de Dados Comando ALTER DATABASE - Add Log File - Remove File - Add FileGroup Adiciona um arquivo de Log Remove um arquivo fisico Adiciona um filegroup

- Remove FileGroup Remove um filegroup - Modify File Modifica ( (size size, , filename, filename, maxsize e FileGrowth) FileGrowth) do arquivo indicado Configura o database apenas para leitura Configura o database para escrita e leitura Indica qual filegroup ser default
14/39

- ReadOnly

- ReadWrite

- Default

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

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) 5.4 Configurando um FileGroup como padro (113) - depois voltar o [primary [primary] ] para default 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 pgina 115) NoTruncate -> no libera para o S.O. TrucateOnly -> libera para o S.O.
15/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

5. Alterando um Banco de Dados 5.9 Reduzindo o tamanho de um arquivo (final da pgina 116) 5.10 Reduzindo automaticamente o tamanho de um arquivo - Opo Auto_Shrink Auto_Shrink - O prprio SQL Server ir reduzir para o tamanho que ele achar necessrio e realizar essa atividade no momento (horrio) que ele achar melhor. ALTER DATABASE Biblioteca SET AUTO_SHRINK ON

16/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

5. Alterando um Banco de Dados 5.11 Consideraes sobre reduo A reduo s poder ser realizada nos espaos no utilizados. 5.12 Reduzindo o arquivo de log de transaes As vezes no possvel reduzir o arquivo de log no exato momento devido ao SQL Server estar utilizando para realizar alguma transao. Aps um restart no servio a reduo ir se efetivar. 5.13 Removendo um banco de dados (119) 5.14 Alterando o nome de um banco de dados (120)

17/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

6. Alocao de espaos 6.1 Pginas de Dados - Cada pgina de dados contm 8192 Bytes que equivalente a 8 KB - 8192 Bytes (cada pgina) * 128 pginas = 1 MB - Cada pgina possui: - Cabealho - Linhas de Dados - Row Offset (final de cada tabela) - Entrada (espao livre)

18/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

6. Alocao de espaos 6.2 Extents - Um extent composto por 8 pginas contnuas. - 8192 Bytes (cada pgina) * 8 pginas = 64 KB - 64 KB (1 extent) extent) * 16 (extent (extent) ) = 1MB - Dois tipos de Extents: Extents: - Extent Uniformes = nico objeto - Extent Mistas = vrios objetos

19/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

6. Alocao de espaos 6.3 Dimensionando uma tabela - Obter a mdia das colunas de tamanho varivel para calcular o nmero de bytes ocupados por uma linha da tabela.
Exemplo: 98 bytes por registro

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

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

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7. Opes de configurao de um banco de dados 7.1 Opes do SQL ANSI_NULL_DEFAULT on on| | OFF Define se o padro ser Null ou Not Null ANSI_NULLS on | OFF Se comparado com NULL ir retornar verdadeiro ANSI_PADDING on | OFF Retira os espaos no final do campo quando for char no momento da visualizao ANSI_WARNINGS on | OFF No aparece mensagens de erros, por exemplo, quando estoura um limite de um campo

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


21/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7. Opes de configurao de um banco de dados 7.1 Opes do SQL ARITHABORT on | OFF Mesmo apresentando erro na diviso por zero o processo continua normalmente CONCAT_NULL_YIELDS_NULL on | OFF Permite concatenar contedo com valor nulo QUOTED_IDENTIFIER on | OFF No permite utilizar aspas duplas NUMERIC_ROUNDABORT on | OFF No apresenta mensagem caso arredondar e perder preciso RECURSIVE_TRIGGERS on | OFF No permite que um trigger acione ele mesmo
22/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7. Opes de configurao de um banco de dados 7.2 Opes de automao AUTO_CLOSE ON (express (express)| )| OFF (demais) Fecha o banco de dados e libera os recursos quando nenhum usurio est conectado AUTO_CREATE_STATISTICS ON | off As estatsticas dos ndices sero criadas automaticamente quando houver necessidade AUTO_UPDATE_STATISTICS ON | off As estatsticas dos ndices sero atualizadas automaticamente quando houver necessidade AUTO_SHRINK on | OFF No reduz o tamanho dos arquivos de dados e log automaticamente

23/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7. Opes de configurao de um banco de dados 7.3 Opes de disponibilidade do banco de dados ONLINE O database est aberto EMERGENCY O database fica aberto, porm, somente para leitura e s consegue conectarconectar-se quem tiver com o privilgio de sysAdmin OFFLINE O database est fechado READ_ONLY Os dados podem ser apenas lidos (select (select). ). No podem ser modificados (insert (insert, ,update,delete) update,delete) READ_WRITE Os dados podero ser lidos e modificados
24/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7. Opes de configurao de um banco de dados 7.3 Opes de disponibilidade do banco de dados SINGLE_USER Apenas um nico usurio ir conseguir se conectar RESTRICTED_USER Ir conectarconectar-se somente os usurios que tiver o privilgio de dbCreator dbCreator, , sysAdmin e db_owner MULTI_USER Todos os usurios conseguem conectarconectar-se

25/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7. Opes de configurao de um banco de dados 7.4 Opo de parametrizao SIMPLE O prprio SQL Server escolhe qual consulta ele ir parametrizar para facilitar a pesquisa. FORCED O SQL Server ir parametrizar todas as consultas.

26/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7. Opes de configurao de um banco de dados 7.5 Opes de recuperao RECOVERY - FULL (padro) Armazena no arquivo de Transaction Log todas as transaes. - BULK_LOGGED Registra no arquivo de Transacton Log o mnimo possvel das transaes (create (create index, index , bcp) bcp) - SIMPLE No registra as transaes no arquivo de Transaction Log

27/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7. Opes de configurao de um banco de dados 7.5 Opes de recuperao PAGE_VERIFY Forma de verificar a integridade do contedo das pginas de dados Formas de clculos diferentes: - CHECKSUM (padro) - TORN_PAGE_DETECTION - NONE

28/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7. Opes de configurao de um banco de dados 7.6 Opes de comportamento do Cursor CURSOR_CLOSE_ON_COMMIT on | OFF Os cursores continuam abertos mesmo quando a transao chegou ao fim. necessrio fechar o cursor. CURSOR_DEFAULT - LOCAL O cursor existir somente de forma local, ou seja, dentro da procedure, procedure, trigger, trigger, bloco tt- sql sql. . - GLOBAL (padro) 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

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7. Opes de configurao de um banco de dados 7.7 Opes de nvel de isolamento das transaes ALLOW_SNAPSHOT_ISOLATION on | OFF O prprio SQL Server controla o nvel de isolamento das transaes. READ_COMMITTED_SNAPSHOT on | OFF O prprio SQL Server controla o nvel de lock das transaes.

30/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7. Opes de configurao de um banco de dados 7.8 Opes de monitoramento dos eventos ENABLE_BROKER Habilita o Service Broker DISABLE_BROKER (padro) Desabilita o Service Broker NEW_BROKER Cria um novo Broker Identifier ERROR_BROKER_CONVERSATIONS Caso ocorrer erros mensagens so emitidas

31/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

7. Opes de configurao de um banco de dados 7.9 Opes de controle de acesso externo DB_CHAINING on | OFF No permite que scripts acessem objetos de outro banco de dados caso no tenha privilgio direto. TRUSTWORTHY on | OFF Informa que o banco de dados pode no ser confivel aps um Attach/ Attach/Detach 7.10 Opo para otimizar a correlao dos dados on | OFF Quando ON otimiza o desempenho criando estatsticas quando realizada comparao entre campos datetime dentro de um Join caso o campo for PK ou FK. 7.11 Resumo das opes Pgina 142
32/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

8. RAID (Redundant (Redundant Array of Inexpensive Disks) 8.1 Tipos de RAID Baseados em Hardware - Muito utilizado - Compra de discos Baseados em Software - No muito utilizado por alguns fatores: - Depende de um Sistema Operacional e da capacidade de processamento do computador para atingir um desempenho satisfatrio - mais lento - Exige maiores esforos de configurao
33/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

8. RAID (Redundant (Redundant Array of Inexpensive Disks) 8.2 Nveis de RAID Raid 0 (striping sem tolerncia falha)

- Dois ou mais discos rgidos so agrupados. - Os dados so gravados distribuindo-se a carga entre os discos - rpido, pois a leitura e a gravao so distribudas. - No muito seguro, j que se um disco falhar, todos os dados sero perdidos.

34/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

8. RAID (Redundant (Redundant Array of Inexpensive Disks) 8.2 Nveis 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 gravao seja prejudicada - uma forma bem segura porm cara, visto que preciso duplicacar os HDs

35/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

8. RAID (Redundant (Redundant Array of Inexpensive Disks) 8.2 Nveis de RAID Raid 5 (paridade distribuda)

- Para esse tipo de RAID, h necessidade de no mnimo 3 discos. - As informaes de paridade so gravadas em cada disco. - Boa performance em Leitura, Escrita e apresenta segurana. - Se um disco falhar, as informaes nele contidas podem ser reconstrudas atravs da paridade existente em cada disco.

36/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

8. RAID (Redundant (Redundant Array of Inexpensive Disks) 8.2 Nveis de RAID Raid 10 (mirroring e striping com alta performance)

- Para esse tipo de RAID, h necessidade de no mnimo 4 discos. - Os dois primeiros trabalharo em modo Striping (aumentando o desempenho) - Os outros dois armazenaro uma cpia exata dos dois primeiros (mantendo uma tolerncia falhas) - Este modo uma juno do RAID 0 com o RAID 1 - muito utilizado em servidores de Banco de Dados que necessitem alta performance e tolerncia falhas.

37/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

8. RAID (Redundant (Redundant Array of Inexpensive Disks) 8.3 Consideraes sobre a forma de armazenamento de dados - Utilizar o RAID ou criar os logs de transaes em discos rgidos separados - Para cada disco fsico existente, criar um arquivo - O database tempdb deve ser colocado em um sistema I/O diferente dos users databases - Volumes compactados no devem ser utilizados - Utilizar discos formatados com NTFS - Utilizar mais de um FileGroup para agrupar os arquivos - A tolerncia a falhas no fornecida por FileGroups
38/39

Captulo 3 - Banco de dados de usurio


1. Introduo 2. Arquivos (files) 3. Criando bancos de dados com comandos 4. Transaction Log 5. Alterando um banco de dados 6. Alocao de espaos 7. Opes de configurao de um banco de dados 8. RAID (Redundant Array of Inexpensive Disks)

8. RAID (Redundant (Redundant Array of Inexpensive Disks) 8.3 Consideraes sobre a forma de armazenamento de dados - A tecnologia RAID pode ser utilizada com FileGroups - As tabelas e seus ndices nonclustered devem ser armazenados em discos diferentes - A utilizao 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 no 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 vrios arquivos, o SQL Server realizar vrios scans paralelos para essa tabela
39/39

EXERCCIOS Pginas 539 at 553

Captulo 4

ndices

Captulo 4 - ndices
O que ? - Considerado um objeto - Usado e mantido automaticamente pelo SGBD - Pode reduzir a E/S do disco usando um mtodo rpido de acesso a caminhos para localizar os dados rapidamente - Utilizado para acelerar a recuperao de linhas usando um ponteiro - Necessrio realizar atualizao peridica - Em alguns SGBD, os ndices so baseados em estatsticas

1/17

Captulo 4 - ndices
Quando no criar?

- Tabela for pequena - Colunas no forem utilizadas com freqncia em uma clusula where - Alta Densidade X Baixa Seletividade - Tabela atualizada com freqncia

2/17

Captulo 4 - ndices
Quando criar?

- Um coluna possuir uma ampla faixa de valores; - Uma coluna contiver um grande nmero de valores nulos; - Colunas forem utilizadas com freqncia na clusula where ou em alguma condio de juno; - Tabela for grande com Alta Seletividade

3/17

Captulo 4 - ndices
Simples
Root Page # 1 2 Cdigo 4600 9000

Index Page

# 3 3 4 4

Cdigo 1230 1780 3920 4600


1

# 5 5 6 6

Cdigo 5230 6490 7520 9000


2

Data Page

Cdigo 1230 1780

Nome Maria Andr

Status Ativo Ativo


3

Cdigo 3920 4600

Nome Aline Felipe

Status Ativo Ativo


4

Cdigo 5230 6490

Nome Status Claudia Ativo Marcos Inativo


5

Cdigo 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

Captulo 4 - ndices
Composto
Root Page # Cdigo 1 2 4600 9000 Nome Felipe Rangel

# Index Page 3 3 4 4

Cdigo 1230 1780 1780 4600

Nome Maria Aline Marcos Felipe


1

# 5 5 6 6

Cdigo 5230 6490 7520 9000

Nome Cludia Andr Pedro Rangel


2

Data Page

Cdigo 1230 1780

Nome Maria Aline

Status Ativo Ativo


3

Cdigo 1780 4600

Nome Status Marcos Ativo Ativo Felipe


4

Cdigo 5230 6490

Nome Status Cludia Ativo Marcos Inativo


5

Cdigo 7520 9000

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

Captulo 4 - ndices
- Clustered - Os dados so 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 informaes so organizadas logicamente e atravs de ponteiros acessam os dados fsicos. CREATE NONCLUSTERED INDEX nome_do_indice ON nome_da_tabela (nome_da_coluna) nome_da_coluna) - Unique - Pode ser Clustered ou NonClustered - No pode ter dados duplicados

6/17

Captulo 4 - ndices
- Composto - So 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. - possvel fazer ndice composto com at 16 colunas - Pilhas - So tabelas que no possuem ndice clustered. clustered. - IAM - Index Allocation Map - So pginas responsveis pelo mapeamento das demais pginas (extents (extents) ) de cada objeto - PFS - Page Free Space - So pginas responsveis por dizer quais so os extents que contm espao disponvel

7/17

Captulo 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) Presso)

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

Captulo 4 - ndices
- Criando ndices no modo grfico Pginas 190 at 192 - Quais so os ndices que uma determinada tabela contm ? 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

Captulo 4 - ndices
- Caractersticas das pginas da tabela DBCC ShowContig ( (nome_tabela nome_tabela) ) - Os ndices so baseados em estatsticas - Identificando as estatsticas DBCC Show_Statistics (nome_tabela, nome_tabela, nome_index) nome_index) - Atualizando as estatsticas update statistics nome_tabela - Criando as estatsticas create statistics nome_index on nome_tabela (nome_coluna) nome_coluna)

10/17

Captulo 4 - ndices
Montando o Cenrio 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 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

not not not not not not

null null, null , null, null, null

Identity,

Captulo 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 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

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

Identity,

12/17

Captulo 4 - ndices
Plano de Execuo - Clicar no boto: Display Estimated Execution Plan Plan - Analisar da direita para a esquerda e de baixo para cima - No 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 execuo 6) select * from dependente Ver plano de execuo
13/17

Captulo 4 - ndices
Plano de Execuo 7) select Nome_Func, Nome_Func, Nome_Dep from funcionario f inner join on f.cod_func = d.cod_func Ver plano de execuo 8) Criar Primary Key na tabela Funcionrio 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

dependente d

Ver plano de execuo


14/17

Captulo 4 - ndices
Plano de Execuo 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 execuo

15/17

Captulo 4 - ndices
Full Text Index - Pesquisa de palavras em cima de campo do tipo Text - necessrio que a tabela contenha uma PK - criado um arquivo fsico em uma pasta informada por voc - necessrio inicializar o Servio SQL Server FullText Search - Criando um FTI ( (Full Full Text Index) Index) Seguir instrues atravs do modo grfico

16/17

Captulo 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

EXERCCIOS Pginas 555 at 562

Captulo 5

Backup

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

1. Introduo - Fundamental para a segurana dos dados - Definir estratgia de Backup com datas e horrios - Teste de Restore com objetivo de validar o backup

1/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

2. Backup 2.1 Consideraes sobre Backup - Definir horrio e periodicidade de acordo com o seu negcio - Database de DW no h necessidade de realizar backup constante - A localizao fsica dos data files so armazenadas no momento do backup para facilitar o restore - Os usurios 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 transaes dos usurios

2/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

2. Backup 2.2 Quem pode executar backup no SQL Server - Os usurios que possurem os seguintes privilgios: - Database Role - db_backupoperator - db_owner

- Server Role - sysAdmin

3/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

2. Backup 2.3 Tipo de mdia para armazenar backup - Tape Backup Devices = Fita - Disk Backup Devices = Disco 2.4 Devices de Backup - Nome fsico do device de backup backup database impacta to disk = c:\ c:\Backup\ Backup\bkpImpacta. bkpImpacta.bak bak - Nome lgico 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

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

2. Backup 2.5 Backup Set, media set, media family, family, initial media, continuation media - Backup Set = denominao da operao - Media Family = todos os backup - Media set = um backup set - Initial media: o primeiro backup set - Continuation media: prximos backup

5/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

2. Backup 2.6 Usando mltiplos backup devices - Um Backup permite o uso de 64 devices, devices, ou seja, no mesmo arquivo pode ter at 64 backup. - Se for utilizar vrios backup em um nico arquivo o ideal deixar uma fita exclusiva para esse arquivo - Cuidado no controle de fitas para no deixar arquivos espalhados pois no momento de um possvel restore isso pode dificultar o processo.

6/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

2. Backup 2.7 Atividades que no podem ser executadas durante o processo de backup - Criao de ndice - Criao do Database - Alterao do Database - Execuo de operaes no registradas no Log File - Autocrescimento

7/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

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

8/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

2. Backup 2.8.1 Backup completo do banco de dados - Realiza o backup full, full, ou seja, nesse momento ele cria um outro arquivo com extenso .bak .bak e dentro desse arquivo coloca todas as informaes 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 informaes novas desde o ltimo backup full

9/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

2. Backup 2.8.3 Backup do Transaction Log - Realiza um backup log log de todas as informaes desde o ltimo full ou desde o ltimo backup log.

2.8.4 Backup de arquivo e de grupo de arquivo - possvel fazer backup apenas de arquivos especficos separadamente ou de grupos de arquivos. - Interessante caso o banco de dados seja muito grande

10/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

2. Backup 2.9 Modelo de recovery - SIMPLE No registra as transaes no arquivo de Transaction Log - FULL (padro) Armazena no arquivo de Transaction Log todas as transaes. - BULK_LOGGED Registra no arquivo de Transacton Log o mnimo possvel das transaes (create (create index, index , bcp) bcp)

2.9.1 Configurando um modelo de query alter database nome_do_banco_de_dados set recovery uma_das_opes_acima

11/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

2. Backup 2.10 Comando de execuo de backup completo ou diferencial de um banco de dados - Pgina 272

2.11 Comando de execuo de backup de arquivo ou de grupo de arquivos de um banco de dados - Pgina 273

2.12 Comando de execuo de backup de arquivo de log de um banco de dados - Pgina 274

12/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

2. Backup 2.13 Clusulas do comando backup - Pginas 275 at 285

13/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

3. Restore 3.1 Verificaes para restaurar um backup - Antes de restaurar um backup possvel obter vrias informaes para ter certeza se iremos restaurar o backup correto. - Restore HeaderOnly - exibe informaes sobre o cabealho do backup Restore HeaderOnly from disk = c:\ c:\Backup\ Backup\bkpImpacta. bkpImpacta.bak bak - Restore FileListOnly - exibe quais so os arquivos que esto dentro desse backup Restore FileListOnly from disk = c:\ c:\Backup\ Backup\bkpImpacta. bkpImpacta.bak bak
14/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

3. Restore 3.1 Verificaes para restaurar um backup - Restore LabelOnly - exibe informaes sobre o Label Family Restore LabelOnly from disk = c:\ c:\Backup\ Backup\bkpImpacta. bkpImpacta.bak bak - Restore VerifyOnly - verifica se vai ser possvel restaurar todos os arquivos Restore VerifyOnly from disk = c:\ c:\Backup\ Backup\bkpImpacta. bkpImpacta.bak bak

15/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

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

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

3. Restore 3.3 Restaurando um arquivo ou grupo de arquivos - Pgina 289

3.4 Restaurando o Transaction Log - Pgina 290

3.5 Clusulas do comando Restore - Pginas 291 at 297

17/19

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

3. Restore 3.6 Restaurando e reconstruindo os bancos de dados do sistema - No possvel realizarmos um restore de um database caso algum database de sistema esteja com problemas - primeiro necessrio 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

Captulo 5 Backup
1. Introduo 2. Backup 3. Restore

3. Restore 3.6.2 Anexando bancos de dados - possvel anexar banco de dados de um servidor em outro servidor, sem a necessidade de realizar backup/restore backup/ restore - Para isso utiliza a opo Attach/ Attach/Detach

19/19

EXERCCIOS Pginas 563 at 585

Captulo 6

Transferncia de Dados

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia de dados

1. Introduo - possvel realizar Importao e Exportao de dados em bases heterogneas - 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

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia de dados

2. Importando e exportando dados utilizando o SQL Server Management Studio - A Microsoft disponibiliza algumas ferramentas para a realizao dessa tarefa: - SQL Server Import and Export Wizard - Bases homogneas e heterogneas - Bulk Copy Program (bcp bcp) ) - Programa utilizado atravs de linha de comando do MSMS-DOS - Carga direta atravs de arquivo texto - Bulk Insert - Comandos T T-SQL - Carga direta atravs de arquivo texto

2/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia de dados

3. SQL Server Import and Export Wizard - Managment Studio - Expandir a pasta Database - Boto direito no database que voc deseja trabalhar - Escolher opo Tasks - Clicar em Import Data ou Export Data

3/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia 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

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia 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 : autenticao pelo Windows - False False: : autenticao pelo SQL Server - User ID & Password - nome e senha do usurio do SQL Server

5/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia de dados

3.1.2 Microsoft OLE DB Provider for SQL Server e SQL Native Client - Server Name - nome do servidor - Use Windows Authentication - autenticao atravs de um usurio do Windows - Use SQL Server Authentitcation - autenticao atravs de um usurio do SQL Server - User Name & Password - informa o nome do usurio e senha caso tenha sido escolhido a forma de autenticao pelo SQL Server - Database - seleciona qual ser o nome do database - Refresh - atualiza com os nomes dos databases

6/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia 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 verso do Excel

7/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia 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 usurio - Advanced - ajustes de configurao do arquivo ( (user user, ,pwd) pwd)

8/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia de dados

3.1.5 Flat File Source - Pgina General - seleciona o arquivo texto - Pgina Columns - informaes sobre colunas e linhas do arquivo - Pgina Advanced - informaes sobre compatibilidade entre os tipos de dados do arquivo (data type) type) - Pgina Preview - viso do contedo configurado (tabulado)

9/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia de dados

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 informaes configuradas at o momento

10/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia 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 usurio e senha caso tenha sido escolhido a forma de autenticao 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

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia 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 tambm a ordenao de classificao dos caracteres - Unicode - habilita a utilizao de Unicode - Code Page - Collation - continua...

12/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia 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 opo 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

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia 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 verso do Excel

14/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia 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 usurio - Advanced - ajustes de configurao do arquivo ( (user user, ,pwd) pwd)

15/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia de dados

3.3 Especificando como os dados sero copiados - Neste ponto possvel dizer se os dados sero copiados por inteiro ou apenas um parte deles. - Opes: - Copy data from one or more tables or view - Write a query to specify the data to transfer

16/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia de dados

3.4 Selecionando as tabelas que sero copiadas - Source - nome das tabelas e/ou vises - Destination - nome que esses objetos tero - Edit - possvel mapear a coluna das tabelas - Select All - seleciona todas as tabelas e/ou vises - continua...

17/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia de dados

3.4 Selecionando as tabelas que sero copiadas - Deselect All - desmarca todas as tabelas e/ou vises que estavam selectionadas - Preview - Pr Pr-visualizao de at 200 linhas - Optimize for many tables - interessante para grandes exportaes ou importaes visto que o SQL Server utiliza um mtodo de processamento mais escalvel - Run in a transaction - Trata cada exportao ou importao como sendo uma transao

18/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia de dados

3.5 Especificando se o pacote ser salvo e executado imediatamente - possvel executar imediatamente o processo - possvel salvar a rotina como um Package dentro do SQL Server (msdb (msdb) ) - possvel salvar a rotina em um arquivo . .dtsx dtsx para ser utilizado atravs do .Net

3.5.1 Nveis de proteo - Um package pode ser protegido com senha de acesso

19/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia de dados

3.5.2 Salvando um pacote SSIS - Para salvar um package necessrio informar: - No SQL Server - Nome do package - Descrio do package (interessante) - Servidor que ele ser salvo - Forma de autenticao que voc estar utilizando no momento de salvar o package - Em arquivo com extenso . .dtsx dtsx - Pasta e Nome do arquivo

20/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia de dados

3.6 Visualizando a performance da operao - Action - ao que est sendo feita no momento - Status - status de cada passo - Message - no caso de erro exibida - Filter - possvel filtrar o tipo de aes para acompanhar com mais foco - Stop - encerra o processo - Report - no final o SQL Server disponibiliza um relatrio com os detalhes do processo.
21/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia de dados

4. Ferramentas de transformao e cpia de dados 4.1 Bulk Copy Program (bcp) bcp) - Utilitrio de Prompt - Importa e Exporta dados de arquivo . .txt txt para o SQL Server 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 Parmetros - Pginas 337 at 346


22/23

Captulo 6 Transferncia de Dados


1. Introduo 2. Importando e exportando dados utilizando o SQL Server Managment Studio 3. SQL Server Import and Export Wizard 4. Ferramentas de Transformao e cpia de dados

4.2 Bulk Insert - Comando Transact SQL - Importa dados de arquivo . .txt txt para o SQL Server de forma mais rpida 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 Parmetros - Pginas 348 at 353


23/23

EXERCCIOS Pginas 598 at 610

Captulo 7

Segurana

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

1. Principals e Securables - Principals um conceito de grupo de segurana - Windows Principals - contas do windows - SQL Server Principals - logins do sql server - Database Principals - database role - Securables so os privilgios que os principals possui - Server Scope - objetos do servidor - Database Scope - objetos do database - Schema Scope - objetos de um esquema
1/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

2. Autenticao do logon do usurio - Duas formas de autenticao: - Windows Only - SQL Server and Windows

2.1 Autenticao feita apenas com o Windows - Apenas usurios criados no Windows iro conseguir conectar no SQL Server

2.2 Autenticao feit apelo Windows e pelo SQL Server - Essa configurao aceita dois tipos de conexo, sendo, Trusted e NonNon-Trusted Connection

2.2.1 NonNon-Trusted Connection - O SQL Server valida se o login e senha que o usurio est conectado no Windows existe tambm dentro do SQL Server
2/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

2.3 Vantagens de autenticao feita pelo S.O. - Validao de segurana - Criptografia da password - Auditoria - Prazo de expirao da password - Tamanho mnimo de password - Bloqueio da conta aps algumas tentativas de logon invlidas

3/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

2.4 Vantagens de autenticao feita pelo Mixed Mode - Permite que usurios de Sistema Operacional se conecta no SQL Server - Permite que sejam criados usurios dentro do Software SQL Server - Aumenta a camada de segurana, visto que o SQL Server ir pedir novamente login e senha para autenticao

4/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

2.5 Mapeando um usurio do Windows no SQL Server Create Login [domnio\ [domnio\nomeUsuario nomeUsuario] ] from Windows

2.6 Criando um usurio no SQL Server Create Login nomeUsuarioSQL with Password = Xpt Xpt#9 #9

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

5/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

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

3.1 Adicionando contas nos databases do SQL Server - Pode adicionar usurios quem faz parte dos grupos: - Server role admin - Database role db_owner - db_accessAdmin

6/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

3.1.1 Adicionando contas de usurios em um database create user nomeUsuario

3.2 Conta default de usurio - todo database tem um usurio default chamado: dbo (database object owner) owner) - qualquer objeto que um System Administrator criar pertencer ao usurio dbo - este usurio no pode ser excludo dos databases

7/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

3.3 A conta guest guest - a conta guest (convidado) existe em todos os SQL Server - um usurio que tem acesso ao servidor, porm, no a um determinado database poder acessacess-lo mesmo assim, caso a conta guest (convidado) esteja habilitada

3.3.1 Consideraes com relao conta guest - privilgio pode ser atribudo e retirado desta conta - pode ser excluda exceto dos databases master e tempdb

8/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

4 Atribuindo permisses aos usurios 4.1 Roles - O SQL Server oferece a possibilidade de trabalharmos com Roles que representam grupos de privilgios - Existem dois tipos de Roles: - Server Roles - Database Roles - No possvel criarmos Server Roles - possvel criarmos Database Roles - Um usurio poder pertencer a diversas Roles ao mesmo tempo

9/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 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 esto rodando

- continua...

10/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

4.1.1 Server Roles 5- SecurityAdmin Gerencia os logins do servidor 6- ServerAdmin Gerencia as configuraes do servidor 7- SetupAdmin Gerencia as extended stored procedure 8- BulkInsert Executa a instruo Bulk Insert

11/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

4.1.2 Adicionando usurios nos Server Roles Execute sp_AddSrvRoleMember nome_usuario, nome_usuario, nome_role - Os Server Roles no podem ser alterados ou removidos - Qualquer membro de um Server Role pode adicionar outro login para esse server role - A system procedure sp_AddSrvRoleMember no pode ser executada dentro de uma transao definida pelo usurio - A system procedure sp_DropSrvRoleMember remove usurios da role especificada - System Procedures disponveis para obter informaes: - sp_HelpSrvRole (lista server roles)

- sp_SrvRolePermission (lista privilgio)


12/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

4.1.3 Database Roles - Segue as 10 database role existentes: 1- Public Mantm todas as permisses default. Inicialmente, contm permisso de leitura em todas as tabelas do catlogo do database 2- db_Owner Executa qualquer atividade no database 3- db_AcessAdmin Adiciona ou remove usurio e roles do database 4- db_ddlAdmin Adiciona, modifica ou remove objetos do database 5- db_SecurityAdmin Atribui permisses aos usurios - continua...
13/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 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 adio, modificao ou excluso de dados de qualquer tabela do database

14/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

4.1.4 Adicionando usurios nos Database Roles Execute sp_AddRoleMember nome_role, nome_role, nome_usuario - Os Databases Roles no 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 usurios da role especificada - Os database roles so armazenados na system table sysUsers dentro de cada database

15/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

4.1.5 Public - Public Public um database role especial - Caractersticas: - Contm todas as permisses default para os usurios no database - No pode ter usurio ou roles atribudos a ele - Est contido em todos os databases, incluindo master, master , msdb, msdb, tempodb, tempodb, model e todos os databases de usurios - No pode ser eliminado do database - Sem permisso especfica, um usurio ter apenas as permisses do role public

16/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

4.1.5 Public - O role Public pode: - Executar comandos que no requerem permisses como o comando Print Print - Ler informaes das system tables - Executar certas system sotred procedures para recuperar informaes do database

17/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

4.1.6 User Defined Database Role - Podemos criar as nossas prprias 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 - 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

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

4.1.7 Application Role - So roles especficas a uma determinada aplicao (seu sistema) impedindo que aplicativos diversos (excel (excel, , access) access ) acessem os dados - No possvel adicionar membros a Aplication Role - Para utiliz utiliz-la necessrio ativativ-la durante a conexo do seu sistema - 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

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

4.2 Permisses - Existem duas maneiras de atribuirmos privilgios aos usurios: - Roles (grupo j com diversos privilgios) - Privilgios Especficos

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

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

4.2.2 Atribuindo permisses - Grant - garante o direito de executar uma determinada ao - Deny - nega o direito de executar uma determinada ao - Revoke - Revoga o direito ou negao de executar uma determinada ao

21/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

4.2.3 Grant - Os privilgios so concedidos para um database especfico - Pode conceder privilgio quem fizer parte dos grupos: SysAdmin db_Owner db_SecurityAdmin proprietrio do objeto

- Permisso de comando GRANT comando TO usuario_role - Permisso de objeto GRANT comando ON objeto TO usuario_role WITH GRANT OPTION (permite que esse usurio conceda a mesma permisso para outro usurio) 22/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

4.2.4 Deny - Os privilgios so negados para um database especfico - Pode negar o privilgio quem fizer parte dos grupos: - SysAdmin - db_Owner - db_SecurityAdmin - proprietrio do objeto - Sintaxe: DENY comando TO usuario_role CASCADE (todos os usurios que receberam privilgios atravs do with grant option iro perder neste momento)

23/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

4.2.5 Revoke - Os privilgios so removidos para um database especfico - Pode remover o privilgio quem fizer parte dos grupos: - SysAdmin - db_Owner - db_SecurityAdmin - proprietrio do objeto - Sintaxe: REVOKE comando from usuario_role CASCADE (todos os usurios que receberam privilgios atravs do with grant option iro perder neste momento)

24/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

5 Schema 5.1 Do SQL Server 2000 para o SQL Server 2005 - Esquema considerado um NameSpace - Esquema traz a independncia do objeto em relao ao dono dele - possvel criar um Schema (create schema schema) ) - Ao criar um objeto possvel informar que o dono desse objeto o Schema - Dessa forma voc pode excluir um determinado usurio sem precisar excluir todos os objetos dele. - Pode trocar todos os objetos de esquema

25/27

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

5.1.1 Benefcios da separao User - Schema - Vrios usurios podem possuir um nico Schema - Ao eliminar um usurio no necessrio alterar o nome do dono dos objetos - Mais organizao para os desenvolvedores, visto que podem criar um schema para cada mdulo do sistema - Nome totalmente qualificado: select * from server.database. server.database.Schema Schema. .object

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

Captulo 7 Segurana
1. Principals e Securables 2. Autenticao do logon do usurio 3. Gerenciando o acesso aos databases 4. Atribuindo permisses aos usurios 5. Schema 6. Criptografia de dados 7. Credentials

6 Criptografia de dados - Garantir a segurana dos dados 6.1 Mecanismos de criptografia - Certificates - Asymmetric Keys - Symmetric Keys 6.1.1 Certificates - Certificados que so utilizados para criptografar dados 7 Credentials - Torna fcil acessar recursos externos do SQL Server

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

EXERCCIOS Pginas 600 at 609

Captulo 8

Automao, Jobs, Alertas e Operadores

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

1 Introduo - Automatizar processos - Agendar Backup - Rotinas em batch - Processamento noturno (regras de negcios)

1/16

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

2 SQL Server Agent - um servio do SQL Server responsvel por gerenciar os agendamentos

2.1 PrPr-requisitos do SQL Server Agent - Servio 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 servio principal do SQL Server)

2.1.2 Autenticao do SQL Server Agent no SQL Server - S permitido atravs de Windows Authentication
2/16

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

3 Configurando o SQL Server para enviar ee-mails - O SQL Server traz a possibilidade de enviar e e-mails 3.1 SQL Mail - Recurso criado na verso 2000 - necessrio instalar um software de e e-mail - Ferramenta grfica ou comando xp_SendMail 3.2 Database Mail - Recurso criado na verso 2005 - No necessrio instalar software de e e-mail - No fica ativo por padro. Deve Deve-se habilithabilit-lo atravs do SQL Server Surface Area Configuration Configuration - Ferramenta grfica ou comando sp_Send_DBMail

3/16

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

4 Jobs - Automatiza processo executando automaticamente em um determinado dia e horario - Fatores importantes em cada Job: Job: - Usurio que criou o Job - Ser executado localmente ou em diversos servidores - Verificar se est habilitado - Especificar sua categoria

4/16

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

4.1 Definindo os passos de um Job - Job e vrios Steps - Steps com diversas categorias 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 replicao - Replication (criado automtico)

5/16

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

4.2 Determinando o fluxo lgico de ao de cada job - Step 1, Step 2 - Error ? 4.3 Programando o horrio de execuo de um Job - Schedule - dirio - semanal - semanal intervalo entre os dias - mensal - hora - minuto - intervalo de tempo

6/16

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

4.4 Histrico dos Jobs - Ferramente Grfica - Comandos T T-SQL select * from msdb. msdb.dbo. dbo.SysJobHistory

4.4.1 Visualizando o histrico dos jobs Tempo de execuo Data e horrio da execuo Status Mtodo de notificar o operador (e (e-mail, net send) send) Qual operador foi notificado

7/16

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

5 Operadores - Usurios notificados

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

8/16

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

6 Alertas - SQL Server emite - Nossos Alertas - Alerta dispara Job

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

9/16

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

6.2 Alertas definidos na severidade de um erro do SQL Server - 19 e 25 escrito no EventViewer - 20 e 25 so erros fatais

6.3 Alertas definidos em erros criados pelos usurios do SQL Server - Podemos criar nossas prprias mensagens de erros - Um erro pode gerar um alerta que pode executar um Job que pode notificar o DBA

10/16

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

6.3.1 Criando uma mensagem de erro de usurio - Verificar se o nmero do erro j existe Select * from sys. sys.Messages

- 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

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

6.3.2 Gerando um erro a partir de um aplicativo 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 excludo pelo Aluno1

12/16

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

6.3.3 Gravando eventos no log de aplicativos do Event Viewer - Erros so gravados no Event Viewer

6.4 Alertas em contadores de Performance Monitor - Ultrapassa um limite

13/16

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

7 Ambiente de mltiplos servidores - Gerenciamento centralizado

7.1 Definindo um servidor master - Master & Target

7.2 Alterando as definies de um Job criado em um servidor master - Alteraes so feitas no Master

7.3 Histrico dos Jobs de ambientes MultiServidores - SysJobHistory - sysJobServers


14/16

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

8 Soluo de problemas - SQL Server Agent ligado - Direitos administrativos da conta de servio - Permisses do proprietrio do Job - Funcionamento do mail client - Tamanho do log de aplicativos do Windows - Histrico - SQL Server Agent error Log - Loop do alerta (performance monitor) - Atraso do alerta (alto processamento)

15/16

Captulo 8 Automao, Jobs, Alertas e Operadores


1. Introduo 2. O SQL Server Agent 3. Configurando o SQL Server para enviar e-mails 4. Jobs 5. Operadores 6. Alerts (alertas) 7. Ambiente de mltiplos servidores 8. Soluo de problemas 9. System stored procedures para configurar jobs, alertas e operadores

9 System stored procedures para configurar jobs, jobs, alertas e operadores JOB sp_Add_Job sp_Update_Job sp_Delete_Job sp_Help_Job 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

EXERCCIOS Pginas 612 at 643

Captulo 9

Replicao

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

1 Introduo - Replicar dados entre servidores - Atender regra de negcio - Matriz e Filiais - Dois tipo: - Transao Distribuda - Replicao

1/15

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

1.1 Transao Distribuda - Atomicidade - Online tempo integral - Interessante quando h necessidade de sincronizao constante entre todos
Matriz So Paulo

Goinia

Porto Alegre

Salvador

2/15

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

1.2 Replicao - Periodicamente - Pode ficar Offline - Interessante quando h necessidade de replicar alguns dados entre um ou mais servidores
Matriz So Paulo

Goinia

Porto Alegre

Salvador

3/15

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

1.3 A escolha do mtodo de distribuio de dados - Mapear o seu ambiente de infraestrutura - Analisar sua regra de negcio - Tempo de latncia - Autonomia dos sites

4/15

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

2. O processo de replicao - Origem -> Destino - Metfora Publisher Distributor Subscriber = = = Editor Distribuidor Assinante

5/15

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

2.1 Metfora de replicao - Publisher (editor) - Servidor com os dados de origem - Distributor (distribuidor) - Servidor responsvel por distribuir as alteraes - Suporta diversos servidores destino - Subscriber (assinante) - Destino dos dados

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

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

2.2 Publicaes e artigos - Publicaes - O dados replicados so chamados conceitualmente de Publicaes - Publicaes = Publications - Artigos - Artigos so tabelas, queries - Artigos = Articles - Publications pode conter um ou mais Articles Articles

7/15

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

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

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

Resumo at o momento - Server Publisher = editor distribuidor assinante publicaes artigos (tabela, query) query) Tipo de publicao (editor) Tipo de publicao (assinante)

- Server Distributor = - Server Subscriber = - Publications - Articles = =

- Push Subscription = - Pull Subscription =

9/15

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

2.4 Agentes da replicao - 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 - Responsvel por fundir os dados que foram replicados

10/15

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

2.5 Tipos de publicao - Tipos de publicao: - Snapshot - Transactional - Merge - Heterogeneous

11/15

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

2.5.1 Snapshot Publication Foto Envia todos os dados Utilizao de Recursos Tipo mais simples de replicao

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

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

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 no exista) - Tabelas so criadas - Triggers so criados e dados inseridos em System Table

2.5.4 Resoluo de conflitos - Resoluo automtica e garante consistncia


13/15

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

3 Cenrio de replicao 3.1 Cenrio de replicao Client/Server Client/Server 3.2 Cenrio de replicao entre servidores - Integrao de dados - Melhor disponibilidade e escalabilidade - Dados presentes em servidores OLTP - Servidores dedicado de processamento em lote

14/15

Captulo 9 - Replicao
1. Introduo 2. O processo de replicao 3. Cenrio de replicao 4. Restries de replicao

4 Restries de replicao - Primary Key - Coluna UniqueIdentifier adicionada - Database que no podem ser replicados: - Master - Model - Distributor - MSDB - TempDB

15/15

EXERCCIOS Pginas 646 at 665

Captulo 10

Monitorando e Ajustando a Performance

Captulo 10 Monitorando e Ajustando a Performance


1. Introduo 2. Consideraes 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 Introduo - Tempo de resposta rpido - Desde o incio do projeto deve deve-se pensar em performance - Com o tempo pode diminuir a performance: - quantidade de usurios - dados armazenados - fragmentao de dados - Monitoramento e ajuste de performance so tarefas frequentes

1/8

Captulo 10 Monitorando e Ajustando a Performance


1. Introduo 2. Consideraes 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

2 Consideraes para uma boa performance na fase de projeto de um sistema - Modelagem de dados - Regras de normalizao

2/8

Captulo 10 Monitorando e Ajustando a Performance


1. Introduo 2. Consideraes 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 Fatores que afetam o tempo de resposta - Configurao de hardware - Concorrncia em registros - Otimizao do SGBD e da Aplicao - Atividades realizadas pelo servidor

3/8

Captulo 10 Monitorando e Ajustando a Performance


1. Introduo 2. Consideraes 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 - Redues - transao curta e dados especficos - Hardware - disco, processador, memria - Configuraes e Gerenciamentos - SGBD - SO - Queries - boa lgica e excelente conhecimento de T T-SQL

- continua...

4/8

Captulo 10 Monitorando e Ajustando a Performance


1. Introduo 2. Consideraes 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 comear o trabalho de anlise de performance: - Como ocorre o acesso aos dados - O quo seletivo so os dados - Como a aplicao utilizada em sistemas OLTP e OLAP - Qual a estrutura fsica e lgica dos dados e como eles so utilizados - Qual o ambiente em que a aplicao executada, bem como seus usurios e dados - Quais so as queries executadas pelos usurios e quantas queries so processadas pelo servidor de forma concorrente
5/8

Captulo 10 Monitorando e Ajustando a Performance


1. Introduo 2. Consideraes 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 Situao atual do sistema e os objetivos a serem alcanados - Fazer levantamento atual e Definir um modelo ideal 4.2 Ajustando a performance de uma aplicao - Ajuste do banco de dados (estrutura) - Ajusto do SQL Server (configuraes) - Ajuste da configurao do hardware - Identificao de gargalos - Estratgias de ndices e de queries - Agendamento adequado de tarefas de manuteno
6/8

Captulo 10 Monitorando e Ajustando a Performance


1. Introduo 2. Consideraes 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 - sugesto de ndice

7/8

Captulo 10 Monitorando e Ajustando a Performance


1. Introduo 2. Consideraes 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 - Pginas 450 at 456 5.2 SQL Profiler - Diversos categorias e eventos - Pginas 457 at 479 5.3 TransactTransact-SQL - System Procedures - Comandos SQL - Variveis Globais - DBCC - Activity Monitor - Event Viewer

8/8

EXERCCIOS Pginas 668 at 679

Captulo 11

Mantendo a Alta Disponibilidade

Captulo 11 Mantendo a Alta Disponibilidade


1. Introduo 2. Determinando a disponibilidade de um sistema de banco de dados 3. Solues 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 configurao 8. Alguns itens importantes sobre o espelhamento de databases 9. Modelos de configurao do espelhamento 10. Transaction Safety

1 Introduo - Tempo de disponibilidade - Trs categorias: - Disponibilidade bsica - Alta disponibilidade - Disponibilidade contnua

1/8

Captulo 11 Mantendo a Alta Disponibilidade


1. Introduo 2. Determinando a disponibilidade de um sistema de banco de dados 3. Solues 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 configurao 8. Alguns itens importantes sobre o espelhamento de databases 9. Modelos de configurao do espelhamento 10. Transaction Safety

1.1 Disponibilidade bsica - Hardware (discos, memrias) - Restore - Contrato de suporte por tempo

1.2 Alta disponibilidade - Log Shipping

1.3 Disponibilidade contnua - Database Mirroring

2 /8

Captulo 11 Mantendo a Alta Disponibilidade


1. Introduo 2. Determinando a disponibilidade de um sistema de banco de dados 3. Solues 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 configurao 8. Alguns itens importantes sobre o espelhamento de databases 9. Modelos de configurao do espelhamento 10. Transaction Safety

2 Determinando a disponibilidade de um banco de dados 2.1 Horrio de operao do sistema - range de horrio de utilizao 2.2 Conectividade com o servidor de dados - tempo que pode ficar Offline 2.3 Interao sncrona/assncrona - Sncrona processa, pra e devolve - Assncrona processa e devolve em paralelo

3 /8

Captulo 11 Mantendo a Alta Disponibilidade


1. Introduo 2. Determinando a disponibilidade de um sistema de banco de dados 3. Solues 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 configurao 8. Alguns itens importantes sobre o espelhamento de databases 9. Modelos de configurao do espelhamento 10. Transaction Safety

3 Solues para os requisitos de disponibilidade de um sistema

3.1 Horrio de operao do sistema - range de horrio de utilizao

4 /8

Captulo 11 Mantendo a Alta Disponibilidade


1. Introduo 2. Determinando a disponibilidade de um sistema de banco de dados 3. Solues 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 configurao 8. Alguns itens importantes sobre o espelhamento de databases 9. Modelos de configurao do espelhamento 10. Transaction Safety

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

5 /8

Captulo 11 Mantendo a Alta Disponibilidade


1. Introduo 2. Determinando a disponibilidade de um sistema de banco de dados 3. Solues 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 configurao 8. Alguns itens importantes sobre o espelhamento de databases 9. Modelos de configurao do espelhamento 10. Transaction Safety

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

6 Database Mirroring no SQL Server 2005 - Espelhamento - Disponibilidade contnua

7 Servidores envolvidos na configurao - Server Principal - Server Mirror - Server Witness -> -> -> origem dos dados destino dos dados controlador

6 /8

Captulo 11 Mantendo a Alta Disponibilidade


1. Introduo 2. Determinando a disponibilidade de um sistema de banco de dados 3. Solues 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 configurao 8. Alguns itens importantes sobre o espelhamento de databases 9. Modelos de configurao do espelhamento 10. Transaction Safety

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

7 /8

Captulo 11 Mantendo a Alta Disponibilidade


1. Introduo 2. Determinando a disponibilidade de um sistema de banco de dados 3. Solues 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 configurao 8. Alguns itens importantes sobre o espelhamento de databases 9. Modelos de configurao do espelhamento 10. Transaction Safety

9 Modelos de configurao do espelhamento 10 Transaction Safety 10.1 Quorum e Witness Server - Alta disponibilidade - Transaction Safety (transao nos dois) - 2 servidores no mnimo - Witness requirido - Failover automtico ou manual - Alta proteo - Transaction Safety (transao nos dois) - 2 servidores no mnimo - Failover manual - Alta Performance - Transaction Safety (transao s no principal) - Failover manual
8 /8

EXERCCIOS Pginas 682 at 695

Apndice I Ferramentas Administrativas

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

Anda mungkin juga menyukai