70-450 & MCITP DBA

Ontem fechei uma das minhas metas de 2011: atualizar o MCITP de administração para o SQL Server 2008. A prova foi a 70-450.

Bom, a verdade é que alguns dias após minha aprovação na 70-432 fui fazer o exame 70-450 na “cara e coragem” e reprovei alcançando somente 660 pontos dos 700 necessários para a aprovação.

Normalmente ninguém relata sua reprovação num exame de certificação, né? Mas a verdade é que isso é bem comum; principalmente quando você não estuda o suficiente *risos*. Enfim, deixei passar as festas de fim de ano e ontem tentei novamente (aproveitando a promoção da segunda chance) e fechei  o exame com 880 pontos.

A verdade é que, quem tirou o MCITP de administração no SQL Server 2005 deve achar o MCITP do SQL Server 2008 muito mais fácil (ou simples). Primeiro porque tiraram uma prova; antes eram 3 exames (agora são somente as 70-432 e 70-450); e tiraram justamente a prova mais difícil (em minha opinião) que era a 70-443. Tiraram também a parte “prática” que tinha no exame 70-431.

Achei estranho porque não vi nada de Service Broker, Endpoints e etc… temas que foram abordados intensamente no exame 70-443 (ouvi dizer que essa parte foi transferida para o exame 70-451, que concede o MCITP de desenvolvedor em SQL Server 2008).

Pra quem gosta de estudar utilizando os Training Kits, ainda não foi lançado nenhum para este exame; mas enfim, pra quem se dedicar um pouco nos estudos, focando no roteiro sugerido pela própria Microsoft, com certeza não terá dificuldades para alcançar este MCITP.

Dicas para estudo? Vamos lá:

  • Estude sobre compressão (linha e página); não dei a devida atenção a este tema e creio que pesou muito na minha primeira tentativa;
  • Dê uma olhada na administração de múltiplas instâncias SQL Server;
  • Alta-disponibilidade (cluster, database mirroring, log shipping, etc);
  • Backup (sempre!);
  • Replicação (topologias);
  • E não deixe de olhar alguma coisa sobre pacotes SSIS (a grande surpresa pra mim)…

Bom, agora tenho que correr contra o tempo, porque o pacote de 03 exames que comprei na promoção de segunda chance tem que ser utilizado até o fim deste semestre; isso sem dúvidas será um grande motivador para que eu tire mais duas certificações Microsoft nos próximos meses…

Enfim, bom estudo e boa sorte na sua hora :)

Até +

Read More

Configurar instância SQL via script

Existem diferentes formas de configurar uma instância SQL Server, uma delas é através da procedure sp_configure. O interessante de utilizar a sp_configure é que o DBA não fica dependente da utilização de uma interface gráfica.

Ao executar a sp_configure sem parâmetros, são exibidas as configurações atuais da instância. Cada registro representa uma configuração e no campo run_value é possível visualizar o valor atual de cada configuração.

01_sp_configure

Num cenário padrão ao executar a sp_configure o resultado só exibe algumas das inúmeras opções de configuração; isso porque por padrão o SQL Server oculta opções avançadas. Para exibir todas as opções você deve executar:

USE master
GO
EXEC sp_configure 'show advanced option', '1';
GO
RECONFIGURE;
Veja que no comando acima é possível ter uma idéia da sintaxe desta procedure. A idéia básica é a seguinte:
EXEC sp_configure ‘nome da configuração’, ‘novo valor da configuração’

Uma das configurações que podemos alterar utilizando a sp_configure é o limite de memória utilizada pelo SQL Server, vamos exemplificar a alteração desta configuração:

Atualmente minha instância está configurada para utilizar no máximo 500 MB de memória. Ao executar o comando sp_configure é possivel verificar que a opção max server memory (MB) está com o valor 500 nos campos config_value e run_value.

02_sp_configure

Para alterar a quantidade máxima de memória que a minha instância poderá utilizar executo o seguinte comando:

EXEC sp_configure 'max server memory (MB)', '300';

No comando acima configurei o máximo de memória disponível para a instância para 300 MB, no entanto se executarmos a sp_configure verificaremos que a opção run_value ainda continua com 500. Para efetivar a alteração preciso executar o comando RECONFIGURE; assim a alteração entrará em vigor.

RECONFIGURE

Figura 1 – Monitorando o contador Target Server Memory durante execução do RECONFIGURE.

É importante salientar que apesar do comando RECONFIGURE ser obrigatório, nem todas as configurações são efetivadas somente com a execução do RECONFIGURE, para estas opções a efetivação só ocorre com a reinicialização do serviço do SQL Server. Para verificar quais são estas opções basta consultar a tabela sys.configurations (disponível no SQL Server 2005/2008). As configurações que tiverem o campo is_dynamic igual a 0 (zero) só entrarão em vigor quando o serviço do SQL Server for reiniciado. Note que se o comando RECONFIGURE não for executado, mesmo que a instância seja reiniciada a nova configuração não entrará em vigor.

Outras configurações possíveis através da sp_configure: habilitar a procedure xp_cmdshell,  procedures do Database Mail,  código gerenciado (CLR), configurar o número de processadores utilizados pela instância (paralelismo), configurar memória extendida (AWE), etc.

  • RECONFIGURE ou RECONFIGURE WITH OVERRIDE?

Se ao alterar uma configuração o DBA definir um valor que foge às recomendações do SQL Server, ao executar a opção RECONFIGURE o SQL Server irá rejeitar a alteração e notificar o usuário. Por exemplo, na versão 2000 era possível realizar alterações nas tabelas de sistema do SQL Server (isso mudou um pouco nas versões 2005 e 2008), para isso bastava executar o comando:

EXEC sp_configure 'allow updates', '1'

No entanto, por razões óbvias esta não é uma prática recomendada, então nessas situações, ao executar somente o RECONFIGURE, o SQL Server exibia a seguinte mensagem:

Configuration option ‘allow updates’ changed from 1 to 1. Run the RECONFIGURE statement to install.

Msg 5808, Level 16, State 1, Line 1

Ad hoc updates to system catalogs not recommended. Use the RECONFIGURE WITH OVERRIDE statement to force this configuration.

Logo o DBA só poderia concretizar essa operação se utilizasse o RECONFIGURE WITH OVERRIDE, ou seja, esta é a forma do SQL Server se proteger contra ações indevidas e dizer ao DBA:  “amigo, isso é por sua conta e risco”. Portanto, o WITH OVERRIDE é uma opção a ser evitada e só é recomendada em situações pontuais.

  • Conclusão

Conhecer as diferentes formas de configurar uma instância SQL Server dá ao DBA maior liberdade no momento de realizar estas tarefas, neste caso, além das ferramentas gráficas o DBA também poderá utilizar a sp_configure no SQLCMD, OSQL ou agendar alterações de configurações através de jobs e etc.

Para ter acesso a todas as opções de configurações disponíveis na sp_configure, consulte a tabela sys.configurations ou acesse o Books Online.

Bom trabalho, bons estudos.

Read More

DBA Checklist – Instalação e Atualização

Essa série de Check List para DBAs SQL Server foi escrita por Brad McGehee para o site http://www.simple-talk.com/ . É um texto sucinto, mas muito completo. Tomei a liberdade de adicionar algumas observações(em itálico) que normalmente apontam para outros conteúdos em português. O texto original pode ser lidoaqui.

Instalação

  • Sempre documente todo o processo de instalação do SQL Server, para que numa situação de emergência o processo possa ser facilmente reproduzido.
  • Se possível, instale e configure todas as suas instâncias do SQL Server seguindo um padrão que foi acordado e aceito por sua organização. Opcionalmente, utilize o SQL Server 2008 Policy-based Management para fazer com que todas as normas sejam cumpridas.
  • Não instale serviços do SQL Server que não serão usados, como o Microsoft Reporting Services ou Analysis Services (se você não usá-los).
  • Para o melhor desempenho do SQL Server, desabilite todos os serviços do Windows que não são necessários.
  • Para o melhor desempenho do SQL Server, dedique seu servidor físico à sua instância SQL Server, não rode outras aplicações nele.
  • Para o melhor desempenho de I/O, coloque os arquivos .mdf e .ldf em volumes de discos separados para evitar conflitos de escrita e leitura.
  • Se a TEMPDB for muito utilizada, coloque esta base em discos separados. Além disso, faça uma estimativa para o tamanho desta base, de forma que não ocorra crescimento automático. Divida a TEMPDB em vários arquivos, de forma que o número de arquivos físicos represente 50% a 100% do número de núcleos da CPU do seu servidor. Cada arquivo físico deve ter o mesmo tamanho.
  • Não instale o SQL Server num controlador de domínio.
  • Nos arquivos de dados e logs não utilize compactação, nem EFS (criptografia em sistemas de arquivos NTFS) .

Atualizando

  • Para evitar problemas potenciais, execute o Upgrade Advisor em qualquer banco de dados que você pretende atualizar.
  • Antes de realizar uma atualização do SQL Server, teste seu aplicativo num ambiente de testes para garantir compatibilidade. Antes de realizar a atualização faça as alterações necessárias.
  • Antes de qualquer atualização, verifique se você tem um plano ‘B’ para o caso de uma falha.
  • O upgrade ‘in place’ pode funcionar bem, mas instalar o novo SQL Server num novo hardware é menos arriscado (side-by-side).
    • Para entender mais sobre as técnicas de upgrade no SQL Server, veja essa ótima apresentação de José Ricardo Ribeiro (download em português):
  • Depois do upgrade, você deverá atualizar todas as estatísticas dos seus bancos de dados, usando o UPDATE STATISTICS. Isso é necessário porque as estatísticas não são automaticamente atualizadas durante o processo de atualização. Além disso, executar o UPDATE STATISTICS pode corrigir a contagem interna das páginas.

Read More

DBA Checklist – Sobre a profissão e a rotina

Essa série de Check List para DBAs SQL Server foi escrita por Brad McGehee para o site http://www.simple-talk.com/ . É um texto sucinto, mas muito completo. Tomei a liberdade de adicionar algumas observações (em itálico) que normalmente apontam para outros conteúdos em português. O texto original pode ser lido aqui.

Dicas de boas práticas para tornar-se um DBA Excepcional

  • Junte-se a um grupo de usuários de SQL Server.
  • Participe pelo menos uma vez ao ano de uma conferência profissional.
  • Faça pelo menos um treinamento por ano.
  • Leia pelo menos quatro livros de SQL Server por ano.
  • Leia o e-book How to Become an Exceptional DBA.
    • Livro escrito pelo autor que dá diversas dicas de como torna-se um DBA Excepcional (download em inglês).
  • Saiba tudo o que puder sobre o seu trabalho, principalmente naquelas áreas que ninguém gosta ou quer dominar.
  • No seu trabalho, seja voluntário, envolva-se em novas tarefas e aceite desafios, isso fará com que você conheça mais sobre a organização da sua empresa.
  • Instale o SQL Server no computador da sua casa ou em seu notebook e pratique, aprendendo novas funcionalidades do SQL Server, principalmente no SQL Server 2008.
  • Participe de fóruns sobre SQL Server (fazendo e respondendo perguntas).

Dia-a-dia

  • Verifique os logs do Windows, do SQL Server e logs de segurança.
  • Verifique se todos os jobs foram executados com sucesso.
  • Veja se os backups foram executados com sucesso e se foram salvos em local seguro.
  • Monitore o espaço em disco para garantir que o SQL Server não fique sem espaço. Para um melhor desempenho, todos os discos devem ter pelo menos 20% de espaço livre.
  • Durante todo o dia, periodicamente, monitore o desempenho do seu servidor. Use o System Monitor, Profiler, DMVs, ou o SQL Server 2008 Performance Data Collector.
  • Use o Management Studio ou o Profiler para monitorar e identificar problemas de locks [bloqueios].
  • Mantenha um registro de todas as alterações feitas em seus servidores, incluindo uma documentação de todos os problemas de desempenho que você encontrar e corrigir.
  • Crie alertas no SQL Server para notificá-lo através de e-mail sobre problemas potenciais. Ao receber os e-mails tome as medidas necessárias.
  • Dedique um tempo do seu dia para aprender algo novo e promover seu desenvolvimento profissional.


Read More

Quanto ganha um DBA em SP?

Qual o salário de um DBA? Pergunta recorrente.

Aqui na grande São Paulo a Desix, empresa de recrutamento e seleção de profissionais de TI,  realizou uma pesquisa que foi publicada na Info, mostrando a média de quanto ganham os profissionais de TI por aqui.

salariosNo top de todas as categorias (Junior, Pleno e Senior) estão os Executivos de Conta, Gerente de Telecomunicações e Gerente de sistema; todos com salário superior à R$ 15.000,00.

Nada mal :)

Já os DBAs, encontram-se la no meio desse ranking, com média de R$ 4.000,00 para Junior, R$ 5.200,00 para Pleno e 8.300,00 para Sênior.

Por ser uma média, creio que os valores estão próximos da realidade e podem servir como referência pra quem tá na dúvida.  No entanto, não consegui identificar se a pesquisa só fez a média baseada no salário de profissionais em regime CLT. O que vejo é que consultores (PJ) estão acima dessas médias, o que faz sentido, afinal o cara tem uma série de custos, principalmente quando sua empresa não está enquadrada no Simples.

[wp_campaign_2]

Fonte: Info

Read More

Macro no Excel, coisas da rotina

É inevitável na rotina de um DBA ter que utilizar-se de ferramentas que auxiliem seu trabalho.

Ontem recebi uma planilha no seguinte formato:

SETOR SubSetor Regra Subregra Código Descrição
1 01.1       Bla bla bla
    01.11     Bla bla la
      01.11-3   Bla bla bla
        0111-3/01 Bla bla bla
        0111-3/02 Bla bla bla
        0111-3/03 Bla bla bla
        0111-3/99 Bla bla bla

Eu deveria importar esta planilha numa tabela de nosso banco. Dentro da tabela ela ficaria mais ou menos assim:

SETOR SubSetor Regra Subregra Código Descrição
1 01.1 NULL NULL NULL Bla bla bla
1 01.1 01.11 NULL NULL Bla bla bla
1 01.1 01.11 01.11-3 NULL Bla bla bla
1 01.1 01.11 01.11-3 0111-3/01 Bla bla bla
1 01.1 01.11 01.11-3 0111-3/02 Bla bla bla
1 01.1 01.11 01.11-3 0111-3/03 Bla bla bla
1 01.1 01.11 01.11-3 0111-3/99 Bla bla bla

Ok… existe uma hierarquia que visualmente fica melhor representada na primeira tabela, no entanto, dentro do banco os dados deveriam estar como exposto na segunda tabela, isso iria influenciar na chave primária e etc.

Enfim, vamos lá!

Mas faltou um detalhe… a tabela tinha algumas milhares de linhas. Como eu faria isso? CTRL C, CTRL V?? Quantas horas de um trabalho monótono copiando e colando, copiando e colando…

Bha!

Nessas horas eu adoro o Excel e suas macros. Para muitos pode parecer ridiculo mas me ajuda e talvez possa ajudar outras pessoas em situação parecida.

Ok… fiz um pequeno script que varria todas as linhas de uma determinada coluna da planilha, verificando se existiam células vazias. Se a célula está vazia, esta deve receber o conteúdo da célula anterior e assim por diante até o fim.

Muito simples e o trabalho todo, incluindo a importação no banco, não durou 1 hora. Então segue aí o script em VB, escrito dentro do próprio Excel:

Sub Copia_Celula_Anterior()
'
' Copia_Celula_Anterior() Macro
' Macro gravada em 1/7/2008 por silas.mendes
'

'Declara váriavel de apoio do contador
Dim i As Integer

'Inicializa váriavel com a primeira linha preenchida da planilha
'ATENÇÃO: Esta informação sera copiada para outra(s) célula(s), caso
'esteja(m) vazia(s).
i = 8

'Varre todas a linhas da coluna até a linha 2371
Do While i < 2371
'Verifica se a célula atual está vazia
If Range("E" & i).Value = "" Then
'Se a célula está vazia, seleciona a última célula
Range("E" & i - 1).Select
'Copia os dados da célula selecionada
Selection.Copy
'Volta a selecionar a célula vazia (atual no loop)
Range("E" & i).Select
'Cola o conteúdo na célula vazia
ActiveSheet.Paste
End If
'Incrementa contador do Loop
i = i + 1

Loop

End Sub

 

É, isso também faz parte da rotina de um DBA :))

Read More

Certificação MCITP

Fiz hoje a prova 70-444 no Senac Consolação em São Paulo. Confesso que fui sem muitas pretensões pois estava aproveitando a promoção 2º chance. Não cheguei a ler o Training Kit inteiro, folheei ele bastante durante as duas últimas semanas tirando algumas dúvidas, mas não pude fazer nenhum simulado e estava um pouco inseguro de como seria a prova; mas ela me surpreendeu. Das três provas para a certificação MCITP essa foi a que eu achei mais fácil, porque as questões que eu peguei estavam bem relacionadas à minha realidade de trabalho. Enfim, fui aprovado.

Pra quem ainda não fez e pretende estudar pra essa certificação eu aconselho que estudem bastante para a prova 70-443, façam laboratórios, simulados e etc; ela sem dúvidas foi a prova mais difícil, não somente em aspectos técnicos, a prova em si é bem diferente, porque as questões são focadas em cenários com longos textos em inglês e com diversas variáveis que não podem ser descartadas.

A 70-431 é uma prova tranquila, abrange quase todos os assuntos do SQL 2005 de forma superficial, nesse exame é bom ter noção de todas as novidades da nova versão, porque cai quase tudo.

Bom, é isso ae.

Desejo a todos um ótimo feriadão, e bom… semana que vem estamos de volta!

Read More