Ejercicio: Recuperación de datos mediante la restauración de una instancia de Azure SQL Database

Completado

Las restauraciones de prueba son un componente clave de cualquier estrategia de recuperación ante desastres.

Quiere familiarizarse con los pasos necesarios para restaurar a un momento dado una base de datos de la que se ha realizado una copia de seguridad, por si necesita hacerlo. También quiere investigar cuánto tarda una operación de restauración, una parte clave del cálculo de la objeción de tiempo de recuperación (RTO). Puede planear esta vez en las instrucciones de su organización.

Puede tratar la base de datos restaurada como sustituta de la base de datos original o usarla como origen de datos para actualizar la base de datos original. Aunque puede sobrescribir y reemplazar una base de datos en una instancia de SQL Server o Azure SQL Managed Instance, no puede sobrescribir una instancia de Azure SQL Database con una restauración.

Vamos a realizar una restauración desde copias de seguridad automatizadas de Azure SQL Database.

Confirmación de que las copias de seguridad están activas

Sugerencia

La primera copia de seguridad correcta puede tardar hasta 15 minutos después de la creación de la base de datos.

Echemos un vistazo a las copias de seguridad que Azure SQL lleva automáticamente.

  1. En Azure Cloud Shell, ejecute el siguiente comando de PowerShell para establecer una variable con el valor de la instancia de SQL Server:

    $sqlserver=Get-AzSqlServer
    
  2. Vea los puntos de restauración disponibles, en función de las copias de seguridad, con el cmdlet de PowerShell Get-AzSqlDatabaseRestorePoint:

    Get-AzSqlDatabaseRestorePoint `
        -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
        -DatabaseName sql-erp-db `
        -ServerName $sqlserver.ServerName
    

    Debería obtener una salida similar al código siguiente. Si el comando no devuelve ningún valor, todavía no se ha iniciado ninguna copia de seguridad. Vuelva a ejecutar este comando en un par de minutos.

    ResourceGroupName        : <rgn>[sandbox resource group name]</rgn>
    ServerName               : erpserver-53903
    DatabaseName             : sql-erp-db
    Location                 : East US
    RestorePointType         : CONTINUOUS
    RestorePointCreationDate :
    EarliestRestoreDate      : 9/24/19 4:21:21 PM
    RestorePointLabel        :
    

    RestorePointType es CONTINUOUS, lo que indica que las copias de seguridad se realizan de forma automática. EarliestRestoreDate indica la marca de tiempo de la primera copia de seguridad. Después de implementar las copias de seguridad, continúe con el ejercicio.

Eliminación de una tabla de la base de datos

Vamos a empezar por simular una modificación errónea de una base de datos.

  1. En el menú de Azure Portal o desde la página Inicio, seleccione Todos los recursos, elija erpserver-NNNN, seleccione Bases de datos SQL y, luego, seleccione la base de datos sql-erp-db.

  2. Se usará el editor de consultas de T-SQL integrado en Azure Portal. Seleccione Editor de consultas (versión preliminar) y luego inicie sesión con el usuario dbadmin y la contraseña que ha especificado para esta cuenta. Los siguientes comandos T-SQL también funcionarían en SQL Server Management Studio, o en la extensión mssql para Visual Studio Code u otras herramientas de consulta T-SQL.

  3. Se va a quitar la tabla Person que se creó anteriormente. En una nueva ventana de consulta, ejecute este comando. Anote la hora del reloj.

    DROP TABLE Person
    
  4. Para comprobar las tablas de la base de datos, seleccione Nueva consulta. Después, en la ventana Consulta 2, ejecute este comando para enumerar todas las tablas de la base de datos:

    SELECT schema_name(t.schema_id) as schema_name,
        t.name as table_name
    FROM sys.tables AS t
    ORDER BY schema_name, table_name;
    

    Debería ver No se devuelven resultados, ya que hemos eliminado la tabla Person.

    Captura de pantalla que no muestra ningún resultado devuelto después de consultar las tablas de la base de datos.

Crear una restauración a un momento dado

La tabla Person se eliminó por error. Ahora vamos a restaurar la base de datos a su estado anterior.

  1. En el menú de Azure Portal o la página Inicio, seleccione Todos los recursos y luego la base de datos sql-erp-db.

  2. En la parte superior de la página Información general, seleccione Restaurar.

  3. Complete la pestaña Aspectos básicos de la página Restaurar base de datos con estos valores y, luego, elija Revisar y crear. Aquí se proporciona un nuevo nombre de base de datos para la versión restaurada de la base de datos.

    Configuración Valor
    Selección del origen A un momento dado
    Nombre de la base de datos sql-erp-db-restored
    Punto de restauración Seleccione una hora antes de quitar la tabla de Person, quizás hace 10 minutos.
    Server erpserver-xxxxx
    ¿Quiere usar un grupo elástico de SQL? No
    Proceso y almacenamiento Valor predeterminado
    Redundancia del almacenamiento de copia de seguridad Almacenamiento de copia de seguridad con redundancia local

    Captura de pantalla que muestra la página de restauración de base de datos con el botón Revisar y crear seleccionado.

  4. Seleccione Crear. La restauración de la base de datos tarda varios minutos en completarse.

Visualización de la base de datos restaurada

La base de datos restaurada contiene la tabla Person.

  1. En el menú de Azure Portal o desde la página de Inicio, seleccione Todos los recursos y, a continuación, seleccione la base de datos sql-erp-db-restored.

  2. Seleccione Editor de consultas (versión preliminar) y luego inicie sesión con el usuario dbadmin y la contraseña que ha especificado para esta cuenta.

  3. Para comprobar las tablas de la base de datos, en la ventana Consulta 1, ejecute este comando:

    SELECT schema_name(t.schema_id) as schema_name,
        t.name as table_name
    FROM sys.tables AS t
    ORDER BY schema_name, table_name;
    

    La base de datos se ha restaurado en el estado en que estaba, incluida la tabla Person.

    Captura de pantalla que muestra los resultados después de consultar las tablas de la base de datos.

  4. Ejecute este comando para confirmar que la tabla contiene los datos:

    SELECT * FROM Person;
    

    Debería ver los datos que ha escrito antes.

    Captura de pantalla que muestra los resultados confirmados después de consultar las tablas de la base de datos.

Ya ha aprendido a restaurar una base de datos en caso de que se produzca algún problema imprevisto en los datos. Se ha familiarizado con el proceso de restauración. Ahora puede asegurar a su organización que ha definido correctamente los procedimientos de copia de seguridad y restauración.