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

Anúncios

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


Um relatório da empresa InfoArmor, destaca que um servidor Web com Apache foi descoberto em março deste ano não estava configurado corretamente e expôs online os dados armazenados nele.

Por padrão, o Apache retorna o conteúdo de um arquivo chamado index.html quando ele está presente. Se um arquivo com este nome não existe e a listagem de diretórios está habilitada, ele exibirá então os arquivos, pastas e também possibilitará seu download.

Como é possível ver na imagem abaixo do servidor configurado incorretamente, alguém deve ter renomeado o arquivo index.html para index.html_bkp, o que fez com que o servidor listasse os arquivos e pastas com tamanhos variando de 27MB até 82GB:

Números de CPF de 120 milhões de brasileiros foram expostos online

Ao abrir um dos arquivos os analistas da InfoArmor descobriram que ele continua informações como números de CPF, informações pessoais, informações militares, números de telefone, informações sobre empréstimos e endereços:

Database Tables

Ao tentar entrar em contato com o proprietário do banco de dados enquanto ainda monitorava o diretório exposto, a InfoArmor viu o arquivo de 82GB ser substituído por um arquivo .sql com 25GB.

Com base nos tipos de arquivos armazenados e nos dados contidos neles, é possível que o diretório exposto estava sendo usado para armazenar backups de bancos de dados sem perceber que eles estavam expostos online.

No final de março o servidor foi reconfigurado e os arquivos deixaram de ser expostos publicamente, não é possível afirmar por quanto tempo os arquivos ficaram expostos antes do servidor configurado incorretamente ter sido descoberto pela InfoArmor e nem se criminosos tiveram acesso aos dados.

Fontes e Direitos Autorais: BleepIngComputer – Lawrence Abrams – 12/12/2018 – https://www.bleepingcomputer.com/news/security/taxpayer-id-numbers-for-120-million-brazilians-exposed-online; e

InfoArmor – Christian Less – Special Report: InfoArmor Finds 120 Million Brazilian Identities Exposed – 12/12/2018 – https://blog.infoarmor.com/employees/infoarmor-discovers-120-million-brazilian-identities-exposed

Windows Server 2019 terá OpenSSH como recurso opcional


A Microsoft informou no início desta semana em seu blog que o cliente e servidor OpenSSH agora está disponível oficialmente como recurso opcional no Windows Server 2019, ele também está disponível no Windows 10 v1809 (o Windows 10 October 2018 Update).

A versão para Windows foi introduzida inicialmente no Windows 10 Fall Creators Update e no Windows Server v1709 como uma versão de testes:

Windows 10 Openssh 001

A partir do lançamento do Windows 10 v1803, o OpenSSH começou a ser suportado oficialmente como um recurso opcional, entretanto no Windows Server, ele começa a ser introduzida nesta nova versão do sistema operacional, mas oficialmente suportado como recurso opcional:

Windows 10 Openssh 002
Windows 10 Openssh 003

A Microsoft anunciou em 2015 que estava trabalhando para incluir o suporte nativo para OpenSSH no Windows, o SSH ou Secure Shell é uma ferramenta de linha de comando presente no UNIX e em distribuições do Linux usada para realização de conexões criptografadas a servidores remotos.

Para mais informações acesse a página do projeto Win32-OpenSSH no GitHub ou através da documentação oficial Microsoft, acessando o Microsoft Docs.

Fontes e Direitos Autorais: Microsoft – Windows Blogs –  / Program Manager, PowerShell Team – 12/12/2018.

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 tenho 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 reconhece e corrige problemas relacionados aos servidores de ativação para Windows 10


Os primeiros relatos sobre os problemas com os servidores de ativação do Windows 10 surgiram no Reddit.

Microsoft corrige problemas com os servidores de ativação do Windows 10

Segundo os relatos, em alguns casos o Windows 10 relata repentinamente que não está mais ativado e a reativação não funciona corretamente. Alguns usuários confirmaram que tiveram o “downgrade” do Windows 10 Pro para o Windows 10 Home.

Em resposta a um usuário em seu fórum de suporte, a Microsoft confirmou que o problema estava afetando usuários no Japão, Coreia do Sul, Américas e em outros países.

No mesmo post a empresa disse que estava investigando o que causou isso e confirmou que estava trabalhando em uma solução. Ainda não se sabe o número exato de computadores afetados. Outro detalhe é que o problema aparentemente diferentes versões do Windows 10, como a 1809 e a 1803.

Muitos dos usuários que tiveram seus PCs afetados pelos problemas com a ativação do Windows 10 disseram que eles fizeram o upgrade a partir do Windows 7 e Windows 8.1 quando a oferta do upgrade gratuito ainda estava em vigor.

Fontes e Direitos Autorais: https://www.zdnet.com/article/windows-10-users-seeing-their-erroneous-product-activation-issues-resolved/#ftag=RSSbaffb68

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 torná-lo ainda melhor no decorrer do tempo com a sua participação.

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.

Script Challenge – 14 – A resposta….


Boa tarde, pessoal…

Tudo bem?  Seja mais uma vez muito bem vindo ao meu blog, mais especificamente ao post que apresenta a resposta para o Script Challenge – 2018 – Post 14, publicado em junho de 2018, sendo este respectivamente o segundo post após o retorno desta desafiadora sessão em meu blog denominada Script Challenge (Script Desafiador ou Desafio do Script) como queiram traduzir.

Espero que você já tenha ouvido falar desta sessão ou acessado alguns dos posts publicados na mesma, caso ainda não tenha feito, fique tranquilo você vai encontrar no final deste post uma pequena relação contendo os últimos desafios lançados e seus respostas.

Vamos então falar um pouco mais sobre o último desafio, estou me referindo ao Script Challenge 14, desta forma, seja bem vindo a mais um post da sessão Script Challenge.


Script Challenge 14

Falando do desafio de número 14, o mesmo foi publicado no mês de junho de 2018, período de data em que o mundo todo praticamente direcionou os seus olhares para a Rússia, mais especificamente para os jogos de futebol que estavam ocorrendo no país naquele momento.

Pois bem, o Script Challenge 14 não tem nenhum relação com o mundo do futebol, muito menos com o esporte, e como diria aquele apresentador do programa que passa ao domingos: “Sabe o que isso significa? Nada…..”.

Na verdade não é bem assim, para todos aqueles que trabalham com tecnologia e são responsáveis em armazenar, compartilhar, gerenciar e manter dados armazenados em banco de dados, sabe muito bem o quanto temos que nos preocupar em estabelecer boas práticas de retenção de dados afim de podermos ter uma quem sabe vida tranquila ou momentos de lazer.

Continuando nossa história, quero lhe perguntar: E ai já matou a charada? Eu acredito que sim!

Mas para te ajudar mais um pouco vou apresentar a Figura 1 que contem todo código Transact-SQL utilizado neste desafio, contendo trechos ou partes de código ocultas, procedimento que realizei no post que contempla o lançamento deste desafio como forma de aumentar o nível de dificuldade:

Figura 1 – Código Transact-SQL apresentado no Script Challenge 14.

Bom chegou a hora de revelar o que exatamente este bloco de código esta fazendo, chegou o momento de revelar e desvendar este desafio, a seguir apresento a resposta para o Script Challenge 14 e o trecho de código disponível para você utilizar em seus ambientes de trabalho ou estudos.

A resposta

Tanto no post de lançamento do desafio, bem como, neste post que a resposta para o mesmo, eu deixei algumas pequenas dicas para tentar ajudar a identificar a resposta, dentre as quais a relação do script com uma das mais tradicionais atividades desempenhadas por um Administrador de Banco de Dados ou Profissional de tabela, mais diretamente falando a execução de uma operação de backup de banco de dados.

Mas se mesmo assim, você ainda não conseguiu adivinhar ou até mesmo esta se perguntando qual a relação do Script Challenge – 14 tem haver com um momento de lazer, a resposta é muito simples, para qualquer Administrador de Banco de Dados, Administrador de Servidores, Desenvolvedor, enfim um profissional de tecnologia, tudo o que fazemos basicamente em um computador é manipular dados (Criar, Atualizar, Excluir).

Tudo o que fazemos esta relacionado com esta palavrinha pequena mas de altíssima importância e pensando neste sentido a resposta para este desafio se relaciona a estimativa de crescimento de um arquivo de backup, e o quanto esta atividade tão importante e de alta complexidade pode impactar totalmente na vida daqueles que assim como eu um dia ou por diversos momentos teve que abrir mão do seu convívio familiar para se dedicar a acompanhar esta atividade.

Então a resposta para o Script Challenge 14 se relaciona com a possibilidade que o script apresenta em nos ajudar a identificar e estimar o quanto de espaço livre em disco em megabytes ainda teremos antes da execução do backup database levando-se em consideração o tamanho do arquivo de backup a ser criado.

Isso mesmo, esta é a resposta, e o script original que apresenta esta funcionalidade apresentada abaixo:

— Script Challenge 14 – A resposta – Identificando o total de espaço livre em disco antes da realização do backup database — 

— Criando a Stored Procedure —
USE AdventureWorksDW2016
Go

CREATE PROCEDURE dbo.dbo.EstimatedDriveFreeSpaceAndDBSize (
@drvLetter VARCHAR (5),
@enoughSpaceForBackupFlag BIT OUTPUT
)
AS
BEGIN
DECLARE @estimatedBackSizeMB INT,
@estimatedDriveFreeSpaceMB INT,
@dbCheckMessage varchar(80)

SET NOCOUNT ON

SET @dbCheckMessage = Concat (‘Checking database ‘, DB_NAME ())

SELECT @estimatedBackSizeMB = round (sum (a.total_pages) * 8192 / SQUARE (1024.0), 0)
FROM sys.partitions p JOIN sys.allocation_units a
                                            ON p.partition_id = a.container_id
                                           LEFT JOIN sys.internal_tables it
                                            ON p.object_id = it.object_id

CREATE TABLE #freespace

(drive VARCHAR (5),

MBFree DECIMAL (8, 2))

INSERT INTO #freespace (Drive, MBFree)
EXEC xp_fixeddrives

SELECT @estimatedDriveFreeSpaceMB = MBFree
FROM #freespace
WHERE drive = @drvLetter

IF @estimatedBackSizeMB * 1.15 < @estimatedDriveFreeSpaceMB
 SET @enoughSpaceForBackupFlag = 1
ELSE
 SET @enoughSpaceForBackupFlag = 0

SELECT DatabaseName = db_name(),
Estimated_Back_Size_MB = @estimatedBackSizeMB,
Estimated_Drive_Free_Space_MB = @estimatedDriveFreeSpaceMB,
EnoughSpaceForBackupFlag = @enoughSpaceForBackupFlag

DROP TABLE #freespace
SET NOCOUNT OFF
END
GO

Então, agora você deve ter gostado deste desafio, não é verdade? Poder estimar o espaço livre em disco e o tamanho ocupado pelo arquivo mesmo sem executar o Backup Database é realmente uma grande funcionalidade que o Microsoft SQL Server possui. 

Observações

  1. Estamos criando uma User Stored Procedure EstimatedDriveFreeSpaceAndDBSize;
  2. A mesma possui um parâmetros de entrada de valores: @drvLetter (utilizado para informar qual a letra da unidade de disco que iremos analisar); e
  3. Um parâmetro de saída @enoughSpaceForBackupFlag (utilizado no momento da execução da stored procedure como sinalizar responsável em apresentar uma mensagem ao usuário).

Para que você possa entender mais ainda sobre como podemos obter os resultados apresentados por este script, declaro a seguir uma possível maneira de executar o Script Challenge – 14:

— Executando o Script Challenge – 14 —

USE AdventureWorksDW2016
Go

DECLARE @enoughSpaceForBackupFlag bit

EXEC Master.dbo.EstimatedDriveFreeSpaceAndDBSize ‘S’, @enoughSpaceForBackupFlag OUTPUT

PRINT @enoughSpaceForBackupFlag
IF @enoughSpaceForBackupFlag = 1
PRINT ‘Continue to Backup…’
ELSE
PRINT ‘Drive Space Problem…’
GO

A Figura 2 apresentada abaixo, ilustra o conjunto de dados retornados após a execução do Script Challenge – 14:

Figura 2 – Informações relacionadas a estimativa de tamanho do arquivo de backup e espaço livre em disco em megabytes.

Muito bom, sensacional, conseguimos, chegamos ao final, esta é a resposta para o Script Challenge 14, fico extremamente feliz por ter conseguido compartilhar este conteúdo com vocês.

Espero que você tenha gostado deste novo post da sessão Script Challenge!


Sua Participação

No post de lançamento deste desafio, contei com a participação através de uma enquete contendo algumas opções de respostas que poderiam estar relacionadas com o Script Challenge 14. A seguir apresento o resultado desta enquete:

A opção mais votada com 77,78% dos votos é justamente a resposta correta para este desafio, o qual exibe retorna ao usuário informações relacionadas a estimativa de espaço em disco ocupado pelo arquivo de backup de banco de dados e o espaço livre disponível em disco após a conclusão do backup.

Referências

Agradecimentos

Obrigado por sua visita, espero que este conteúdo aqui apresentado como um possível “desafio” possa ser útil e ao mesmo tempo prover conhecimento, aprendizado ou mostrar recursos e problemas existentes no Microsoft SQL Server que as vezes parecem não ter uma resposta.

Um forte abraço nos encontramos em breve nas demais sessões e especialmente em fevereiro de 2019 em mais um post da sessão Script Challenge.

Até a próxima…

Windows Server 2019 Essentials disponível gratuitamente por até 180 dias


A Microsoft liberou para download em sua plataforma Microsoft Evaluation Center a versão de avaliação do Windows Server 2019 Essentials, que pode ser utilizada gratuitamente pelo período de até 180 dias.

Caso você ainda não saiba, o Windows Server Essentials oferece uma solução de servidor flexível, acessível e fácil de usar para pequenas empresas com até 25 usuários e 50 dispositivos.

Experimente o Windows Server 2019 Essentials gratuitamente por até 180 diasIndicada principalmente para ser implementada como um primeiro servidor, o Windows Server Essentials também pode ser usado como servidor principal em um ambiente multiservidores(Multi-Servers) para pequenas empresas.

A versão de avaliação do Windows Server 2019 Essentials está disponível para download em arquivo no formato ISO e apenas para plataformas 64 bits nos seguintes idiomas:

  • Chinês (simplificado);
  • Holandês (Holanda);
  • Inglês;
  • Francês;
  • Húngaro;
  • Italiano;
  • Japonês;
  • Coreano;
  • Polonês;
  • Português (Brasil);
  • Português (Portugal);
  • Russo;
  • Espanhol;
  • Sueco (Suécia);
  • Turco; e
  • Tcheco.

A realizar o pedido de download e instalação, utilize a seguinte chave de produto: NJ3X8-YTJRF-3R9J9-D78MF-4YBP4, informada pela Microsoft válida para o uso durante o período de 180 dias.

Para maiores informações sobre esta nova versão do Windows Server acesse: https://docs.microsoft.com/en-us/windows-server-essentials/get-started/what-s-new-19?branch=WS2019-RELEASE

Fontes e Direitos Autorais: Microsoft.com – Docs – 03/10/2019.

Microsoft Hyper-V Server 2019 disponível


Em conjunto com o anúncio da nova versão do Windows Server 2019, a Microsoft anunciou também a disponibilidade o Hyper-V Server 2019, produto gratuito que oferece virtualização de classe empresarial para seu datacenter e sua nuvem híbrida.

Através do Microsoft Hyper-V Server 2019 você poderá utilizar recursos novos e aprimorados que podem ajudar a suprir as necessidades de performance e escala das suas cargas de trabalho de missão crítica.

O Microsoft Hyper-V Server 2019 está disponível para download como um arquivo ISO apenas para plataformas 64 bits e nos seguintes idiomas:

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

Fontes e Direitos Autorais: Microsoft.com – Evaluation Center – 03/10/2019.

Microsoft divulga a disponibilidade do novo Microsoft Windows Server 2019


A Microsoft divulgou ontem no Windows Server Blog a disponibilidade do novo Microsoft Windows Server 2019, nova versão do seu sistema operacional para servidores.

Através do anúncio enviado aos clientes com Software Assurance, a Microsoft informou a disponibilidade do download do Windows Server 2019 através do portal Volume Licensing Service Center (VLSC).

Microsoft anuncia disponibilidade geral do Windows Server 2019Profissionais de TI e empresas interessadas podem experimentar a versão de avaliação do novo Windows Server que estará disponível em breve no Microsoft Evaluation Center.

Os clientes que neste momento estão utilizando o Windows Server na plataforma Azure, o Windows Server 2019 também está disponível no Azure Marketplace.

No decorrer deste mês de outubro o novo Windows Server será disponibilizado para os assinantes do Visual Studio (ex-MSDN) e em outros portais como o Microsoft Partner Network (MPN).

Para saber mais sobre o novo Windows Server consulte as sessões da conferência Ignite que agora estão disponíveis sob demanda, como também, confira a documentação atualizada disponível aqui.

Caso pretenda fazer o upgrade a partir de uma versão anterior, acesse o novo Upgrade Center para encontrar informações úteis sobre o processos de upgrade e mais.

Para testar futuras versões do Windows Server, inscreva-se no Windows Insider Program ou no Windows Insider Program for Business.

Para maiores informações acesse: http://aka.ms/WS2019Preview

Fontes e Direitos Autorais: Microsoft.com – Windows Server Blog – Vinicius Apolinário – 02/10/2019.

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


O Microsoft SQL Server Data Tools v15.8.1 é uma ferramenta de desenvolvimento moderna que você pode baixar gratuitamente para criar bancos de dados relacionais do SQL Server, bancos de dados SQL do Azure, pacotes do Integration Services, modelos de dados do Analysis Services e relatórios do Reporting Services.

Através do SSDT, podemos projetar e implantar qualquer tipo de conteúdo do Microsoft SQL Server com a mesma facilidade com que desenvolve um aplicativo no Visual Studio.

Esta nova versão é compatível com os sistemas operacionais com o Windows 8.1, Windows 10, Windows Server 2012 R2 e Windows Server 2016, vale ressaltar que o Windows 7 SP1 não é suportado.

Para realizar a instalação do SSDT com o Visual Studio, selecione as opções disponibilizadas pelo instalador, conforme apresenta a Figura 1 abaixo:
Sql Dt 1581 02

Figura 1 – Opções de instalação disponíveis para o Microsoft SQL Server Data Tools v15.8.1.

Informações sobre a versão
Número de lançamento: 15.8.1.
Número de compilação: 14.0.16179.0.
Data de lançamento: 27 de setembro de 2018.

Idiomas disponíveis

Esta nova versão do Microsoft SQL Server Data Tools v15.8.1 esta disponível para os seguinte idiomas:

Chinese (Simplified) | Chinese (Traditional) | English (United States) | French
German | Italian | Japanese | Korean | Portuguese (Brazil) | Russian | Spanish

IMPORTANTE: Antes de instalar o SQL Server Data Tools v15.8.1 para Visual Studio 2017, desinstale as extensões “Projetos do Microsoft Analysis Services” e “Projetos do Microsoft Reporting Services”, caso eles já estejam instalados no Visual Studio 2017 e feche todas as instâncias do Visual Studio.

A Figura 2 a seguir apresenta a tela inicial de instalação do Microsoft SQL Server Data Tools 15.8.1.

select AS, IS, RS
Figura 2 – Tela inicial de instalação do Microsoft SQL Server Data Tools 15.8.1.

O changelog publicado pela Microsoft destaca que a versão 15.8.1 do SQL Server Data Tools para Visual Studio 2017 remove o suporte para o SQL Server 2012 e adiciona suporte para o SQL Server 2019 Preview.

Para maiores informações sobre o SQL Server Data Tools acesse: https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-2017

Para realizar o download, basta clicar na imagem abaixo:
Fontes e Direitos Autorais: Microsoft – Docs SQL SSDT (SQL Server Data Tools) – 28/09/2018.