Inicio rápido: Copia de seguridad y restauración de SQL en Azure Blob Storage

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL Managed Instance

Con este inicio rápido, entenderá mejor cómo escribir copias de seguridad en Azure Blob Storage y restaurarlas desde ahí. El artículo explica cómo crear un contenedor de Azure Blob Storage, escribir una copia de seguridad en Azure Blob Storage y, luego, realizar una restauración.

Nota:

SQL Server 2012 SP1 CU2 incorporó la compatibilidad con la copia de seguridad en Azure Blob Storage. SQL Server 2014 y versiones anteriores no admiten la firma de acceso compartido (SAS) que se describe en este artículo de inicio rápido.

Para SQL Server 2014 y versiones anteriores, use Tutorial: Copia de seguridad y restauración de SQL Server 2014 en Microsoft Azure Blob Storage.

Requisitos previos

Para completar esta guía de inicio rápido, debe estar familiarizado con los conceptos de copias de seguridad y restauración de SQL Server y con la sintaxis de T-SQL. Necesita una cuenta de Azure Storage, SQL Server Management Studio (SSMS) y acceso a un servidor que ejecute SQL Server o Azure SQL Managed Instance. Además, la cuenta que se usa para emitir comandos BACKUP o RESTORE debe tener el rol de base de datos db_backupoperator con permisos Modificar cualquier credencial.

Creación de un contenedor de Azure Blob Storage

Los contenedores proporcionan una agrupación de un conjunto de blobs. Todos los blobs deben estar en un contenedor. Una cuenta de almacenamiento puede contener un número ilimitado de contenedores, pero debe tener al menos uno. Un contenedor puede almacenar un número ilimitado de blobs.

Para crear un contenedor, siga estos pasos:

  1. Abra Azure Portal.

  2. Vaya a la cuenta de almacenamiento.

  3. Seleccione la cuenta de almacenamiento y baje hasta Blob Services (Servicios de blob).

  4. Seleccione Blobs y después + Contenedor para agregar un nuevo contenedor.

  5. Escriba el nombre del contenedor y tome nota del nombre de contenedor especificado. Esta información se usa en la dirección URL (ruta de acceso al archivo de copia de seguridad) en las instrucciones T-SQL más adelante en este inicio rápido.

  6. Seleccione Aceptar.

    New container

Nota:

La autenticación en la cuenta de almacenamiento es necesaria para las copias de seguridad y la restauración de SQL Server, incluso aunque elija crear un contenedor público. También puede crear un contenedor mediante programación con las API de REST. Para más información, vea Create container (Creación de contenedor)

Creación de una base de datos de prueba

En este paso, cree una base de datos de prueba con SQL Server Management Studio (SSMS).

  1. Inicie SQL Server Management Studio (SSMS) y conéctese a la instancia de SQL Server.
  2. Abra una ventana de nueva consulta.
  3. Ejecute el siguiente código Transact-SQL (T-SQL) para crear la base de datos de prueba. Actualice el nodo Bases de datos en el Explorador de objetos para ver la nueva base de datos. Las bases de datos recién creadas en SQL Managed Instance tienen habilitado TDE de manera automática, por lo que deberá deshabilitarlo para continuar.
USE [master]
GO

-- Create database
CREATE DATABASE [SQLTestDB]
GO

-- Create table in database
USE [SQLTestDB]
GO
CREATE TABLE SQLTest (
    ID INT NOT NULL PRIMARY KEY,
    c1 VARCHAR(100) NOT NULL,
    dt1 DATETIME NOT NULL DEFAULT getdate()
)
GO

-- Populate table 
USE [SQLTestDB]
GO

INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1')
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2')
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3')
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4')
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5')
GO

SELECT * FROM SQLTest
GO

-- Disable TDE for newly-created databases on SQL Managed Instance 
USE [SQLTestDB];
GO
ALTER DATABASE [SQLTestDB] SET ENCRYPTION OFF;
GO
DROP DATABASE ENCRYPTION KEY
GO

Crear una credencial

Use la GUI de SQL Server Management Studio para crear la credencial siguiendo estos pasos. De manera alternativa, también puede crear la credencial mediante programación.

  1. Expanda el nodo Bases de datos dentro del Explorador de objetos de SQL Server Management Studio(SSMS).

  2. Haga clic con el botón derecho en la base de datos SQLTestDB nueva, mantenga el puntero del mouse sobre Tareas y seleccione Copia de seguridad… para iniciar el Asistente de copia de seguridad de base de datos.

  3. Seleccione Dirección URL en el menú desplegable Copia de seguridad en de destino y seleccione Agregar para abrir el cuadro de diálogo Seleccionar destino de la copia de seguridad.

    Back up to URL

  4. Seleccione Nuevo contenedor en el cuadro de diálogo Seleccionar destino de la copia de seguridad para iniciar la ventana Conectarse a una suscripción de Microsoft.

    Screenshot of the Select Backup Destination dialog window with the New container option called out.

  5. Para iniciar sesión en Azure Portal, seleccione Iniciar sesión… y continúe con el proceso de inicio de sesión.

  6. Seleccione la suscripción en el menú desplegable.

  7. Seleccione la cuenta de almacenamiento en el menú desplegable.

  8. Seleccione el contenedor que creó anteriormente en el menú desplegable.

  9. Seleccione Crear credencial para generar la firma de acceso compartido (SAS). Guarde este valor, ya que lo necesitará para la restauración.

    Create credential

  10. Haga clic en Aceptar para cerrar la ventana Conectarse a una suscripción de Microsoft. Con esto se rellena el valor del contenedor de almacenamiento de Azure en el cuadro de diálogo Seleccionar destino de copia de seguridad. Seleccione Aceptar para elegir el contenedor de almacenamiento seleccionado y cierre el cuadro de diálogo.

  11. En este momento, puede ir directamente al paso 4 de la sección siguiente para realizar la copia de seguridad de la base de datos, o bien cerrar el Asistente para la copia de seguridad de base de datos si en su lugar quiere seguir usando Transact-SQL para crear la copia de seguridad de la base de datos.

Copia de seguridad de base de datos

En este paso, cree una copia de seguridad de la base de datos SQLTestDB en la cuenta de Azure Blob Storage con la GUI dentro de SQL Server Management Studio o con Transact-SQL (T-SQL).

  1. Si el Asistente para la copia de seguridad de base de datos todavía no está abierto, expanda el nodo Bases de datos dentro del Explorador de objetos de SQL Server Management Studio(SSMS).

  2. Haga clic con el botón derecho en la base de datos SQLTestDB nueva, mantenga el puntero del mouse sobre Tareas y seleccione Copia de seguridad… para iniciar el Asistente de copia de seguridad de base de datos.

  3. Seleccione Dirección URL en el menú desplegable Copia de seguridad en y seleccione Agregar para abrir el cuadro de diálogo Seleccionar destino de la copia de seguridad.

    Back up to URL

  4. Seleccione el contenedor que creó en el paso anterior en el menú desplegable Contenedor de almacenamiento de Azure.

    Azure storage container

  5. Seleccione Aceptar en el Asistente para la copia de seguridad de base de datos para crear una copia de seguridad de su base de datos.

  6. Seleccione Aceptar una vez que la copia de seguridad de la base de datos se haya creado correctamente para cerrar todas las ventanas relacionadas con la copia de seguridad.

    Sugerencia

    Puede generar un script de Transact-SQL detrás de este comando al seleccionar Script en la parte superior del asistente de copia de seguridad de base de datos: Script command

Eliminar base de datos

En este paso, elimine la base de datos antes de realizar la restauración. Este paso solo es necesario para este tutorial, pero no es probable que se use en procedimientos normales de administración de bases de datos. Puede omitir este paso, pero tendrá que cambiar el nombre de la base de datos durante la restauración en una instancia administrada, o bien ejecutar el comando de restauración WITH REPLACE para restaurar correctamente la base de datos en el entorno local.

  1. Expanda el nodo Bases de datos en el Explorador de objetos, haga clic con el botón derecho en la base de datos SQLTestDB y seleccione Eliminar para iniciar el Asistente para eliminar el objeto.
  2. En una instancia administrada, seleccione Aceptar para eliminar la base de datos. En el entorno local, active la casilla junto a Cerrar conexiones existentes y seleccione Aceptar para eliminar la base de datos.

Restaurar base de datos

En este paso, restaure la base de datos con la GUI de SQL Server Management Studio o con Transact-SQL.

  1. Haga clic con el botón secundario en el nodo Bases de datos en el Explorador de objetos dentro de SQL Server Management Studio y seleccione Restaurar base de datos.

  2. Seleccione Dispositivo y, luego, los puntos suspensivos (…) para elegir el dispositivo.

    Select restore device

  3. Seleccione Dirección URL en el menú desplegable Tipo de medio de copia de seguridad y seleccione Agregar para agregar el dispositivo.

    Add backup device

  4. Seleccione el contenedor en el menú desplegable y pegue la firma de acceso compartido (SAS) que guardó cuando creó la credencial.

    Screenshot of the Select a Backup File Location dialog box with the Shared Access Signature field populated.

  5. Seleccione Aceptar para seleccionar la ubicación del archivo de copia de seguridad.

  6. Expanda Contenedores y seleccione el contenedor en el que se encuentra el archivo de copia de seguridad.

  7. Seleccione el archivo de copia de seguridad que quiere restaurar y, luego, seleccione Aceptar. Si no hay archivos visibles, es posible que esté usando una clave SAS incorrecta. Para regenerar la clave SAS, siga los mismos pasos de antes para agregar el contenedor.

    Select restore file

  8. Seleccione Aceptar para cerrar el cuadro de diálogo Seleccionar dispositivos de copia de seguridad.

  9. Seleccione Aceptar para restaurar la base de datos.

Consulte también

A continuación, mostramos algunas lecturas recomendadas para comprender mejor los conceptos y las prácticas recomendadas al usar Azure Blob Storage para copias de seguridad de SQL Server.