1. 程式人生 > >MS SQL Server數據恢復軟件測試-導出結果記錄數量對比

MS SQL Server數據恢復軟件測試-導出結果記錄數量對比

獲取 不同 語句 一個 char 建表語句 基本 導出 正常

一、 測試目的: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”

技術分享圖片
5、 數據數據導完以後,就可以進行數據比對測試了。導出結果比對步驟如下:

A、 新建一個數據庫,起名為:T,如下:
技術分享圖片
創建兩個表,用於存放“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]
建表完成以後如下:

技術分享圖片
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

執行跟上面一樣
得到每個表記錄數的語句

技術分享圖片

把每張表的記錄數插入新建的表中
技術分享圖片

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<B.num order by convert(int,A.num) desc

三、測試提示及反饋:本次測試,因為用正常好庫測試,測試時可以分兩種情況來做,有心測試的,可以選擇刪除恢復,看看最後恢復效果有所不同。

技術分享圖片

轉載註明出處:魔幻數據

MS SQL Server數據恢復軟件測試-導出結果記錄數量對比