segunda-feira, 2 de janeiro de 2012

SQL Server e Linux?

Não. O SQL Server não vai rodar no sistema operacional Linux.
Mas já temos um cliente liberado pela Microsoft.
Um notícia legal para os entusiastas de interoperabilidade: um driver ODBC 64 bits para Red Hat Enterprise Linux 5 com suporte a aplicações C/C++.
Compatível com SQL 2008 R2 e SQL 2012, dará suporte ao protocolo de autenticação Kerberos, SSL e codificação UTF-8 client-side.
Além disso, os utilitários sqlcmd e BCP estarão incluídos também.

Quem quiser conferir:

Available Today: Preview Release of the SQL Server ODBC Driver for Linux

Download
Microsoft® SQL Server® ODBC Driver for Linux Community Technology Preview


sábado, 1 de outubro de 2011

Virtualização: Disk2vhd e disco dinâmicos

Há uma suíte de utilitários, que foi criada por Mark Russinovich e Bryce Cogswell, que não pode faltar para profissionais de TI e desenvolvedores, que são os Sysinternals.

Um desses utilitários, o Disk2vhd, é usado para auxiliar processos de P2V (Physical to Virtual), gerando arquivos .vhd compatíveis com Hyper-V e Virtual PC. Inclusive pode ser executado mesmo com o sistema on-line, usando recursos de snapshot de volume presentes a partir do Windows Server 2003/Windows XP.

Posso dizer que o processo é muito rápido e eficiente, mas em uma ocasião, quando precisei efetuar em um servidor com mirror set, subentende-se discos dinâmicos no contexto, me deparei com um pequeno problema ao tentar montar (attach) os discos no meu sistema destino. O disco apareceu como inválido e ao tentar reativá-lo, retornou a seguinte mensagem:
This operation is not allowed on the invalid disk pack.
Vocês devem estar se perguntando, se eu queria virtualizar por que fui inventar de anexar o .vhd ao servidor? Foi uma oportunidade de expandir a partição e isso fica muito fácil usando o Gerenciador de Discos do Windows 2008 ou Windows 7, que permite alterar o tamanho de partições sem o uso de ferramentas de terceiros. Claro que primeiro eu expandi o Disco Virtual, com o Edit Disk do Hyper-V.

Voltando ao nosso assunto. Após algumas buscas no google, descobri que teria que editar o arquivo .vhd e manualmente alterar o tipo de partição.
Como fazer isso? Vou reportar o que eu fiz no meu caso:

  1. Mirror Set no servidor físico: Quebrei o espelho. Após isso realizei o processo com Disk2vhd.
  2. Fiz o download do HxD, que é um editor hexa de discos, imagens de disco e arquivos.
  3. Anexei o arquivo .vhd gerado pelo Disk2vhd através do Gerenciador de discos do Windows (Win7 ou Server 2008)
  4. Com o HxD, selecionei o disco que foi anexado para edição
  5. Procurei editar o setor 0x01C2, que possui o tipo de partição (mais informações). Devemos encontrar o valor 0x42 (Dynamic Disk Volume) para 0x07 (NTFS partition). Salve as alterações.
  6. Desanexe o disco e depois anexo-o novamente.
  7. Pronto, seu volume já deve estar disponível novamente para ser usado na sua máquina virtual
Aproveito e compartilho 2 links que me ajudaram a chegar até aqui:

terça-feira, 27 de setembro de 2011

Habilitando 'Instant File Initialization' em um servidor SQL Server 2005/2008

Talvez já tenham percebido o tempo que normalmente o SQL Server demora ao criar um banco, alterar seu tamanho ou restaurar uma base.
Hoje, ao ter que restaurar uma base de 560 GB, recordei que demoraria um pouco até começar a receber as mensagens de progresso da minha tarefa. Sabem porque? Os arquivos tem que ser inicializados (preenchidos com 'zeros').

Então me lembrei de um recurso, que ainda não tinha usado: 'Instant File Initialization', que permite que esses arquivos sejam instantaneamente criados sem a necessidade de preencher o mesmo com zeros. Isso trata-se de um privilégio de sistema operacional, não exatamente do SQL Server.
Para ativar esse recurso, você terá que atribuí-lo à conta de serviço que foi utilizada para executar a sua instância do SQL Server. Sempre é recomendado que seja uma conta com o mínimo possível de privilégios. Mesmo sabendo que o Administrador da máquina já tem esse direito, essa não é a conta mais adequada para executar os serviços relacionados ao SQL Server (nem qualquer outro!).

Um pequeno passo-a-passo:
  • Abra o console de Diretivas de Seguraça Local (Local Security Policy)
  • Em Security Settings, Local Policies, User Rights Assignment, selecione Perform Volume Maintenance Tasks
  • Abra o diálogo com um duplo clique e adicione a conta de serviço do SQL Server e clique OK
  • Feche o console
  • Reinicie sua instância do SQL Server
Bom, o resultado é que meu restore, de 560 GB, levou apenas 52 minutos e eu achei muito bom!

Para quem quiser saber mais, seguem uns bons links a seguir :

How and Why to Enable Instant File Initialization (SQL Server Premier Field Engineer Blog)
Database File Initialization (BOL)
Misconceptions around instant file initialization (Paul S. Randal)
Instant Initialization - What, Why and How? (Kimberly L. Tripp) - Nesse tem umas métricas interessantes

quinta-feira, 22 de setembro de 2011

Erro na aba Settings, do GP Management Console

Vim postar uma pequena dica para quem usa o Group Policy Management Console.

Ao acessar a aba Settings (Configurações) de algumas diretivas, recebia a seguinte mensagem de erro:

An error occurred while generating report:
An unknown error occurred while the HTML report was being created.
Para resolver, foi necessário editar o seguinte arquivo:

C:\WINDOWS\SYSVOL\sysvol\domain\Policies\{guid}\user\Microsoft\ieak\install.ins,

onde {guid} é o Unique ID da GPO.
Onde for encontrado:
[Security Imports]
ImportSecZones=1
Altere para zero e salve o arquivo.
Faça um refresh no console e já será possível ver as configurações da GPO novamente.


sexta-feira, 9 de setembro de 2011

Instalando CentOS 5 no Hyper-V

Segue um guia que eu compilei, juntando uma série de referências para instalar o CentOS 5.x com o Integration Components 2.1, da Microsoft, em uma máquina virtual num servidor Hyper-V:


  • Prepare uma máquina virtual com memória e discos dos tamanhos desejados
  • Remova o Network Adapter e adicione um Legacy Network Adapter
  • Defina um MAC Address estático para este adaptador (se for utilizar Live Migration)
  • Defina a imagem ou a mídia para a instalação do sistema operacional
  • Adicione o grupo de programas “Development Tools” durante a instalação. Caso tenha esquecido, utilize o comando ‘yum groupinstall “Development Tools”
  • Certifique-se de ter instalados os seguintes pacotes:
    • kernel-devel
    • gcc
    • make
    • adjtimex (se for 64-bit)
  • Adicione o repositório RPMforge (http://packages.sw.be/):
  • Instale o pacote dkms:
    # yum install dkms
  • Com o dkms instalado, precisaremos baixar o ISO do Integration Services 2.1 do site da MS e carregar na máquina virtual:
    # mkdir -p /mnt/cdrom
    # mount /dev/cdrom /mnt/cdrom
    # cp –rp /mnt/cdrom /usr/src/linuxic-2.1
    # umount /mnt/cdrom
    # cp /usr/src/linuxic-2.1/scripts/dkms.conf /usr/src/linuxic-2.1/
  • Edite o arquivo /etc/modprobe.conf para carregar os módulos do Integration Services. Adicione as seguintes linhas:
    alias scsi_hostadapter1 vmbus
    alias scsi_hostadapter2 blkvsc
    alias scsi_hostadapter3 storvsc
    alias scsi_hostadapter4 netvsc
  • Compile e instale o Integration Services:
    # dkms add -m linuxic -v 2.1
    # dkms build -m linuxic -v 2.1
    # dkms install --force -m linuxic -v 2.1
  • Desligue a máquina virtual.
  • Com a máquina virtual desligada, podemos remover o Legacy Network Adapter e adicionar um Network Adapter. Se for usar Live Migration, lembre-se de adicionar um MAC Address estático.
  • Pode adicionar, caso necessite, até 4 processadores virtuais.
  • Ejete o ISO do Integration Components
  • Quando for configurar sua nova interface de rede na máquina virtual, agora estará disponível uma seth0 (e não uma eth0). Se não reconhecer de início a nova interface, um novo boot poderá resolver esta questão. Pode remover o arquivo /etc/sysconfig/network-scripts/ifcfg-eth0.bak
Para mais informações:

quinta-feira, 25 de agosto de 2011

The Story of Linux: Commemorating 20 Years of the Linux Operating System

Linux: 20 anos! Parabéns!

I'll be celebrating 20 years of Linux with
The Linux Foundation!

Eu tenho muito que comemorar, pois graças ao Linux aprendi muito e continuo aprendendo com ele e ajudei muitos clientes e seus negócios a serem mais seguros, produtivos com soluções baseadas no nosso querido "Tux"...rs
Parabéns a comunidade do software livre!