练习 - 通过还原 Azure SQL 数据库来恢复数据

已完成

试还原是任何灾难恢复策略的重要组成部分。

需要熟悉将备份数据库还原到特定时间点的步骤,以便必要时执行。 还需要调查还原操作所需的时间。 这样,可以在你的组织指南中对此进行规划。

让我们从自动的 Azure SQL 数据库备份执行还原。

确认备份处于可用状态

第一次成功备份可能需要 15 分钟才能完成。 在继续练习之前,我们需要确保备份正在运行。

  1. 在 Azure Cloud Shell 中,运行以下 PowerShell 命令,将变量设置为 SQL Server 实例的值:

    $sqlserver=Get-AzSqlServer
    
  2. 使用以下命令验证连续备份是否正常运行:

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

    如果备份正在运行,应出现类似于以下代码的输出。 如果命令不返回值,则备份尚未启动。 几分钟后重新运行此命令。

    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        :
    

    RestorePointTypeCONTINUOUS,表示备份正在自动进行。 EarliestRestoreDate 表示第一次备份的时间戳。 准备好备份后,我们继续练习。

从数据库中删除表

首先,我们来模拟错误的数据库修改。

  1. Azure 门户菜单上或在“主页”中,依次选择“所有资源”、“erpserver-NNNN”、“SQL 数据库”,然后选择“sql-erp-db”数据库。

  2. 选择“查询编辑器(预览)”,然后使用“dbadmin”用户和为此帐户指定的密码登录。

  3. 删除我们之前创建的“人员”表。 在新的查询窗口中,运行此命令。

    DROP TABLE Person
    
  4. 要查看数据库中的表,请选择“新查询”。 然后在“查询 2”窗口中运行此命令来列出数据库中的所有表:

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

    应该看到返回“无结果”,因为我们删除了“人员”表。

    显示查询数据库中的表后未返回结果的屏幕截图。

运行时间点还原

“人员”表已被误删。 现在,我们来将数据库还原到以前的状态。

  1. Azure 门户菜单上或在门户主页中,选择“所有资源”,然后选择“sql-erp-db”数据库。

  2. 在“概述”页的顶部,选择“还原”。

  3. 使用这些值填写“还原数据库”页面上的“基本”选项卡,然后选择“查看 + 创建”。

    设置
    选择源 时间点
    数据库名称 sql-erp-db-xxxxx
    还原点 在删除“人员”表之前,请选择 10 分钟前的时间
    服务器 erpserver-xxxxx
    是否要使用 SQL 弹性池?
    计算 + 存储 默认值
    备份存储冗余 本地冗余备份存储

    显示还原数据库页面的屏幕截图,其中选中了“查看 + 创建”按钮。

  4. 选择“创建”。 数据库还原需要几分钟才能完成。

查看还原的数据库

还原的数据库应包含“人员”表。 可在门户中查看该表。

  1. Azure 门户菜单上或在门户主页中,选择“所有资源”,然后选择“sql-erp-db-restored”数据库。

  2. 选择“查询编辑器(预览)”,然后使用“dbadmin”用户和为此帐户指定的密码登录。

  3. 若要检查数据库中的表,请在“查询 1”窗口中运行此命令:

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

    此时应显示“人员”表。

    显示查询数据库中的表后有结果的屏幕截图。

  4. 通过运行此命令,确认数据在表中:

    SELECT * FROM Person
    

    应该会看到先前输入的数据。

    显示查询数据库中的表后确认的结果的屏幕截图。

现在,你已经了解了如何在数据发生意外的情况下还原数据库。 并已熟悉了还原过程。 现在即可确保你的组织正确定义了备份和还原过程。