最近一直在忙数据库的还原,总是各种出错,不是找不到系统文件就是逻辑文件不对,很让人头疼,各种心酸只有自己知道,由于不人不擅长拐弯抹角,所以直接上解决步骤
一、查询备份文件的逻辑名:
restore filelistonly from disk='F:\hh.bak'
二、如何取备份文件的逻辑文件名,个人觉得可以直接用临时表,表中的字段从1下复制出来的(注意sql2000可能没有这么多字段)
CREATE TABLE #LogicalFileBak(LogicalName nvarchar(128),
PhysicalName nvarchar(260),
Type char(1),
FileGroupName nvarchar(128),
[Size] numeric(20,0),
[MaxSize] numeric(20,0),
[Field] int,
[CreateLSN] int,
[DropLSN] int,
[UniqueId] uniqueidentifier,
[ReadOnlyLSN] int,
[ReadWriteLSN] int,
[BackupSizeInBytes] numeric(20,0),
[SourceBlockSize] numeric(20,0),
[FileGroupId] int,
[LogGroupGUID] nvarchar(200),
[DifferentialBaseLSN] int,
[DifferentialBaseLSNGUID] uniqueidentifier,
[IsReadOnly] int,
[IsPresent] int,
[TDEThumbprint] nvarchar(200)
);
三、把备份文件中的逻辑信息都存入临时表中
INSERT #LogicalFileBak EXEC('RESTORE FILELISTONLY FROM DISK = ''' + @bakFile + '''');
四、备份文件
USE master(必须是master,具体为什么我想不必多说多说了)
RESTORE DATABASE DB (新数据库名)
FROM DISK = 'g:\back.Bak' (备份文件)
WITH MOVE '逻辑文件数据库名' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DB.mdf',
MOVE '逻辑文件数据库名' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DB_log.ldf',
STATS = 10, REPLACE
GO
按照如上步骤执行,各种数据库必然备份成功
如若想要详细方法,请发邮件1015037462@qq.com