Webcast Virtual PASS PT – HDInsight!? Hadoop?! Hive?!

Olá pessoal!

No dia 03/12 deste ano tive a honra de participar do Webcast do Virtual PASS PT apresentando a palestra “HDInsight!? Hadoop?! Hive?! Uma introdução do mundo Big Data para DBA’s“, que também foi apresentada no SQL Saturday 424 em São Paulo.

O objetivo do Webcast foi dar uma introdução ao ambiente do HDInsight e sua sopa de letrinhas (hadoop, hive, pig, sqoop, etc…). Atualmente existe um hype muito grande em cima do assunto “Big Data“, muitas empresas querem saber como entrar nesse mundo e para quem pedem informações? Exato!! Para o DBA!!

Abaixo o link da apresentação e a gravação do vídeo. Não vou postar os scripts agora pois preciso atualizar eles para a nova interface do portal do Azure, nos próximos posts eu atualizo os lab’s.

Link da Apresentação

Link do Vídeo

Em tempo, muito obrigado ao @SqlFreccia e ao Virtual PASS pela oportunidade!!

Anúncios

Encriptando a conexão do SQL Server usando SSL

Olá,

Uma boa prática para a segurança de nosso banco de dados é utilizar certificados para criptografar os dados trafegados, protegendo de algum espião com um “sniffer” de rede.

Em uma instalação padrão do MS SQL Server é relativamente simples de capturar o conteúdo dos pacotes, como mostram as figuras abaixo:

Aqui eu fiz uma consulta qualquer no SQL, executei a query “select * from sys.databases” para mostrar todas as bases de dados instaladas na instância.

E, utilizando o Microsoft Network Monitor, obtive o conteúdo da query através da análise do pacote trafegado na rede:

E também do resultado da query:

Para resolver isso vamos habilitar a encriptação do protocolo utilizado no SQL Server, o processo é bem simples, importar o certificado no servidor e configurar o serviço do SQL Server, para os nossos testes vamos criar um certificado auto-assinado utilizando o utilitário makecert da microsoft, disponível no SDK do .Net Framework ou no Visual Studio.

makecert -r -pe -n “CN=brunosql1” -b 01/01/2000 -e 01/01/2050 -eku 1.3.6.5.7.3.1 -ss my -sr localMachine -sky exchange -sp “Microsoft RSA SChannel Cryptographic Provider” -sy 12

Para maiores informações sobre o makecert e sua sintaxe consulte http://msdn.microsoft.com/en-us/library/windows/desktop/aa386968(v=vs.85).aspx

Criado o certificado vá em Iniciar > Executar e digite mmc e no aplicativo adicione o snap-in Certificates > Local Computer e verifique na pasta Personal\Certificates se o certificado foi criado lá:

Agora copie o certificado criado para a pasta Trusted Root Certification Authorities (utilizando ctrl+c e ctrl+v mesmo!)

Feita a configuração do certificado, o próximo passo é configurar o SQL Server para utilizar esse certificado, para isso vamos abrir o SQL Server Configuration Manager e clicar com o botão direito na opção “Protocols for MSSQLSERVER” (aqui na minha configuração o MSSQLSERVER é o nome da instância default, podendo variar conforme configuração) e selecionar Properties:

Na guia Flags altere a opção Force Encription para YES, assim todas as conexões deverão obrigatoriamente ser encriptadas.

E na guia Certificate selecione o certificado que foi importado anteriormente.

Após essa configuração será necessário reiniciar o serviço do SQL Server.

Para testarmos vamos executar a mesma query utilizada anteriormente (select * from sys.databases) e vamos analisar os pacotes com o Network Monitor:

Podemos verificar que o protocolo mudou de TDS para TLS e agora não é mais possível visualizar o conteúdo trafegado no SQL Server.

Mudança de rumos


UPDATE ESTUDOS
SET FOCO = ’70-462′
WHERE FOCO = ’70-432′


Hoje eu estava pesquisando como é feito o agendamento das provas de certificação no site da Prometric e descobri que já está disponível a prova para o Exame 70-462 “Administering Microsoft SQL Server 2012 Databases” e pensei com meus botões: eu poderia fazer a prova 70-432 do SQL 2008 e depois fazer o exame de upgrade para o 2012, ou estudar um pouco mais e fazer de uma vez a 70-462 e me preocupo com assuntos mais avançados de SQL Server, então decidi por fazer a 70-462 e seguir o caminho abaixo para ter o título de MCSA SQL Server 2012:
  • Fazer o exame 70-462: Esse vai ser o foco principal deste blog a partir de agora, vou evitar passar capítulo por capítulo como estava fazendo antes, vou escolher os temas mais importantes e abordá-los de maneira mais detalhada.
  • Exame 70-461 Querying Microsoft SQL 2012: Pelo que eu andei lendo esse exame é mais fácil que o anterior, mas como meus estudos anteriores refletem ao 70-462, vou primeiro passar nele e depois partir para o 461.
  • E finalmente o exame 70-463 Implementing Data Warehouses with Microsoft SQL Server 2012, que junto com os dois anteriores, formam a carreira de MCSA (Microsoft Certified Solutions Associate) SQL Server 2012.
Depois disso vem o MCSE (Microsoft Certified Solutions Expert), mas vamos com um passo de cada vez…

Estou atualizando o meu ambiente de testes para a versão 2012 do SQL Server, que possui versão trial disponível no próprio site da Microsoft.

Também mudei a bibliografia para o Training Kit do SQL Server 2012.

Por enquanto era isso, nos próximos posts vamos começar a estudar a versão 2012 do SQL Server!

TK 70-432 Capítulo 2: Configuração e Manutenção de Banco de Dados (Parte 1)

Olá!

Começaremos a semana com mais um capítulo do TK-70-432, o Capítulo 2: Configuração e Manutenção de Banco de Dados, que abrange os seguintes objetivos do exame e lições:

Objetivos:
– Backup databases
– Manage and configure databases
– Maintain database integrity
– Manage collations

Lições:
– Lesson 1: Configuring Files and Filegroups
– Lesson 2: Configuring Database Options
– Lesson 3: Maintaining Database Integrity

É importante para esse capítulo já ter instalado o SQL Server 2008 e o banco de dados de exemplo AdventureWorks.

– Lesson 1: Configuring Files and Filegroups

O SQL Server utiliza basicamente dois tipos de arquivos, o arquivos de dados e o arquivo de log (Datafile e Transaction Log). Precisamos entender o funcionamento do SQL Server para entender a necessidade de cada arquivo.

Quando o SQL necessita manipular um dado de uma tabela, ele lê seu conteúdo no disco e grava em memória onde a sua manipulação é feita, no final da transação ela é gravada no Transacion Log, e só é gravada no Datafile quando um processo que roda em background chamado de CheckPoint é executado. Mesmo que uma transação seja feita toda em um buffer da memória do servidor, ela só é liberada quando é gravada no transaction log, diminuindo a chance de problema de integridade se o servidor falhar.

Falando um pouco sobre DataFiles, que são os arquivos onde os dados já persistidos ficam armazenados, podemos ter mais de um datafile por banco de dados de modo a distribuir os arquivos em vários discos, aumentando a velocidade devido ao menor I/O por disco. Para evitar que um disco seja gravado de forma desproporcional, o SQL utiliza um algoritmo de preenchimento de discos que ocupa os dados de um disco de maneira proporcional, ou seja, se temos um banco de dados com dois datafiles, um de 1Gb e outro de 10Gb o SQL vai gravar 10 linhas no disco de 10Gb para cada linha no disco de 1Gb.

Esses DataFiles são criados dentro de um Filegroup, o filegroup padrão é chamado de PRIMARY, um filegroup é uma estrutura onde os objetos de um banco de dados (tabelas, indices, etc.) estão armazenados. 

Podemos aumentar o desempenho e organização de um banco de dados criando outros filegroups, dividindo o banco de dados em arquivos dispostos em discos diferentes, diminuindo a concorrência no mesmo disco. Também podemos definir que uma tabela do banco de dados fique dentro de um filegroup readonly, não permitindo a gravação nessa tabela. O filegroup é definido no momento da criação os objetos usando a cláusula “ON”, caso não seja citada essa cláusula o objeto será criado no filegroup PRIMARY. Ex:

CREATE TABLE Cliente
(ClienteID int IDENTITY PRIMARY KEY,
Nome nvarchar(100),
Cidade nvarchar(20))ON nomedofilegroup

Nesse caso a tabela será criada no filegroup nomedofilegroup. Também podemos definir um DEFAULT FILEGROUP que especifica o filegroup das tabelas que são criadas sem a cláusula ON serão criadas.
Quando o SQL Server confirma uma transação, ela é gravada no Transaction Log do banco de dados para só depois ser gravada no disco, o desempenho do banco de dados depende muito do Transaction Log, que preferencialmente deve ser criado em um disco diferente que o disco de dados e que seja criado no disco mais rápido disponível.

Por padrão os arquivos de dados criados no PRIMARY filegroup tem a extensão .MDF, os criados em outros filegroups possuem a extensão .NDF e os transaction logs com a extensão .LDF.

Outro sistema de arquivos presente no SQL Server 2008 é o FILESTREAM, que consiste em dados não estruturados sendo gravados numa pasta específica do disco, quando definimos um caminho filestream no SQL ele grava um arquivo .HDR nessa pasta e ele faz o gerenciamento dos arquivos lá contidos.

Em resumo, algumas dicas são importantes para diminuir problemas de performance no SQL 2008:

– Dividir arquivos de um banco de dados muito grande de filegroups, se possível em discos diferentes.
– Manter os arquivos do Transaction Log em discos e controladoras de disco diferentes dos discos de datafiles.
– Não abusar dos filegroups, se por um lado dividimos o I/O em vários discos ao dividir um banco de dados, por outro lado aumentamos a necessidade de processamento do servidor para gerenciar todos essas divisões.

Exemplo: Criando um banco de dados

Podemos testar a criação de um banco de dados e filegroup utilizando os comandos abaixo:

Por enquanto era isso, seguimos na lição 2 a seguir! Até a próxima!

Criando a infraestrutura para os estudos

Olá!


Uma pequena pausa nos capítulos para um tema que esqueci de comentar, é interessante montar um pequeno laboratório para os estudos do SQL Server, coisa que graças ao gênio que inventou a virtualização é bem mais fácil de fazer hoje em dia.

A estrutura que eu montei utiliza para a virtualização o VMWare Player gratuito e as versões Evaluation do Windows Server 2008 R2 e do SQL Server 2008 R2, essas duas últimas são gratuitas por até 180 dias.

Para a maioria dos objetivos da certificação, basta uma instância do SQL Server. Já para utilizar os serviços de Log Shipping e Database Mirroring, pelo menos uma segunda instância deve ser criada, mesmo que seja no mesmo servidor.

Mas como o Failover Clustering está dentre os objetivos da 70-432, é necessário pelo menos dois servidores Windows, logo, duas VM’s são necessárias para o SQL Server, mais uma para o Domain Controller, pré requisito para a instalação do Failover Cluster. 

Mais adiante abordarei a instalação do Failover Cluster, por enquanto basta uma VM do SQL Server, ou mesmo a instalação no próprio pc.

Até a próxima!

Olá, mundo!

Welcome to WordPress.com. After you read this, you should delete and write your own post, with a new title above. Or hit Add New on the left (of the admin dashboard) to start a fresh post.

Here are some suggestions for your first post.

  1. You can find new ideas for what to blog about by reading the Daily Post.
  2. Add PressThis to your browser. It creates a new blog post for you about any interesting  page you read on the web.
  3. Make some changes to this page, and then hit preview on the right. You can alway preview any post or edit you before you share it to the world.