尝试用官方提供的“AdventureWorks2014.bak”恢复数据库
异常1:
设备 'F:\sql测试数据库\AdventureWorks2014.bak' 上的介质簇的结构不正确。
异常分析,可能原因:
文件损坏;
备份软件与还原软件版本差异较大;
文件本身不是SQLServer文件,比如你创建一个txt文件然后改后缀名为bak,也一样会报错;
bak不是完整备份,而是可能差异备份、日志备份,这时候需要先还原完整备份才能继续。
一次备份操作可以写入多个bak文件,而你只获取了其中一个。
异常处理:
更换备份文件。网上下载“AdventureWorks2008.bak”尝试还原,无此异常。
网盘链接:
异常2:
还原“AdventureWorks2008.bak”时遇到 FILESTREAM feature is disabled 错误提示.
FileStream是SQL Server 2008 新添加的feature, 默认是关闭的. 如果 DB backup 文件启用了这个功能,再另外一台 Server 上还原时也需要 enable 这个feature.
刚开始的时候想通过更改 SQL Server Configuration Manager 打开, 步骤如下:
1> 打开 SQL Server Configuration Manager
2> 找到 SQL Server Services
3> 切换到 FILESTREAM tabe
4> 选中 [Enable FILESTREAM for Transact-SQL access] and [Enable FILESTREAM for file I/O streaming access]
4> 单击 OK 按钮, 重启 电脑
It does not work, 还原的时候错误依旧.
查了一下 Books-Online, 原来这个配置是用来控制 access 的, 根本是驴唇不对马嘴.
正确的设置方法是调用 sp_configure 存储过程来启用 filestream.
代码如下:
USE master
GO
EXEC sp_configure filestream_access_level, 2
RECONFIGURE
重新还原数据库, It Works !