[bing_translator]
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/azure/storage/common/storage-introduction