Mssql介质恢复:用簇把脱机数据拉回轨道(Mssql介质簇)

Mssql介质恢复是Ms SQL Server用户恢复数据的一种有效方式。它使用一种叫做簇的技术,通过重新安排片段的方式,从一个损坏的数据库或脱机数据把记录拉回轨道。

簇是由一个数据库束缚,每个束缚在不同的物理空间中定位和储存索引项。当数据库在维护或更新时,陈旧或部分准确的簇将被重新安排,或者新簇组将被创建来应对新的索引项。典型片段文件包括MDF,NDF和LDF文件。它们被称为表文件,存储把表数据和视图、存储过程和触发器从中提取出来。

Mssql介质恢复有几种工具可供使用,如SQL Recovery,MDF Viewer,Datanumen的SQL编辑器。它们可以从损坏的文件中提取和恢复表和其它数据库体系结构,而无需任何技术支持。

例如,若要重构文件,某种编辑器可以使用像SQLBase、MySQL Server和Microsoft Access这样的查询语言来检索文件内容。由于各个束缚是独立的,它们之间没有依赖性,所以文件的修复可以在极短的时间内完成。

Mssql介质恢复只是一个重构的过程,它仅适用于从数据库提取或从内部损坏的文件中恢复表和存储过程,而不是从脱机数据库拉回记录。但是,这种技术可以做到,只要寻找有效的编辑器并将该文件作为输入输入,然后编写适当的步骤来从脱机文件中恢复记录,是可行的。

比如,下面的代码通过脱机数据库恢复数据:

— Connect the connection to the server

CONNECT ServerName

GO

— Create temp table

CREATE TABLE #Records

(

RecordID int,

RecordName varchar(50)

)

GO

— Set load query

SET @SqlQuery =

‘BULK INSERT #Records FROM ‘ + @FileName + ‘ WITH

(

FORMATFILE = ‘ + @FormatFile + ‘,

FIRSTROW = 2,

MAXERRORS = 0,

FIELDTERMIN N ‘;

GO

— Execute the query

EXECUTE sp_ExecuteSql @SqlQuery

GO

— Perform Table Merge

MERGE #Records AS T

USING (SELECT * FROM @Database WHERE @Column IS NOT NULL) AS S

ON (T.RecordID = S.RecordID)

WHEN MATCHED THEN

UPDATE SET ..

WHEN NOT MATCHED THEN

INSERT ..;

GO

— Clean up the temp table

DROP TABLE #Records;

GO

通过使用这些步骤,Mssql介质恢复可以从脱机数据库中恢复记录。这需要用户周到关注每一步(例如格式文件,第一行行号等),但它是有可能的。

总之,Mssql介质恢复使用簇技术来重构文件,重新安排下来的片段来定位和储存记录。它也可以从脱机数据库恢复记录,只需要找到适当的编辑器并编写好步骤,就可以实现重新拉回数据的目的。


数据运维技术 » Mssql介质恢复:用簇把脱机数据拉回轨道(Mssql介质簇)