云计算之路-阿里云-分享:通过RDS备份文件恢复SQL Server数据库

应用场景:假如您用了阿里云的SQL Server RDS,想在另外一台服务器上通过备份文件还原数据库至之前的某个时间点。

准备工作:准备1台用于还原的服务器,安装好SQL Server(2008或2012都可以)。

还原场景:还原时间点在增量备份时间点之后,全量备份时间点之前。

测试案例:

上图是RDS管理管制台中看到的备份情况,我们的目标是将数据库还原至2014-02-12 19:00的时间点,也就是在增量备份2014-02-13 06:31与全量备份2014-02-14 06:29之间的时间点。

经过实测的恢复操作步骤:

1,下载2014-02-10 07:16的全量备份文件并解压出要恢复的数据库备份文件。

2,以NORECOVERY的方式还原2014-02-10 07:16的全量备份,操作SQL语句如下:

USE [master]
RESTORE DATABASE [数据库名称] 
FROM  DISK = N'数据库全量备份文件路径' 
WITH  FILE = 1,  
NORECOVERY
GO

还原成功后,数据库处于Restoring状态。

3, 继续以NORECOVERY的方式还原2014-02-12 06:51的增量备份,操作SQL语句如下:

USE [master]
RESTORE DATABASE [数据库名称] 
FROM  DISK = N'数据库增量备份文件路径' 
WITH  FILE = 1,  
NORECOVERY
GO

还原成功后,数据库继续处于Restoring状态。

3. 联系阿里云客服,让他们联系DBA提供2014-02-12 06:51与2014-02-13 06:31时间点之前的日志备份文件(目前RDS管理控制台没有提供日志备份文件的下载)

4. 以RECOVERY(默认方式)的方式还原日志

RESTORE LOG [要恢复的数据库名称] 
FROM  DISK = N'前一步得到的数据库日志备份文件路径' 
WITH  FILE = 1,  
STOPAT = N'要恢复的时间点'
GO

日志还原成功后,数据库处于正常状态,这时数据库中的数据就还原到了要恢复的时间点。    

posted @   博客园团队  阅读(6140)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
阅读排行:
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· autohue.js:让你的图片和背景融为一体,绝了!
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
历史上的今天:
2011-02-14 博客园电子期刊2011年1月刊发布啦
2011-02-14 上周热点回顾(2.7-2.13)
点击右上角即可分享
微信分享提示