Neste tutorial, descrevemos como fazer backup direto de um banco de dados do Microsoft SQL Server 2022 em um bucket do Cloud Storage e restaurá-lo mais tarde. Introduzido no SQL Server 2022, o recurso nativo de backup do SQL Server oferece uma estratégia simples e econômica para recuperação de desastres e migração de dados baseadas na nuvem.
O recurso nativo de backup do SQL Server usa os comandos BACKUP TO URL e
RESTORE FROM URL, que são compatíveis com o armazenamento de objetos
compatível com S3, incluindo o Cloud Storage. Isso elimina a necessidade de
armazenamento local intermediário, simplificando o fluxo de trabalho de backup e reduzindo
a sobrecarga operacional.
Este tutorial é destinado a administradores e engenheiros de banco de dados.
Criar um bucket do Cloud Storage
É possível criar um bucket do Cloud Storage usando o console Google Cloud ou o comando gcloud storage.
Para criar um bucket do Cloud Storage usando o comando gcloud storage, siga estas etapas.
Selecionar o projeto Google Cloud .
gcloud config set project PROJECT_ID
Crie o bucket Para criar o bucket, execute o comando
gcloud storage buckets createda seguinte maneira.gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION
Substitua:
BUCKET_NAME: com um nome exclusivo para o bucket.BUCKET_LOCATION: com o local do bucket.
Configurar a interoperabilidade do S3 e criar uma chave de acesso
Para permitir que o SQL Server se comunique com o Cloud Storage usando o protocolo S3, ative a interoperabilidade e gere uma chave de acesso seguindo estas etapas:
Acesse as configurações do Cloud Storage no console Google Cloud .
Selecione a guia Interoperabilidade.
Em Chaves de acesso para sua conta de usuário, clique em Criar uma chave.

Salve a chave de acesso e o secret gerados com segurança. Você vai precisar deles na próxima etapa.
Para ambientes de produção, recomendamos o uso de uma chave de código de autenticação de mensagem baseada em hash (HMAC) de conta de serviço para melhorar a segurança e o gerenciamento.
Adicionar credenciais ao SQL Server
Para permitir que o SQL Server se autentique com seu bucket do Cloud Storage, crie um objeto de credencial no SQL Server para armazenar a chave de acesso e o segredo do Cloud Storage. Para fazer isso, execute o seguinte comando T-SQL no SQL Server Management Studio (SSMS).
CREATE CREDENTIAL CREDENTIAL_NAME
WITH
IDENTITY = 'S3 Access Key',
SECRET = 'ACCESS_KEY:SECRET';
Substitua:
CREDENTIAL_NAME: com um nome para suas credenciais.ACCESS_KEY: com a chave de acesso criada na seção anterior.SECRET: com o secret que você criou na seção anterior.
IDENTITY = 'S3 Access Key' é crucial porque instrui o SQL Server a usar o novo conector do S3. O secret precisa ser formatado como a chave de acesso, seguido por dois pontos e, em seguida, a chave secreta.
Exemplo:
CREATE CREDENTIAL sql_backup_credentials
WITH
IDENTITY = 'S3 Access Key',
SECRET = 'GOOGGE3SVF7OQE5JRMLQ7KWB:b31Pl8Tx1ARJfdGOsbgMFQNbk3nPdlT2UCYzs1iC';
Fazer backup dos dados no Cloud Storage
Com a credencial no lugar, agora é possível fazer backup do banco de dados diretamente no bucket do Cloud Storage usando o comando BACKUP DATABASE com a opção TO URL. Adicione o prefixo s3://storage.googleapis.com ao URL para usar o conector do S3, conforme mostrado abaixo.
BACKUP DATABASE DATABASE_NAME
TO URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak'
WITH
CREDENTIAL = 'CREDENTIAL_NAME',
FORMAT,
STATS = 10,
MAXTRANSFERSIZE = 10485760,
COMPRESSION;
Substitua:
CREDENTIAL_NAMEO nome da credencial que você criou na etapa 3. Por exemplo:sql_backup_credentials.BUCKET_NAMEO nome do bucket criado na Etapa 1.FOLDER_NAME: o nome da pasta em que você quer armazenar o arquivo de backup.BACKUP_FILE_NAMEO nome do arquivo de backup.
Confira abaixo as descrições dos parâmetros de backup usados no comando:
FORMAT: substitui os arquivos de backup atuais e cria um novo conjunto de mídia.STATS: informa o progresso do backup.COMPRESSION: compacta o backup, o que pode reduzir o tamanho do arquivo e o tempo de upload.MAXTRANSFERSIZE: recomendado para evitar erros de E/S com arquivos de backup grandes.
Para mais informações, consulte Backup do SQL Server para URL de armazenamento de objetos compatível com S3.
Para bancos de dados muito grandes, divida o backup em vários arquivos da seguinte maneira.
BACKUP DATABASE DATABASE_NAME
TO
URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_0.bak',
URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_1.bak'
-- ... more files
WITH
CREDENTIAL = 'CREDENTIAL_NAME',
FORMAT,
STATS = 10,
MAXTRANSFERSIZE = 10485760,
COMPRESSION;
Restaurar seus dados do Cloud Storage
É possível restaurar seu banco de dados diretamente de um arquivo de backup armazenado no Cloud Storage usando o comando RESTORE DATABASE da seguinte maneira.
RESTORE DATABASE DATABASE_NAME
FROM URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak'
WITH
CREDENTIAL = 'CREDENTIAL_NAME';
Substitua: