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

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

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

测试案例:

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

上图是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

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