一、 测试目的:MS SQL Server数据恢复软件是一款恢复故障数据库的工具,其设计的目的是为了解决坏库的数据恢复。本工具最基本的恢复功能是正常情况下能恢复出任何好库的数据而不存在偏差,但在实际情况下,各种应用的数据库存在着不同的使用场景以及开发环境,有着细微差异,软件恢复要顾及到各种细节,难免会漏掉一些关键细节而导致恢复结果不一定能达到100%,所以数据库恢复测试比对能得出相应的改进办法,提高软件质量。
二、 测试步骤:对一个好库的测试,我们在实际数据恢复业务中,会接触到各种各样的应用数据库,在这些数据库中,有坏库,也有坏库的备份(好的备份),我们本次测试的数据库来源,就是这些好的备份的库,用这些好的备份数据库,可以精确比对恢复结果。测试步骤如下:
1、 把好的数据库备份附加或者还原到MS SQL Server数据库中,得到一个健康的测试数据库。
2、 停止MS SQL Server服务,把第一步得到的数据库,COPY出一份,然后再启动MS SQL Server服务。COPY出来的数据库文件用于MS SQL Server数据恢复软件的打开和读取。
3、 用MS SQL Server数据恢复软件打开COPY出来的数据库,把数据导入一个新的数据库中。
4、 如图:好的数据库名称是“UFDATA_006_2015_好酷” , 导出的数据库名称为:“UFDATA_006_2015_好酷_out”

MS SQL Server数据恢复软件测试-导出结果记录数量对比_第1张图片
5、 数据数据导完以后,就可以进行数据比对测试了。导出结果比对步骤如下:
A、 新建一个数据库,起名为:T,如下:
MS SQL Server数据恢复软件测试-导出结果记录数量对比_第2张图片
创建两个表,用于存放“UFDATA_006_2015_好酷” 和 “UFDATA_006_2015_好酷_out”的表名和记录数量:建表语句如下

CREATE TABLE [T].[dbo].[UFDATA_006_2015_好酷_Count](
[Name] nvarchar NULL,
[num] nvarchar NULL
) ON [PRIMARY]

CREATE TABLE [T].[dbo].[UFDATA_006_2015_好酷_out_Count](
[Name] nvarchar NULL,
[num] nvarchar NULL
) ON [PRIMARY]
建表完成以后如下:
MS SQL Server数据恢复软件测试-导出结果记录数量对比_第3张图片
B、 构建获取表记录数的语句:

use UFDATA_006_2015_好酷
select 'use UFDATA_006_2015_好酷
insert into [T].[dbo].UFDATA_006_2015_好酷_Count select object_name ('+convert(nvarchar,id)+'),count(*) from [UFDATA_006_2015_好酷].[dbo].['+name+']'
from sysObjects where xtype='U' order by id

得到UFDATA_006_2015_好酷数据库的所有表记录获取语句,把表名字和记录插入[T].[dbo].[UFDATA_006_2015_好酷_Count]表中,把以上SQL语句执行得到的加过复制再来,在运行,就能得到表[T].[dbo].[UFDATA_006_2015_好酷_Count]的数据了

use UFDATA_006_2015_好酷_out
select 'use UFDATA_006_2015_好酷_out
insert into [T].[dbo].UFDATA_006_2015_好酷_out_Count select object_name ('+convert(nvarchar,id)+'),count(*) from [UFDATA_006_2015_好酷_out].[dbo].['+name+']'
from sysObjects where xtype='U' order by id

执行跟上面一样
得到每个表记录数的语句

MS SQL Server数据恢复软件测试-导出结果记录数量对比_第4张图片

把每张表的记录数插入新建的表中
MS SQL Server数据恢复软件测试-导出结果记录数量对比_第5张图片

C、 比较记录数不一样的表

记录数一样的表
SELECT A.[Name]
,A.[num]
,B.[Name]
,B.[num]
FROM [T].[dbo].[UFDATA_006_2015_好酷_Count] A ,[T].[dbo].[UFDATA_006_2015_好酷_out_Count] B
where A.Name=B.Name and A.num=B.num order by convert(int,A.num) desc

记录数比导出结果多的表
SELECT A.[Name]
,A.[num]
,B.[Name]
,B.[num]
FROM [T].[dbo].[UFDATA_006_2015_好酷_Count] A ,[T].[dbo].[UFDATA_006_2015_好酷_out_Count] B
where A.Name=B.Name and A.num>B.num order by convert(int,A.num) desc

记录数比导出结果少的表
SELECT A.[Name]
,A.[num]
,B.[Name]
,B.[num]
FROM [T].[dbo].[UFDATA_006_2015_好酷_Count] A ,[T].[dbo].[UFDATA_006_2015_好酷_out_Count] B
where A.Name=B.Name and A.num

三、测试提示及反馈:本次测试,因为用正常好库测试,测试时可以分两种情况来做,有心测试的,可以选择删除恢复,看看最后恢复效果有所不同。

MS SQL Server数据恢复软件测试-导出结果记录数量对比_第6张图片

转载注明出处:魔幻数据