<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Diário de um DBA &#187; Dicas</title>
	<atom:link href="http://silasmendes.com/dba/category/dicas/feed" rel="self" type="application/rss+xml" />
	<link>http://silasmendes.com/dba</link>
	<description>Tecnologia &#38; Banco de Dados</description>
	<lastBuildDate>Sun, 15 Apr 2012 12:20:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>O que é SQL?</title>
		<link>http://silasmendes.com/dba/o-que-e-sql</link>
		<comments>http://silasmendes.com/dba/o-que-e-sql#comments</comments>
		<pubDate>Tue, 26 Jul 2011 14:52:09 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[ORACLE]]></category>
		<category><![CDATA[SQL SERVER 2000]]></category>
		<category><![CDATA[SQL SERVER 2005]]></category>
		<category><![CDATA[SQL SERVER 2008]]></category>
		<category><![CDATA[SQL SERVER 2008 R2]]></category>
		<category><![CDATA[SQL SERVER 7]]></category>
		<category><![CDATA[banco de dados relacional]]></category>
		<category><![CDATA[db2]]></category>
		<category><![CDATA[gerenciador de banco de dados]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[plsql]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[sgbd]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Sql Server]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=949</guid>
		<description><![CDATA[Pra começar você precisa saber que SQL não é um banco de dados; SQL é um idioma (entre especialistas costumamos substituir o termo “idioma” por “linguagem”). A sigla SQL significa Structured Query Language; em português: linguagem de consulta estruturada. Destaquei &#8230; <a href="http://silasmendes.com/dba/o-que-e-sql">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pra começar você precisa saber que SQL não é um banco de dados; SQL é um idioma (entre especialistas costumamos substituir o termo “idioma” por “linguagem”). A sigla SQL significa <em><strong>Structured Query Language</strong></em>; em português: linguagem de <span style="color: #ff6600;"><strong>consulta </strong></span>estruturada. Destaquei o “consulta” porque o foco dela é justamente isso: consultar!</p>
<p><em><a href="http://silasmendes.com/dba/wp-content/uploads/2011/07/torre-de-babel.jpg"><img class="alignleft size-full wp-image-950" title="torre-de-babel" src="http://silasmendes.com/dba/wp-content/uploads/2011/07/torre-de-babel.jpg" alt="" width="260" height="401" /></a></em>Os bancos de dados (ou gerenciadores de bancos de dados) nasceram antes da linguagem SQL e cada qual tinha sua própria linguagem de consulta. Logo os usuários e fabricantes notaram que essa torre de babel não era interessante e optaram pela criação de um único idioma para consultar bancos de dados relacionais (em outra oportunidade falaremos sobre os bancos dimensionais). O órgão <em>American National</em> <em>Standards Institute </em>(ANSI) ficou responsável pela padronização desta linguagem e de tempos em tempos realiza encontros entre fabricantes para discutir a linguagem SQL e propor melhorias; no entanto esta padronização não impede que cada fabricante personalize a linguagem SQL para atender suas necessidades, e é aí que surgem os dialetos.  Por exemplo, o &#8220;dialeto&#8221; do gerenciador de banco de dados Oracle é o PL/SQL; o do SQL Server é o T-SQL (transact SQL) e etc.</p>
<p><span style="color: #ff0000;">Agora é importante que você não confunda a linguagem SQL com gerenciadores de banco de dados! Isso é um erro muito comum!</span></p>
<p><span style="color: #ff0000;"> </span></p>
<p>Por exemplo, o gerenciador de banco de dados Microsoft SQL Server (como o nome já diz), é um programa que gerencia bancos de dados. A arquitetura dos sistemas gerenciadores de bancos de dados (SGBDs) é definida de forma que os dados possam estar sempre consistentes e que sejam recuperados da forma mais rápida possível! Digamos que estes são itens de série de qualquer SGBD. Para tornar os gerenciadores de bancos de dados ainda mais atraentes, os fabricantes adicionam outras inúmeras funcionalidades para facilitar o trabalho dos DBAs, aumentar a segurança, a disponibilidade e etc.</p>
<p>Hoje existem diversos gerenciadores de <a href="http://silasmendes.com/dba/wp-content/uploads/2011/07/sgbds.png"><img class="size-medium wp-image-955 alignright" title="sgbds" src="http://silasmendes.com/dba/wp-content/uploads/2011/07/sgbds-300x205.png" alt="" width="300" height="205" /></a>bancos de dados disponíveis no mercado, como o Oracle, o Microsoft SQL Server, o PostgreSQL, entre outros. <strong>Todos utilizam a linguagem SQL para consultar dados</strong>.</p>
<p>A grande dúvida que paira na cabeça de alguns profissionais de TI é: qual o melhor banco de dados? SQL Server? Oracle?! DB2?</p>
<p>O que eu digo é o seguinte: o melhor gerenciador de banco de dados é aquele que atende adequadamente o seu negócio. É como comprar um carro: você compraria uma Ferrari para fazer <em>rally</em>?! Compraria um Fusca para fazer uma longa viagem pelo Brasil?</p>
<p><strong>Conclusão</strong></p>
<p>SQL é uma linguagem de consulta a bancos de dados relacionais. No mercado atual existem inúmeros sistemas gerenciadores de bancos de dados relacionais (comumente chamados apenas pela sigla SGBD); podemos citar como exemplo o Oracle, Microsoft SQL Server, DB2, etc. Estes gerenciadores de bancos de dados utilizam a linguagem SQL para consultar os dados; porém, adicionam à esta linguagem soluções para atender suas particularidades e aí nascem dialetos como o PL/SQL, PL/pgSQL e o T-SQL.</p>
<p>Nos próximos posts falaremos mais sobre a linguagem SQL e os gerenciadores de bancos de dados.</p>
<p>Para conhecer mais detalhes sobre a linguagem SQL, <a href="http://silasmendes.com/dba/dml-ddl-o-que-e-isso" target="_blank">dê uma olhada nesse post</a> e fique familiarizado com outras siglas populares no mundo SQL como: DDL e DML!</p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/o-que-e-sql/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Backup FULL reinicia sequência do LOG. Mito?</title>
		<link>http://silasmendes.com/dba/mito-backup-full-e-log</link>
		<comments>http://silasmendes.com/dba/mito-backup-full-e-log#comments</comments>
		<pubDate>Sat, 30 Apr 2011 15:50:46 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[SQL SERVER 2000]]></category>
		<category><![CDATA[SQL SERVER 2005]]></category>
		<category><![CDATA[SQL SERVER 2008]]></category>
		<category><![CDATA[SQL SERVER 2008 R2]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[copy_only]]></category>
		<category><![CDATA[internals]]></category>
		<category><![CDATA[LSN]]></category>
		<category><![CDATA[mito]]></category>
		<category><![CDATA[Restore]]></category>
		<category><![CDATA[Sql Server]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=905</guid>
		<description><![CDATA[Olá, No mês de Abril fiz o curso de SQL Server Internals com o Luciano Moreira, mais conhecido na comunidade como Luti; não vou me estender muito neste assunto, mas se você é um DBA SQL Server, recomendo fortemente que &#8230; <a href="http://silasmendes.com/dba/mito-backup-full-e-log">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>No mês de Abril fiz o curso de SQL Server Internals com o <a href="http://luticm.blogspot.com/" target="_blank">Luciano Moreira</a>, mais conhecido na comunidade como Luti; não vou me estender muito neste assunto, mas se você é um DBA SQL Server, recomendo fortemente que faça este curso. Excelente&#8230;</p>
<p>Mas vamos ao foco do nosso post. Durante o curso de <em>internals </em>alguns mitos foram por água abaixo; um deles foi  “Ao realizar um backup full, perdemos a sequência do log”.</p>
<p>Verdade? Sim ou Não?</p>
<p>Bom, confesso que eu sempre tive isso como verdade absoluta e tenho certeza que outros inúmeros DBAs SQL Server pensam o mesmo; mas a verdade é que <strong>não</strong>, realizar um backup full não quebra a sequência do seu log. Mas falando assim não tem graça né, vamos testar a brincadeira:</p>
<p>Primeiro criamos um banco para nosso teste (<em>no fim do post está o script completo do nosso teste</em>):</p>
<pre class="brush: sql; title: ; notranslate">
CREATE DATABASE testeBackup
</pre>
<p>Por padrão o SQL Server criar o banco com o <em>recovery model</em> <strong>FULL</strong> (exceto na edição <em>Express</em>). Isto é importante para o nosso teste já que iremos realizar backup do log. Para confirmar:</p>
<pre class="brush: sql; title: ; notranslate">
-- Recovery Model = FULL
SELECT recovery_model_desc
FROM sys.databases
WHERE NAME LIKE 'testeBackup'
</pre>
<p>Vamos criar uma tabela para nossos testes e realizar nosso primeiro backup FULL:</p>
<pre class="brush: sql; title: ; notranslate">
USE testeBackup

-- Cria tabela
CREATE TABLE registroBackup
	(id INT IDENTITY,
	registro VARCHAR(50))

-- Realiza backup FULL
BACKUP DATABASE testeBackup
TO DISK = 'C:\testeBackupFULL.bak' WITH INIT
</pre>
<p>Agora utilizando uma estrutura de repetição inserimos 1 registro na tabela e realizamos um backup de log. Isso repetirá por 5 vezes:</p>
<pre class="brush: sql; title: ; notranslate">
DECLARE @i INT

SET @i = 1

WHILE @i &lt;= 5
BEGIN
	-- Insere registro
	INSERT INTO registroBackup
	VALUES ('Antes do '+CAST(@i AS VARCHAR(2))+'º backup de LOG')
	-- Realiza backup de log
	BACKUP LOG testeBackup
	TO DISK = 'C:\testeBackupLOG.bak'
	WITH NOINIT
	-- Incrementa contador
	SET @i = @i + 1
END
</pre>
<p>Verificamos então os registros inseridos na tabela:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT * FROM registroBackup
</pre>
<p><strong>Resultado:</strong><br />
<a href="http://silasmendes.com/dba/wp-content/uploads/2011/04/01_post_backup.png"><img class="aligncenter size-full wp-image-908" title="01_post_backup" src="http://silasmendes.com/dba/wp-content/uploads/2011/04/01_post_backup.png" alt="" width="218" height="148" /></a></p>
<p>E verificamos os nossos backups de log:</p>
<pre class="brush: sql; title: ; notranslate">
RESTORE HEADERONLY FROM DISK = 'C:\testeBackupLOG.bak'
</pre>
<p><strong>Resultado:</strong><br />
<a href="http://silasmendes.com/dba/wp-content/uploads/2011/04/02_post_backup.png"><img class="aligncenter size-medium wp-image-911" title="02_post_backup" src="http://silasmendes.com/dba/wp-content/uploads/2011/04/02_post_backup-300x69.png" alt="" width="300" height="69" /></a></p>
<p>Como verificamos temos aí 5 registros e 5 backups de log.</p>
<p>Agora realizamos um novo backup FULL:</p>
<pre class="brush: sql; title: ; notranslate">
BACKUP DATABASE testeBackup
TO DISK = 'C:\testeBackupFULL_2.bak' WITH INIT
</pre>
<p>E repetimos a execução do laço:</p>
<pre class="brush: sql; title: ; notranslate">
DECLARE @i INT

SET @i = 6

WHILE @i &lt;= 10
BEGIN
	-- Insere registro
	INSERT INTO registroBackup
	VALUES ('Antes do '+CAST(@i AS VARCHAR(2))+'º backup de LOG')

-- Realiza backup de log
	BACKUP LOG testeBackup
	TO DISK = 'C:\testeBackupLOG.bak'
	WITH NOINIT

-- Incrementa contador
	SET @i = @i + 1
END
</pre>
<p>Ao fim temos 10 registros em nossa tabela, 10 backups de LOG e 2 backups FULL.</p>
<p>Agora entra a figura do estagiário que exclui o segundo arquivo de backup FULL&#8230; (sacanagem, rss)</p>
<p>Segundo a lenda, isso inválida todos os backups de log posteriores e teríamos que realizar um backup FULL imediatamente, porque ao realizar o segundo backup FULL perderíamos a seqüência do log.  Certo? Bom&#8230; vamos testar:</p>
<p>Excluímos  a base de dados:</p>
<pre class="brush: sql; title: ; notranslate">
USE MASTER
GO
DROP DATABASE testeBackup
</pre>
<p>E restauramos os backups (FULL + LOGs) <strong>ignorando o segundo backup FULL</strong>:</p>
<pre class="brush: sql; title: ; notranslate">
RESTORE DATABASE testeBackup
FROM DISK = 'C:\testeBackupFULL.bak' -- primeiro backup FULL
WITH NORECOVERY

-- Restauramos os 10 arquivos de log

DECLARE @i INT
SET @i = 1

WHILE @i &lt;= 10
BEGIN

	RESTORE LOG testeBackup
	FROM DISK = 'C:\testeBackupLOG.bak'
	WITH FILE = @i, NORECOVERY

	SET @i = @i + 1

END

	RESTORE DATABASE testeBackup
	WITH RECOVERY -- colocamos a base em operação
</pre>
<p>Verifique que restauramos os 10 registros de nossa tabela:</p>
<pre class="brush: sql; title: ; notranslate">
USE testeBackup
SELECT COUNT(*) FROM registroBackup
</pre>
<p><strong>Resultado:</strong><br />
<a href="http://silasmendes.com/dba/wp-content/uploads/2011/04/03_post_backup.png"><img class="aligncenter size-full wp-image-912" title="03_post_backup" src="http://silasmendes.com/dba/wp-content/uploads/2011/04/03_post_backup.png" alt="" width="142" height="45" /></a></p>
<p>Enfim, note que a realização do 2º backup FULL não quebrou a seqüência dos nossos backups de log!</p>
<p>Agora a pergunta que não quer calar: qual a função do parâmetro de backup <strong>COPY_ONLY</strong> lançado a partir do SQL Server 2005?!</p>
<p>Um backup diferencial tem <strong>total dependência do último backup FULL</strong>; logo, se você perder o backup FULL anterior, não será possível restaurar o diferencial, mesmo com um FULL mais antigo. Então pense numa situação que você precise de um backup FULL adicional, mas não deseja que ele afete seus próximos backups diferenciais (que deverão continuar utilizando como referência o backup FULL anterior), então aqui utilizaríamos o <strong>COPY_ONLY</strong>.</p>
<p>Resumindo: Os backups diferenciais posteriores iram ignorar um backup FULL com COPY_ONLY.</p>
<p><strong>CONCLUSÃO</strong></p>
<p>Backup FULL não altera a sequência dos backups de LOG. Se você perdeu seu último backup FULL, mas tem um do mês passado e de lá pra cá todos os seus backups de LOG estão intactos, não se desespere! Você conseguirá restaurar seu backup.</p>
<p>PS: Obrigado <a href="http://luticm.blogspot.com/" target="_blank">Luti </a>pela super dica :D</p>
<p><strong>Disponibilizei o script completo deste teste <a href="http://dl.dropbox.com/u/27222507/DiarioDBA/Script_POST_mito-backup-full-e-log.sql" target="_blank">aqui</a>.</strong></p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/mito-backup-full-e-log/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Solucionando usuários orfãos</title>
		<link>http://silasmendes.com/dba/resolvendo-usuarios-orfaos</link>
		<comments>http://silasmendes.com/dba/resolvendo-usuarios-orfaos#comments</comments>
		<pubDate>Tue, 18 Jan 2011 09:44:38 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Erros $#$%!]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[SQL SERVER 2000]]></category>
		<category><![CDATA[SQL SERVER 2005]]></category>
		<category><![CDATA[SQL SERVER 2008]]></category>
		<category><![CDATA[SQL SERVER 2008 R2]]></category>
		<category><![CDATA[duplicado]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[orfão]]></category>
		<category><![CDATA[sp_change_users_login]]></category>
		<category><![CDATA[Sql Server]]></category>
		<category><![CDATA[usuário]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=838</guid>
		<description><![CDATA[Um problema comum: Você restaura um backup numa nova instância e ao tentar conceder as permissões para seus usuários encontra o seguinte erro: User, group, or role &#8216;nome_do_usuario&#8216; already exists in the current database. (No fim deste post está disponível um &#8230; <a href="http://silasmendes.com/dba/resolvendo-usuarios-orfaos">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Um problema comum:</p>
<p>Você restaura um backup numa nova instância e ao tentar conceder as permissões para seus usuários encontra o seguinte erro:</p>
<p><span style="color: #ff0000;">User, group, or role &#8216;<em>nome_do_usuario</em>&#8216; already exists in the current database.</span></p>
<blockquote>
<h5><strong><em>(No fim deste post está disponível um arquivo contendo base e scripts utilizados neste cenário.)</em></strong></h5>
</blockquote>
<p>Ou seja, o login já existe na instância e ao tentar defini-lo como usuário da base, o SQL reclama que ele <span style="text-decoration: underline;"><em>já é</em></span> um usuário da base de dados; no entanto, ao tentar conectar no banco com este usuário o SQL Server adverte que o mesmo não tem permissões para se conectar:</p>
<div id="_mcePaste"><span style="color: #ff0000;">Msg 916, Level 14, State 1, Line 1</span></div>
<div id="_mcePaste"><span style="color: #ff0000;">The server principal &#8220;<em>nome_do_usuario</em>&#8221; is not able to access the database &#8220;<em>nome_do_banco</em>&#8221; under the current security context.</span></div>
<p>&#8230; assim não é possível conceder permissões ao usuário e nem utilizá-lo.</p>
<p><img class="alignright size-full wp-image-843" title="orfao_" src="http://silasmendes.com/dba/wp-content/uploads/2011/01/orfao_.jpg" alt="" width="186" height="285" /></p>
<p>Normalmente este problema ocorre porque o login em questão já era usuário da base de dados em sua instância de origem. Ao restaurar o backup em outra instância, onde o mesmo login existe, o SQL Server não estabele um link automático entre o login pré-existente e o usuário que veio junto com base restaurada; assim surgem os <strong>usuários órfãos</strong>.</p>
<p>Veja que é um problema muito comum, no entanto, muitas pessoas tentam resolve-lo apagando o usuário da base e recriando novamente a partir do login; no entanto, ao fazer isto, perceba que perdemos todas as configurações atribuídas àquele usuário na base determinada, como permissões e etc.</p>
<p>Para solucionar este problema adequadamente utilizamos o procedimento: <strong>sp_change_users_login</strong></p>
<p>Inicialmente podemos executar a procedure (dentro da base restaurada) com o seguinte parâmetro:</p>
<pre class="brush: sql; title: ; notranslate">
EXEC sp_change_users_login 'Report';
</pre>
<p>Com este parâmetro o procedimento irá mostrar todos os usuários órfãos da sua base; ou seja, usuários que existem na sua base de dados, mas que não possuem um login correspondente:</p>
<p><a href="http://silasmendes.com/dba/wp-content/uploads/2011/01/post_orfao.png"><img class="aligncenter size-full wp-image-852" title="post_orfao" src="http://silasmendes.com/dba/wp-content/uploads/2011/01/post_orfao.png" alt="" width="336" height="70" /></a></p>
<p>Para solucionar efetivamente o problema, executamos a procedure com diferentes parâmetros. No exemplo abaixo, executamos a procedure passando como parâmetro o nome do usuário órfão e o login correspondente. Ao executá-lo, o SQL Server estabelece uma relação entre ambos:</p>
<pre class="brush: sql; title: ; notranslate">
EXEC sp_change_users_login
	'Update_One',
	'usuario42', 'usuario42';
</pre>
<p>Note que <strong>o nome do login e do usuário não precisam ser iguais</strong>, no entanto é muito comum utilizamos o mesmo nome para logins e usuários, então para abreviar a solução podemos utilizar somente:</p>
<pre class="brush: sql; title: ; notranslate">
EXEC sp_change_users_login 'Auto_Fix', 'usuario42';
</pre>
<p>Assim o SQL Server entende que a relação deverá ocorrer entre um usuário e um login de mesmo nome.</p>
<p>Este procedimento pode ser utilizado também quando você possuir um usuário, mas ainda não possuir um login correspondente criado; assim em um único comando é possível cadastrar o novo login, atribuir sua senha  e estabeler a relação entre eles; veja o exemplo:</p>
<pre class="brush: sql; title: ; notranslate">
EXEC sp_change_users_login
	'Auto_Fix',
	'usuario42', NULL,
	'@#mochil3ir0'; -- senha
</pre>
<p><strong>Conclusão</strong></p>
<p>Neste post entendemos o que são usuários orfãos e como estabeler vínculos entre logins e usuários de banco de dados utilizando o procedimento <strong>sp_change_users_login</strong>. Este procedimento tem diferentes comportamentos de acordo com os parâmetros passados. Utilizar este procedimento simplifica a configuração da sua base de dados e mantém todas as características de seus usuários previamente configuradas.</p>
<p>Para simular este erro e sua solução, <a href="http://silasmendes.com/dba/wp-content/uploads/2011/01/EXEMPLO_usuário_orfão.zip">baixe este arquivo</a> contendo a base e script do cenário.</p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/resolvendo-usuarios-orfaos/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Movimentando arquivos da base de dados</title>
		<link>http://silasmendes.com/dba/movimentando-arquivos</link>
		<comments>http://silasmendes.com/dba/movimentando-arquivos#comments</comments>
		<pubDate>Mon, 20 Dec 2010 21:15:43 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[ALTER DATABASE]]></category>
		<category><![CDATA[arquivo]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[datafile]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[move]]></category>
		<category><![CDATA[movimentar]]></category>
		<category><![CDATA[offline]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[Sql Server]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=743</guid>
		<description><![CDATA[Uma das atividades que pontuam a rotina de um DBA é a movimentação de arquivos de bancos de dados; normalmente resultado de falta de espaço em disco, mudança de arquitetura, otimização e etc. Nosso cenário: Os arquivos de dados e &#8230; <a href="http://silasmendes.com/dba/movimentando-arquivos">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Uma das atividades que pontuam a rotina de um DBA é a movimentação de arquivos de bancos de dados; normalmente resultado de falta de espaço em disco, mudança de arquitetura, otimização e etc.</p>
<p><strong>Nosso cenário</strong>: Os arquivos de dados e log da base de dados <strong>MoveArquivo</strong> estão no mesmo disco. Para otimizar a performance decidimos movimentar o arquivo de log para outro disco.</p>
<p>Existem diversos meios de realizar esta tarefa, a seguir iremos analisar uma delas (e a que particularmente acho mais prática):</p>
<p><strong>“Mão na massa”</strong></p>
<p>Primeiro, precisamos ter algumas informações em mãos; por exemplo, o nome lógico do arquivo que será alterado e o local atual do arquivo de log de nossa base de dados:</p>
<p>Para isso podemos utilizar o comando <strong>sp_helpdb</strong>:</p>
<p><a href="http://silasmendes.com/dba/wp-content/uploads/2010/12/01_move_arquivo1.jpg"><img class="aligncenter size-full wp-image-745" title="01_move_arquivo" src="http://silasmendes.com/dba/wp-content/uploads/2010/12/01_move_arquivo1.jpg" alt="" width="708" height="60" /></a></p>
<p>Ok; já sabemos onde está nosso arquivo de log. Agora precisamos alterar este endereço e para isto utilizamos o seguinte comando:</p>
<pre class="brush: sql; title: ; notranslate">
USE MASTER
GO
ALTER DATABASE MoveArquivo
MODIFY FILE (NAME = 'MoveArquivo_log', FILENAME = 'E:\SQLDbs\Log\MoveArquivo_log.ldf')
GO
</pre>
<p>Após execução do comando temos a seguinte mensagem:</p>
<p><span style="color: #ff0000;">The file &#8220;MoveArquivo_log&#8221; has been modified in the system catalog. <strong>The new path will be used the next time the database is started.</strong></span><strong></strong></p>
<p>Temos então, numa tradução livre, o alerta: <em>“O novo caminho só será utilizado após reinicialização da base”</em>. Então fique atento! Este comando não alterou efetivamente o endereço físico do arquivo; para concluir a operação precisamos reiniciar a base.</p>
<p>Para não afetarmos a operação dos outros bancos da instância e para reduzirmos o tempo de parada, não vamos mexer com o serviço do SQL Server; vamos apenas alterar o estado da base de dados, deixando-a offline:</p>
<pre class="brush: sql; title: ; notranslate">
ALTER DATABASE MoveArquivo
SET offline
GO
</pre>
<p>Após execução deste comando a base fica indisponível para qualquer usuário e agora podemos copiar fisicamente o arquivo de log para seu novo endereço. Neste momento, através de um CTRL + C, CTRL+ V (ou qualquer outro meio de copiar um arquivo no Windows) copiamos o arquivo para seu novo endereço.</p>
<blockquote><p><em>Atenção: tenha certeza de copiar o arquivo para o mesmo endereço informado no primeiro comando ALTER DATABASE.</em></p></blockquote>
<p>Finalizada a cópia, podemos reiniciar nossa base de dados com o seguinte comando:</p>
<pre class="brush: sql; title: ; notranslate">
ALTER DATABASE MoveArquivo
SET online
GO
</pre>
<p>Pronto! Arquivo de log movimentado para novo endereço.</p>
<p>O mesmo procedimento pode ser utilizado para outros tipos de arquivos (como arquivos de dados). Para as bases de sistema (MASTER, TEMPDB, etc) não será possível utilizar a opção SET ONLINE/OFFLINE; neste caso teremos que reiniciar o serviço do SQL Server, afetando a disponibilidade de toda instância.</p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/movimentando-arquivos/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oportunidade: Students to Business</title>
		<link>http://silasmendes.com/dba/students-to-business</link>
		<comments>http://silasmendes.com/dba/students-to-business#comments</comments>
		<pubDate>Wed, 15 Sep 2010 13:40:01 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[curso]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[Dynamics CRM]]></category>
		<category><![CDATA[estudante]]></category>
		<category><![CDATA[Expression Web]]></category>
		<category><![CDATA[mercado]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[trabalho]]></category>
		<category><![CDATA[treinamento]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=697</guid>
		<description><![CDATA[Dica de última hora!!! Pra você que é estudante e quer ficar mais próximo do mercado de TI, vai aí uma dica bem interessante: Até o dia 28/09/2010, a Microsoft recebe inscrições para a 7º edição do Microsoft Students to &#8230; <a href="http://silasmendes.com/dba/students-to-business">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dica de última hora!!!</p>
<p>Pra você que é estudante e quer ficar mais próximo do mercado de TI, vai aí uma dica bem interessante:</p>
<p><strong>Até o dia 28/09/2010</strong>, a Microsoft recebe inscrições para a 7º edição do <strong><a href="http://proform.msdnbrasil.com.br/PortalS2B/Default.aspx" target="_blank">Microsoft Students to Business</a></strong>; esse é um programa que pretende aproximar os estudantes para o mercado de TI, fornecendo um super treinamento de 84 horas&#8230; e o melhor de tudo: gratuito.</p>
<p><a href="http://proform.msdnbrasil.com.br/PortalS2B/Default.aspx" target="_blank"><img class="aligncenter size-full wp-image-698" title="students2business" src="http://silasmendes.com/dba/wp-content/uploads/2010/09/students2business.jpg" alt="" width="146" height="61" /></a></p>
<p>O público alvo são alunos do ensino médio, cursos técnicos, superior e pós-graduação&#8230; e o estudante pode optar pelas seguintes áreas: desenvolvimento de sistemas, infraestrutura, banco de dados, Expression Web e Dynamics CRM.</p>
<p>Então fique ligado:<br />
<strong></strong></p>
<p><strong>Inscrições até o dia <span style="color: #ff0000;">28/09/2010</span>.</strong></p>
<p>Mais informações no site: <a href="http://proform.msdnbrasil.com.br/PortalS2B/">http://proform.msdnbrasil.com.br/PortalS2B/</a></p>
<p>Boa sorte!</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/students-to-business/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backup compactado</title>
		<link>http://silasmendes.com/dba/backup-compactado</link>
		<comments>http://silasmendes.com/dba/backup-compactado#comments</comments>
		<pubDate>Tue, 14 Sep 2010 14:47:42 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[adventureWorks]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[compactar]]></category>
		<category><![CDATA[comprimir]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[sp_configure]]></category>
		<category><![CDATA[sql backup]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=677</guid>
		<description><![CDATA[A compressão de backups sempre foi um dilema para quem lida com grandes bases de dados no SQL Server. Muitos DBAs criaram rotinas para compactar arquivos de backup utilizando o bom e velho RAR, outros utilizavam soluções mais interessantes como &#8230; <a href="http://silasmendes.com/dba/backup-compactado">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A compressão de backups sempre foi um dilema para quem lida com grandes bases de dados no SQL Server. Muitos DBAs criaram rotinas para compactar arquivos de backup utilizando o bom e velho RAR, outros utilizavam soluções mais interessantes como o <a href="http://www.red-gate.com/products/SQL_Backup/" target="_blank">SQL Backup</a> da RedGate.</p>
<p>Finalmente na versão 2008 a Microsoft adicionou uma solução nativa para compactação de backups, no entanto esta opção só estava disponível na edição Enterprise.</p>
<p>Com a chegada do 2008 R2 a Microsoft estendeu a funcionalidade para a edição Standard; ou seja, a coisa tá ficando mais acessível.</p>
<p><strong>“Mão na massa”</strong></p>
<p>Para compactar o backup o processo é bem simples, basicamente precisamos adicionar a opção <strong>WITH COMPRESSION</strong> no comando de backup:</p>
<pre class="brush: sql; title: ; notranslate">
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\AdventureWorks_compactado.BAK'
WITH COMPRESSION;
</pre>
<p>Agora o mais interessante: comparando backups da base AdventureWorks, um compactado e outro sem compactação, temos os seguintes números:</p>
<p><img class="aligncenter size-full wp-image-679" title="compactaBKP" src="http://silasmendes.com/dba/wp-content/uploads/2010/09/compactaBKP1.png" alt="" width="442" height="36" /></p>
<p>Vemos que o arquivo compactado tem cerca de 25% do tamanho do arquivo sem compactação. Bem bacana, não é?</p>
<p>Se você deseja que a compactação de backup seja <em>Default</em> na sua instância, altere a configuração <strong>backup compression default</strong> para 1:</p>
<pre class="brush: sql; title: ; notranslate">
EXEC sp_configure 'backup compression default', '1';
RECONFIGURE;
</pre>
<p class="MsoNormal">Assim, quando você realizar um backup, mesmo que não utilize explicitamente a opção <strong>WITH COMPRESSION</strong> (ou esqueça de utilizá-la) seus backups serão compactados.</p>
<p><span style="font-size: 12.0pt; font-family: &amp;amp;amp; mso-fareast-font-family: &amp;amp;amp; mso-ansi-language: PT-BR; mso-fareast-language: PT-BR; mso-bidi-language: AR-SA;">Bom trabalho!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/backup-compactado/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>T-SQL &#8211; Mesclando dados</title>
		<link>http://silasmendes.com/dba/t-sql-mesclando-dados</link>
		<comments>http://silasmendes.com/dba/t-sql-mesclando-dados#comments</comments>
		<pubDate>Fri, 10 Sep 2010 15:01:51 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[comparar]]></category>
		<category><![CDATA[Juntar]]></category>
		<category><![CDATA[MERGE]]></category>
		<category><![CDATA[Mesclar]]></category>
		<category><![CDATA[Sincronizar]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=660</guid>
		<description><![CDATA[O SQL Server 2008 trouxe para o T-SQL um comando brilhante que realmente facilita a vida de muita gente; o comando em questão é o MERGE. A idéia deste comando é mesclar dados, logo você pode comparar duas tabelas e &#8230; <a href="http://silasmendes.com/dba/t-sql-mesclando-dados">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>O SQL Server 2008 trouxe para o T-SQL um comando brilhante que realmente facilita a vida de muita gente; o comando em questão é o MERGE. A idéia deste comando é mesclar dados, logo você pode comparar duas tabelas e utilizar o comando MERGE para sincronizá-las.</p>
<p>Vamos a um exemplo simples:</p>
<p>Primeiro criamos duas tabelas com estrutura idêntica. A chave primária destas tabelas é o campo CPF:</p>
<pre class="brush: sql; title: ; notranslate">
create table Tabela1 (
Nome varchar(50),
Idade int,
CPF char(11) primary key);

create table Tabela2 (
Nome varchar(50),
Idade int,
CPF char(11) primary key);
</pre>
<p>Agora inserimos dados nas tabelas. Observe que os dados estão diferentes, alguns tem diferença no nome, outros registros estão sobrando ou faltando em ambas tabelas:</p>
<pre class="brush: sql; title: ; notranslate">
insert into Tabela1 values
('Silas Mendes' , 29, '08148338716'),
('Maria José'   , 49, '55978913269'),
('Pedro Ribeiro', 53, '05899714732'),
('Joana Silva'  , 18, '74105689623');

insert into Tabela2 values
('SILAS Mendes'       , 29, '08148338716'),
('Maria Jose'         , 49, '55978913269'),
('Pedro Ribeiro Souza', 53, '05899714732'),
('Carlos Mania'       , 19, '12345678999');
</pre>
<p>Agora precisamos sincronizar as tabelas, vamos analisar passo-a-passo a construção do comando MERGE (o comando completo está disponível no fim do texto) .</p>
<p>A tabela de destino (target) é a <strong>tabela2</strong>; a tabela de origem (source) é a <strong>tabela1. </strong>A chave primária das tabelas será utilizada na comparação:</p>
<pre class="brush: sql; title: ; notranslate">
merge into tabela2 as target
using (select nome, idade, cpf from tabela1)
  as source (nome, idade, cpf)
  on (target.cpf = source.cpf)
</pre>
<p>Quando os números dos CPFs forem encontrados em ambas tabelas então atualizamos os dados na tabela alvo (target):</p>
<pre class="brush: sql; title: ; notranslate">
when matched then
		 update set target.nome = source.nome,
					target.idade = source.idade,
					target.cpf = source.cpf
</pre>
<p>Quando os números dos CPFs não forem encontrados na tabela de destino, então inserimos os dados da tabela de origem:</p>
<pre class="brush: sql; title: ; notranslate">
when not matched by target then
		 insert (nome, idade, cpf) values (nome, idade, cpf)
</pre>
<p>E finalmente, quando existirem números de CPFs no destino que não existem na origem, apagamos os registros que sobram:</p>
<pre class="brush: sql; title: ; notranslate">
when not matched by source then
		 delete;
</pre>
<p>Veja o código completo do comando MERGE:</p>
<pre class="brush: sql; title: ; notranslate">
merge into tabela2 as target
using (select nome, idade, cpf from tabela1)
  as source (nome, idade, cpf)
  on (target.cpf = source.cpf)

-- Atualiza registros diferentes
when matched then
		 update set target.nome = source.nome,
					target.idade = source.idade,
					target.cpf = source.cpf

-- Insere registros que não existem no destino
when not matched by target then
		 insert (nome, idade, cpf) values (nome, idade, cpf)

-- Se existir no destino e não existir na origem é apagado
when not matched by source then
		 delete;
</pre>
<p>Por fim realizamos o SELECT nas duas tabelas para verificar o resultado após a sincronização:</p>
<pre class="brush: sql; title: ; notranslate">

select * from Tabela1;
select * from Tabela2;
</pre>
<p><a href="http://silasmendes.com/dba/wp-content/uploads/2010/09/MERGE_Resultado.png"><img class="aligncenter size-full wp-image-673" title="MERGE_Resultado" src="http://silasmendes.com/dba/wp-content/uploads/2010/09/MERGE_Resultado.png" alt="" width="246" height="247" /></a></p>
<div>Bom trabalho, bom estudo!</div>
<div><span style="font-size: 12.0pt; font-family: &amp;amp;amp; mso-fareast-font-family: &amp;amp;amp; mso-ansi-language: PT-BR; mso-fareast-language: PT-BR; mso-bidi-language: AR-SA;"><br />
</span></div>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/t-sql-mesclando-dados/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008 R2 Express Edition</title>
		<link>http://silasmendes.com/dba/sql-server-2008-r2-express-edition</link>
		<comments>http://silasmendes.com/dba/sql-server-2008-r2-express-edition#comments</comments>
		<pubDate>Thu, 15 Jul 2010 13:35:38 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[Instalar SQL Server 2008]]></category>
		<category><![CDATA[SQL Server 2008 Express]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=590</guid>
		<description><![CDATA[A cada nova versão do SQL Server a Microsoft torna suas edições gratuitas ainda mais atrativas. Já abordei anteriormente por aqui sobre a instalação do SQL Server 2008 Express; então se você está procurando informações sobre SQL Server 2008 Express, &#8230; <a href="http://silasmendes.com/dba/sql-server-2008-r2-express-edition">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A cada nova versão do SQL Server a Microsoft torna suas edições gratuitas ainda mais atrativas. Já abordei <a href="http://silasmendes.com/dba/sql-server-2008-express" target="_blank">anteriormente por aqui</a> sobre a instalação do SQL Server 2008 Express; então se você está procurando informações sobre SQL Server 2008 Express, aproveite esse texto para se atualizar sobre o segundo release (R2) do SQL Server 2008 Express Edition.</p>
<p>De cara, a principal novidade é que SQL 2008 <strong>R2</strong> Express permite gerenciar bases de dados com até 10 GB. Na última versão o limite eram 4 GB por base de dados. Uma melhoria interessante não é?</p>
<p>As limitações de CPU e memória continuam as mesmas, sendo 1 CPU e 1GB RAM. No caso da CPU lembre-se que a limitação é por chip; logo, se você tiver um chip <em>Six-Core</em> seu SQL irá utilizar os 6 núcleos deste chip.</p>
<p><a rel="http://www.microsoft.com/express/Database/InstallOptions.aspx" href="http://silasmendes.com/dba/wp-content/uploads/2010/07/logo_SQL2008R2.png" target="_blank"><img class="size-medium wp-image-591 alignright" title="logo_SQL2008R2" src="http://silasmendes.com/dba/wp-content/uploads/2010/07/logo_SQL2008R2-300x82.png" alt="" width="300" height="82" /></a>Para este release são ofertados três opções de instalação: a instalação <strong><em>SQL Server 2008 R2 Express</em></strong> instala somente a engine do SQL, ou seja, o serviço principal do SQL Server onde é possível rodar bancos de dados, criar ou alterar objetos e etc, porém sem nenhuma ferramenta gráfica. A instalação <strong><em>SQL Server 2008 R2 Express with Tools Edition</em></strong> oferece a engine e adiciona também o Management Studio que é uma ferramenta gráfica para gerenciamento das instâncias; na <strong><em>SQL Server 2008 R2 Express with Advanced Services</em></strong> além da engine e do Management Studio é oferecido também o Reporting Services para o desenvolvimento de relatórios no SQL Server. Ambas instalações estão disponíveis para as plataformas de 32 e 64 bits.</p>
<p>Os pré-requisitos continuam os mesmos: se você for instalar somente a <em>Engine</em> desta versão (sem nenhuma ferramenta gráfica), será necessário somente o Framework 2.0; se for utilizar as ferramentas gráficas o Framework 3.5 SP1 é um pré-requisito. Assim como na última versão o Windows Installer 4.5 e Windows Power Shell 1.0 são necessários para a instalação.</p>
<p>O processo de instalação continua bem similiar ao que publiquei aqui no ano passado, portanto se desejar um <a href="http://silasmendes.com/dba/sql-server-2008-express" target="_blank">passo-a-passo da instalação básica acesse este link</a>.</p>
<p>E pra finalizar segue o link de download do R2 Express: <a href="http://www.microsoft.com/express/Database/InstallOptions.aspx">http://www.microsoft.com/express/Database/InstallOptions.aspx</a></p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/sql-server-2008-r2-express-edition/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>MCTS SQL Server 2008</title>
		<link>http://silasmendes.com/dba/mcts-sql-server-2008</link>
		<comments>http://silasmendes.com/dba/mcts-sql-server-2008#comments</comments>
		<pubDate>Tue, 20 Apr 2010 13:54:50 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[70-431]]></category>
		<category><![CDATA[70-432]]></category>
		<category><![CDATA[Brás Figueiredo]]></category>
		<category><![CDATA[Certificação]]></category>
		<category><![CDATA[MCTS]]></category>
		<category><![CDATA[Segunda Chance]]></category>
		<category><![CDATA[SQL Server 2008]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=583</guid>
		<description><![CDATA[Eu estava reagendando esta prova a mais de um mês. Toda vez que eu folheava o Training Kit me deparava com uma novidade do SQL Server 2008 que me fazia olhar e querer entender mais os detalhes, e assim eu &#8230; <a href="http://silasmendes.com/dba/mcts-sql-server-2008">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Eu estava reagendando esta prova a mais de um mês. Toda vez que eu folheava o Training Kit me deparava com uma novidade do SQL Server 2008 que me fazia olhar e querer entender mais os detalhes, e assim eu reagendava o exame pois achava que não estava preparado. No fim de semana estabeleci que faria a prova na segunda-feira (ontem) e que não iria adiar mais.</p>
<p>A questão é que o foco do 70-432 não são os detalhes, você precisa ter o conhecimento das novas features, entender suas principais finalidades e os pré-requisitos para implementá-las.</p>
<p><img class="alignleft size-full wp-image-584" title="button_MCTS_SQL2008_Implementation" src="http://silasmendes.com/dba/wp-content/uploads/2010/04/button_MCTS_SQL2008_Implementation.gif" alt="" width="240" height="77" /></p>
<p>O exame me surpreendeu porque eu esperava um grau maior de dificuldade&#8230; mas foi uma boa prova; o grande foco está nas novidades, mas em algumas questões você tem que utilizar soluções de versões anteriores. Ao contrário da 70-431 não teve o teste prático (que eu achava interessante) e foram quase duas horas para responder aproximadamente 40</p>
<p>questões. Comparando os dois exames, para mim o 70-432 está mais fácil.</p>
<p>Se você está preocupado com a complexidade das novas features do SQL Server 2008, eu te encorajo dizendo que este não é o exame que irá abordar detalhes. Foque na visão geral da administração e encare a prova.</p>
<p>Tenho que acrescentar também que esta foi a primeira vez que fiz uma prova na <a href="http://www.bf.com.br/" target="_blank"><span style="color: #000000;">Brás Figueiredo</span></a> e a experiência foi muito agradável: ambiente silencioso, ar-condicionado numa temperatura adequada, um bom equipamento, enfim, recomendo.</p>
<p>Depois de escrever tudo isso tenho que complementar que fui aprovado :)</p>
<p>A sensação de não utilizar a &#8220;Segunda Chance&#8221; é sempre boa (não posso negar) e eu só posso desejar o mesmo a todos vocês.</p>
<p>Bom trabalho e bom estudo!</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/mcts-sql-server-2008/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Copa Microsoft 2010</title>
		<link>http://silasmendes.com/dba/copa-microsoft-2010</link>
		<comments>http://silasmendes.com/dba/copa-microsoft-2010#comments</comments>
		<pubDate>Wed, 14 Apr 2010 16:08:16 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[competição]]></category>
		<category><![CDATA[copa microsoft]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[ranking]]></category>
		<category><![CDATA[Windows Server 2008 R2]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=573</guid>
		<description><![CDATA[Já está rolando a Copa Microsoft, uma ótima oportunidade para atualizar seu conhecimento nas novas ferramentas da Microsoft. Além da atualização o participante concorre a prêmios bem interessantes como uma LED 42’’, XBOXs, BluRay, Technet Plus e etc. Inicialmente é &#8230; <a href="http://silasmendes.com/dba/copa-microsoft-2010">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="Copa Microsoft 2010" rel="http://www.talentosmicrosoft.com.br" href="http://www.talentosmicrosoft.com.br" target="_blank"><img class="aligncenter size-full wp-image-574" title="logo_COPA" src="http://silasmendes.com/dba/wp-content/uploads/2010/04/logo_COPA.png" alt="" width="299" height="178" /></a></p>
<p>Já está rolando a Copa Microsoft, uma ótima oportunidade para atualizar seu conhecimento nas novas ferramentas da Microsoft. Além da atualização o participante concorre a prêmios bem interessantes como uma LED 42’’, XBOXs, BluRay, Technet Plus e etc.</p>
<p>Inicialmente é possível ganhar pontos indicando amigos e baixando os softwares; depois vem as provas <em>online</em> para as quais você poderá se preparar assistindo aos <em>webcasts</em>&#8230; isso é só o começo, depois vem treinamentos e provas na Microsoft e a preparação de um vídeo onde o participante deverá demonstrar em 3 minutos a utilização de uma das novas tecnologias. A final é uma prova <em>surpresa</em> :D</p>
<p>Já rolaram duas provas <em>online</em>: <strong>Windows Server 2008 R2</strong> e <strong>Exchange 2010</strong>; mas pra quem tá interessado, ainda dá tempo de se inscrever e correr atrás!</p>
<p><a href="http://www.talentosmicrosoft.com.br/">http://www.talentosmicrosoft.com.br/</a></p>
<p>To lutando pra garantir meu 12º lugar&#8230; mas tá difícil, risos, a concorrência é pesada :)</p>
<p><a href="http://silasmendes.com/dba/wp-content/uploads/2010/04/ranking1.png"><img class="aligncenter size-full wp-image-580" title="Meu ranking atual na copa Microsoft" src="http://silasmendes.com/dba/wp-content/uploads/2010/04/ranking1.png" alt="" width="629" height="76" /></a></p>
<p>Bom jogo!</p>
<p><strong><span style="color: #ff0000;">UPDATE em 22/07/2010: </span></strong></p>
<p>Infelizmente não consegui ir muito longe no jogo, justamente durante a última prova da 3° etapa (que por sinal era a de SQL Server) meu Internet Explorer travou&#8230;  consegui chegar às quartas de final, mas a pontuação acumulada não foi suficiente pra avançar&#8230; a decepção foi grande, mas tudo bem.  <a href="http://www.talentosmicrosoft.com.br/Final.aspx" target="_blank">Parabéns aos ganhadores!</a> No ano que vem tem mais :)</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/copa-microsoft-2010/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

