Compartilhar via


Restaurar um banco de dados para o SQL Server 2022 da Instância Gerenciada de SQL do Azure

Aplica-se a:Instância Gerenciada de SQL do Azure

Este artigo descreve como restaurar um backup do banco de dados da Instância Gerenciada de SQL do Azure para o SQL Server 2022.

Visão geral

O alinhamento do formato de banco de dados entre a Instância Gerenciada de SQL e o SQL Server 2022 oferece uma maneira fácil de copiar ou mover bancos de dados de sua instância gerenciada para uma edição Enterprise, Developer ou Standard do SQL Server 2022 hospedada localmente, em máquinas virtuais no Azure, ou em outras nuvens.

A restauração de bancos de dados de instâncias gerenciadas para instâncias do SQL Server 2022 desbloqueia os seguintes cenários:

  • Assegura a mobilidade de banco de dados entre a Instância Gerenciada de SQL e os produtos baseados no SQL Server.
  • Fornece cópias de banco de dados para clientes e outras partes qualificadas.
  • Atualiza ambientes fora da Instância Gerenciada de SQL.

A capacidade de restaurar backups completos de cópia única de bancos de dados da Instância Gerenciada de SQL para o SQL Server 2022 está disponível por padrão em todas as instâncias existentes e em qualquer nova instância implantada.

Importante

A capacidade de restaurar backups completos somente cópia de bancos de dados da Instância Gerenciada de SQL para o SQL Server 2022 está disponível até o final do suporte principal para o SQL Server 2022.

Fazer um backup na Instância Gerenciada de SQL

Primeiro, crie uma credencial para acessar a conta de armazenamento de sua instância, faça um backup somente cópia de seu banco de dados e, em seguida, armazene-o.

Você pode criar sua credencial usando uma identidade gerenciada ou um token SAS (assinatura de acesso compartilhado).

Uma identidade gerenciada é um recurso do Microsoft Entra ID (antigo Azure Active Directory) que fornece instâncias de serviços do Azure, como a Instância Gerenciada de SQL do Azure, com uma identidade gerenciada automaticamente no Microsoft Entra ID, a identidade gerenciada atribuída pelo sistema.

Você pode usar essa identidade para autorizar solicitações de acesso a dados para outros recursos do Azure, incluindo contas de armazenamento. Serviços como a Instância Gerenciada de SQL do Azure têm uma identidade gerenciada atribuída pelo sistema e também podem ter uma ou mais identidades gerenciadas atribuídas pelo usuário. Você pode usar identidades gerenciadas atribuídas pelo sistema ou atribuídas pelo usuário para autorizar as solicitações.

Antes de o administrador de armazenamento do Azure gravar um arquivo de backup em uma conta de armazenamento, ele deve conceder permissões à identidade gerenciada para gravar os dados. A concessão de permissão para a identidade gerenciada da instância é feita da mesma forma que a concessão de permissão para qualquer outro usuário do Microsoft Entra. Por exemplo:

  1. No portal do Azure, no painel Controle de Acesso (IAM) de uma conta de armazenamento, selecione Adicionar atribuição de função.

  2. Selecione a função interna Colaborador de Dados de Blob de Armazenamento do controle de acesso baseado em função (RBAC) do Azure. Isso fornece acesso de leitura/gravação à identidade gerenciada aos contêineres de Armazenamento de Blobs do Azure necessários.

    Em vez de conceder à identidade gerenciada a função Colaborador de Dados de Blob de Armazenamento do Azure RBAC, você pode conceder permissões mais granulares. Para saber mais, confira Definir ACLs no Azure Data Lake Storage Gen2.

  3. Na página seguinte, em Atribuir acesso a, selecione Identidade gerenciada.

  4. Escolha Selecionar membros e, na lista suspensa Identidade gerenciada, selecione a identidade gerenciada apropriada. Para obter mais informações, confira Atribuir funções do Azure usando o portal do Azure.

Agora, criar a credencial com escopo de banco de dados para autenticação de identidade gerenciada é simples.

Observe no exemplo a seguir que Managed Identity é uma cadeia de caracteres embutida em código e você precisa substituir o nome genérico da conta de armazenamento pelo nome real da conta de armazenamento:

CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<containername>]
WITH IDENTITY = 'MANAGED IDENTITY';

Em seguida, faça um backup COPY_ONLY do banco de dados executando o seguinte exemplo de comando T-SQL:

BACKUP DATABASE [SampleDB]
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/SampleDB.bak'
WITH COPY_ONLY;

Restaurar para o SQL Server

Restaure o banco de dados no SQL Server usando a opção WITH MOVE do comando RESTORE DATABASE T-SQL e fornecendo caminhos de arquivo explícitos para os arquivos no servidor de destino.

Para restaurar o banco de dados no SQL Server, execute o seguinte comando T-SQL de exemplo com caminhos de arquivo apropriados no seu ambiente:

RESTORE DATABASE [SampleDB]
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/SampleDB.bak'
WITH
    MOVE 'data_0' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDB_data_0.mdf',
    MOVE 'log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDBlog.ldf',
    MOVE 'XTP' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDB_xtp.xtp';

Observação

Para restaurar bancos de dados criptografados em repouso usando a TDE (Transparent Data Encryption), a instância de destino do SQL Server deve ter acesso à mesma chave usada para proteger o banco de dados de origem por meio do Conector do SQL Server para Azure Key Vault. Para obter detalhes, examine a configuração do gerenciamento extensível de chaves TDE do SQL Server usando o Azure Key Vault.

Considerações

Ao restaurar um banco de dados para o SQL Server, considere o seguinte:

  • Você precisa usar o qualificador WITH MOVE e fornecer caminhos explícitos para os arquivos de dados.

  • Os bancos de dados criptografados com chaves TDE gerenciadas pelo serviço não podem ser restaurados no SQL Server. Você só poderá restaurar um banco de dados criptografado no SQL Server se ele tiver sido criptografado com uma chave gerenciada pelo cliente e o servidor de destino tiver acesso à mesma chave usada para criptografar o banco de dados. Para obter mais informações, consulte Configurar Gerenciamento Extensível de Chaves do SQL Server TDE usando Azure Key Vault.

  • Esse recurso está disponível apenas para instâncias com a política de atualização do SQL Server 2022. Você não pode restaurar o backup do banco de dados em um SQL Server 2022 a partir de uma instância com a política de atualização Always up to date.

  • Depois de restaurar um banco de dados da Instância Gerenciada de SQL do Azure para o SQL Server 2022 e remover um índice ou uma tabela com um índice, você poderá ver o Erro 8992 ao executar o DBCC CHECKDB comando.

    Cuidado

    Se você criar um índice particionado em uma tabela depois de remover um índice conforme descrito neste cenário, a tabela ficará inacessível.