Microsoft SQL Server 2016 – Lista de Novidades – Parte II


Bom dia, quinta – feira, começando!!!

Salve comunidade, estou retornando com a segunda parte da Lista de Novidades do Microsoft SQL Server 2016, nova versão do SQL Server que neste momento apresenta muitas especulações, comentários e informações nas Internet, principalmente nas redes sociais.

Por este motivo também não poderia ficar de fora, como já realizado na semana passada com a primeira parte desta lista de novidades, caso você não tenha acessado este é o link:
https://pedrogalvaojunior.wordpress.com/2015/07/10/microsoft-sql-server-2016-lista-de-novidades-parte-i/

Nesta segunda parte, vou destacar mais algumas das principais novidades que a Microsoft esta divulgado em seus Blogs e parceiros, hoje darei destaque para:

  • Multiple TempDB Files;
  • For JSON;
  • Always Encripted; e
  • Polybase.

A seguir destaco estas novidades, através de uma breve descrição:

  • Multiple TempDB Files – Funcionalidade muito aguardada a anos pelos profissionais da área de banco de dados, mais especificamente aqueles que trabalham com o SQL Server, onde a partir da versão 2016, teremos a possibilidade de durante a instalação do SQL Server configurar e definir a quantidade arquivos de dados que devem formar a estrutura do banco de sistema TempDB, onde o número de arquivos é definido com base no seu número de processadores que a instância 2016 estará sendo executada. Para saber mais sobre esta nova feature acesse: http://www.sqlservergeeks.com/tempdb-configuration-sql-server-2016-setup/

 

  • FOR JSON – Uma novidade bastante interessante que mostra o quanto a Microsoft esta se dedicando a acompnhar a evolução das tecnologias de Computação em Nuvem e BigData. A FOR JSON, consiste em uma claúsula da linguagem Transact-SQL criada para ajudar o SQL Server a possibilitar a apresentação e saída de dados no formata JSON de forma nativa, algo que vai muito além de apresentar os dados, mas sim ter a capacidade de formatar estes dados interpretados pelo JSON no formato desejado pelo usuário. Para saber mais sobre esta nova feature acesse: https://msdn.microsoft.com/en-us/library/bb510411%28v=sql.130%29.aspx#ForJson

 

  • Always Encrypted – Este é um recurso bastante interessante na minha opinião e algo que pode complementar o TDE(Transparent Data Encryption) recurso introduzido no Microsoft SQL Server 2008, com a finalidade de permitir criptografia nativa no nível de banco de dados. O Always Encrypted garantir ainda mais que seus dados estão armazenados de forma segura através deste recurso de criptografia, como também, durante os processos de manipulação dos mesmo. Sua principal característica é permitir que a possibilidade de criptografar dados dentro das aplicações que estão fazendo acesso ao SQL Server, tendo a capacidade de utilizar chaves de criptografia nunca reveladas dentro do processo que realização da criptografia do dado. Como resultado, o Always Encrypted fornece uma separação entre aqueles que possuem os dados (e pode visualizálo) e aqueles que gerenciar os dados (mas deve não têm acesso). Para saber mais sobre esta nova funcionalidade, acesse: https://msdn.microsoft.com/en-us/library/mt163865(v=sql.130).aspx e https://channel9.msdn.com/Shows/Data-Exposed/SQL-Server-2016-Always-Encrypted

 

  • Polybase – Na minha opinião uma baita novidade, sinceramente algo que vai muito além de uma novo recurso, mas sim um novo horizonte para os profissionais, desenvolvedores e administradores de banco de dados, funcionalidade que vai permitir um avanço enorme no que se diz respeito a Interoperabilidade do SQL Server com outras tecnologias Non-SQL, como também, tecnologias de acesso e armazenamento de dados dentre elas o Hadoop. O PolyBase é uma nova tecnologia que integra o produto o Microsoft SQL Server Parallel Data Warehouse (PDW), com Hadoop. Ele é projetado para permitir consultas através de dados relacionais armazenados no PDW e dados não-relacionais armazenados no Hadoop de forma distribuída através do sistema arquivos Hadoop (HDFS), ignorando MapReduce distribuído, reconhecido como motor do Hadoop que normalmente é usado para ler dados do HDFS. Você pode criar uma tabela externa em PDW que referencia o Hadoop dados (como um servidor vinculado) e você pode consultar isso com SQL, em essência, adicionando estrutura para dados não-estruturados.

Untitled picturePara maiores informações sobre o Polybase e alguns cenários de uso, acesse: Books Online – Polybase, Polybase Explained, SQL Server 2016 and Polybase, Using Polybase in SQL Server 2016, Polybase in SQL Server 2016 CTP2

Muito bem pessoal, chegamos ao final desta segunda parte da lista de novidades do Microsoft SQL Server 2016, espero que você tenha gostado, na próxima semana chegaremos ao final desta lista, destacando as últimas novidades que Microsoft esta introduzindo no novo SQL Server 2016, dentre as quais chamo sua atenção para: Strech Database e Row-Level Security.

Mais uma vez obrigado por sua visita, fique a vontade para postar suas dúvidas, sugestões, críticas e comentários, sobre este ou qualquer outro post.

Boa semana e até mais.

Microsoft SQL Server 2016 – Lista de Novidades – Parte I


Olá pessoal, bom dia, feriado prolongado no estado de São Paulo.

Mesmo assim, a vida não pode parar e a dissiminação de conhecimento menos ainda, algo primordial em nossas vidas e obrigatória para evolução de todos nós.


Para manter esta tradição nada como trazer informações relevantes e atualizadas, sendo assim, gostaria de destacar um pouco sobre as principais novidades que a Microsoft esta anunciando para a nova versão do Microsoft SQL Server, isso mesmo nova versão, se você nos últimos 2 ou 3 meses não se antenou, já estamos se deparando e caminhando para a versão 2016 do Microsoft SQL Server.

Se você quiser saber mais sobre este preview, recomendo acessar os seguintes links:

http://www.microsoft.com/en-us/server-cloud/products/sql-server-2016/

http://blogs.technet.com/b/dataplatforminsider/archive/2015/05/04/sql-server-2016-public-preview-coming-this-summer.aspx

http://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2016

Dentre as diversas novidades que aparecem na presentes na nova versão, gostaria de destacar algumas que realmente não existem nas atuais, dentre elas:

  • Live Query Statistics;
  • Query Store;
  • Temporal Tables;
  • Backup to Azure;
  • Managed Backup;
  • Multiple TempDB Files;
  • FOR JSON;
  • Always Encrypted;
  • Polybase;
  • Stretch Database;
  • Row-Level Security;
  • Dynamic Data Masking.

Outras funcionalidades também estão passando por mudanças e podem ser consideradas como possíveis novidades, é o caso:

  • AlwaysOn;
  • Columnstore Indexes; e
  • In-Memory OLTP.

Por outro lado, outras funcionalidades devem começar a fazer parte da lista de recursos e funcionalidades que descontinuadas ou futuramente descontinuadas, até o presente momento a Microsoft não disponiblizou nenhum lista oficial contendo este itens.

Mas voltando a destacar as novas funcionalidades, nem sempre todas estes itens considerados novos são realmente utilizados, em muito casos existe sempre uma insegurança, medo, relutância e até mesmo desconhecimento sobre como uma ou outra novidade pode ajudar, isso é muito comum de se deparar, as mudanças geram incertezas e inseguranças.

Para tentar ajudar você que esta lendo este post a saber um pouco mais sobre este recursos e de maneira eles podem fazer parte do seu projeto, vou fazer uma breve descrição de alguns deles, e conforme novas informações, exemplos e cenários forem sendo disponibilizados, com certeza, vou procurar compartilhar com você isso.

Vamos lá, vou começar por algo que eu gosto muito no SQL Server, estou falando de estatísticas e na versão 2016, temos a:

  • Live Query Statistics – Uma das funcionalidades que pode surpreender a vida dos DBAs e desenvolvedores, a Live Query Statistisc permite que você possa exibir as estatísticas de consulta ao vivo de uma consulta ativa, proporcionando insights em tempo real, isso é surpreende, saber ao vivo e a cores o que uma consulta que esta ativa, em funcionamento no SQL Server poderá nos propor de decisão.

 

  • Query Store – Outra fantástica funcionalidade que vai ajudar em muito os DBAs na sua longa jornada de análise de planos de execução, a Query Store vai possibilidade fazer a análise de uma plano de execução que possa estar apresentando problemas de desempenho através de uma “indicação” ou “orientação” por parte do SQL Server, poder escolher um plano de execução para processar uma query, olha algo revolucionário.

 

  • Temporal Tables – O nome desta funcionalidade realmente é um pouco estranho, pelo menos na sua leitural, mas com certeza a sua finalidade é bastante interessante e vejo como um grande diferencial. A temporal tables, consiste basicamente em uma tabela que fornece uma exibição de dados em um determinado momento de tempo, isso mesmo, você vai conseguir obter informações sobre os dados de uma tabela, através de uma visão histórica, como se você estivesse voltando ao passado, voltando no tempo a posição de dados daquela tabela.

 

  • Backup to AzureO Backup para Azure recurso é projetado para permitir que você tire um backup do seu banco de dados no local diretamente para o armazenamento de Azure blog, algo que hoje pode ser feito através de recursos e ferramentas de terceiros, mas estará totalmente integrado e funcionando de forma nativa no versão 2016.

 

  • Managed BackupO recurso relacionado com o Microsoft Azure e conhecido como “Backup gerenciado” foi projetado com a finalidade de automatizar backups para o armazenamento de Blob do Azure, muito legal esta funcionalidade, o seu grande diferencial esta justamente na forma que vamos poder gerenciar e administrar os backups de nossos bancos de dados armazenados na estrutura do Azure.

Muito legal estas novas funcionalidades, realmente a Microsoft esta trabalhando forte no SQL Server, na sua capacidade de integração e interoperabilidade.

Vou fazer um pequeno suspense e deixá-los com água na boca em relação as outras novidades, na próxima semana eu retorno com a Parte II desta lista de novidades, destacando como por exemplo: Polybase e Strech Database, ambas inovações presentes na versão 2016 que terão um papel fundamente para o  SQL Server na sua capacidade intregação e interoperabilidade com ferramentas de Bigdata e Hadoop.

Espero que você tenha gostado, até a próxima semana!!!

Abraços.

Utilizando Backup de Filegroup no SQL Server – Final


Boa tarde, pessoal!!!

Estou de volta mais uma vez para finalizar esta série de artigos sobre Backup de Filegroup.

— Parte Final —

Bom mas nem tudo pode ser considerado fácil, aparentemente nosso ambiente esta integro e funcional, mas não é bem assim. Se tentarmos inserir ou consultar dados em uma das tabelas armazenada no filegroup Secondary, recebemos uma mensagem de erro informando que este filegroup encontra-se em offline, conforme apresenta a Figura 12.

Figura 12. Tentativa de consulta a tabela Saldos, mas filegroup Secondary em offline.

Isso ocorreu pois realizamos uma restauração parcial do nosso ambiente, mas não se atentamos para o detalhe que também será necessário liberar o filegroup Secondary para uso.

Consultando a system catalog view Sys.Database_Files, poderemos encontrar mais informações sobre o atual status no nosso banco de dados e seus respectivos filegroups, podemos observar a coluna state_desc, que apresenta o status atual dos arquivos, conforme a Figura 13.

Figura 13. Informações sobre o status de cada filegroup.

Analisando as informaões apresentadas na Figura 13, observamos que o Arquivo de Dados Primário e o Arquivo de
Log
de Transações estão apresentando o status de OnLine, ao contrário do segundo arquivo de dados, definido como Recovery_Pending.

Para resolvermos este pequeno obstáculo, é muito simples, basta realizar a restauração do filegroup Secondary e posteriormente restaurar novamente o Log de Transações sobre este banco, desta forma, o SQL Server ira entender que este arquivo esta liberado para ser utilizado, conforme apresenta a Listagem 10.

Listagem 10. Liberando o filegroup Secondary para uso

— Bloco 1 —

Use master

Go

Restore Database SQLMagazine

File = ‘SQLMagazine_Secondary_Dados’,

Filegroup = ‘Secondary’

From Disk = ‘C:\SQL\Backup-Secondary-SQLMagazine.bak’

With File=1,  Replace,  NoRecovery

Go

— Bloco 2 —

Use master

Go

Restore Log SQLMagazine

From Disk = ‘C:\SQL\Backup-Log-SQLMagazine.bak’

With Recovery

Go

Agora sim, nosso ambiente esta totalmente operacional, pronto para ser utilizado, ambos os filegroups estão liberados para manipulação de dados e objetos, para confirmar, podemos utilizar novamente a system catalog view Sys.Database_Files,
conforme apresenta a Figura 14, de acordo com a coluna state_desc.

Figura 14. Informações sobre cada filegroup, liberados para uso, com status OnLine.

Como podemos observar, o processo de restauração do segundo filegroup também foi realizado, com uma única diferença em relação ao filegroup Primary. Não tivemos a necessidade utilizar a opção Partial, pois não estavamos restaurando o filegroup Primary.
Havendo a necessidade de restauração do filegroup Secondary, deveríamos repetir somente os passos apresentados anteriormente na Listagem 10.

Conclusão

A utilização de diversos filegroups em um banco de dados pode trazer vários benefícios, como: maior disponibilidade, contigência, melhorias de performance e segurança. Em relação a administração poderemos ter um pouco mais de esforços necessários para manter o ambiente operacional, mas nada que acabe impedindo sua implementação.

Como podemos observar, uma das vantagens em seu utilizar dois ou mais filegroups esta vinculada com a possibilidade de manter nosso ambiente em funcionamento, mesmo que possam ocorrer problemas de disponibilidade. O artigo demonstrou de forma simples e prática como realizar a recuperação de objetos e seus dados, sem gerar a impossibilidade de acesso ao Banco de Dados.

Além disso, foi possível entender alguns conceitos relacionados a Backup e Restauração de dados, bem como, os comandos básicos utilizados em cada recursos, possibilitando entender suas diferenças e características.

De que se trata o artigo:

Neste artigo, apresentaremos uma das estratégias para se trabalhar com Filegroups, o chamado Backup de Filegroups, onde temos a disposição a possibilidade de gerar cópias de seguranças dos nossos grupos de arquivos de forma completa ou isoladamente, auxiliando na manutenção e disponibilidade de nosso ambiente.

Para que serve:

O Backup de Filegroup tem como objetivo proporcionar um ambiente mais seguro para retenção e recuperação de dados. Através desta estratégia de backup, temos a possibilidade de recuperar parte de um banco de dados, sem ter a necessidade de
recuperar o banco como um todo.

Outro detalhe importante, o Backup de Filegroup pode ser facilmente implementado, sem necessitar qualquer tipo de aquisição de Hardware ou Software. Em combinação com o serviço de tarefas agendadas existentes no SQL Server, chamado de SQL
Server Agent, torna-se possível programar a cópia isolada de partes do banco de dados em horários específicos, melhorando ainda mais a segurança das informações manipuladas anteriormente a última cópia de segurança(Backup de Dados).

Em que situação o tema útil:

Este tipo de funcionalidade pode ser útil em ambientes com grande manipulação de informações, necessidade de contigência isolada dos dados, ou ainda que necessitam ser armazenadas de forma segura e não permitam qualquer tipo de perda. Em caso de qualquer falha, através do Backup de Filegroups torna-se possível recuperar as áreas manipuladas de um Banco de Dados sem afetar outras áreas que estão integras ou necessariamente não necessitam ser recuperadas através de processo de Restauração de Dados(Restore).

Notas – Backup: Permite o backup integral ou parcial do banco de dados do SQL Server ou de arquivos individuais ou de grupos de arquivos do banco de dados. Não é possível criar backups no nível de tabela.
O backup e a restauração do SQL Server funcionam em todos os sistemas operacionais suportados, se forem sistemas de 64 ou 32 bits. O escopo de um backup de dados (um backup de dados) pode ser um banco de dados inteiro, um banco de dados parcial ou um conjunto de arquivos ou grupos de arquivos.

Restore: Restauração é o processo de copiar dados de um backup e aplicar transações em log aos dados para fazer roll-forward até o ponto de recuperação de destino. Um backup de dados ou diferencial contém registros de log de transações suficientes para permitir roll-froward nas transações ativas como parte da restauração de cada backup.

Cada backup contém também log suficiente para reverter transações não confirmadas para trazer o banco de dados a um estado operacional consistente e utilizável. O processo de reverter transações não confirmadas, se houver, e trazer o banco de dados online é conhecido como recuperação.

Modelos de Recuperação de Banco de Dados: Os modelos de recuperação são projetados para controlar a manutenção de log de transações. Existem três modelos de recuperação: simples, completo e bulk-logged.
Geralmente, um banco de dados usa o modelo de recuperação completa ou o modelo de recuperação simples.

Referências

Books OnLine do SQL Server 2008.

ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.pt/s10de_6tsql/html/89a4658a-62f1-4289-8982-f072229720a1.htm

Books OnLine do SQL Server 2008.

ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.pt/s10de_4deptrbl/html/0331befe-dc11-462e-a6f2-da7b08f0a672.htm

Books OnLine do SQL Server 2008.

ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.pt/s10de_6tsql/html/877ecd57-3f2e-4237-890a-08f16e944ef1.htm

MSDN Library – Backup (Transact-SQL)

http://msdn.microsoft.com/en-us/library/ms186865.aspx

MSDN Library – Backup Overview (SQL Server)

http://msdn.microsoft.com/en-us/library/ms175477.aspx

MSDN Library – Restore Restrictions Under the Simple Recovery Model

http://msdn.microsoft.com/en-us/library/ms189323.aspx