SQL Server + Volume Shadow Copy = Sem backup diferencial.

Após implementar o recurso de envio de e-mails com os erros de backup do SQL Server, notei que o backup diferencial não estava sendo executado, apresentando o seguinte erro: Cannot perform a differential backup for database “MyDatabase”, because a current database backup does not exist. Perform a full database backup by reissuing BACKUP DATABASE, omitting the WITH DIFFERENTIAL option. [SQLSTATE 42000] (Error 3035) BACKUP DATABASE is terminating abnormally. [SQLSTATE 42000] (Error 3013). The step failed. ...

24 abr. 2013 · 2 minutos · 383 palavras · Logan D. Merazzi

Detalhando erros no Powershell

Estou montando um script em Powershell para enviar um mail caso aconteça algumas situações e no momento do teste aparecia a seguinte mensagem de erro: Exception calling “Send” with “4” argument(s): “Failure sending mail.” At line:1 char:11 $smtp.Send «« (“[email protected]”,”[email protected]”,”teste de e-mail”,”Teste de mail”) CategoryInfo : NotSpecified: (:) [], MethodInvocationException FullyQualifiedErrorId : DotNetMethodException Como esse erro não diz muita coisa, fui no pai dos burros (a.k.a Google) e achei o seguinte comando: $error[0] | format-list –force...

15 abr. 2013 · 2 minutos · 283 palavras · Logan D. Merazzi

SQL Server Database Snapshot

O Database Snaphot (ou “instantâneo de Banco de Dados”, se você estiver no SQL Server em português – Que nome terrível, hehehe) é um banco de dados _somente leitura, _onde o SQL Server guarda os dados originais de tudo o que está sendo alterado pelos usuários, para que seja possível realizar verificações (dentre outras coisas) de como estava o banco antes destas ocorrerem. Ao contrário do que muita gente pensa, as alterações ocorrem nas páginas de dados e não no objeto que está sofrendo alteração. O SQL Server utiliza um recurso chamado “Copy-on-write” onde, antes da página ser alterada, os dados originais são armazenados no snapshot. ...

12 abr. 2013 · 5 minutos · 959 palavras · Logan D. Merazzi

Erro ao criar plano de backup no TFS

Após a migração do Team Foudation Server 2010 de servidor, fui realizar a configuração dos backups através do TFS Powertools (disponibilizado pela Microsoft no link: http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f) e me deparei com o seguinte erro: ...

27 mar. 2013 · 1 minuto · 83 palavras · Logan D. Merazzi

SQL Server Internal Ops. Eu fui!

No dia 07/12, foi realizado na PUC o SQL Server Internal Ops, um evento idealizado pelas comunidades SQL Server RS e MSITPSC, com o apoio da Microsoft e da Dell. Há muito tempo que eu ansiava por um evento do gênero aqui em Porto Alegre, com foco 100% em SQL Server, uma vez que já houveram eventos semelhantes em São Paulo, Rio de Janeiro (Que eu felizmente consegui ir), Recife (com o SQL Saturday) enquanto nós, que moramos aqui no RS, não tínhamos nada. ...

09 dez. 2012 · 5 minutos · 960 palavras · Logan D. Merazzi

“No such interface supported” ao criar / abrir um projeto no SSMS 2012

Onde trabalhamos, utilizamos o Source Safe para realizar o controle de alterações nas functions e procedures de Banco de Dados. Foi criado um projeto que contém os objetos e, dentro do SSMS, fazemos o checkout / checkin deles, já integrado com o Source Safe. Acontece que hoje, ao tentar migrar o projeto para abrirmos no SQL Server Management Studio 2012, apareceu o erro: Error: No such interface supported File: vsee\internal\inc\vscomptr.inl Line number: 259 ...

05 set. 2012 · 1 minuto · 152 palavras · Logan D. Merazzi

Cuidados ao usar Exists

6 meses depois do último post (e com o planejamento de ano novo completamente furado – o de postar pelo menos 1 vez a cada 15 dias… 🙁 )… Dica rápida para quem usar EXISTS : Nunca utilize uma função de agregação quando utilizar o EXISTS. Por quê? Segue um script rápido que insere alguns poucos registros em uma tabela para testarmos… CREATE DATABASE TesteExists --Super original, não? :-) GO USE TesteExists GO CREATE TABLE Pessoa (Nome varchar(20), Nascimento datetime, Sexo char(1), CPF varchar(11), EstadoCivil char(1)) GO INSERT INTO Pessoa Values ('Logan', '19810101', 'M', '11111111111','C') INSERT INTO Pessoa Values ('Denise','19800101', 'F', '22222222222','C') INSERT INTO Pessoa Values ('Sophia', '20120101', 'F', NULL,'S') GO IF EXISTS (SELECT MAX(Nascimento) FROM Pessoa WHERE nome = 'xxxxx') SELECT 'OK' ELSE SELECT 'NOK' ...

03 jul. 2012 · 2 minutos · 216 palavras · Logan D. Merazzi

Colunas Default (e Como Mantê-las)

Muitas vezes precisamos que uma determinada coluna receba um valor padrão, por exemplo, uma tabela de pedidos que, ao inserir um registro novo, coloca por padrão a data atual no campo que referencia a data do pedido. Ok, mas como é que eu faço isso? Muito simples, pequeno gafanhoto, ao criar uma tabela: CREATE TABLE MinhaTabela ( Codigo int identity, Nome varchar(100) NOT NULL, Valor int NOT NULL, Data datetime not null CONSTRAINT DF_MinhaTabela_Data default getdate() ) Putz! Mas o campo Valor também tinha que ter um valor Default… Será que eu consigo colocar sem ter que refazer a criação ou dropar a coluna? ...

13 dez. 2011 · 3 minutos · 490 palavras · Logan D. Merazzi

Entendendo e usando CTE (Common Table Expression)

As CTE’s são muito semelhantes às tabelas derivadas, mas com uma boa vantagem… De acordo com o BOL a estrutura para uma CTE é: WITH expression_name [ ( column_name [,...n] ) ] AS ( CTE_query_definition ) SELECT FROM expression_name; Uma comparação de uso entre uma tabela derivada e uma CTE: Tabela derivada: SELECT * FROM (SELECT Nome, Cidade FROM CLIENTES WHERE DataCadastro > '2011-01-01') AS CLI2011 Usando CTE: ;WITH CLI2011 AS ( SELECT Nome, Cidade FROM CLIENTES WHERE DataCadastro > '2011-01-01') SELECT * FROM CLI2011; Note o ‘;’ antes do WITH… Ele está lá por eu considerar uma boa prática, uma vez que sempre que você utilizar uma CTE, caso tenha alguma outra consulta antes, ela obrigatoriamente deve terminar com o ‘;’. Então, por via das dúvidas, sempre coloque ele antes do WITH, quando for usar uma CTE. ...

10 ago. 2011 · 2 minutos · 293 palavras · Logan D. Merazzi

Problemas de conversão de arquivos php do Linux para o Windows

Passei os últimos dias migrando de servidores e um dos meus objetivos era pegar o nosso portal, que hoje está em um Ubuntu e passar para o novo server, Windows. Após fazer as configurações do php, mysql, iis, etc, notei que as páginas estavam sendo abertas com a acentuação totalmente errada, mesmo as informações no MySQL estando corretas. Fucei em tudo o que era lugar. Converti a codificação dos arquivos .php para UTF-8, para ANSI, para ISO-8859-1, mas nada adiantou. ...

19 jul. 2011 · 1 minuto · 124 palavras · Logan D. Merazzi