Partilhar via


Migrar: SQL Server para Instância Gerenciada SQL habilitada pelo Azure Arc

Este cenário orienta você pelas etapas para migrar um banco de dados de uma instância do SQL Server para a instância gerenciada do SQL do Azure no Azure Arc por meio de dois métodos diferentes de backup e restauração.

Usar o armazenamento de blob do Azure

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

Esse método usa o Armazenamento de Blobs do Azure como um local de armazenamento temporário para o qual você pode fazer backup e, em seguida, restaurar.

Pré-requisitos

Etapa 1: provisionar o armazenamento de blob do Azure

  1. Siga as etapas descritas em Criar uma conta de Armazenamento de Blob do Azure
  2. Iniciar o Azure Storage Explorer
  3. Entre no Azure para acessar o armazenamento de blob criado na etapa anterior
  4. Clique com o botão direito do mouse na conta de armazenamento de blob e selecione Criar contêiner de blob para criar um novo contêiner onde o arquivo de backup será armazenado

Etapa 2: Obter credenciais de blob de 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 Assinatura de Acesso Compartilhado

  2. Selecione a opção Ler, Escrever e Listar

  3. Selecione Criar

    Anote o URI e a Cadeia de Caracteres de Consulta nesta tela. Estes serão necessários em etapas posteriores. Clique no botão Copiar para salvar em um bloco de notas/OneNote, etc.

  4. Feche a janela Assinatura de Acesso Compartilhado .

Etapa 3: Backup do arquivo de banco de dados para o Armazenamento de Blobs do Azure

Nesta etapa, nos conectaremos ao SQL Server de origem e criaremos o arquivo de backup do banco de dados que queremos migrar para a Instância Gerenciada do SQL - Azure Arc.

  1. Iniciar o Azure Data Studio

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

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

  4. Prepare sua consulta no formato a seguir, substituindo os espaços reservados indicados pelo <...> uso das informações da assinatura de acesso compartilhado nas 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 seguinte forma 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 backup para URL aqui:

Etapa 4: Restaurar o banco de dados do armazenamento de blob do Azure para a Instância Gerenciada SQL - Azure Arc

  1. No Azure Data Studio, faça logon e conecte-se à Instância Gerenciada do 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 para 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 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 uma instância gerenciada SQL do Azure - pod do Azure Arc usando kubectl

Esse método mostra como pegar um arquivo de backup que você cria por meio de qualquer método e, em seguida, copiá-lo para o armazenamento local no pod de instância gerenciada SQL do Azure para que você possa restaurar de lá como faria em um sistema de arquivos típico no Windows ou Linux. Nesse cenário, você estará usando o comando kubectl cp para copiar o arquivo de um lugar para o sistema de arquivos do pod.

Pré-requisitos

  • Instalar e configurar o kubectl para apontar para o cluster do Kubernetes onde os serviços de dados do Azure Arc são implantados
  • Tenha uma ferramenta como o Azure Data Studio ou o SQL Server Management Server instalada e conectada ao SQL Server onde você deseja criar o arquivo de backup OU tenha um arquivo .bak existente já criado em seu sistema de arquivos local.

Etapa 1: Faça backup do banco de dados, se ainda não tiver feito backup

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

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

Etapa 2: Copie o arquivo de backup para o sistema de arquivos do pod

Encontre o nome do pod onde a instância sql é implantada. Normalmente, deve parecer 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 para o pod 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

Preparar e executar o comando RESTORE para restaurar o arquivo de backup para a instância gerenciada 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 Recursos e Capacidades da Instância Gerenciada SQL habilitada pelo Azure Arc

Comece criando um Controlador de Dados

Criar uma Instância Gerenciada SQL habilitada pelo Azure Arc