通过还原 Azure SQL 数据库来恢复数据
测试和验证还原功能和过程是恢复策略的关键部分。 通过测试恢复过程,可验证备份是否成功。 还需要熟悉用于恢复数据库的过程和选项。 这种熟悉有助于确保在需要时快速、成功地恢复数据。
让我们来了解如何从自动数据库备份中还原 Azure SQL Server 数据库。
可以还原的内容
Azure SQL 数据库中的自动备份将按照你指定的时间表将数据库复制到读取访问异地冗余存储 (RA-GRS) 帐户中的 Blob。 如果要还原这些备份的其中一个,必须创建一个新数据库以包含还原的数据。 不能通过现有数据库还原数据库。
可以在 Azure SQL 数据库进行备份的同一服务器上创建新的数据库,也可以在具有以下选项的其他服务器上创建新的数据库:
- 在恢复到保留期内指定时间点的同一 SQL 数据库服务器上创建新数据库。
- 在恢复到已删除数据库的删除时间的同一 SQL 数据库服务器上创建数据库。
- 在恢复到最近备份点的同一区域中的任一 SQL 数据库服务器上创建新的数据库。
- 在恢复到最近复制备份点的其他任何区域中的任一 SQL 数据库服务器上创建新数据库。
还原的工作原理
为完成还原,Azure 将数据库从存储帐户还原到你指定的 Azure SQL 数据库逻辑服务器。 在时间点还原中,SQL 数据库会根据你选择的时间,将事务日志应用于还原的数据库。
此过程持续的时间长度具有很大差异。 这取决于数据库大小、事务日志数、网络带宽和并发还原操作的数量。 大多数还原操作可在 12 小时内完成。
了解还原操作时长的唯一方法是执行试还原。 最好偶尔执行试还原以计时,并确保完整备份和还原策略按预期工作。
执行时间点还原
可以使用 Azure 门户、PowerShell 或 Azure CLI 执行数据库还原。 如果要在原始 SQL 数据库服务器上执行时间点还原,可以选择:
- 数据库替换:如果想要用还原的数据库替换原始数据库,请确保指定与原始数据库相同的计算大小和服务层级。 然后,通过使用 T-SQL
ALTER DATABASE
命令来重命名原始数据库并为还原的数据库指定原有的名称。 - 数据恢复:如果想要从还原的数据库检索数据以解决错误,则不需要重命名原始数据库和还原的数据库。 而是使用 T-SQL 命令从还原的数据库中提取所需的数据。 然后,将数据插入原始数据库中。
这两个选项首先都需要从存储中还原数据库备份。 要在 Azure 门户中进行恢复,请选择数据库概述页面上的“还原”按钮,然后指定要还原到的时间。
在 PowerShell 中,使用 Restore-AzSqlDatabase
cmdlet 执行还原。 在 Azure CLI 中,使用 az sql db restore
命令。
还原已删除的数据库
如果错误地删除数据库,可以使用 Azure 门户或 PowerShell 将其从备份还原到删除时间。
在门户中转到数据库服务器的“概述”页。 然后在“操作”区域选择“删除的数据库”。 可以指定删除之前的时间点,然后选择“确定”进行恢复。
执行异地还原
Azure SQL 数据库自动将备份的数据库复制到其他区域的数据中心。 如果原始区域中的数据库不可用(例如,由于数据中心中断),则可以通过一个复制的备份副本进行还原。 最多可还原到 Azure SQL 数据库进行备份的时间点。 最新的备份可能没有完全复制到你的区域,因此你可能会丢失最近的一些更改。
若要在 Azure 门户中执行异地还原,请将新数据库添加到 Azure SQL 数据库服务器,在“选择源”下拉列表中选择“备份”,然后选择要从中还原的备份。