Retrospectiva 2018 – Um ano muito diferente na minha vida


Alô você, boa noite…

Tudo bem? Eu estou bem, mesmo após estes últimos dias de comilança (“Festas de final de ano sempre abusamos um pouco.”).

Pois bem, este não um post dedicado a tecnologias ou produtos da Microsoft, ao contrário, a muito tempo venho pensando e criando coragem para elaborar um post que conte um pouco do meu trabalho, das minhas atividades acadêmicas e profissionais, como também da minha correria como MVP e MIE Expert nas ações e atividades promovidas pela Microsoft que eu estou sempre envolvido.

Introdução

Atribui o título de Retrospectiva, mas não sei bem se este post pode ser chamado ou intitulado desta forma, mesmo assim, vou dividir e até mesmo compartilhar com vocês minha rotina realizada nos 365 que se decorreram ao longo deste ano de 2018, sabendo que o ano ainda não acabou e que alguma coisa de diferente pode acontecer, sei que você que esta neste momento lendo este post entende e compreende o que estou dizendo.

De uma forma bastante simples, vou destacar mês a mês os posts aqui compartilhados, os eventos presenciais e online que participei (alias se eu for participar de todos que recebo convite, teria que se multiplicar em três ou quatros, sinceramente falando melhor são, pois um só já é bastante chato….kkkkkkk), palestras, atividades diárias nos fóruns MSDN e TechNet, Participação Mensal no Gallery TechNet, Participação Semanal no SQLServerCentral.com, bancas de TCCs e TGs, entre demais momentos que possa julgar importante.

2018 chegou e já passou, 2019 esta pedindo passagem…

Então, vamos lá, espero que de alguma forma você possa se sentir parte da minha vida no decorrer deste post, além de uma pequeno história do que aconteceu em cada mês, vou destacar os principais posts publicados no meu blog, como também os scripts que foram disponibilizados no Gallery TechNet e outras ações de destaque em outras mídias sociais, blogs e portais de tecnologia:

Janeiro

Começo de ano não é fácil, entrar novamente na rotina, se organizar após a festas de natal e ano novo é sempre complicado, mas em 2018 tudo começou bem cedo, compra dos uniformes escolares, materiais para volta as aulas, logicamente o aniversário da minha pequena Fernanda e sua nova oportunidade profissional, este foi um mês que mudou o decorrer do 2018.

Claro que não foi somente isso, pude descansar muito, voltar a ficar 30 dias em casa após o ano de 2017 de grandes mudanças profissionais, impactos financeiros e principalmente voltar a colocar minha consultoria de volta aos trabalhos foi bastante desgastante, conflitante e temoroso, mas a vida tem que continuar e já no segundo dia de 2018 publiquei o primeiro post do ano que me trouxe uma nova oportunidade de mostrar o meu trabalho.

Destaques:

#19 – Para que serve

Dica do Mês – SQL Setup ToolSuite Introduction

Microsoft SQL Server – Audit Events – Ocorrência de Restore Database

Microsoft SQL Server – Audit Events – Ocorrência de Backup Database

Fevereiro

Segundo mês do ano, voltamos ao trabalho, novas turmas, novos alunos, novos desafios e com ele sempre algumas mudanças, dentre elas o desafio de lecionar um pouco sobre IoT e principalmente Arduino (plaquinha danada de boa, mas que eu levei um tempinho para conhecer), tirando um pouco da tensão por trabalhar com este conteúdo, outro grande obstáculo a ser superado era a ideia de organizar um evento voltado para IoT na Fatec São Roque, evento que no mês de Junho você vai saber como foi.

Não posso deixar de citar o aniversário da minha pequena Malú.

Destaques:

Material de Apoio – Fevereiro 2018

Microsoft SQL Server – Audit Events – Find Errors for Sort Warnings

Microsoft SQL Server – Audit Events – Find Errors for Missing Column Statistics

Short Scripts – Fevereiro 2018 – Transaction Log

Março

Legal, chegamos no primeiro trimestre de 2018, agora sim o ano esta começando pois o carnaval acabou e com ele os “brasileiros” começam a pensar de verdade no que vão fazer no resto do ano (este não é o meu pensamento, mas sim um fato que a cada ano fica mais evidente), deixando um pouco de demagogia e até crítica de lado, um novo desafio se apresentava no decorrer deste mês, como aumentar ainda mais a audiência e visitação do meu blog que estava passando por um momento de turbulências, foi então que no dia 01/03 resolvi “ressuscitar” a antiga sessão que estava bastante esquecida no meu blog denominada Script Challenge (uma similaridade a sessões já existentes em outros blogs dedicados ao Microsoft SQL Server).

Estava também esperançoso para retornar ao mestrado, mais isso não aconteceu da forma que eu esperava, sendo assim, decidi voltar a me dedicar ao meu blog e tentar reconquistar novos seguidores em minhas redes sociais.

Essa não foi uma tarefa muito fácil, definir um novo formato, abordagem e até mesmo algo que trouxe-se mais visitantes ao blog sem conflitar com as sessões já existentes tomou um pouco do meu tempo, mas no final das contas de seu certo e no decorrer de 2018 outros posts desta mesma sessão foram publicados e em 2019 serão mais ainda.

O mês de março já estava acabando, parecia que tudo esta tranquilo, mas um situação bem fora do comum se apresentou, recebi informações da possível existência de um farsante como usuário dos fóruns do MSDN e TechNet aqui Brasil, e neste caso eu como moderador era responsável em tentar evidenciar e reportar o fato, foi então um momento muito incomum, contatar o profissionais da Microsoft localizados em Redmond em conjunto com meu MVP Leader Glauter Januzzi afim de monitorar este usuário, situação que somente no final deste ano conseguimos resolver.

Destaques:

Script Challenge – 13 – A resposta….

Dica do Mês – Microsoft SQL Server 2017 – SQL Graph Databases

Microsoft SQL Server – Audit Events – Identifying File Shrink Events

Microsoft SQL Server – Audit Events – Auto Database Growth Information

Abril

Mês um pouco mais de tensão e receios, este é o mês que passo pelo processo de análise e renovaçã anual como MVP, todas as minhas contribuições nos últimos 12 meses são sumarizadas, computadas, analisadas e principalmente ponderadas para que estabelecer um mínimo de relevância no meu trabalho que me permita ou não ser novamente reconhecido como MVP, mas esta história eu lhe como mais no mês de Julho, o que posso lhe dizer que entre Maio de 2017 e Abril de 2018 moderei mais de 8.700 dúvidas e posts publicados nos fóruns de SQL Server no Brasil.

Outro momento importante neste primeiro quartil do ano de 2018, foi a publicação de mais uma questão minha no maior portal dedicado ao Microsoft SQL Server, o SQLServerCentral.Com, em sua sessão QotD – Question of the Day, contendo um total de 666 visualizações e respostas.

Além disso, participei presencial do MVP.Conf, primeira conferência nacional dos MVPs da Microsoft realizada em São Paulo, tive a honra de levar os alunos da Etec São Roque neste evento, foi a maior caravana de estudantes presentes, um momento muito marcante na minha vida acadêmica.

Estava me esquecendo de destacar o aniversário da minha mãe (ela merece um post exclusivo por ter me aguentado em seu ventre) e o meu no dia 28.

Destaques:

Material de Apoio – Abril 2018

#20 – Para que serve

Microsoft libera Cumulative Update #6 para SQL Server 2017 RTM

Dica do Mês – SQL Operations Studio – View as Chart

Microsoft SQL Server – Audit Events – Adding and Finding Auto Statistics

Microsoft SQL Server – Audit Events – Find Errors for Missing Join Predicates

Manage the suspect_pages Table on SQL Sever 2017

Maio

O mês de maio foi bastante tranquilo, já começamos a se organizar para o final do semestre, este foi um período de 2018 que mais me deparei com demandas profissionais, foi um momento que tive a oportunidade de atender clientes em três localidades distantes ao mesmo tempo: Rio Grande do Sul, Bahia e Paraná isso me representou uma grande oportunidade e satisfação em poder demonstrar o meu trabalho em localidades geograficamente distantes da minha localidade.

Mas nem todos os momentos foram de alegria, neste mês me deparei com uma situação que a muito anos não vivenciava, o quanto algumas “pessoas” podem ser tão desonestas, a devido a uma situação que não vou detalhar mas que marcou muito que mudei brutalmente a minha forma de negociação e prestação de serviços, e não somente isso, me fez tomar a decisão de novamente interromper minhas atividades de consultoria na área de banco de dados para um período, fui buscar me aperfeiçoar, amadurecer profissionalmente como um empreendedor e dono do seu próprio negócio, mas nada de buscar ajuda do Sebrae ou algo parecido, fui na verdade conversar com pessoas que possuem seus próprios negócios aqui em São Roque para entender como eles sobrevivem, posso dizer que foi um momento de grande aprendizado.

A primeira decisão após este período sabático, mudar o nome fantasia da minha empresa, deixando de chamar Jr-Softwares para se tornar Galvão Tecnologia, momento de muito temor pois mudar o nome ou razão social não é tão simples.

Destaques:

Short Scripts – Maio 2018

Microsoft disponibiliza atualização cumulativa 7 para o Microsoft SQL Server 2017

#21 – Para que serve

Microsoft SQL Server 2016 SP2 – Atualização Cumulativa 1 disponível

Page considered Suspect in SQL Server 2017

Microsoft SQL Server – TempDB – Number of Reads and Writes

Microsoft SQL Server – TempDB – Monitoring space used by queries

Junho

Agora sim, estamos na metade do ano, 2018 esta voando, passando rápido, você se lembra que no mês de Fevereiro eu havia comentado do evento que estava ajudando a idealizar e organizar, pois bem, ele de fato aconteceu, o chamado 1º Encontro Tecnológico de Internet das Coisas foi devidamente no dia 26/06 com a presença de diversos profissionais de tecnologia da região.

Uma nova conquista também me foi conferida no decorrer do mês de Junho, a publicação de um Script de minha autoria no portal SQLServerCentral.com em sua sessão Scripts, honra e reconhecimento que aconteceu novamente no mês de Julho com um outro Script que me permitiu aprender muito.

Destaques:

Windows 10 IoT Core Services, nova versão do Windows 10 para dispositivos inteligentes

Material de Apoio – Junho 2018

Script Challenge – 2018 – Post 14

Entering random data into a table

Microsoft SQL Server-Comparative between sparse column and non-sparse column

Microsoft SQL Server – Identificar relacionamento lógico de registros em tabelas

Julho

Estamos virando a chave do ano, entramos na segunda metade de 2018, dois trimestres já se passaram, mês que me permitiu comemorar mais um reconhecimento como MVP sendo esta a minha décima primeira renovação anual consecutiva, meu décima segundo ano no programa como MVP e a partir desta renovação o MVP de Data Platform mais antigo do Brasil.

Continuando neste mês de conquistas, tive o prazer de compor as bancas de professores avaliadores dos trabalhos de graduação dos alunos do curso de Sistemas de Informação para Internet da Fatec São Roque.

Com destacado no mês de Junho, tive o reconhecimento de ter um novo Script de minha autoria publicado no SQLServerCentral.com, script que me possibilitou a troca de conhecimento com um dos maiores profissionais de banco de dados relacional do mundo Jeff Moden , agradeço muito a ele pela oportunidade de aprender.

Destaques:

Windows Server 2019 Preview build 17709 disponível para download

Microsoft SQL Server 2017 Cumulative Update 9 disponível

Dica do Mês – Ocultando uma instância em execução do Microsoft SQL Server

Microsoft SQL Server-Creating an annual calendar with holidays

Microsoft SQL Server-Identifying indexes that present duplicate columns

User Stored Procedure for Backup of user databases

Agosto

Meu deus, o segundo semestre chegou, este é o segundo quartil do ano, estamos próximos de terceiro trimestre de 2018, e como de costume mais um desafio é colocado na minha vida, voltar a lecionar uma das disciplinas que eu não trabalhava desde 2012 conhecida por muitos como Sistemas Operacionais, mas que para o Centro Paulo Paulo no curso de sistemas para internet é denominada Servidores e seus Sistemas Operacionais, tive que voltar a estudar, lêr os bons e tradicionais livres de Andrew Stuart Tanenbaum.

Não somente isso, voltar a estudar e praticar a administração de servidores Windows Server algo que eu sempre faço, mas o desafio era trabalhar de forma prática com Suse Linux, RedHat e Ubuntu, olha foram manhã de muito estudo e práticas para conseguir entregar algo de qualidade para meus pupilos, acredito ter feito da melhor forma possível.

Por outro lado, agreguei em minha coleção de disciplinas novas, um dedicada a área de gestão e negócios que esta totalmente relacionada com Banco de Dados, disciplina que mistura dado, informação, conhecimento e tomada de decisão com as possibilidades que as empresas podem ter a partir do momento que fazem uso de um banco de dados relacional e evoluem para um Data Warehouse.

Passado alguns dias, uma boa notícia, havia sido escolhido para a disciplina de Introdução a Criptografia no Mestrado da UFSCar em Sorocaba, mas devido a questões particulares tomei a decisão de não dar continuidade ao mestrado em 2018 e buscar uma nova oportunidade em outra instituição em 2019.

Um momento muito especial neste mês de agosto, foi a oportunidade de bater um papo com o MVP Leader Glauter Januzzi em umas das suas ações com líder dos MVPs, foi um momento impar e totalmente diferente, como também, poder fazer parte das ações de tradução de produtos da Microsoft, ação que eu já havia participado nos anos de 2008, 2009 e 2010, mas que agora tinha um objetivo diferente.

Outro momento muito importante que vivenciei no dia 03/08 a oportunidade de ter participado da Bienal do Livro em conjunto com minha esposa Fernanda, e conhecer alguns dos maiores nomes do Time de Hacking e Stem da Microsoft Corporation que estavam presentes nos estandes da Microsoft na Bienal.

Para fechar o mês, mais um reconhecido a fim conferido e ofertado pela Microsoft, agora na área de Educação, pelo segundo ano seguido foi nomeado MIE Expert – Microsoft Innovative Educator Expert for 2018-2019, prêmio me permitiu ter um engajamento ainda maior na área acadêmica.

Destaques:

Material de Apoio – Agosto 2018

#22 – Para que serve

Microsoft SQL Server 2017 – Cumulative Update 10

Windows Admin Center Preview v1808 disponível

Microsoft SQL Server-transaction relationship using Transaction Log

Microsoft SQL Server – Diferença básica entre operadores Rollup e Cube

Setembro

O mês de setembro, acredito que tenha sido o mais diferente do todos os outros que havia se passado em 2018, voltei a participar das reuniões mensais de MVPs realizadas pelo Glauter Januzzi, reuniões que também participei em Outubro, Novembro e Dezembro.

Tive a oportunidade de ter o meu nome destacou em neste reunião com um curador e mantenedor dos fóruns nacionais de SQL Server tanto no MSDN e TechNet, como também, me destaquei como um dos principais MVPs envolvidos no projeto de localização e tradução do termos, frases e palavras para os novos produtos da Microsoft.

Por fim no dia 06 o aniversário do Edu e no dia 28 do João Pedro, ambos meus “pequenos” garotos.

Destaques:

Short Scripts – Setembro 2018

Microsoft oficializa a disponibilidade geral do novo Office 2019

Microsoft SQL Server Data Tools v15.8.1 para Visual Studio 2017 liberado para download

Microsoft SQL Server – Informações sobre a execução de Jobs e Steps

Microsoft SQL Server – Obtendo o histórico de execução de jobs

Outubro

Segundo quartil de 2018 se apresenta, nele continuo minha caminhada semanal de respostas e moderadores de perguntas e dúvidas aplicadas no decorrer do ano nos fóruns MSDN e TechNet Brasil dedicados ao Microsoft SQL Server, ainda mais agora com esta responsabilidade de ser um curador ou mantenedor destas plataformas, atividade que tento fazer quase que diariamente mas requer tempo, cuidado e muito sensatez para diferenciar a dúvida da profanação.

Algo um pouco fora do comum acontece neste período, recebo solicitação de alguns participantes dos Fóruns para indicação como futuros novos MVPs, uma situação bastante fora do comum e até mesmo difícil de se resolver, mas como de costume deixou bem claro que não faço indicações pois cabe a própria Microsoft identificar seus futuros representantes.

Uma outra situação que também se apresenta neste mesmo momento, é a confirmação de um usuário dos fóruns brasileiros forjando a postagens de dúvidas e respostas, ou seja, ele mesmo postava e respondia com outro perfil somente para aumentar sua pontuação e se tornar líder no ranking, situação que como eu destaquei no mês de Março, deu muito trabalho mais conseguimos comprovar que era um mal elemento.

Fora tudo isso, tive a oportunidade de realizar a única palestra presencial de 2018 na 6ª Semana da Tecnologia da Fatec São Roque, com o tema: Introdução ao Data Mining aplicado em Business para Commerce, como também, a satisfação de conhecer pessoal dois grandes profissionais conhecedores de MongoDB: Leandro Domingues e Jhonatan de Souza Soares.

Para fechar o mês publico mais uma questão do dia para o SQLServerCentral.com, esta que até o presente momento ainda não foi publicada.

Destaques:

Microsoft divulga a disponibilidade do novo Microsoft Windows Server 2019

Microsoft Hyper-V Server 2019 disponível

Script Challenge – 14 – A resposta….

Microsoft confirma desativação dos protocolos TLS 1.0 e 1.1 para Microsoft Edge e Internet Explorer em 2020

Dica do Mês – Comando Restore Database Page – Restaurando páginas de dados de uma tabela no Microsoft SQL Server

Material de Apoio – Outubro 2018

Microsoft SQL Server – Identificando as querys com maior média de consumo de CPU

Microsoft SQL Server – Identificando o consumo de CPU por Banco de Dados

Novembro

Penúltimo mês de 2018 se apresentando para fazer parte desta história, em novembro tive a oportunidade de participar nos dia 19/11 e 28/11 das bancas de avaliação dos Trabalhos de Conclusão do Curso dos alunos da Etec São Roque, momento muito especial vivido no dia 28/11 na Câmara dos Vereadores de São Roque.

Por outro lado, foi no mês de novembro que alguns sustos e medos se apresentaram, minha esposa Fernanda teve alguns problemas de saúde se agravando, consultas com Neurologista, Ginecologista foram necessárias mas graças a deus tudo correu bem e no mês de dezembro tivemos boas notícias.

O final de semestre se aproximando e com ele o final de ano, a correria começando a aumentar devido aos prazos finais de para conclusão de notas, faltas, correção de provas, trabalhos, bancas de tccs e mais um evento a ser realizado na Fatec São Roque o qual eu estava totalmente envolvido.

No finalzinho do mês, passado alguns meses desde a última consultoria, decido retornar a minhas atividades de consultor, atualizo minhas apresentações, portfólio, página da minha empresa, cadastrados nos websites do governo, coloco novamente no ar a Galvão Tecnologia e passado dois ou três dias meu telefone particular toca, e um novo cliente se apresenta.

Destaques:

Próximas versões do Windows 10 poderão ter os codinomes Vanadium e Vibranium

Nova versão do Kit de Desenvolvimento Quântico da Microsoft

Microsoft SQL Server 2019 Preview 2.1 liberado

Short Scripts – Novembro 2018

Microsoft SQL Server 2014 SP3 liberado para download

Microsoft SQL Server – Identificando as contas que estão executando os serviços

Microsoft SQL Server – Monitorando os serviços através da XP_ServiceControl

Dezembro

E ai chegamos no último mês de 2018, último trimestre, último quartil, últimos 31 dias de um ano totalmente diferente dos demais 37 que eu já havia vivido, um ano totalmente dedicado aos estudos, tanto profissionais, acadêmicos, mas principalmente pessoais e espirituais.

Os primeiros 15 dias de dezembro foram muito, mas muito intensos, final de semestre chegou, tinha mais de 120 provas, trabalhos, listas de exercícios para serem corrigidos, terem suas notas validadas e lançadas, 21 bancas de trabalho de graduação para serem assistidas, bem como, o evento que encerrava uma das minhas disciplinas, aquela que eu comecei em 2018 e me dedicar mais afinco que envolvia IoT.

Pois bem, no dia 08/12 em conjunto com meus alunos do 4º Semestre de Sistemas para Internet, realizado o 2º Encontro Tecnológico de IoT da Fatec São Roque.

Neste mesmo período de dias aconteceram o Microsoft Ignite e o MVP Day em São Paulo, mas infelizmente não tive a oportunidade de participar destes eventos.

No dia 15 aniversário do meu herói, meu pai, completou mais um aninho de vida.

Desta forma, estou aqui neste momento finalizando este post no dia 27/12 ás 02:50hrs, tendo seu início no dia 26/12 ás 23:34hrs.

Destaques:

Aproximadamente 120 milhões de brasileiros tiveram seus números de CPF expostos de forma indevida na Internet

Quatro novos tema para Windows 10

Novos ícones para o Microsoft Office 365 são apresentados

Microsoft 365 Insider Program anunciado pela Microsoft

Material de Apoio – Dezembro 2018

#23 – Para que serve

Retrospectiva 2018 – Um ano muito diferente na minha vida

Microsoft SQL Server – Monitorando – Fila de disco em tempo real

Microsoft SQL Server – Alterando o valor mínimo de Memória RAM alocada

Conclusão

Talvez você que esta lendo este post, possa se perguntar: Não seria melhor ele ter feito uma retrospectiva destacando em números os resultados obtidos ou até mesmo o que ele alcançou?

A resposta para esta dúvida ou pergunta é muito simples NÃO. 

Pois muitos vezes os números podem ser mal interpretados, ou como eu costumo dizer para meus alunos, os números podem se tornar gelados, algo sem significado ou relevância para quer os identifica, análise, julga ou interpretar.

Procurei mostrar como minha vida no decorrer deste ano foi intensa, tenho a certeza que fatos, situações ou momentos foram esquecidos ou até mesmo deixados de lado, mas talvez a relevância do que aqui foi apresentado pode ilustrar o quanto temos de afazeres, responsabilidades e momentos de grande importância que nos permitem alcançar tudo aquilo que em algum momento sonhados ou desejamos para nossas vidas.


Agradecimento

Quero agradecer em muito a sua visita, sinto-me honrado em poder compartilhar um pouco do que fiz e produzi no decorrer de ano de 2018.

Felicidades, lhe desejo um final de ano fantástico e 2019 com muita saúde e paz.

Abraços.

Anúncios

Material de Apoio – Dezembro 2018


Olá, muito bom dia….

Tudo bem? Estamos no mês de dezembro, mês de festividades, e os brasileiros correndo nas ruas, shoppings, comércios em geral para escolher seus presentes e lembrança de Natal, como de costume e a cada ano parece que o tempo voa e não nos damos conta de o quanto nossas vidas tem se tornado um grande roda gigante, repleta de altos e baixos em todos os sentidos.

Como de costume, estou aqui mais uma vez procurando colaborar e compartilhar com a comunidade técnica em mais um post da sessão Material de Apoio dedicado exclusivamente ao meu blog.

Espero que você esteja gostando do conteúdo aqui disponibilizado, como também, possa me ajudar a cada vez mais melhorar ainda.

O post de hoje

Seja bem-vindo a mais um post da sessão Material de Apoio, sendo o quinto e último do ano de 2018 e de número 160 no total desta sessão.

Para aqueles que já acompanham o meu blog a um certo tempo, os posts dedicados a sessão Material de Apoio, possuem o objetivo de compartilhar o conhecimento de recursos, funcionalidades e procedimentos que podemos realizar no Microsoft SQL Server.

Hoje não será diferente, estou trazendo alguns dos mais recentes scripts catalogados nos últimos meses, que atualmente estão compondo a minha galeria de códigos formada ao longo dos anos de trabalho como DBA e atualmente como Professor de Banco de Dados.

Neste post você vai encontrar arquivos relacionados com os seguintes temas:

  • Alter Database;
  • Arquivos de Dados;
  • Colunas Dinâmicas;
  • Contagem de Caracteres;
  • Data e Hora;
  • DBCC ShowFileStats;
  • DBCC ShrinFile;
  • DBCC TraceStatus;
  • Espaço em Disco;
  • Espaço Ocupado em Disco;
  • Extents;
  • FileGroups;
  • Função Char();
  • Função FileProperty;
  • Função Len();
  • Função PadIndex();
  • Função Replace();
  • Função Revert();
  • Função SubString();
  • Operador Composto;
  • Operador Like;
  • Páginas de Dados;
  • Pivot;Strings; e
  • View sys.database_files.

Espero que este conteúdo possa lhe ajudar em seus atividades profissionais e acadêmicas. Por questões de compatibilidade com a plataforma WordPress.com, todos os arquivos estão renomeados com a extensão .docx ao final do seu respectivo nome, sendo assim, após o download torna-se necessário remover esta extensão, mantendo somente a extensão padrão .sql.

Material de Apoio

A seguir apresento a relação de arquivos  selecionados:

1 – Material de Apoio – Dezembro – 2018 – Adicionando novos arquivos de dados.sql

2 – Material de Apoio – Dezembro – 2018 – Criando um Pivot com Colunas dinâmicas através da hora.sql

3 – Material de Apoio – Dezembro – 2018 – Invertendo a posição de palavras em uma linha.sql

4 – Material de Apoio – Dezembro – 2018 – Movendo páginas não alocadas, Truncando, Esvaziando e Removendo um arquivo de dados.sql

5 – Material de Apoio – Dezembro – 2018 – Utilizando operador Like em conjunto com Colchetes.sql

6 – Material de Apoio – Dezembro – 2018 – Utilizando operador composto.sql

7 – Material de Apoio – Dezembro – 2018 – Identificando o espaço ocupado e livre para arquivos de dados e log.sql

8 – Material de Apoio – Dezembro – 2018 – Simulando a contagem de um caracter específico dentro de uma string.sql

9 – Material de Apoio – Dezembro – 2018 – Dbcc ShowFileStats – Identificando o número de páginas alocados por extents de acordo com o filegroup.sql

10 – Material de Apoio – Dezembro – 2018 – DBCC TraceStatus – Validar as Trace Flags de inicialização habilitadas.sql

Fique a vontade para copiar, editar, compartilhar e distribuir estes arquivos com seus contatos, aproveite se possível deixe seu comentário, críticas, sugestões e observações.

Nota: Todos os arquivos disponibilizados foram obtidos ou criados com autorização de seus autores, sendo estes, passíveis de direitos autorais.

Links

Caso você queira acessar os posts anteriores da sessão, não perca tempo utilize os links listados abaixo:

https://pedrogalvaojunior.wordpress.com/2018/10/30/material-de-apoio-outubro-2018/

https://pedrogalvaojunior.wordpress.com/2018/08/14/material-de-apoio-agosto-2018/

https://pedrogalvaojunior.wordpress.com/2018/06/19/material-de-apoio-junho-2018/

https://pedrogalvaojunior.wordpress.com/2018/04/05/material-de-apoio-abril-2018/

https://pedrogalvaojunior.wordpress.com/2018/02/13/material-de-apoio-fevereiro-2018/

Agradecimento

Quero agradecer imensamente a sua visita, sinto-me honrado e orgulhoso de contar com a sua presença.

Não deixe de acessar os outros posts das demais sessões, o próximo post desta sessão será publicado no mês de fevereiro, até lá, continue aproveitando cada momento da sua vida, desfrutando com muita sabedoria os momentos de galeria e também os desafios que são colocados ao seu redor.

Um forte abraço, muita saúde, sucesso e nos encontramos em 2019 (Ano Novo, vida nova e SQL Server 2019 pintando na área).

Valeu.

Microsoft SQL Server 2014 SP3 Atualização Cumulativa 1 liberada


A Microsoft informou no decorrer desta semana em seu blog SQL Server Release Services a disponibilidade da Atualização Cumulativa 1 para SQL Server 2014 SP3.

Com base, no artigo KB4470220 publicado no site de suporte, a atualização traz correções para múltiplos bugs no SQL Server 2014 SP3.

A lista com os bugs corrigidos destaca um dos mais reportados após o lançamento do Service Pack, conhecido por causar a ocorrência de resultados incorretos quando você converte o parâmetro pollinginterval de segundos para horas na System Stored Procedure sys.sp_cdc_scan, outro bug destacado se relacionado com um erro de violação de acesso no SQL Server Analysis Services durante o processamento de um banco de dados analítico.

A Atualização Cumulativa 1 para SQL Server 2014 SP3 está disponível para download em múltiplos idiomas para plataformas 32 e 64 bits, após a instalação desta atualização o Build Version será evoluído para o número: 12.0.6205.1.

A seguir destaco relação completa de atualizações disponíveis para o Microsoft SQL Server 2014 desde o seu lançamento, em destaque as mais recentes dentre elas o Service Pack 3.

SQL Server 2014 Service Pack 3 (SP3) e atualização cumulativa (CU) compilações


Nome da atualização cumulativa Versão da compilação Número da base de dados de conhecimento Dia do lançamento
SQL Server 2014 SP3 CU1 12.0.6205.1 KB4470220 12 de dezembro de 2018
SQL Server SP3 de 2014 12.0.6024.0 KB4022619 30 de outubro de 2018

SQL Server 2014 Service Pack 2 (SP2) e atualização cumulativa (CU) compilações


Nome da atualização cumulativa Versão da compilação Número da base de dados de conhecimento Dia do lançamento
SQL Server 2014 SP2 CU15 12.0.5605.1 KB4469137 12 de dezembro de 2018
SQL Server 2014 SP2 CU14 12.0.5600.1 KB4459860 15 de outubro de 2018
SQL Server 2014 SP2 CU13 12.0.5590.1 KB4456287  27 de agosto de 2018
SQL Server 2014 SP2 CU12 12.0.5589.7 KB4130489 18 de junho de 2018
SQL Server 2014 SP2 CU11 12.0.5579.0 KB4077063 19 de março de 2018
SQL Server 2014 SP2 CU10 12.0.5571.0 KB4052725 16 de janeiro de 2018
SQL Server 2014 SP2 CU9 12.0.5563.0 KB4055557 18 de dezembro de 2017
SQL Server 2014 SP2 CU8 12.0.5557.0 KB4037356 16 de outubro de 2017
SQL Server 2014 SP2 CU7 12.0.5556.0 KB4032541 28 de agosto de 2017
SQL Server 2014 SP2 CU6 12.0.5552.0 KB4019094 17 de julho de 2017
SQL Server 2014 SP2 CU5 12.0.5546.0 KB4013098 17 de abril de 2017
SQL Server 2014 SP2 CU4 12.0.5540.0 KB4010394 21 de fevereiro de 2017
SQL Server 2014 SP2 CU3 12.0.5538.0 KB3204388 19 de dezembro de 2016
SQL Server 2014 SP2 CU2 12.0.5522.0 KB3188778 17 de outubro de 2016
SQL Server 2014 SP2 CU1 12.0.5511.0 KB3178925 25 de agosto de 2016
SQL Server 2014 SP2 12.0.5000.0 KB3171021 11 de julho de 2016

SQL Server 2014 Service Pack 1 (SP1) e atualização cumulativa (CU) compilações


Nome da atualização cumulativa Versão da compilação Número da base de dados de conhecimento Dia do lançamento
SQL Server 2014 SP1 CU13 12.0.4520.0 (build mais recente) KB4019099 17 de julho de 2017
SQL Server 2014 SP1 CU12 12.0.4511.0 KB4017793 17 de abril de 2017
SQL Server 2014 SP1 CU11 12.0.4502.0 KB4010392 21 de fevereiro de 2017
SQL Server 2014 SP1 CU10 12.0.4491.0 KB3204399 19 de dezembro de 2016
SQL Server 2014 SP1 CU9 12.0.4474.0 KB3186964 17 de outubro de 2016
SQL Server 2014 SP1 CU8 12.0.4468.0 KB3174038 15 de agosto de 2016
SQL Server 2014 SP1 CU7 12.0.4459.0 KB3162659 20 de junho de 2016
SQL Server 2014 SP1 CU6 12.0.4457.0 KB3167392 30 de maio de 2016
SQL Server 2014 SP1 CU6 (preterido) 12.0.4449.0 KB3144524 18 de abril de 2016
SQL Server 2014 SP1 CU5 12.0.4439.1 KB3130926 22 de fevereiro de 2016
SQL Server 2014 SP1 CU4 12.0.4436.0 KB3106660 21 de dezembro de 2015
SQL Server 2014 SP1 CU3 12.0.4427.24 KB3094221 19 de outubro de 2015
SQL Server 2014 SP1 CU2 12.0.4422.0 KB3075950 17 de agosto de 2015
SQL Server 2014 SP1 CU1 12.0.4416.1 KB3067839 19 de junho de 2015
SQL Server SP1 de 2014 12.0.4100.1 KB3058865 4 de maio de 2015

Compilações do SQL Server 2014 atualização cumulativa (CU)


Nome da atualização cumulativa Versão da compilação Número da base de dados de conhecimento Dia do lançamento
CU14 12.0.2569.0 (build mais recente) KB3158271 20 de junho de 2016
CU13 12.0.2568.0 KB3144517 18 de abril de 2016
CU12 12.0.2564.0 KB3130923 22 de fevereiro de 2016
CU11 12.0.2560.0 KB3106659 21 de dezembro de 2015
CU10 12.0.2556.4 KB3094220 19 de outubro de 2015
CU9 12.0.2553.0 KB3075949 17 de agosto de 2015
CU8 12.0.2546.0 KB3067836 19 de junho de 2015
CU7 12.0.2495.0 KB3046038 20 de abril de 2015
CU6 12.0.2480.0 KB3031047 16 de fevereiro de 2015
CU5 12.0.2456.0 KB3011055 17 de dezembro de 2014
CU4 12.0.2430.0 KB2999197 21 de outubro de 2014
CU3 12.0.2402.0 KB2984923 18 de agosto de 2014
CU2 12.0.2370.0 KB2967546 27 de junho de 2014
CU1 12.0.2342.0 KB2931693 21 de abril de 2014

Fontes e Direitos Autorais: Suporte da Microsoft – Versões de compilação do SQL Server 2014 – 14/12/2018 – https://support.microsoft.com/pt-br/help/2936603/sql-server-2014-build-versions

Short Scripts – Novembro 2018


Muito boa tarde, já estamos no mês de novembro, e este é mais um post da sessão Short Scripts.

Tudo bem? Já esta se preparando para as festividades de final de ano?

Eu particularmente ainda não, na verdade a grana esta curta então tenha que esperar um pouquinho….

Seguindo em frente, que alegria poder te encontrar em mais um post da sessão Short Scripts, uma das sessões mais recentes do meu blog que esta alçando a marca de 35 posts publicados trimestralmente.

Mantendo a tradição estou retornando com mais um conjunto de “pequenos” scripts catalogados e armazenados em minha biblioteca pessoal de códigos relacionados ao Microsoft SQL Server e sua fantástica linguagem de desenvolvimento Transact-SQL.

Como promessa é dívida e deve ser cumprida “ou melhor” compartilhada, estou compartilhando a minha feita a alguns meses no final do último post desta sessão, publicando mais um conjunto de scripts adicionados atualmente na minha biblioteca particular de códigos e exemplos.

O post de hoje

Normalmente compartilho os principais scripts armazenados nos últimos meses, no post de hoje vou fazer a mesma forma que o anterior, compartilhar scripts relacionados a um tema específico, sendo o tema de hoje a propriedade Identity(), desta maneira, você vai se deparar com alguns códigos que estejam envolvidos com este tema e que também se vinculem com outros, dentre os quais destaco:

  • Ativando e Desativando a propriedade Identity;
  • Capturando o último valor Identity;
  • Comando DBCC CheckIdenty();
  • Função Identity;
  • Ident_Current;
  • Realizando insert com a propriedade Identity;
  • Refazer numeração sequencial;
  • Scope_Identity;
  • Select Into;
  • Sequência Numérica;
  • Set Identity_Insert On / Off;
  • Tabela de sistema sys.indexes;
  • Tabela de sistema sys.objects;
  • Tabela de sistema sys.identity_columns;
  • Tabela de sistema sys.index_column; e
  • Variáveis de sistema @@Identity.

Chegou a hora, mãos nos teclados, a seguir apresento os códigos e exemplos selecionados para o Short Script – Novembro 2018 . Vale ressaltar que todos os scripts publicados nesta sessão foram devidamente testados, mas isso não significa que você pode fazer uso dos mesmo em seu ambiente de produção, vale sim todo cuidado possível para evitar maiores problemas.

Fique a vontade para compartilhar, comentar e melhorar cada um destes códigos.

Short Scripts

— Short Script 1  – Ativando e Desativando a propriedade Identity() —

SET IDENTITY_INSERT NomedaTabela On
Go

SET IDENTITY_INSERT NomeDaTabela Off
Go

— Short Script 2  – Comando DBCC CheckIdent(), redefinindo a sequência Identity() —
Declare @Identity Int

— Obtendo o último valor Identity() —
Set @Identity=(Select Ident_Current(‘NomedaTabela’))

— Aplicando e redefinindo a sequência Identity através do último valor obtido —
DBCC CheckIdent(‘NomedaTabela‘,Reseed,@Identity)
Go

— Short Script 3  – Identificando se a chave primária possui a propriedade Identity aplicada —
Select O.Object_Id,
O.Name,
Case IC.is_identity
When 0 Then ‘Identity desabilitado’
When 1 Then ‘Identity habilitado’
End As ‘Identity’
From sys.objects O Inner Join sys.identity_columns IC
On O.object_id = IC.object_id
Where IC.is_identity=1

— Short Script 4  – Obtendo o último valor Identity de cada tabela —
SELECT sys.tables.name AS [Table Name],
sys.identity_columns.name AS [Column Name],
sys.types.name as Type,
last_value AS [Last Value]
FROM sys.identity_columns INNER JOIN sys.tables
ON sys.identity_columns.object_id = sys.tables.object_id
Inner join sys.types
on sys.types.user_type_id = sys.identity_columns.user_type_id
ORDER BY last_value DESC

— Short Script 5  – Resentando o valor Identity atualmente em uso — 
DBCC CHECKIDENT (‘NomedaTabela’, RESEED, 0)
Go

— Short Script 6 – Identificando o valor Identity atualmente em uso —
DBCC CHECKIDENT (‘NomedaTabela’, NORESEED)
Go

— Short Script 7 – Utilizando a função Identity() em conjunto com o comando Insert —

— Exemplo 1 —
Create Table Valores
(Codigo Int)

Insert Into Valores Values(1)
Go 100

Select Identity(Int, 2,2) As Linha, Codigo Into Registros from Valores
Go

— Exemplo 2 —
Select identity(int, 1,1) As Seq, name from sys.sysdatabases
Go

Muito bem, missão mais que cumprida! Uma nova relação de short scripts acaba de ser compartilhada, mesmo sendo denominados short entre aspas “pequenos”, posso garantir que todos estes exemplos são de grande importância, apresentam um valor e conhecimento do mais alto nível.


Chegamos ao final de mais um Short Scripts, espero que este material possa lhe ajudar, ilustrando o uso de alguns recursos e funcionalidades do Microsoft SQL Server.

Acredito que você tenha observado que estes códigos são conhecidos em meu blog, todos estão relacionados aos posts dedicados ao Microsoft SQL Server publicados no decorrer dos últimos anos.

Boa parte deste material é fruto de um trabalho dedicado exclusivamente a colaboração com a comunidade, visando sempre encontrar algo que possa ser a solução de um determinado problema, bem como, a demonstração de como se pode fazer uso de um determinado recurso.

Links

Caso você queira acessar os últimos posts desta sessão, não perca tempo acesse os links listados abaixo:

https://pedrogalvaojunior.wordpress.com/2018/09/18/short-scripts-setembro-2018/

https://pedrogalvaojunior.wordpress.com/2018/05/10/short-scripts-maio-2018/

https://pedrogalvaojunior.wordpress.com/2018/02/19/short-scripts-fevereiro-2018-transaction-log/

https://pedrogalvaojunior.wordpress.com/2017/12/09/short-scripts-dezembro-2017/

Agradecimento

Obrigado mais uma vez por sua visita, fico honrado com sua ilustre presença ao meu blog, desejo e espero que você possa ter encontrado algo que lhe ajudou.

Volte sempre, nos encontraremos mais uma vez na sessão Short Scripts no post a ser publicado somente em 2019, mais especificamente no mês de fevereiro.

Um forte abraço, lhe desejo um ótimo final de ano.

Até mais.

Microsoft SQL Server 2019 Preview 2.1 liberado


A Microsoft disponibilizou na semana passada através do Microsoft Evaluation Center o Microsoft SQL Server 2019 Preview 2.1. Esta versão está disponível em múltiplos idiomas, este é o segundo Preview público liberado pela Microsoft da nova versão do Microsoft SQL Server.

De acordo com a empresa, o SQL Server 2019 oferece mais segurança, disponibilidade e desempenho para todas as cargas de dados, além de trazer novas ferramentas de conformidade, melhor desempenho em hardware moderno e alta disponibilidade em Windows, Linux e contêineres.

Alguns dos principais recursos do produto, nesta nova versão estão recebendo mais atenção, dentre eles o PolyBase, que apresenta alguns aprimoramentos, permitindo que você possa consultar outros bancos de dados como Oracle, Teradata e Mongo DB diretamente do SQL Server sem mover ou copiar os dados, além disso, pela primeira vez, o SQL Server 2019 vai além do banco de dados relacional com Spark e o Sistema de Arquivos Distribuído (HDFS) inclusos.

Baixe o Microsoft SQL Server 2019 Preview 2.1

O Microsoft Server 2019 Preview 2.1 para Windows está disponível para download, como ISO e como arquivo .cab nos seguintes idiomas: ‎

  • Inglês,
  • Alemão,
  • Japonês,
  • Espanhol,
  • Coreano,
  • Russo,
  • Italiano,
  • Francês,
  • Chinês (simplificado),
  • Chinês (tradicional) e
  • Português (Brasil)‎.

Para maiores detalhes e Instruções para as versões Red Hat Enterprise Server, SUSE Linux Enterprise Server, Ubuntu e Docker estão disponíveis aqui.

Fontes e Direitos Autorais: https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-ver15?view=sqlallproducts-allversions

Microsoft SQL Server 2014 SP3 liberado para download


A Microsoft anunciou na semana passada em seu blog SQL Server Release Services a disponibilidade do SQL Server 2014 SP3 (Service Pack 3), seu pacote cumulativo de atualizações mais recente para esta versão do SQL Server.

Os service packs do SQL Server 2014 são atualizações cumulativas e atualizam todas as edições e níveis de serviço do SQL Server 2014 para o SP3.

Microsoft anuncia disponibilidade do SQL Server 2014 SP3De acordo com a Microsoft, o Service Pack 3 traz diversas melhorias com foco na performance, escalabilidade e diagnósticos com base no feedback de seus clientes e da comunidade.

Ele também traz correções para múltiplos bugs e altera o build do SQL Server 2014 para 12.0.6024.0.

A lista com os bugs corrigidos inclui um que causa o erro Non-yielding Scheduler e faz com que o SQL Server pareça travado, um que causa erro de violação de acesso quando uma consulta faz referência à função SQLCLR em certos cenários e um que causa o erro EXCEPTION_ACCESS_VIOLATION para consultas usando sys.dm_os_memory_objects statement.

O Feature Pack para esta versão será disponibilizado para download em novembro deste ano, a relação completa de bugs corrigidos pode ser vista no artigo KB4022619 publicado no site de suporte da Microsoft.

Para realizar download específico para edição Express clique na imagem abaixo:

Para as demais versões clique na imagem a abaixo:

Fontes e Direitos Autorais: SQL Server Release Services – Server & Tools Blogs > Data Platform Blogshttps://blogs.msdn.microsoft.com/sqlreleaseservices/sql-server-2014-service-pack-3-is-now-available/

Material de Apoio – Outubro 2018


Bom dia, bom dia, bom dia…

Tudo bem? Estamos no mês de outubro, as eleições terminaram, e os brasileiros escolheram os seus representantes, passado estes últimos acontecimentos, começamos a direcionar nossos esforços e pensamentos nos acontecimentos de final de ano, aquele momento tão esperado por todos esta mais uma vez se aproximando e nossos sonhos de um futuro melhor começam novamente a serem renovados.

Como de costume, estou aqui mais uma vez procurando colaborar e compartilhar com a comunidade técnica em mais um post da sessão Material de Apoio dedicado exclusivamente ao meu blog.

Espero que você esteja gostando do conteúdo aqui disponibilizado, como também, possa me ajudar a cada vez mais melhorar ainda.

O post de hoje

Seja bem-vindo a mais um post da sessão Material de Apoio, sendo o quarto do ano de 2018 e de número 159 no total desta sessão.

Para aqueles que já acompanham o meu blog a um certo tempo, os posts dedicados a sessão Material de Apoio, possuem o objetivo de compartilhar o conhecimento de recursos, funcionalidades e procedimentos que podemos realizar no Microsoft SQL Server.

Hoje não será diferente, estou trazendo alguns dos mais recentes scripts  catalogados nos últimos meses, que atualmente estão compondo a minha galeria de códigos formada ao longo dos anos de trabalho como DBA e atualmente como Professor de Banco de Dados.

Neste post você vai encontrar arquivos relacionados exclusivamente ao recurso de Linked Server, sendo este, uma funcionalidade existente a muitos anos no Microsoft SQL Server, que nos permite de uma forma bastante simples, mas não muito prática e performática estabelecer um canal de acesso entre fontes de dados distintas, possibilitando em tempo real que o próprio SQL Server possa acessar e manipular dados entre estas fontes, bem como, armazenar estes mesmos dados internamente.

Segue abaixo a relação de temas relacionados ao uso Linked Server:

  • Access;
  • Active Directory;
  • Excel;
  • Query Dinâmica;
  • Remote Servers;
  • Senhas;
  • sp_addlinkedserver;
  • sp_addlinkedsrvlogin;
  • sp_droplinkedsrvlogin;
  • sp_dropserver;
  • Stored Procedure;
  • sys.linked_logins;
  • sys.server_principals;
  • sys.servers;
  • Transações; e
  • Variáveis.

Espero que este conteúdo possa lhe ajudar em seus atividades profissionais e acadêmicas. Por questões de compatibilidade com a plataforma WordPress.com, todos os arquivos estão renomeados com a extensão .docx ao final do seu respectivo nome, sendo assim, após o download torna-se necessário remover esta extensão, mantendo somente a extensão padrão .sql.

Material de Apoio

A seguir apresento a relação de arquivos  selecionados:

1 – Material de Apoio – Outubro 2018 – Linked Server – Acessando – Active Directory via Linked Server.sql

2 – Material de Apoio – Outubro 2018 – Linked Server – Configurando – Linked Server entre Access 2010 e SQL Server 2008.sql

3 – Material de Apoio – Outubro 2018 – Linked Server – Criando – Linked Server entre Access e Banco de Dados com Senha.sql

4 – Material de Apoio – Outubro 2018 – Linked Server – Criando – Linked Server para acesso ao Excel.sql

5 – Material de Apoio – Outubro 2018 – Linked Server – Trabalhando com Transaçoes no Linked Server.sql

6 – Material de Apoio – Outubro 2018 – Linked Server – Obtendo informacoes sobre o Linked Server.sql

7 – Material de Apoio – Outubro 2018 – Linked Server – Trabalhando com Query Dinâmica em conjunto com Linked Server e Variável.sql

8 – Material de Apoio – Outubro 2018 – Linked Server – Trabalhando com Linked Server e seus recursos básicos.sql

9 – Material de Apoio – Outubro 2018 – Linked Server – Realizando um update através de uma conexão via Linked Server.sql

Fique a vontade para copiar, editar, compartilhar e distribuir estes arquivos com seus contatos, aproveite se possível deixe seu comentário, críticas, sugestões e observações.

Nota: Todos os arquivos disponibilizados foram obtidos ou criados com autorização de seus autores, sendo estes, passíveis de direitos autorais.

Links

Caso você queira acessar os posts anteriores da sessão, não perca tempo utilize os links listados abaixo:

https://pedrogalvaojunior.wordpress.com/2018/08/14/material-de-apoio-agosto-2018/

https://pedrogalvaojunior.wordpress.com/2018/06/19/material-de-apoio-junho-2018/

https://pedrogalvaojunior.wordpress.com/2018/04/05/material-de-apoio-abril-2018/

https://pedrogalvaojunior.wordpress.com/2018/02/13/material-de-apoio-fevereiro-2018/

Agradecimento

Quero agradecer imensamente a sua visita, sinto-me honrado e orgulhoso de contar com a sua presença.

Não deixe de acessar os outros posts das demais sessões, o próximo post desta sessão será publicado no mês de dezembro, até lá, continue aproveitando cada momento da sua vida, desfrutando com muita sabedoria os momentos de galeria e também os desafios que são colocada ao nosso redor.

Um forte abraço, muita saúde, sucesso e nos encontramos no final do ano (que na verdade já chegou)….

Dica do Mês – Comando Restore Database Page – Restaurando páginas de dados de uma tabela no Microsoft SQL Server


Olá boa tarde, que surpresa te encontrar mais uma vez no meu blog, caso esta seja a sua primeira vez, fico mais feliz ainda, seja muito bem vindo.

Este é mais um post da sessão Dica do Mês, sessão dedicada a compartilhar bimestralmente dicas, novidades, curiosidades e demais assuntos, conteúdos e informações relacionadas ao Microsoft SQL Server, Banco de Dados e Tecnologias de Banco de Dados.

No post de hoje, quero compartilhar com vocês uma das funcionalidades adicionadas ao Microsoft SQL Server a partir da versão 2016 e que recentemente acabei conhecendo com um pouco mais. 

Funcionalidade que trouxe um grande salto de qualidade ao produto, ainda mais se levarmos em consideração sua praticidade e simplicidade de uso.

Como você já pode notar no título deste post, estou me referindo a nova capacidade de recuperação de dados através do comando Restore Database em conjunto com a opção Page.

Pois bem, sem mais delongas, vamos em frente, vou tentar mitigar a sua curiosidade e ao mesmo também satisfazer os meus objetivos. Sendo assim, seja bem vindo ao post – Dica do Mês – Comando Restore Database Page – Restaurando páginas de dados de uma tabela no Microsoft SQL Server.


Introdução

Umas das tarefas mais ingratas para qualquer profissional de tecnologia, principalmente aqueles que estão diretamente relacionadas as tarefas de administração, retenção e armazenamento de dados se relaciona ao momento em que nossos ambientes começam apresentam comportamentos fora do comum ou até mesmo instabilidades. 

Quem nunca se deparou com este tipo de situação! Eu por diversas vezes passei por isso nesta minha longa estrada da vida na área de tecnologia da informação.

Mas não somente isso é importante, algo muito maior e mais preocupante podemos enfrentar, o tão temido momento de restauração de um banco de dados o chamado Restore Database, imagina então você ter que recuperar uma parte específica de uma tabela ou índice que de uma hora para outra começou a apresentar falhas e simplesmente tornou-se inacessível.

Foi justamente com base neste tipo de cenário, que o time de engenheiros da Microsoft dedicados no desenvolvimento do Microsoft SQL Server adicionaram no comando Restore Database e também no interface gráfica do Management Studio a capacidade de verificar a integridade física e lógica de uma ou mais páginas de dados, como também, a possibilidade de realizar sua restauração.

Até aqui tranquilo, nada de novidade, vamos então seguir em frente e conhecer a opção Page existente no comando Restore Database.

Tabelas e Índices

As tabelas são o coração do Microsoft SQL Server e do modelo relacional em geral, pois é onde o dado é armazenado. Cada instância de um dado na tabela representa uma entidade simples ou registro (formalmente chamado de tupla). A maioria das tabelas serão relacionadas entre si. Por exemplo: A tabela Clientes possuí um identificador único CodigoCliente que é usado como chave estrangeira no relacionamento com a tabela Pedido.

As tabelas devem ser modeladas de acordo com a teoria de banco de dados relacionais, respeitando as formas normais.

Ao criarmos nossas tabelas e índices, estamos criando internamente estrutura responsáveis em armazenar em tempo real nossos dados em áreas físicas das unidades de armazenamento de dados.

Não vou me aprofundar nos conceitos relacionados a páginas de dados, pois este não é objetivo deste post, mas sim de destacar como a Restore Database Page é importante, sua finalidade e forma de uso.

Restore Database Page

Seu objetivo é possibilitar a restauração de uma página de dados danificada sem restaurar todo o banco de dados, muito menos provocar qualquer tipo de impacto ou instabilidade no acesso aos dados após sua resturaçao.

Normalmente, as páginas que são candidatos para restauração foram marcadas como “suspeita” devido a um erro que é encontrado ao acessar a página.

As páginas suspeitas são identificadas na tabela suspect_pages no banco de dados msdb.  

Avançando mais um pouco, neste momento, já temos uma noção dos elementos básicos: Tabelas e Índices, sabemos também da estrutura que as compõem chamada de páginas de dados e de que forma estas estruturas são controladas e gerenciadas, agora vamos construir nosso cenário de testes que justamente vai nos permitir ter a visão completa de toda esta estrutura e como poderemos realizar os procedimentos de sobrescrever uma página de dados e posteriormente realizar sua restauração.

Nosso ambiente

Como de costume vamos utilizar um ambiente isolado dos demais bancos de dados que você possa conter, desta maneira nosso cenário será constituído dos seguintes elementos:

  • Banco de Dados:  RestoreDatabasePage;
  • Database Recovery Model: Full;
  • Database Page_Verify: CheckSum;
  • Tabela: TabelaCorrompida; e
  • Índice Clusterizado: Ind_TabelaCorrompida_Codigo. 

Criando o ambiente

Através do Bloco de Código 1 apresentado abaixo, vamos realizar a criação dos respectivos elementos destacados anteriormente:

— Bloco de Código 1 – Criação do Ambiente —

— Criando o Banco de Dados —
Create Database RestoreDatabasePage
Go

— Acessando —
Use RestoreDatabasePage
Go

— Criando a TabelaCorrompida —
Create Table TabelaCorrompida
(Codigo Int Identity(0,2),
ValorGUID UniqueIdentifier,
ValorRandomico BigInt,
ColunaGrande Char(100) Default ‘TC’)
Go

— Criando o Índice Clusterizado na TabelaCorrompida —
Create Clustered Index Ind_TabelaCorrompida_Codigo On TabelaCorrompida(Codigo)
Go

Como nossa estrutura base pronta, chegou a hora de popular nossa tabela realizando o processo de inserção de uma aleatória massa de dados em nossa tabela, para tal, vamos utilizar o Bloco de Código 2 apresentado a seguir:

— Bloco de Código 2 – Populando a TabelaCorrompida —
— Desabilitando a contagem de linhas processadas —
Set NoCount On
Go

— Declarando a variável de controle @Contador —
Declare @Contador Int = 0

— Abrindo bloco de transação Trans1 —
Begin Transaction Trans1

While @Contador <= 132768
Begin

Insert Into TabelaCorrompida(ValorGUID, ValorRandomico)
Values (NewId(), ABS(CHECKSUM(Rand()* 200000000)))

Set @Contador += 2
End

— Confirmando e encerrando o bloco de transação Trans1 —
Commit Transaction Trans1
Go

Observação: Note que estou fazendo uso dos comandos Begin Transaction e Commit Transaction, como forma de controle e adoção de transações explícita, sendo assim, estou informando o Microsoft SQL Server quando a transação começa e deverá ser obrigatoriamente encerrada, além disso, estou evitando e isolando o processo de inserção de dados de qualquer possibilidade de bloqueio.

Neste momento, nossa tabela já esta populada “abastecida de dados”, com um total fixo de 66385 linhas de dados, denominados tecnicamente como registros lógicos.

Vamos caminhar mais um pouco, antes de realizarmos o processo de consultar a estrutura de nossas páginas de dados e posteriormente forçar sua reescrita, vamos realizar um procedimento de backup database de nosso banco de dados, procedimento importante para garantir e possibilitar a restauração das páginas, para tal utilizaremos o Bloco de Código 3 apresentado abaixo:

— Bloco de Código 3 – Backup Database —
Backup Database RestoreDatabasePage
To Disk = ‘S:\MSSQL-2017\Backup\RestoreDatabasePage-Backup-Full.bak’  — Troque para sua                                                                                                                                              unidade de disco
With Compression,
NoFormat,
Init,
Stats=10
Go

Pronto, nosso backup já esta realizado, estamos prontos e preparados para começar a brincadeira, nosso próximo passo será obter a relação das páginas de dados que forma nossa TabelaCorrompida, para isso, vamos utilizar a não documentada function sys.fn_PhysLocFormatter, solicitando ao Microsoft SQL Server a apresentação das 100 primeiras páginas de dados da nossa tabela, conforme apresenta o Bloco de Código 4:

— Bloco de Código 4 – Obtenção a relação das páginas de dados da TabelaCorrompida —
Select TOP 100 sys.fn_PhysLocFormatter(%%physloc%%) PageId,
*
FROM TabelaCorrompida
Go

A Figura 1 apresentada a seguir ilustra o resultado obtido após a execução do Bloco de Código 4:
Figura 1 – Relação das páginas de dados e seus respectivos dados.

Legal, esta ficando interessante esta brincadeira, por enquanto sem nenhum perigo!

Para que possamos realizar o processo de reescrita de uma ou mais páginas de dados, vou selecionar duas páginas (256 e 258) e seus valores para utilizar em nosso cenário, conforme a Tabela 1 apresentada abaixo:

PageID Codigo ValorGuid
(1:256:10) 20 6460AAB3-AD12-47BB-B179-8C1930B1A287
(1:258:1) 120 AEF17F9D-D838-4FEF-B723-CA3658D03319

Tabela 1 – Relação de páginas de dados e valores que iremos utilizar.

Já sabemos com quais estruturas vamos fazer o processo de reescrever suas estruturas, devemos então preparar nosso banco de dados para que nos possibilite a realização desta tarefa, desta forma, utilizaremos o Bloco de Código 5, apresentado abaixo:

— Bloco de Código 5 — Alterando a forma de acesso do banco de dados RestoreDatabasePage —

— Preparando-se para corromper a estrutura de páginas —
Use Master
Go

— Limitando a conexão do Banco de Dados para Single_User —
Alter Database RestoreDatabasePage
Set Single_User
With Rollback Immediate
Go

Ótimo, acabamos de limitar o acesso físico e lógico do nossa banco de dados para Single_User, desta forma, nenhuma outra conexão ou solicitação de acesso será permitida ao mesmo, neste momento temos acesso único e exclusivo.

O passo seguinte, consiste na consulta da estrutura da página de dados 256 e posteriormente na procura do valor 6460AAB3-AD12-47BB-B179-8C1930B1A287 armazenado no Slot 10, vamos então executar o Bloco de Código 6, apresentado abaixo:

— Bloco de Código 6 — Obtendo as informações sobre a página de dados 256 e pesquisando valor 6460AAB3-AD12-47BB-B179-8C1930B1A287 —

Para que possamos obter as informações de retorno apresentadas pelos comandos DBCC – Database Command Console, precisamos fazer uso do comando Dbcc TraceOn ativando a Trace Flag 3604 que orienta e informa ao Microsoft SQL Server que o mesmo deverá apresentar logo após a execução dos comandos DBCCs seus respectivos resultados.

— Obtendo informações sobre os slots de alocação de dados —
Dbcc TraceOn (3604)
Go

Seguindo nossa caminhada, vamos utilizar o comando DBCC Page, comando que vai nos possibilitar obter o conjunto de informações internas que formam a estrutura da nossa tabela, neste caso, vamos buscar toda estrutura da página de dados de número 256.

— Procurando valor 6460AAB3-AD12-47BB-B179-8C1930B1A287 e guardar slots —
Dbcc Page (‘RestoreDatabasePage’, 1, 256, 3);
Go

A Figura 2 apresentada abaixo, ilustra uma parte da estrutura interna da página de dados 256, apresentando sua área de buffer e page hearder:
Figura 2 – Estrutura interna da página de dados 256.

Pois bem, precisamos agora procurar o valor 6460AAB3-AD12-47BB-B179-8C1930B1A287 dentro da área de dados desta mesma página, afim de encontramos o refiro Slot 10 que armazena este dado.

Para que possamos encontrar o referido valor clique na guia de mensagens do Management Studio e preciso posteriormente a tecla de atalho CTRL + F, informando o valor na campo de busca.

A Figura 3 ilustra o 6460AAB3-AD12-47BB-B179-8C1930B1A287 localizado na estrutura interna da página de dados 256:
Figura 3 – Valor 6460AAB3-AD12-47BB-B179-8C1930B1A287 localizado.

O mesmo procedimento deverá ser feito para página 258 referente ao código 120 e ValorGuid AEF17F9D-D838-4FEF-B723-CA3658D03319.

Além disso, recomendo que você anote as informações referente OffSet e Length de dados valor pesquisado em sua referida página, pois ambos serão utilizado no procedimento de reescrita, mas como eu sou bonzinho, a Tabela 2 apresentada abaixo destaca estes valores:

Collumn Offset Length ValorGuid
2 0x8 16 6460aab3-ad12-47bb-b179-8c1930b1a287
2 0x8 16 AEF17F9D-D838-4FEF-B723-CA3658D03319

Tabela 2 – Informações sobre Offset e Length dos respectivos ValorGuid.

Agora chegou a tão esperada hora de suar o barraco (kkkk), não é bem assim, mas chegou o momento de reescrevermos a estrutura das páginas de dados: 256 e 258, através do comando DBCC WritePage declarado no Bloco de Código 7 apresentado na abaixo:

— Reescrevendo a página de dados 256 no OffSet 0x8 —
Dbcc WritePage (‘RestoreDatabasePage’, 1, 256, 8, 16, 0x00000000000000000000000000000001, 1)
Go

— Reescrevendo a página de dados 256 no OffSet 0x8 —
Dbcc WritePage (‘RestoreDatabasePage’, 1, 258, 8, 16, 0x00000000000000000000000000000001, 1)
Go

Se você conseguiu realizar o processamento destes dois comandos DBCC WritePage, isso significa que neste momento as páginas de dados 256 e 258 estão apresentando inconsistência em suas estruturas, algo que podemos comprovar através da execução do Bloco de Código 8, apresentado abaixo:

— Bloco de Código 8 – Verificando a Integridade da TabelaCorrompida —
— Alterando o acesso ao Banco de Dados para Multi_User —
Alter Database RestoreDatabasePage
Set Multi_User
Go

— Realizar testes de integridade consultando dados na TabelaCorrompida —
Use RestoreDatabasePage
Go

Select Count(Codigo) From TabelaCorrompida
Go

Ao realizarmos o comando Select Count() para tentarmos contar a quantidade de linhas de registros existentes na TabelaCorrompida, o Management Studio nos retorna a seguinte mensagem de erro:
Msg 824, Level 24, State 2, Line 162
SQL Server detected a logical consistency-based I/O error: incorrect checksum (expected: 0x4bd220eb; actual: 0xcb53a034). It occurred during a read of page (1:256) in database ID 11 at offset 0x00000000200000 in file ‘S:\MSSQL-2017\Data\RestoreDatabasePage.mdf’. Additional messages in the SQL Server error log or operating system error log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

Vamos avançar mais ainda, estamos nos aproximando do final deste post, agora que nosso ambiente esta danificado podemos fazer uso da opção Page existente no comando Restore Database que vai nos permitir restaurar a estrutura física e lógica da nossa tabela, sendo assim, vamos utilizar o Bloco de Código 9, apresentado abaixo:

— Bloco de Código 9 – Iniciando o processo de restauração e recuperação das páginas de dados —
— Realizando a Restauração das Páginas de Dados —
Use Master
Go

— Restore Database Page —
Restore Database RestoreDatabasePage
PAGE=’1:256, 1:258′ — Informando os números de páginas
From Disk = N’S:\MSSQL-2017\Backup\RestoreDatabasePage-Backup-Full.bak’
With File = 1, — Especificando o arquivo de dados
NoRecovery, — Não liberando o banco para acesso
Stats = 10
Go

 

Perfeito, realizamos o procedimento se restauração das páginas de dados 256 e 258 sem restaurar toda estrutura do nosso banco, agora podemos realizar um novo teste e verificar se a a estrutura da nossa TabelaCorrompida encontra-se funcional, conforme apresenta o Bloco de Código 10 a seguir:

— Bloco de Código 10 — Realizando um novo teste de integridade consultando dados na TabelaCorrompida —
Use RestoreDatabasePage
Go

Select Count(Codigo) From TabelaCorrompida
Where Codigo Not Between 20 And 120
Go

E para nossa surpresa o Management Studio retornou mais uma vez outra mensagem de erro:
Msg 829, Level 21, State 1, Line 186
Database ID 11, Page (1:256) is marked RestorePending, which may indicate disk corruption. To recover from this state, perform a restore.

Esta mensagem nos informa que não podemos realizar o acesso a TabelaCorrompida pois neste momento a página 256 esta marcado como pendente de restauração, este é um comportamento normal apresentado pelo SQL Server, pois o mesmo depende da realização de um backup de log e posteriormente da restauração (conhecido como Tail Log) para realizar a limpeza e desmarcar esta página de dados como pendente.

Para tal procedimento, utilizaremos o Bloco de Código 11, apresentado abaixo:

— Bloco de Código 11 — Realizando Backup Log e Restore Log (Tail Log) —
— Backupear o Log e Restaura para Liberar páginas marcadas como pendentes —
Use Master
Go

Backup Log RestoreDatabasePage
To Disk = ‘S:\MSSQL-2017\Backup\RestoreDatabasePage-Backup-Log.bak’
With NoFormat,
Init,
Name = N’RestoreDatabasePage-Backup-Log’,
Stats=10
Go

— Restaurar Log —
Restore Log RestoreDatabasePage
From Disk = ‘S:\MSSQL-2017\Backup\RestoreDatabasePage-Backup-Log.bak’
With Recovery,
Replace,
Stats = 10
Go

Acredito que o procedimento de Backup Log e Restore Log tenha ocorrido normalmente, basta agora realizar o último teste de acesso a TabelaCorrompida para poder consultar todos os dados armazenados na mesma, conforme apresenta o Bloco de Código 12:

— Bloco de Código 12 — Realizar último teste de integridade consultando dados na TabelaCorrompida —
Use RestoreDatabasePage
Go

A Figura 4 apresentada abaixo ilustra a massa de dados existente na TabelaCorrompida, após o procedimento de restauração e recuperação das páginas de dados: 256 e 258.
Figura 4 – Relação de dados existentes na TabelaCorrompida, recuperados após o procedimento de Restore Database Page.

— Obtendo a quantidade de registros armazenados na TabelaCorrompida —
Select Parcial=(Select Count(Codigo) From TabelaCorrompida Where Codigo Not In (20,120)),
Geral=(Select Count(Codigo) From TabelaCorrompida)
Go

Show de bola, muito bom, conseguimos, seguimos todos os passos desde a criação do nosso ambiente, inserção de dados, identificação das páginas e suas estrutura, reescrita na estrutura das páginas e o tão esperado procedimento de restauração.

Com isso chegamos ao final de mais um post da sessão Dica do Mês, antes de encerrarmos, gostaria de contar com a sua participação neste post, respondendo a enquete abaixo:


Referências

https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-pages-sql-server?view=sql-server-2017

https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-transact-sql

https://docs.microsoft.com/en-us/sql/t-sql/statements/backup-transact-sql

https://www.mssqltips.com/sqlservertip/1925/how-to-use-the-sql-server-sysfnphyslocformatter-undocumented-function/

https://blogs.msdn.microsoft.com/fcatae/2016/04/12/dbcc-page/

https://docs.microsoft.com/pt-br/sql/t-sql/database-console-commands/dbcc-transact-sql

http://www.sqlskills.com/BLOGS/PAUL/post/SQL-Server-2008-New-%28undocumented%29-physical-row-locator-function.aspx

https://blogs.msdn.microsoft.com/sqlserverstorageengine/2006/12/13/more-undocumented-fun-dbcc-ind-dbcc-page-and-off-row-columns/

https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql

Posts Anteriores

https://pedrogalvaojunior.wordpress.com/2018/07/26/dica-do-mes-ocultando-uma-instancia-em-execucao-do-microsoft-sql-server/

https://pedrogalvaojunior.wordpress.com/2018/04/25/dica-do-mes-sql-operations-studio-view-as-chart/

https://pedrogalvaojunior.wordpress.com/2018/03/14/dica-do-mes-microsoft-sql-server-2017-sql-graph-databases/

https://pedrogalvaojunior.wordpress.com/2018/01/24/dicadomes-sqlservertoolsuiteintroduction/

Conclusão

Como já destaquei em outros posts, a cada nova versão, atualização e correção a Microsoft transforma o SQL Server em um produto surpreende, ainda mais na sua capacidade e versatilidade de permitir aos profissionais de tecnologia, administradores de bancos de dados, programadores, entre outros, utilizar recursos nativo e também os não documentados oficialmente como um elemento capaz de se superar e sobreviver a  inúmeras falhas ou situações de perdas de dados.

No post de hoje, mais uma vez este foi constatado, a possibilidade através do comando DBCC Page de se obter informações sobre as páginas de dados, o comando DBCC WritePage (muito cuidado com ele) sensacional na sua funcionalidade em permitir uma reescrita de dados na estrutura das páginas que formam uma tabela, e principalmente a não documentada function sys.fn_physLocFormatter que de forma simples, fácil e confiável nos apresenta a distribuição de páginas de dados que compõem nossas tabelas em conjunto com os respectivos slots que armazenam nosso dados.

Acredito que você tenha conseguido entender e observar como consultamos a estrutura de páginas, a forma que alteramos seu conteúdo forçando uma reescrita de dados e depois como conseguimos através do comando Restore Database Page recuperar estas áreas.

Este é o fantástico Microsoft SQL Server, produto tão fascinante que a cada dia eu não consigo deixar de querer estudar e conhecer mais ainda.

Agradecimentos

Agradeço a você por sua atenção e visita ao meu blog. Fique a vontade para enviar suas críticas, sugestões, observações e comentários.

Nos encontramos no próximo post da sessão Dica do Mês a ser publicado no mês de dezembro.

Um forte abraço, sucesso, até mais…

Microsoft SQL Server 2014 SP2 recebe atualização cumulativa 14


A Microsoft anunciou na última segunda-feira no blog SQL Server Release Services a disponibilidade da Atualização Cumulativa 14 para SQL Server 2014 SP2, esta atualização contém correções para os problemas que foram descobertos depois do lançamento do SQL Server 2014 SP2 e das atualizações cumulativas anteriores.

O artigo KB4459860 publicado no site de suporte da Microsoft, a atualização traz correções para múltiplos bugs no SQL Server 2014 SP2.

Atualização Cumulativa 14 para SQL Server 2014 SP2

A lista com os bugs corrigidos inclui um que causa erro de violação de acesso no SQL Server Analysis Services durante o processamento de certos bancos de dados, um que causa erro de violação de acesso durante uma consulta que faz referência ao tipo de dado Extended Markup Language (XML) e um que causa erro de falta de memória em certos cenários.

A relação completa com todos os bugs corrigidos pode ser vista através do link: https://support.microsoft.com/en-us/help/4459860/cumulative-update-14-for-sql-server-2014

A Figura 1 abaixo destaca a relação de arquivos disponíveis para download relacionados a  atualização cumulativa 14, nas arquiteturas de sistemas operacionais 32 e 64 bits:

Figura 1 – Relação de arquivos disponíveis para download relacionados ao SQL Server 2014 SP2 CU 14.

A Atualização Cumulativa 14 para SQL Server 2014 SP2 (build 12.0.5600.1) está disponível para download clicando na imagem abaixo:

Compatível com os seguintes sistemas operacionais (para múltiplos idiomas):

  • Windows 10,
  • Windows 7,
  • Windows 7 Service Pack 1,
  • Windows 8,
  • Windows 8.1,
  • Windows Server 2008 R2,
  • Windows Server 2008 R2 SP1,
  • Windows Server 2012,
  • Windows Server 2012 R2, e
  • Windows Server 2016.

Fontes e Direitos Autorais: Microsoft – Download Center: 15/10/2018.

Exchange Server 2016 atualização cumulativa 11 liberada


A Microsoft disponibilizou para download a Atualização Cumulativa 11 para Exchange Server 2016.

Com base no artigo KB4134118 publicado no site de suporte da Microsoft, este pacote cumulativo traz correções de bugs e pode ser usado para efetuar uma nova instalação do Exchange Server 2016 ou para atualizar uma instalação existente.

Atualização Cumulativa 11 para Exchange Server 2016A lista com os bugs corrigidos inclui que faz com que um usuário do Exchange Server 2016 não consiga acessar um calendário compartilhado do Exchange Server 2013, um que faz com que clientes ActiveSync não consigam se conectar ou a sincronização é mais demorada em um ambiente com Exchange Server e um que faz com que o Outlook na Web entre em um loop infinito durante a autenticação.

A relação completa com os bugs corrigidos pela Atualização Cumulativa 11 para Exchange Server 2016 pode ser encontrada no link: https://support.microsoft.com/pt-br/help/4134118/cumulative-update-11-for-exchange-server-2016

Diferente das versões mais antigas do Exchange, as atualizações cumulativas não usam a infraestrutura de rollup, ao contrário, com o novo modelo de servicing do Exchange as atualizações cumulativas basicamente são versões completas do produto.

Desta forma, quando você for implementar um novo servidor com o Exchange Server 2016, basta usar a atualização cumulativa mais recente para instalar o produto completo e já atualizado. O download da Atualização Cumulativa 11 para Exchange Server 2016 pode ser feito clicando na imagem abaixo:

Vale ressaltar que esta atualização se aplica ao Exchange Server 2016 Standard e Enterprise, a atualização está disponível como um arquivo ISO com pouco mais de 5.5GB.

Fontes e Direitos Autorais: Microsoft – Suporte da Microsoft – 17/10/2018.