Migración: de SQL Server a SQL Managed Instance 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
Instalación de Azure Data Studio
En este momento, use la compilación para los participantes del programa Insider de Azure Data Studio.
Suscripción de Azure
Paso 1: aprovisionamiento de Azure Blob Storage
- Siga los pasos descritos en Creación de una cuenta de Azure Blob Storage
- Inicio del Explorador de Azure Storage
- Inicie la sesión en Azure para acceder al almacenamiento de blobs creado en el paso anterior
- 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
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
Seleccione Lectura, Escritura y Lista
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.
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.
Inicio de Azure Data Studio
Conéctese a la instancia de SQL Server que tiene la base de datos que quiere migrar a SQL Managed Instance - Azure Arc.
Haga clic con el botón derecho en la base de datos y seleccione Nueva consulta
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>';
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'
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í:
Copia de seguridad y restauración de SQL Server con Azure Blob Storage
Documentos Documentación de copia de seguridad en dirección URL
Copia de seguridad en URL mediante SQL Server Management Studio (SSMS)
Paso 4: restauración la base de datos de Azure Blob Storage a SQL Managed Instance - Azure Arc
Desde Azure Data Studio, inicie la sesión y conéctese a SQL Managed Instance - Azure Arc.
Expanda Bases de datos del sistema, haga clic con el botón derecho en Base de datos maestra y seleccione Nueva consulta.
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>';
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'
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
Contenido relacionado
Comienzo con la creación de un controlador de datos
Creación de una instancia de SQL Managed Instance habilitada para Azure Arc