时间:2023-10-26来源:系统城装机大师作者:佚名
这是演示的是Sql Server 2008R2版本,不同版本可能有细微差别
右键点击数据库→还原数据库
在还原的源中选择源设备→点击选择框
在指定备份中点击添加→选择具体文件→确定→确定
勾选用于还原的备份集→这时目标数据库中会自动生成目标数据库名,在此选择即可→确定
即可还原BAK数据库备份文件
1.指定的转换无效
在选择具体文件的时候,我们可能会产生这个报错,导致这个的原因是BAK文件备份中的版本和高于我们的版本,需要部署更高版本的SqlServer。
2.System.Data.SqlClient.SqlError: 尚未备份数据库 "xxx" 的日志尾部
2005版本以上,在还原BAK备份文件时是不需要提前建好数据库的。所以,先选源设备,再在下拉选项中选择数据库即可。
3.3154或3159报错
原因和第二点一致,在选择还原文件和文件组时才会出现这两个报错
ALTER DATABASE [test] SET OFFLINE WITH ROLLBACK IMMEDIATE --断开其他用户与数据库的连接
USE MASTER --这里注意要使用MASTER,以免出现待还原库被占用的情况
RESTORE DATABASE [test] --为待还原库名
FROM
DISK = 'C:\Users\xxx\Desktop\exxx_zy.bak' --备份文件的位置
WITH
MOVE 'exxx_zy' --数据文件逻辑名字
TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\exxx_zy.mdf', --指定数据文件路径
MOVE 'exxx_zy_LOG' --日志文件逻辑名字
TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\exxx_zy.ldf', --指定日志文件路径
STATS = 10, REPLACE
GOALTER database [test] set online --重新上线数据库
1.逻辑文件 'xxx' 不是数据库 'test' 的一部分。
文件名不一定是实际的逻辑名,这个时候我们需要获取文件的逻辑名替换后再执行语句。此时执行RESTORE FILELISTONLY FROM DISK ='C:\Users\xxx\Desktop\xxx.bak'获取数据文件和日志文件的LogicalName。
2.设备'xxx.bak'上的介质簇的结构不正确。
出现这个错误代表bak文件版本高于目前Sql Server版本,需要升级
这里演示的Navicat版本是16,部分版本可能不太相同
使用Navicat恢复BAK备份文件依旧需要有Sql Server,连接步骤这里省略。
选择SqlServer任意数据库→SQL Server备份→空白处鼠标右键→选择从文件还原
选择需要还原到的数据库→添加设备→选择备份文件→确定
勾选还原计划
选择高级→勾选WITH REPLACE→选择数据文件和日志文件存放位置(这里不选择会默认放置在之前服务器/电脑的地址)→生成SQL
点击还原
稍等片刻就还原啦
1.需要密码
其实当BAK文件版本高于当前SqlServer版本的时候,也会产生这个提示,这是因为SqlManagerUI的报错被Navicat理解成了需要密码。所以当使用Navicat还原BAK文件的时候可以和对方确认一下版本信息,避免造成误解。
2023-10-27
windows11安装SQL server数据库报错等待数据库引擎恢复句柄失败解决办法2023-10-27
SQL Server截取字符串函数操作常见方法2023-10-27
浅谈SELECT *会导致查询效率低的原因收缩数据文件通过将数据页从文件末尾移动到更靠近文件开头的未占用的空间来恢复空间,在文件末尾创建足够的空间后,可取消对文件末尾的数据页的分配并将它们返回给文件系统,本文给大家介绍SQL Server 数据库中的收缩数据...
2023-10-27