Data Files no Azure – Uma outra forma de criar um database

Você já deve ter criado inúmeros databases dentro do seu ambiente on-premise ou em uma VM no Microsoft Azure utilizando IaaS e isso deve ser algo trivial para você.
Comece a pensar em uma outra forma de criar o seu database fazendo um mix entre on-premise ou VM e o Microsoft Azure Storage, é isso mesmo, você ter os dados armazenados na cloud e continuar usando seus recursos locais (memoria, CPU, Network e etc.)

Aquele velho dilema com o administrador de storage quando o DBA precisa de mais espaço pode ser minimizado com essa nova forma de criar um database.
O que seria essa forma? Isso seria armazenar seus Data Files no Microsoft Azure Blobs o que permite várias soluções híbridas, fornecendo vários benefícios para a virtualização de dados, movimento de dados, segurança e disponibilidade.

Alguns benefícios que podemos ter:

  • Migração simples e rápidos
  • Custo e armazenamento ilimitados
  • Alta disponibilidade e recuperação de desastres
  • Segurança
  • Snapshot backup

Vamos ver como isso funciona!

O que iremos precisar é de uma Storage Account:

Duas configurações são importantes: Account kind e Replication. Até nesse momento alguns tipos de replicação não suportam data files do SQL Server.
Sua storage account pode conter alguns tipos de serviços e nós iremos utilizar o BLOBs.

Acesse o serviço de Blobs e crie um novo container e acesse suas propriedades para pegar a URL. Copie a URL para o seus SSMS pois irá precisar dela em breve.

Volte a blade da sua storage account e acesse Shared Access Signature. Clique em Generate SAS para obter o token de acesso e copie o SAS token para seu SSMS.

Observe que o primeiro caractere é um ponto de interrogação “?” e deve ser removido!!!
Nesse momento já temos tudo o que precisamos do lado do Microsoft Azure e podemos criar a credencial necessária para acesso.

Para criar as credencias utilize o T-SQL abaixo

CREATE CREDENTIAL [https://sqlgeneral.blob.core.windows.net/database] 
WITH IDENTITY = N'Shared Access Signature',  --- NÃO MUDE. ISSO É MANDATORIO
SECRET = N'sv=2017-04-17&ss=bfqt&srt=sco&sp=rwdlacup&se=2017-08-23T22:14:51Z&st=2017-08-22T14:14:51Z&spr=https&sig=k1kHJoJKFKPxAJu'
GO

Nome da credencial deve ser a URL do seu container. Em SECRET insira o SAS token sem o primeiro caractere “?”

Com a credencial criada você pode criar seu database

CREATE DATABASE [FirstDB]
 CONTAINMENT = NONE
 ON  PRIMARY
( NAME = N'FirstDB', FILENAME = 'https://sqlgeneral.blob.core.windows.net/database/FirstDB.mdf' , SIZE = 8192KB , FILEGROWTH = 65536KB )
 LOG ON
( NAME = N'FirstDB_LOG', FILENAME = 'https://sqlgeneral.blob.core.windows.net/database/FirstDB_log.ldf' , SIZE = 8192KB , FILEGROWTH = 65536KB )
GO

A única diferença é que você deve apontar seus data files para a URL e não mais para um disco local.
Uma nova coluna (credential_id) na DMV sys.master_databases foi introduzida no SQL Server 2014 para fazer essa referência.

Você também pode verificar os arquivos através do portal do Azure acessando o container que criou:

https://docs.microsoft.com/en-us/sql/relational-databases/databases/sql-server-data-files-in-microsoft-azure

https://docs.microsoft.com/en-us/azure/storage/common/storage-introduction

This is Tiago Balabuch's website, and this is a bit of copy about him. He is enthusiast, fascinated, passionate, fanatic by SQL Server and in the off-hours a Data Engineer who loves what he does and he is traveling in the cloud and surfing on the wave of the moment called Azure! Originally from Brazil and with encouragement from family and friends, Tiago moved to Europe in 2017 where lives in Ireland. In addition to being a data engineer, he is also active speaker in the SQL PASS events and keeps up to date on the key technologies and technical certifications. Tiago hold these certification MCT, MCSE - Data Management and Analystics, MCSA - SQL Server 2016/2014/2012. Simply psychedelic and manic he is just one more freak who likes SQL Server and its new features ...

Responda