Compartir a través de


Migración: SQL Server a SQL Instancia administrada habilitada por Azure Arc

En este escenario se le guía por los pasos necesarios para migrar una base de datos de una instancia de SQL Server a Azure SQL Managed Instance en Azure Arc mediante dos métodos diferentes de copia de seguridad y restauración.

Uso de Azure Blob Storage

Use Azure Blob Storage para migrar a SQL Managed Instance habilitada por Azure Arc.

Este método usa Azure Blob Storage como una ubicación de almacenamiento temporal en la que se puede hacer una copia de seguridad y desde la que se puede restaurar posteriormente.

Requisitos previos

Paso 1: aprovisionamiento de Azure Blob Storage

  1. Siga los pasos descritos en Creación de una cuenta de Azure Blob Storage
  2. Inicio del Explorador de Azure Storage
  3. Inicie la sesión en Azure para acceder al almacenamiento de blobs creado en el paso anterior
  4. Haga clic con el botón derecho en la cuenta de almacenamiento de blobs y seleccione Crear contenedor de blobs para crear un contenedor en el que se almacenará el archivo de copia de seguridad

Paso 2: obtención de credenciales de blobs de almacenamiento

  1. En el Explorador de Microsoft Azure Storage, haga clic con el botón derecho en el contenedor de blobs que se acaba de crear y seleccione Obtener firma de acceso compartido

  2. Seleccione Lectura, Escritura y Lista

  3. Seleccione Crear

    Tome nota del URI y de la cadena de consultas de esta pantalla. Se necesitará en los pasos posteriores. Haga clic en el botón Copiar para guardarlos en el Bloc de notas, OneNote, etc.

  4. Cierre la ventana Firma de acceso compartido.

Paso 3: copia del archivo de base de datos en Azure Blob Storage

En este paso, se conectará al SQL Server de origen y creará el archivo de copia de seguridad de la base de datos que deseamos migrar a SQL Managed Instance - Azure Arc.

  1. Inicio de Azure Data Studio

  2. Conéctese a la instancia de SQL Server que tiene la base de datos que quiere migrar a SQL Managed Instance - Azure Arc.

  3. Haga clic con el botón derecho en la base de datos y seleccione Nueva consulta

  4. Prepare la consulta con el formato siguiente, reemplazando los marcadores de posición indicados por el <...> usando la información de la firma de acceso compartido en los pasos anteriores. Una vez que haya sustituido los valores, ejecute la 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. Del mismo modo, prepare el comando BACKUP DATABASE tal como se indica a continuación para crear un archivo de copia de seguridad en el contenedor de blobs. Una vez que haya sustituido los valores, ejecute la consulta.

    BACKUP DATABASE <database name> TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    
  6. Abra el Explorador de Microsoft Azure Storage y compruebe que el archivo de copia de seguridad creado en el paso anterior esté visible en el contenedor de blobs.

Obtenga más información sobre las copias de seguridad en URL aquí:

Paso 4: restauración la base de datos de Azure Blob Storage a SQL Managed Instance - Azure Arc

  1. Desde Azure Data Studio, inicie la sesión y conéctese a SQL Managed Instance - Azure Arc.

  2. Expanda Bases de datos del sistema, haga clic con el botón derecho en Base de datos maestra y seleccione Nueva consulta.

  3. En la ventana del editor de consultas, prepare y ejecute la misma consulta del paso anterior para crear las credenciales.

    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 y ejecute el siguiente comando para comprobar que el archivo de copia de seguridad es legible y que está intacto.

    RESTORE FILELISTONLY FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    
  5. Prepare y ejecute el comando RESTORE DATABASE tal como se indica a continuación para restaurar el archivo de copia de seguridad en una base de datos en SQL Managed Instance - 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: copia del archivo de copia de seguridad en un pod de Azure SQL Managed Instance - Azure Arc mediante kubectl

Mediante este método se toma un archivo de copia de seguridad creado a través de cualquier método y, a continuación, se copia en el almacenamiento local en el pod de Azure SQL Managed Instance para que pueda hacer la restauración desde ahí del mismo modo que lo haría en un sistema de archivos típico en Windows o Linux. En este escenario, usará el comando kubectl cp para copiar el archivo de un lugar al sistema de archivos del pod.

Requisitos previos

  • Instalar y configurar kubectl para que apunte al clúster de Kubernetes donde se implementan los servicios de datos de Azure Arc
  • Tenga una herramienta como Azure Data Studio o SQL Server Management Server instalada y conectada al SQL Server en el que desea crear el archivo de copia de seguridad o tenga un archivo. bak existente ya creado en el sistema de archivos local.

Paso 1: copia de seguridad de la base de datos si aún no lo ha hecho

Haga una copia de seguridad de la base de datos de SQL Server en la ruta de acceso de archivos locales, como una copia de seguridad de SQL Server típica en el disco:

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

Paso 2: copia del archivo de copia de seguridad en el sistema de archivos del pod

Busque el nombre del pod donde se implementa la instancia de SQL. El aspecto será parecido al siguiente: pod/<sqlinstancename>-0

Para obtener la lista de todos los pods, ejecute:

kubectl get pods -n <namespace of data controller>

Ejemplo:

Copie el archivo de copia de seguridad del almacenamiento local en el pod de SQL del clúster.

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

Paso 3: restauración de la base de datos

Prepare y ejecute el comando RESTORE para restaurar el archivo de copia de seguridad en la instancia administrada de Azure SQL - 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

Ejemplo:

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

Obtenga más información sobre las características y funcionalidades de SQL Managed Instance habilitadas por Azure Arc

Comienzo con la creación de un controlador de datos

Creación de una instancia de SQL Managed Instance habilitada para Azure Arc