Compartilhar via


Início rápido: backup e restauração do SQL em um armazenamento de objetos compatível com o S3

Aplica-se a: SQL Server 2022 (16.x)

Este guia de início rápido ajuda você a entender como gravar backups e restaurar a partir de um armazenamento de objetos compatível com o S3.

Observação

O SQL Server 2022 introduziu suporte para backup e restauração a partir de um armazenamento de objetos compatível com o S3. O SQL Server 2019 e versões anteriores não oferecem suporte a esse recurso.

Pré-requisitos

Para concluir este início rápido, você deve estar familiarizado com os conceitos de backup e restauração do SQL Server e a sintaxe Transact-SQL (T-SQL). Você precisa de um ponto de extremidade do S3, do SQL Server Management Studio (SSMS) e de acesso a um servidor que esteja executando o SQL Server ou a Instância Gerenciada de SQL do Azure. Além disso, a conta usada para emitir os comandos BACKUP e RESTORE deve estar na função de banco de dados db_backupoperator com permissões ALTER ANY CREDENTIAL e ter permissões CREATE DATABASE para RESTORE em um novo banco de dados ou deve ser membro da função de servidor fixa sysadmin e dbcreator ou proprietário (dbo) do banco de dados se estiver restaurando em um banco de dados existente.

Criar um banco de dados de teste

Nesta etapa, crie um banco de dados de teste usando o SSMS (SQL Server Management Studio).

  1. Inicie o SSMS (SQL Server Management Studio) e conecte-se à instância do SQL Server.

  2. Abra uma janela Nova Consulta.

  3. Execute o seguinte código T-SQL para criar o banco de dados de teste. Atualize o nó Bancos de Dados no Pesquisador de Objetos para ver o novo banco de dados. Os bancos de dados recém-criados na Instância Gerenciada de SQL têm a TDE habilitada automaticamente e, portanto, você precisará desabilitá-lo para continuar.

    USE [master];
    GO
    
    -- Create database
    CREATE DATABASE [SQLTestDB];
    GO
    
    -- Create table in database
    USE [SQLTestDB];
    GO
    CREATE TABLE SQLTest (
        ID INT NOT NULL PRIMARY KEY,
        c1 VARCHAR(100) NOT NULL,
        dt1 DATETIME NOT NULL DEFAULT GETDATE()
    );
    GO
    
    -- Populate table 
    USE [SQLTestDB];
    GO
    
    INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1');
    INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2');
    INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3');
    INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4');
    INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5');
    GO
    
    SELECT * FROM SQLTest;
    GO
    
    -- Disable TDE for newly-created databases on SQL Managed Instance 
    USE [SQLTestDB];
    GO
    ALTER DATABASE [SQLTestDB] SET ENCRYPTION OFF;
    GO
    DROP DATABASE ENCRYPTION KEY;
    GO
    

Criar credencial

Para criar uma credencial do SQL Server para autenticação, siga estas etapas:

  1. Inicie o SSMS (SQL Server Management Studio) e conecte-se à instância do SQL Server.

  2. Abra uma janela Nova Consulta.

  3. Crie uma credencial no nível do servidor. O nome da credencial depende da plataforma de armazenamento compatível com o S3. Ao contrário das credenciais com escopo de banco de dados do PolyBase, as credenciais de backup/restauração são armazenadas no nível da instância. Quando usada com armazenamento compatível com o S3, a credencial deve ser nomeada de acordo com o caminho da URL.

    CREATE CREDENTIAL [s3://<endpoint>:<port>/<bucket>]
    WITH
            IDENTITY    = 'S3 Access Key',
            SECRET      = '<AccessKeyID>:<SecretKeyID>';
    GO
    

Observação

Para obter mais exemplos de armazenamento compatível com credenciais de servidor compatíveis com o S3, consulte CREATE CREDENTIAL (Transact-SQL).

Backup do banco de dados

Nesta etapa, faça backup do banco de dados SQLTestDB no seu armazenamento de objetos compatível com o S3 usando T-SQL.

Faça backup do banco de dados usando o T-SQL executando o seguinte comando:

USE [master];
GO

BACKUP DATABASE [SQLTestDB]
TO      URL = 's3://<endpoint>:<port>/<bucket>/SQLTestDB.bak'
WITH    FORMAT /* overwrite any existing backup sets */
,       STATS = 10
,       COMPRESSION;

Excluir banco de dados

Nesta etapa, exclua o banco de dados antes de executar a restauração. Esta etapa é necessária apenas para fins deste tutorial, e é improvável que seja usada em procedimentos normais de gerenciamento de banco de dados. Você pode ignorar essa etapa, mas precisará alterar o nome do banco de dados durante a restauração na Instância Gerenciada de SQL do Azure ou executar o comando de restauração WITH REPLACE para restaurar o banco de dados com êxito no local.

  1. Expanda o nó Banco de dados no Pesquisador de Objetos, clique com o botão direito do mouse no banco de dados SQLTestDB e selecione excluir para iniciar o assistente Excluir objeto.
  2. Em uma Instância Gerenciada de SQL do Azure, selecione OK para excluir o banco de dados. No local, marque a caixa de seleção ao lado de Fechar conexões existentes e, em seguida, selecione OK para excluir o banco de dados.

Restaurar banco de dados

Nesta etapa, restaure o banco de dados usando a GUI no SQL Server Management Studio ou o Transact-SQL.

  1. Clique com o botão direito do mouse no nó Banco de dados no Pesquisador de Objetos do SQL Server Management Studio e selecione Restaurar o banco de dados.

  2. Selecione Dispositivo e, em seguida, selecione as reticências (...) para escolher o dispositivo.

    Captura de tela mostrando a tela Selecionar dispositivo de restauração.

  3. Selecione a URL na lista suspensa Tipo de mídia de backup e selecione Adicionar para adicionar seu dispositivo.

    Captura de tela mostrando a tela Adicionar dispositivo de backup.

  4. Insira a URL do host virtual e cole a ID da chave secreta e a ID da chave de acesso para o armazenamento de objetos compatível com o S3.

    Captura de tela da caixa de diálogo Selecionar local do arquivo de backup do S3 com os campos URL e chave preenchidos.

  5. Selecione OK para selecionar o local do arquivo de backup.

  6. Clique em OK para fechar a caixa de diálogo Selecionar dispositivos de backup.

  7. Selecione OK para restaurar o banco de dados.

A seguir estão algumas leituras recomendadas para entender os conceitos e as práticas recomendadas ao usar o armazenamento de objetos compatível com o S3 para backups do SQL Server.