MCTS SQL Server 2008
Posted in Dicas, Vida Real on April 20th, 2010 by Silas Mendes – 2 Comments

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.
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;
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.
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.
É 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.
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.
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.
Hoje cedo recebi um e-mail da SQL Server Magazine, com a seguinte propaganda:
SQL Virtual Database: It’s As Easy As 1, 2, 3.
O anúncio chamou atenção e resolvi dar uma verificada.
Imagine o seguinte cenário: você tem um backup de uma base de dados SQL Server e precisa restaurá-lo pra trabalhar em cima dele. O backup tem aproximadamente 180 GB e você vai precisar de algumas horas pra restaurá-lo.
Imagine agora que você tenha uma forma de “restaurar” esse backup em 10 minutos e trabalhar em cima dele normalmente, como qualquer outra base de dados do SQL Server, executando consultas, procedures, realizando updates, etc. Essa é a idéia da ferramenta SQL Virtual Database desenvolvida pela Idera.
Algumas pessoas poderão dizer, “ah, mas o SQL Server já tem o Database Snapshot”. Sim, a idéia é parecida, mas o Database Snapshot só pode ser gerado na mesma instância da base de origem e só está disponível a partir do SQL Server 2005 em edições Enterprise. O SQL Virtual Database gera uma base de dados virtual em qualquer instância (inclusive SQL Server 2000) a partir de um arquivo de backup.
Achei a idéia inicial muito boa (o programa está na versão beta) e de certa forma fiquei impressionado com os 9 minutos que esperei para ter uma base virtual, baseada num backup de 180 GB, que estava em outra estação da rede. Particularmente achei uma saída muito interessante pra ambientes de desenvolvimento e homologação.
Vou testá-la repetidamente durante os próximos 14 dias (que é o período do Trial) e se tiver mais considerações posto aqui.
Abaixo algumas telas da ferramenta:
Link para download.
Bom trabalho!
Em minha experiência pessoal já vivi uma situação onde durante a atualização do principal sistema da empresa, nosso contato no datacenter reclamou dizendo que não conseguia abrir o Management Studio para executar nossos scripts.
A solução mais rápida? Enviei para o datacenter o procedimento de execução dos scripts via SQLCMD.
Mas o que é isso?
O SQLCMD é uma ferramenta que você utiliza para acessar instâncias SQL Server via prompt de comando (vulgo DOS). Não existem segredos, uma vez conectado, através de scripts você pode fazer tudo o que faria utilizando o Query Analyser ou o Management Studio. Apesar de ser uma excelente ferramenta, o SQLCMD tem suas limitações “gráficas”, no entanto em alguns cenários é a ferramenta ideal!
Os exemplos que vou apresentar foram executados na minha estação de trabalho. Nela tenho instalado um SQL Server 2005. Minha instância é uma instância nomeada e é identificada como SQL05.
Pra começar a conversa vamos ao prompt de comando (menu Iniciar > Executar > cmd).
No prompt de comando, para conectar no meu SQL local (localhost), utilizando o SQLCMD, devo digitar o seguinte comando:
sqlcmd –E –S LOCALHOST\SQL05
No comando acima estou conectando no SQL Server utilizando a autenticação Windows (-E) na instância SQL05 (-S), mas se for necessário conectar utilizando a autenticação do SQL Server, ficaria assim:
sqlcmd –U SA –P senhateste –S LOCALHOST\SQL05
No exemplo acima, estou conectando no SQL utilizando o login SA do SQL Server (-U) com a senha senhateste (-P).
Se a conexão for realizada com sucesso o prompt do SQLCMD ficará similar à imagem abaixo:
Se o seu SQL Server foi instalado como uma instância padrão a conexão é ainda mais simples, pois você não precisa especificar o nome da instância. No exemplo abaixo estamos conectando numa instância padrão do SQL Server, utilizando autenticação Windows.
sqlcmd –E
Uma vez conectado, para sair do SQLCMD podemos utilizar os clássicos EXIT ou CTRL + C.
Dentro do SQLCMD é importante saber que suas instruções sql só serão executadas quando você digitar um GO e confirmar com um ENTER. No exemplo abaixo eu mudei o contexto para a base de dados Northwind e logo depois executei uma consulta. Veja que ao fim de cada instrução eu adicionei um GO.
Uma vez conectado, como já citado, você poderá executar qualquer instrução SQL desde selects, updates, até a criação de bancos e tabelas ou a execução de procedures do sistema que te auxiliem a monitorar seu SQL Server, como:
Ler log do SQL Server
sp_readerrorlog
go
Verificar conexões na instância:
sp_who
go
Etc…
Combinado a isto, é possível também executar comandos do DOS dentro do SQLCMD. Para listar o C:\ basta digitar
!!dir C:\
Se quiser dar uma limpada na tela, digite:
!!cls
Como você pode notar todos os comandos do prompt DOS são precedidos por dois pontos de exclamação (!!).
Ok…
Mas digamos agora que você tenha aí um script pronto e deseja executá-lo no SQLCMD, além disso deseja gravar o resultado da execução deste script num arquivo txt. Vamos exemplificar esta situação utilizando o script abaixo que será salvo na unidade c:\ num arquivo identificado como teste.sql.
USE northwind
– lista todas as colunas da tabela Categories da base Northwind
SELECT
table_name nomeTabela,
column_name nomeColuna,
data_type tipoDaColuna,
isnull(character_set_name, ‘NoUnicode’) campoUnicode
FROM
information_schema.columns
WHERE
table_name = ‘Categories’
Veja como fica a linha dessa chamada utilizando o SQLCMD:
O parâmetro –i indica o arquivo de entrada (INPUT), que contém o script que será executado. O parâmetro –o indica qual será o arquivo de saída (OUTPUT), que conterá o resultado da execução.
Como qualquer assunto no SQL Server, este é mais um que poderíamos discorrer por páginas e mais páginas… mas por enquanto ficamos por aqui. Creio que essa introdução é o suficiente pra entendemos o potencial desta ferramenta.
Para obter mais informações sobre os parâmetros do SQLCMD, no prompt do DOS digite sqlcmd -? Se esse help parecer um pouco confuso você poderá acessar este link e ter informações mais detalhadas.
É importante lembrar que o SQLCMD está disponível para o SQL Server 2005 e 2008. Para versões anteriores utilize o OSQL ou ISQL.
Bom trabalho, bons estudos!
Mendes
Hoje cedo estava olhando o site da Prometric e vi que o exame 70-432 está disponível em português.
É interessante ver a Microsoft se esforçando em produzir mais conteúdo em português, acho que o maior sinal desse esforço foi a disponibilização do Books Online 2008 em nosso idioma. Sem dúvidas um grande passo.
Muitos profissionais não acham interessante essas provas em português e com razão, afinal a poucos anos víamos umas traduções horríveis no MOC, parecia que o trabalho não passava por uma revisão e era decepcionante ver alguns termos técnicos traduzidos.
Mesmo assim, se você estiver interessado em realizar a prova em português, a minha dica é: estude tudo em português, porque se você estudou “snapshot”, pode ser que na prova você encontre um “instantâneo” e se confunda. O duro é que os materiais em português são escassos, aí é outro dilema… mas fica a dica.
Lembrando que ao ser aprovado na 70-432 você obtém a certificação MCTS em SQL Server 2008 e este é um exame obrigatório para você chegar ao MCITP.
Bom trabalho e bons estudos :)
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.
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.
Hoje uma dica rápida pra melhorar a produtividade:
Você está utilizando o Management Studio e acaba de executar uma consulta; agora precisa copiar o resultado para uma planilha Excel.
Sua consulta gerou um resultado com 25 colunas e ao colar o conteúdo na planilha você nota que só vieram os dados da consulta; os nomes das 25 colunas você terá que preencher a mão.
Alterar isso é bem simples. Vá no menu Options, expanda a opção Query Results e escolha a subopção Results to Grid. Agora é só marcar a opção “Include column headers when copying or saving the results” (Inclui cabeçalho das colunas quando copiar ou salvar resultados).
Bom trabalho!
A partir da versão 2005 do SQL Server, algumas opções de configuração vem desabilitadas por padrão (e por uma questão de segurança), uma delas é o suporte a rede. Mas habilita-las é muito simples.
No menu Iniciar > Programas > Microsoft SQL Server 2008 > Configuration Tools escolha a opção SQL Server Configuration Manager (ou no menu Iniciar > Executar, digite SQLServerManager10.msc).
Na janela SQL Server Configuration Manager, expanda a opção SQL Server Network Configuration e clique na subopção que contém o nome da sua instância.

No meu caso, o nome da minha instância é SQLEXPRESS2008, então selecionei a subopção Protocols for SQLEXPRESS2008.
Ao clicar, observe no lado direito os diversos protocolos de rede disponíveis. Para habilitar o suporte a sua rede TCP/IP, de um double-clique sobre esse protocolo. Na nova janela, na opção Enabled, selecione a opção Yes. Feito isto, clique em OK.
Agora é necessário reiniciar seu serviço SQL Server o que pode ser feito na mesma janela. Vá na opção SQL Server Services, escolha o serviço SQL Server e com o botão direito clique em Restart.
Hoje vou descrever os passos BÁSICOS para a instalação do SQL Server 2008 Express, esta que é a edição gratuita do SQL Server e atende muito bem pequenas aplicações (além de ser uma ótima opção pra quem quer estudar esse banco).
Na edição gratuita do SQL Server 2000 (conhecida por MSDE) até mesmo alguns DBAs sofriam para instalá-la. De lá pra cá muita coisa mudou e hoje você já conta com ferramentas gráficas para instalar e gerenciar sua instância. Essa edição do SQL Server suporta 1 CPU (com suporte a multi-core), 1 GB de RAM e bases de dados de até 4 GB, e ao contrário do que muitas pessoas dizem, as edições Express tem suporte a rede; o fato é que essa opção vem desabilitada, mas é muito simples ativá-la.
Nesse post vou demonstrar a instalação do SQL Express + ferramentas. Se você desejar o mesmo, ao realizar o download escolha a opção Microsoft SQL Server 2008 Express with Tools (executável: SQLEXPRWT_x86_ENU.exe); o tamanho do executável é de aproximadamente 220 MB. Segue abaixo o link para download: http://www.microsoft.com/brasil/servidores/sql/editions/express.mspx Antes de iniciar a instalação do SQL Server Express você deverá verificar:
Após as devidas verificações e atualizações, podemos iniciar a instalação. Execute o arquivo SQLEXPRWT_x86_ENU.exe e observe que do lado esquerdo da tela que é apresentada existem as opções Planning, Installation, Maintenance e etc. Na guia Planning escolha a opção System Configuration Cheker.
![]()
Neste momento será feita uma breve verificação para indicar se falta algo para o andamento da instalação. Obtendo um retorno positivo clique em Ok e selecione na guia Installation a opção New SQL Server stand-alone installation or add features to an existing installation (Nova instalação ou adiciona opções para uma instalação já existente).

O instalador fará uma nova verificação, se estiver tudo certo (para ver os detalhes dessa verificação clique no botão Show Details) clique no botão OK.

Na próxima tela clique em Install para instalar os arquivos que darão suporte ao restante da instalação. Clique Next.
Na tela Product Key clique em Next (observe que você não precisa de uma chave já que é esta é uma versão free). Marque a opção: “I accept the license terms” e clique em Next. Quando esta etapa finalizar, você irá escolher o que deseja instalar. Marque somente a opção Database Engine Services. Essa opção instalará o engine do SQL Server Express. Se desejar instalar também as ferramentas marque a opção Management Tools – Basic.

Na próxima tela você deverá escolher por uma instância padrão (Default Instance) ou uma instância nomeada (Named Instance). Esta etapa define o nome pelo qual seu servidor SQL irá responder. Se escolher pela instância padrão o SQL terá o mesmo nome de seu servidor, se for uma instância nomeada o SQL irá atender por: NOME_SERVIDOR\NOME_SQL.

Clique em Next.
A próxima tela traz um resumo sobre o espaço em disco que será utilizado. Clique em Next.
A seguir você deverá informar sob qual conta do Windows rodarão os serviços do SQL Server. No meu caso, como estou instalado no notebook, na caixa Account Name vou escolher a conta AUTORIDADE NT\SYSTEM para o serviço do SQL e o padrão para o SQL Browser. Em casos onde seu SQL Server utilizar recursos de rede será importante utilizar uma conta de domínio.
Clicando em Next você deverá optar pelo modo de autenticação no SQL. As duas opções são:
Windows Authentication Mode – Nessa opção, apenas contas do Windows poderão autenticar no seu SQL.
Mixed Mode – Nessa opção, poderão autenticar tanto contas Windows e contas criadas posteriormente dentro do SQL.
A Mixed Mode é a mais utilizada (apesar de não ser a recomendada pela Microsoft).
Nesse post vou escolher a opção Mixed Mode e definir uma senha para a conta system administrator (SA). Também irei adicionar uma conta Windows ao grupo de administradores do SQL. Você pode adicionar uma conta de administrador e também o usuário atual clicando no botão Add Current User.

O SA é o usuário master do seu SQL Server, por isso não atribua uma senha fraca a ele e não ESQUEÇA essa senha .
Se estiver em dúvida sobre o modo de autenticação que deve usar, fique tranqüilo, essa configuração pode ser alterada depois. Como estamos realizando uma instalação padrão, neste momento ignore as abas Data Directories e FILESTREAM. Clique em Next.
A próxima tela pergunta se você deseja enviar automaticamente relatórios de possíveis erros para a Microsoft. Faça sua escolha e clique em Next. Agora o instalador faz uma nova verificação para validar os parâmetros informados até aqui. Se estiver tudo ok, clique em Next.
Verifique o resumo da instalação e finalmente clique em Install. Agora é só aguardar a finalização da instalação.
Considerações: Se você realizar essa instalação numa maquina com Windows XP em português, ao final poderá encontrar o seguinte erro na instalação:

Segundo a Microsoft isso não é efetivamente um erro. Isso ocorre quando tentamos instalar uma versão inglês do SQL Server (2005 ou 2008) num Windows XP SP3 não-inglês (como já comentei neste post).
Neste texto abordei somente os passos básicos para a instalação do SQL Server 2008 Express. Pretendo detalhar outras opções nos próximos posts… no próximo iremos habilitar o acesso a rede, por enquanto, bom trabalho e bons estudos.
Veja como habilitar suporte a rede aqui.
Além das novidades sobre o Windows 7, Office 2010 e Windows Server 2008, no TechEd que está acontecendo hoje em LosAngeles, Bill Veghte, vice-presidente da Microsoft, anunciou que o CTP do Microsoft SQL Server 2008 R2 (conhecido pelo code-name Kilimnajaro) será liberado no 2º semestre de 2009. Veghte destacou que essa atualização irá focar no (já muito anunciado) BI self-service.
Havia boatos de que o Kilimnajaro tratava-se de uma nova versão do SQL Server, ou seja, um possível SQL Server 2010. Eu particularmente gostei de saber que será apenas uma atualização.
Existem pessoas que acharam o tempo de desenvolvimento entre o SQL Server 2000 e 2005 muito grande… ok, concordo um pouco com isso, mas de dois em dois anos também não é um tempo que dá para o mercado respirar. No “mundo real” eu vejo a quantidade de clientes que pretendiam dar um upgrade no SQL Server 2000 para o 2005 e desistiram em decorrência dos anúncios sobre o lançamento do 2008.
Então é isso, quem está com planos para upgrade, certificações e etc, o SQL Server 2008 continua como a melhor pedida.
:)
Depois de dois anos e meio de muito trabalho, em Agosto o SQL Server 2008 entra para a tabela de preços da Microsoft, isso significa que em menos de um mês teremos oficialmente a nova versão do SQL Server.
Pra você que está curioso e que dar uma olhada no que está vindo por aí, o release 0 está disponível aqui, depois deste release, somente o oficial. Esta versão tem validade de 180 dias.
Até +