Mostrando postagens com marcador SQL Server. Mostrar todas as postagens
Mostrando postagens com marcador SQL Server. Mostrar todas as postagens

quinta-feira, 8 de maio de 2008

Requisitos de infra-estrutura para o instalar as versões do SQL Server 2005

Para escolher a intra-estrutura apropriada para sua instalação você precisa entender quais são os requisitos mínimos de cada versão do SQL Server 2005. Lembre-se de considerar as necessidades futuras do seu ambiente e da sua base, esta estimativa futura ajuda a evitar problemas comuns de performance e elimina a necessidade de realizar upgrade de hardware no futuro.

Edições de 32-bits do SQL Server 2005

Processador
  • Pentium III-compatível 600 Mhz, recomendado 1 Ghz ou superior
Ssistema Operacional
  • Enterprise Edition
    • Windows 2000 Server/Advanced/Datacenter com SP4
    • Windows Small Business Server 2003 Standard/Premium com SP1 ou superior
    • Windows Server 2003 Standard/Enterprise/Datacenter com SP1 ou superior
  • Standard Edition
    • os mesmos SOs do Enterprise, e
    • Windows 2000 Professional com SP4
    • Windows XP Professional com SP2 ou superior
  • Workgroup Edition
    • os mesmos SOs do Enterprise e do Standard, e
    • Windows XP Media Edition com SP2 ou superior
    • Windows XP Tablet Edition com SP2 ou superior
  • Express Edition
    • os mesmos SOs do Enterprise, Standard e Workgroup, e
    • Windows XP Home Edition com SP2 ou superior
    • Windows Server 2003 Web Edition com SP1 ou superior
  • Developer Edition
    • os mesmos SOs do Enterprise, Standard e Workgroup, e
    • Windows XP Home Edition com SP2 ou superior
Memória RAM
  • Enterprise, Standard e Developer Edition 512 Mb, 1 Gb Recomendado
  • Workgroup Edition 512 Mb, 1 Gb recomendado (no máximo 4 Gb)
  • Express Edition 192 Mb, 512 Mb ou mais recomendado (no máximo 1 Gb)
Espaço em disco
  • para todas as edições são necessários 350 Mb para a instalação completa e 390 Mb adicionais para instação das bases de dados de exemplo.
Internet e rede
  • Internet Explorer 6.0 SP1 ou superior para todas as edições porque é necessário para o MMC e a ajuda HTML. Uma instalação mínima do IExplorer já é suficiente, e, não é necessário configurar o IExplorer como navegador padrão.
  • O IIS precisa ser configurado para aplicações que escrevem XML. A versão 5.0 ou superior do IIS é necessária para a instalação do Reporting Services.
  • O sistema operacional precisa de uma interface de rede configurado e o TCP/IP precisa estar ativado antes de instalar o SQL Server 2005.
Edições de 64-bits do SQL Server 2005

Processador
  • IA64, 1 Ghz ou um processador Itanium mais rápido/superior
  • X64, 1 Ghz ou AMD Opteron, AMD Athlon 64, Intel Xenon com suporte Intel EM64T ou Intel Pentium IV com suporte para EM64T, ou superior
Ssistema Operacional
  • Enterprise, Standard e Developer Edition (IA64)
    • Windows Server 2003 64-Bit Itanum Datacenter e Enterprise Edition com SP1 ou superior
  • Enterprise, Standard e Developer Edition (X64)
    • Windows Server 2003 64-Bit X64 Datacenter, Enterprise e Standard Edition com SP1 ou superior
  • Express Edition
    • os mesmos SOs das edições anteriores, e
    • Windows XP X64 Professional (64-bit)
Memória RAM
  • Ao contrário das versões de 32-bit, todas as edições 64-bit tem o mesmo requisito
  • 512 Mb, 1 Gb recomendado
Espaço em disco
  • igual a versão 32-bit
Internet e rede
  • igual a versão 32-bit

quinta-feira, 24 de abril de 2008

Versões disponíveis do SQL Server 2005

O SQL Server 2005 está disponível em 5 versões, são elas:

  • SQL Server 2005 Enterprise Edition (32-bit e 64-bit)
    • Esta versão foi desenvolvida para suportar ambientes com um grande número de transações online (OLTP), requisitos de análise de daod complexa, systemas de data-warehousing e Web sites ativos, ou seja, para instalações de grandes bases de dados.

  • SQL Server 2005 Standard Edition (32-bit e 64-bit)
    • Esta versão inclui todas as funcionalidades essenciais necessárias para e-commerce, data-warehouse e soluções para organizações pequenas e médias. Organizações que necessitam de grandes bases de dados porém não precisam de todas as funcionalidades da edição Enterprise devem considerar o uso desta versão.

  • SQL Server 2005 Workgroup Edition (só 32-bit)
    • Esta é uma solução de SGBD para pequenas organizações.

  • SQL Server 2005 Developer Edition (32-bit e 64-bit)
    • Esta versão inclui todas as funcionalidades do Enterprise, mas é licenciada apenas para desenvolvimento e testes de sistemas, não para servidores de produção.

  • SQL Server 2005 Express Edition (32-bit only)
    • É a versão "free", isto mesmo, você não precisa pagar nada por ela. É simples de utilizar e redistribuir. Normalmente é utilizada para bases de dados pequenas

Agora uma lista de características por edição nesta ordem (Express, Workgroup, Standard e Enterprise):

  1. Número de CPUs suportadas (1, 2, 4, ilimitado) - todos suportam processadores com mais de um núcleo;
  2. Memoria (1 Gb, 3 Gb, Limite do sistema operacional, Limite do sistema operacional);
  3. Suporte a 64-bit (WOW, WOW, Nativo, Nativo)
  4. Tamanho máximo de base de dados (4 Gb, Sem Limite, Sem Limite, Sem Limite)
  5. Partitioning (Não, Não, Não, Sim)
  6. Database Mirroring (Não, Não, Sim, Sim)
  7. Failoer Clustering (Não, Não, Sim-só dois nós, Sim)
  8. Log Shipping (Não, Sim, Sim, Sim)
  9. Management Studio (Não, Sim, Sim, Sim)
  10. Database Tuing Advisor (Não, Não, Sim, Sim)
  11. Full-Text Search (Não, Sim, Sim, Sim)
  12. SQL Server Agent Job Scheduling Service (Não, Sim, Sim, Sim)
  13. Best Pratices Analyzer (Yes, Sim, Sim, Sim)
  14. Notification Services (Não, Não, Sim, Sim)
  15. Service Broker (Sim-só subscriber, Sim, Sim, Sim)
  16. Merge Replication (Sim-só subscriber, Sim-publica para até 25 subscribers, Sim, Sim)
  17. Transational Replication (Sim-só subscriber, Sim-publica para até 5 subscribers, Sim, Sim)
  18. Oracle Replication (Não, Não, Sim, Sim-transactional replication com uma base de dados Oracle como um publisher)
  19. Web Services (HTTP Endpoints) (Não, Não, Sim, Sim)
  20. Report Server (Não, Sim, Sim, Sim)
  21. BI Development Studio (Sim-só report designer, Sim-só report designer, Sim, Sim)
  22. Enterprise Management Tools (Não, Sim, Sim, Sim)
  23. Native Support for Web Services (Service Oriented Architectures) (Sim-só reporting services, Sim-só reporting services, Sim, Sim)
  24. Analysis Services (Não, Não, Sim, Sim)
Resumindo...
  • O SQL Server 2005 tem 5 edições conforme descrito no inicio deste post;
  • As versões Enterprise e Developer possuem todas as funcionalidades, porém a Developer só é licenciada para desenvolvimento e não para produção;
  • A versão Standard possue as funcionalidades e as características necessárias para grandes conjuntos de dados, mas é limitada no número de nós suportados para "clustering" assim como a capacidade para utilizar recursos como online indexing, indexed views, fast recovery, online restores e data partioning;
  • A edição Workgroup não inclui as funcionalidades e características necessárias para utilizar grandes bases de dados;
  • E a versão Express é útil para pequenas aplicações que precisar ser distribuídas;
Obs: a edição Developer tem as mesmas características da versão Enterprise;
Obs2: WOW significa Windows On Windows;

Exame 70-431 "Piloto"

Com a chegada do SQL Server 2008 tomei "vergonha na cara" e resolvi tirar todas as certificações SQL Server, disponíveis, ainda este ano.

Após algumas pesquisas decidir começar pelo MCTS: SQL Server 2005 (Microsoft Certified Technology Specialist) que é a certificação mais básica do SQL Server. Para obter este título é necessária a aprovação no exame 70-430 "Microsoft SQL Server 2005 - Implementation and Maintenance".

De agora em diante meus posts farão referência a esta 'jornada'. Todas os conhecimentos, dicas e informações que julgar interessante e importante irei postar neste blog.

Vamos lá, mão a obra...

terça-feira, 8 de abril de 2008

Por que algumas strings SQL possuem o prefixo 'N' ?

O “N” indica que a string subseqüente está em UNICODE.

Obs: “N” = padrão “National language character set” do SQL-92.

Mais informações em:
http://support.microsoft.com/?scid=kb%3Ben-us%3B239530&x=20&y=14
http://databases.aspfaq.com/general/why-do-some-sql-strings-have-an-n-prefix.html

sexta-feira, 4 de janeiro de 2008

Length of text, ntext, or image data (x) to be replicated exceeds configured maximum 65536.

Esta mensagem ocorre quando você tenta inserir dados em um campo text, ntext ou image que está publicado em um artigo para replicação.


Isto ocorre por que o valor máximo padrão para replicação é de 65536, basta aumentar este número.

Exemplo:

Ao executar um INSERT, recebi a seguinte mensagem de erro.

Length of text, ntext, or image data (67792) to be replicated exceeds configured maximum 65536.

Para solucionar isto, execute:

exec sp_configure 'max text repl size', 67762
reconfigure

sexta-feira, 10 de agosto de 2007

SQL Server 2005 Full-Text

Recentemente tive que fazer um ajuste no desempenho dos resultados de pesquisas utilizando o Full-Text no SQL Server 2005. Para quem não sabe, o SQL Server possui uma ferramenta que permite realizar pesquisas textuais no BD, chamado Full-Text Search.

Antes de começar é bom deixar claro que a performance fica realmente comprometida quando o resultado supera os 100.000 registros. Este post trata apenas de ajustes de software e não de hardware como separação física de bases de dados, etc, que podem trazer grandes melhorias do desempenho.

A base de dados ajustada contém pouco mais de 6 milhões de registros, ocupa 20Gb e possui um catálogo (utilizado pelo Full-Text Search para buscas) com 4 Gb.

Como otimizar as pesquisas (você precisa ter um conhecimento mínimo no FTS a partir de agora):

1) Utilizar CONTAINSTABLE no lugar de CONTAINS para grandes pesquisas

- Quando você utiliza o CONTAINS em uma condição WHERE, implicitamente é realizado um Join para combinar os IDs retornados pelo CONTAINS com os registros filtrados pelo WHERE, e isto degrada a performance quando utilizado em grandes bases de dados.

2) Incluir condições de pesquisa no texto indexado

- Ou seja, incluir no texto indexado pelo Full-Text Search todas as palavras utilizadas como restrição no WHERE, exemplo: suponha uma biblioteca com o conteúdo dos textos dos livros indexados, se você pesquisa por texto e restringe a pesquisa apenas para os livros de determinado assunto, o texto do assunto deve ser incluído no texto do livro, ou seja, após o texto do livro, inclú-a algo como: ASSUNTO:TECNOLOGIA, supondo que o livro seja do assunto Tecnologia, agora utilize a palavra acima com o CONTAINSTABLE.

3) Aumentar o time-out do full-text (SQL Server 2005 SP2)

EXEC sp_configure 'remote query timeout', 10000 -- o padrão é 600 segundos

combine com a seguir:

EXEC sp_fulltext_querytimeout @ftcat = 'nomedocatalogoFT', @timeout = 10000000 -- em milisegundos

4) Configure memória suficiente para o Full-Text Search

Deixe o ajuste de performance do sistema em "System cache", da seguinte forma: botão da direita em "Meu Computador", selecione "Propriedades", "Avançado", "Ajuste de performance", abra a caixa de diálogo "Avançado" na seção de uso de memória, selecione melhor performance para "Cache do sistema".

5) Outras configurações

Como regra geral, configure o serviço Full-Text para criar indices de acordo com SLA, para isto a opção full-text crawl deve ser definida como 2x o número de processadores físicos do servidor, no meu caso segue a configuração:

EXEC sp_configure 'max full-text crawl range', 2

(obs: se der erro, execute antes: EXEC sp_configure 'show advanced option', '1' para permitir visualização e ajustes das opções avançadas)

Em seguida, ajuste o uso de recursos para o full-text:

EXEC sp_fulltext_service 'resource_usage', 5 -- padrão 3

Neste caso, a máquina fica mais dedicada para o uso com pesquisas Full-text e irá utilizar até 100% do processador para isto.

Apenas com os ajustes acima, tive um ganho de 60% no retorno das pesquisas. Você pode também estudar e modificar suas cláusulas SQL. Para concluir, não existe uma 'receita de bolo' para otimizar as pesquisas com Full-Text, você terá que experimentar, ou seja, o processo é um pouco empírico.

Algumas fontes de referência:

http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/ftslesld.mspx?pf=true
http://msdn2.microsoft.com/en-us/library/ms915345.aspx

Além do books online!

quinta-feira, 26 de julho de 2007

PASSO 8 - Criptografar o tráfico entre o servidor e os clientes do Banco de Dados

Agora, você precisa proteger a comunicação entre o servidor de base de dados e a aplicação, para assegurar que os aspectos de rede associados ao modelo de segurança em níveis sejam contemplados.

Como padrão, esta comunicação entre cliente e servidor é transmitida pela rede na forma de texto, desta forma qualquer um que utilizar um monitor de rede pode escutar ou capturar o texto e obter acesso à informação.

O SQL Server 2005 suporta o uso de SSL (Secure Sockets Layer) para criptografar o tráfego entre o cliente e o servidor, garantindo a identidade do servidor e evitando o risco de ataques do tipo acima.

Para proteger comunicações com SSL você precisa obter um certificado de um PKI (enterprise public key infrastructure) através do Microsoft's Certificate Services ou de outra instituição como VeriSign. O Certificado SSL deve conter o nome do host ou o FQDN (fully qualified domain name) do servidor da base de dados e deve estar armazenado no no computador local caso o SQL Server 2005 estiver executando no contexto de LocalSystem, caso contrário o certificado
deve estar armazenado no mesmo host que detém a conta que executa o serviço.

Uma vez que o certificado está instalado, abra o SQL Server Configuration Manager, expanda o SQL Server 2005 Network Configuration e dê um clique com o botão da direita em Protocols e selecione Properties. Na guia de Certificados, selecione o certificado desejado (na lista), na guia General selecione Force Encryption e modifique o valor para Yes. Uma vez configurado o SQL Server 2005 para usar o certificado, você precisa restartar o SQL Server 2005 para que as modificações tenham efeito.

Uma segunda maneira de criptografar o tráfego entre cliente e servidor é utilizando o IPsec. O benefício do IPsec é que nenhum configuração é exigida no SQL Server 2005, e pode ser utilizado para criptografar todo o tráfego (não só do SQL) e restringe o acesso ao servidor. Para mais informações sobre utilizar o IPsec com o SQL Server 2005, visite http://www.microsoft.com/sdisolation.

quarta-feira, 25 de julho de 2007

PASSO 7 - Executar o SQL Server Surface Area Configuration Tool

O próximo passo é executar o SQL Server Surface Area Configuration Tool. Sugiro executá-lo após adicionar ou remover todos os componentes desejados da instalação do SQL e também após passar todos os services packs/atualizações.
Você encontra o SQLSSAC em Configuration Tools, que é um submenu de Microsoft SQL Server 2005. O
Surface Area Configuration Tool, quando executado, aponta automaticamente para o localhost, mas você pode utilizá-lo em outras instalações do SQL Server. Você pode escolher a visualização para configuração por serviços e conecções ou por características (features) (veja imagem). Para ajustes na segurança do SQL Server, esta ferramenta é a preferencial.

terça-feira, 24 de julho de 2007

PASSO 6 - Depois de instalar o SQL Server, aplicar suas atualizações e Service Packs

A primeira instalação, após a conclusão da instalação do SQL Server, é dos seus Services Packs e de suas atualizações. Link para o último SP http://technet.microsoft.com/en-us/sqlserver/bb426877.aspx

PASSO 5 - Instalar o SQL Server 2005

Uma vez preparado o servidor, a instalação do SQL Server pode ser iniciada. Neste passo selecione criteriosamente e com cuidado as opções de instalação.
A primeira seleção que você deverá fazer é: quais componentes instalar ? Você não deve instalar componentes que não necessita (lembre-se que o objetivo é minimizar a superfície ou área de ataque). A recomendação é que quando for solicitado os Components para instalação no Setup Wizard, você clique em Advanced para selecionar apenas as ferramamentas que mais necessita.
Por exemplo, você pode escolher se instala ou não a replicação ou o full-text search e você está instalando uma instância individual do SQL Server 2005 que não será replicada para outros servidores e se não pretente utilizar buscas rápidas em texto então não selecione para instalação estas ferramentas.
Entre cuidadosamente com as credenciais criadas no Passo 4 para cada serviço. Quando for perguntando do mode de autenticação, selecione Windows Authentication Mode sempre que possível. Em algumas situações você ira precisar do Mixed Mode, que permite os dois métodos de autenticação. Se você escolher Mixed Mode, precisará entrar com a senha do SQL Server systems administrator (sa) Assim como as contas criadas no Passo 4, você deve assegurar que a senha é forte além de definir uma agenda para substituição/mudança dela.

PASSO 4 - Criar conta para executar o SQL Server

O último passo na preparação para a instalação do SQL Server 2005 é crair contas para serem utilizadas na execução dos serviços. O número de contas vai depender de dois fatores: o número de serviços que você pretente instalar com SQL e o número de instalações SQL já existentes. Você pode utilizar uma conta para todos os serviços do SQL Server 2005, porém é recomendado utilizar uma conta para cada serviço. Desta forma, o ideal, seria criar uma conta para cada serviço para cada instalação do SQL Server 2005. Outro detalhe importante é que se sua instalação do SQL nunca precisar acessar outro servidor ou serviço através da rede, você pode utilizar contas locais do servidor. Para finalizar, estas contas devem ser normais, ou seja, com privilégios de um usuário normal, e as senhas devem ser fortes e substituidas com frequencia.

PASSO 3 - Limitar o acesso ao Servidor/Host

Neste passo, o foco está no servidor e no ambiente físico, já que uma invasão pode ser realizada de diversas maneiras como através da rede, por interatividade ou fisicamente quando o SO não está executando.
Você limita a interatividade assegurando que a base de dados SAM não contém contas desnecessárias e apenas contas do domínio possuem acesso. Você pode consultar e retirar contas do sistema utilizando o MMC (Microsoft Management Console) Gerenciamento do Computador (Computer Management snap-in) (compmgmt.msc).
A limitação de um logon interativo no servidor pode ser feita através do Group Policy ou utilizando o MMC Diretiva de Segurança Local (Local Security Settings snap-in)(secpol.msc), em Diretivas locais, Atribuição de direitos de usuários, Fazer logon local e Negar logon local. Você terá que dar uma atenção específica para membros do domínio, já que em muitos casos os membros do grupo Admins. do Domínio também são administradores do banco de dados, mas em alguns casos eles não 'devem' ser. Para retirar esta pré-definição, remova o grupo "Admins. do Domínio" do grupo local "Administradores" do servidor, e adicione quem você desejar.
Para previnir ataques remotos através da rede, você deve colocar o servidor em um segmento de rede seguro e utilizar pelo menos um firewall como por exemplo aquele que já vem incluído no Windows Server 2003 SP1 por exemplo. E finalmente, para garantir a segurança fisica do sevidor, ele deve permanecer em um local com acesso restrito, já que os 'attackers', se tiverem acesso ao equipamento, podem 'bootar' um SO alternativo e resetar a senha do administrador.

PASSO 2 - Aplicar todos os Service Packs e atualizaçõeses de segurança no Servidor/Host

Este segundo passo também se concentra no servidor/host para assegurar que todos os últimos Service Packs e atualizações de software foram aplicados ao Sistema Operacional (SO). Este passo é fundamental para a segurança da sua instalação do SQL, já os 'attackers' podem ganhar acesso ao seu sistema através de serviços e/ou aplicativos que são executados no servidor.

segunda-feira, 23 de julho de 2007

PASSO 1 - Preparando para Instalar o SQL Server 2005

Um dos passos mais importantes no sentido de proteger suas bases de dados é preparar o ambiente para a instalação do SQL Server.
Neste sentido, o primeiro passo é preparar cuidadosamente o servidor que, particularmente, sugiro que seja dedicado à tarefa de servir um Banco de Dados, portanto, não utilize servidores IIS (web), controladores de domínio (DC), etc.Desinstale todos os aplicativos e desabilite todos os serviços desnecessários do servidor, deixe apenas o SQL Server 2005.

SQL SERVER 2005 – Segurança em 10 passos

Em geral a Microsoft recomenda uma abordagem de defesa por nível para aumentar ou definir a segurança dos componentes da infra-estrutura, como servidores de banco de dados.Em seguida mostrarei os 10 passos que devem ser realizados antes, durante e depois da instalação, para aumentar a segurança do SQL Server 2005 (alguns passos podem ser seguidos em um ambiente com SQL Server 2000).
Continua...

terça-feira, 10 de julho de 2007

FILL FACTOR do SQL Server

Imagine uma prateleira com 100 livros organizados, por exemplo, em ordem alfabética. Se você colar os livros um no outro, e tiver que adicionar algum novo livro, terá que empurrar os demais livros da prateleira para liberar espaço para este novo livro. Agora, se você deixar um espaço entre os livros, você não terá que fazer tanto esforço para incluir um novo.

Os índices das tabelas, no SQL Server, funciona da mesma forma, e quem define o percentual % livre por página[1] é a opção FILL FACTOR.

Quando você cria índices para suas tabelas, o SQL Server organiza os dados dentro de páginas de índices, desta forma qualquer alteração nos dados de um atributo (campo) pertencente a um índice, exige que o SQL Server reorganize a página de índice, e isto leva tempo. A opção FILL FACTOR define quanto de uma página de dados (em %) deve ser preenchida e quanto deve ser mantida em branco, que será reservada para uso futuro.

Após a criação do índice o espaço em branco deixado através da opção FILL FACTOR será utilizado para alterações, inclusões, etc.

A má notícia é que o SQL Server não refaz o índice, o que vai exigir que você, depois de um tempo, recrie para liberar novamente o espaço livre.

Não existe regra para a definição do FILL FACTOR, porém, o valor de 100% é utilizado quando o índice é destinado a uma tabela apenas para consulta. Você pode calcular um percentual com base nas tuplas (registros) que a tabela já tem, com a estimativa de quantas tuplas serão adicionadas ou alteradas por dia, e o tempo que você deseja ter para fazer nova manutenção na base de dados. Se o FILL FACTOR for muito baixo, o SQL Server deverá percorrer muitas páginas para localizar a informação tornando a consulta, tecnicamente, um pouco lenta.

[1] Página é a unidade fundamental/básica de armazenamento de dados do SQL Server. No SQL Server 2000 o tamanho de uma página é 8 Kb. A quantidade utilizada pelo índice irá depender do tipo do dado.
Mais informações em
http://www.jcarvalhojr.eti.br/