Compartilhar via


Migrar: SQL Server para SQL Managed Instance habilitado pelo Azure Arc

Este cenário demonstra as etapas para migrar um banco de dados de uma instância do SQL Server para uma Instância Gerenciada de SQL do Azure no Azure Arc por meio de dois métodos de backup e restauração diferentes.

Usar o Armazenamento de Blobs do Azure

Use o armazenamento de blobs do Azure para migrar para a Instância Gerenciada de SQL habilitada pelo Azure Arc.

Esse método usa o Armazenamento de Blobs do Azure como um local de armazenamento temporário para o backup e a restauração.

Pré-requisitos

Etapa 1: Provisionar o Armazenamento de Blobs do Azure

  1. Siga as etapas descritas em Criar uma conta do Armazenamento de Blobs do Azure
  2. Inicie o Gerenciador de Armazenamento do Azure
  3. Entre no Azure para acessar o Armazenamento de Blobs criado na etapa anterior
  4. Clique com o botão direito do mouse na conta do Armazenamento de Blobs e selecione Criar Contêiner de Blob para criar um contêiner no qual o arquivo de backup será armazenado

Etapa 2: Obter as credenciais do blob do Armazenamento

  1. No Gerenciador de Armazenamento do Azure, clique com o botão direito do mouse no contêiner de blob que acabou de ser criado e selecione Obter a Assinatura de Acesso Compartilhado

  2. Selecione Ler, Gravar e Listar

  3. Escolha Criar

    Anote o URI e a cadeia de caracteres de consulta desta tela. Eles serão necessários em etapas posteriores. Clique no botão Copiar para salvá-los no Bloco de notas, no OneNote ou em outros semelhantes.

  4. Feche a janela Assinatura de Acesso Compartilhado.

Etapa 3: Fazer backup do arquivo de banco de dados no Armazenamento de Blobs do Azure

Nesta etapa, vamos nos conectar com o SQL Server de origem e criar o arquivo de backup do banco de dados que desejamos migrar para a Instância Gerenciada de SQL – Azure Arc.

  1. Iniciar o Azure Data Studio

  2. Conecte-se com a instância do SQL Server que tem o banco de dados que você deseja migrar para a Instância Gerenciada de SQL – Azure Arc

  3. Clique com o botão direito do mouse no banco de dados e selecione Nova Consulta

  4. Prepare a consulta no formato a seguir, substituindo os espaços reservados indicados por <...> usando as informações da Assinatura de Acesso Compartilhado das etapas anteriores. Depois de substituir os valores, execute a consulta.

    IF NOT EXISTS  
    (SELECT * FROM sys.credentials
    WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>')  
    CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>]
      WITH IDENTITY = 'SHARED ACCESS SIGNATURE',  
       SECRET = '<SAS_TOKEN>';  
    
  5. Da mesma forma, prepare o comando BACKUP DATABASE da maneira a seguir para criar um arquivo de backup para o contêiner de blob. Depois de substituir os valores, execute a consulta.

    BACKUP DATABASE <database name> TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    
  6. Abra o Gerenciador de Armazenamento do Azure e valide se o arquivo de backup criado na etapa anterior está visível no contêiner de blob

Saiba mais sobre o backup na URL aqui:

Etapa 4: Restaurar o banco de dados do Armazenamento de Blobs do Azure na Instância Gerenciada de SQL – Azure Arc

  1. Do Azure Data Studio, faça logon e conecte-se com a Instância Gerenciada de SQL – Azure Arc.

  2. Expanda os Bancos de Dados do Sistema, clique com o botão direito do mouse no banco de dados mestre e selecione Nova Consulta.

  3. Na janela do editor de consultas, prepare e execute a mesma consulta da etapa anterior a fim de criar as credenciais.

    IF NOT EXISTS  
    (SELECT * FROM sys.credentials
    WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>')  
    CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>]
      WITH IDENTITY = 'SHARED ACCESS SIGNATURE',  
      SECRET = '<SAS_TOKEN>';  
    
  4. Prepare e execute o comando abaixo para verificar se o arquivo de backup está legível e intacto.

    RESTORE FILELISTONLY FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    
  5. Prepare e execute o comando RESTORE DATABASE da seguinte forma para restaurar o arquivo de backup em um banco de dados na Instância Gerenciada de SQL – Azure Arc

    RESTORE DATABASE <database name> FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    WITH MOVE 'Test' to '/var/opt/mssql/data/<file name>.mdf'
    ,MOVE 'Test_log' to '/var/opt/mssql/data/<file name>.ldf'
    ,RECOVERY;  
    GO
    

Método 2: Copiar o arquivo de backup em um pod da Instância Gerenciada de SQL do Azure – Azure Arc usando o kubectl

Esse método mostra como pegar um arquivo de backup criado com qualquer método e copiá-lo no armazenamento local no pod da Instância Gerenciada de SQL do Azure de onde a restauração será feita, da mesma forma que em um sistema de arquivos típico no Windows ou no Linux. Nesse cenário, você usará o comando kubectl cp para copiar o arquivo de um local para o sistema de arquivos do pod.

Pré-requisitos

  • Instalar e configurar o kubectl apontando para o cluster do Kubernetes no qual os serviços de dados do Azure Arc são implantados
  • Ter uma ferramenta, como o Azure Data Studio ou o Servidor de Gerenciamento do SQL Server, instalada e conectada com o SQL Server no qual você deseja criar o arquivo de backup ou ter um arquivo .bak já criado no sistema de arquivos local.

Etapa 1: Fazer backup do banco de dados se isso ainda não foi feito

Faça backup do banco de dados do SQL Server no caminho de arquivo local como em qualquer backup típico do SQL Server no disco:

BACKUP DATABASE Test
TO DISK = 'C:\Backupfiles\test.bak'
WITH FORMAT, MEDIANAME = 'Test' ;
GO

Etapa 2: Copiar o arquivo de backup no sistema de arquivos do pod

Localize o nome do pod no qual a instância SQL está implantada. Geralmente, ele é semelhante a pod/<sqlinstancename>-0

Obtenha a lista de todos os pods executando:

kubectl get pods -n <namespace of data controller>

Exemplo:

Copie o arquivo de backup do armazenamento local no pod de SQL no cluster.

kubectl cp <source file location> <pod name>:var/opt/mssql/data/<file name> -n <namespace name> -c arc-sqlmi

#Example:
kubectl cp C:\Backupfiles\test.bak sqlinstance1-0:var/opt/mssql/data/test.bak -n arc -c arc-sqlmi

Etapa 3: Restaurar o banco de dados

Prepare e execute o comando RESTORE para restaurar o arquivo de backup na Instância Gerenciada de SQL do Azure – Azure Arc

RESTORE DATABASE test FROM DISK = '/var/opt/mssql/data/<file name>.bak'
WITH MOVE '<database name>' to '/var/opt/mssql/data/<file name>.mdf'  
,MOVE '<database name>' to '/var/opt/mssql/data/<file name>_log.ldf'  
,RECOVERY;  
GO

Exemplo:

RESTORE DATABASE test FROM DISK = '/var/opt/mssql/data/test.bak'
WITH MOVE 'test' to '/var/opt/mssql/data/test.mdf'  
,MOVE 'test' to '/var/opt/mssql/data/test_log.ldf'  
,RECOVERY;  
GO

Saiba mais sobre os recursos e as funcionalidades da Instância Gerenciada de SQL habilitada pelo Azure Arc

Comece criando um Controlador de Dados

Por exemplo, Criar uma Instância Gerenciada de SQL habilitada pelo Azure Arc