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
-
Neste momento, use o build do Insiders do Azure Data Studio.
Assinatura do Azure
Etapa 1: Provisionar o Armazenamento de Blobs do Azure
- Siga as etapas descritas em Criar uma conta do Armazenamento de Blobs do Azure
- Inicie o Gerenciador de Armazenamento do Azure
- Entre no Azure para acessar o Armazenamento de Blobs criado na etapa anterior
- 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
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
Selecione Ler, Gravar e Listar
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.
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.
Iniciar o Azure Data Studio
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
Clique com o botão direito do mouse no banco de dados e selecione Nova Consulta
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>';
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'
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:
Backup e restauração do SQL Server com o Armazenamento de Blobs do Azure
Fazer backup na URL usando o SSMS (SQL Server Management Studio)
Etapa 4: Restaurar o banco de dados do Armazenamento de Blobs do Azure na Instância Gerenciada de SQL – Azure Arc
Do Azure Data Studio, faça logon e conecte-se com a Instância Gerenciada de SQL – Azure Arc.
Expanda os Bancos de Dados do Sistema, clique com o botão direito do mouse no banco de dados mestre e selecione Nova Consulta.
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>';
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'
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
Conteúdo relacionado
Comece criando um Controlador de Dados
Por exemplo, Criar uma Instância Gerenciada de SQL habilitada pelo Azure Arc