sqlserver数据库还原

这里是从A服务器备份的数据库文件,还原到本地B电脑的数据库。因数据库版本相同,故而未曾出现其他版本问题

1、有个bak的备份文件

2、在B电脑新建一个数据库test。

3、设置test数据库的访问限制为single为只能一次一个用户访问(不是必要设置,以往万一为可选设置)

4、B电脑数据库登录使用windows身份验证

5、避免访问失败,请将MyDBTest.mdf和MyDBTest_log.ldf文件加上everyone权限

6、建议使用sql语句还原

use   master    --这里为master,总之不能是还原的数据库test。因为会占用数据库导致还原失败。还原时需断开所有连接,(断开连接方式)可进行脱机——删除连接——联机
 RESTORE DATABASE MyDBTest FROM --还原到MyDBTest数据库
DISK = 'E:DesktopDB_202105261930.bak'  WITH FILE = 1, --从DB_202105261930备份文件还原
MOVE N'MyDB' TO N'C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLDATAMyDBTest.mdf', --将原始文件名 还原到MyDBTest文件
MOVE N'MyDB_Log' TO N'C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLDATAMyDBTest_log.ldf',--将原始文件名 还原到MyDBTest_log文件
NOUNLOAD, REPLACE, STATS = 10

7、执行成功消息




 还原失败问题

消息 3634,级别 16,状态 1,第 17 行
The operating system returned the error '5(拒绝访问。)' while attempting 'RestoreContainer::ValidateTargetForCreation' on 'C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLDATAMyDBTest.mdf'.
消息 3156,级别 16,状态 5,第 17 行
File 'MyDB' cannot be restored to 'C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLDATAMyDBTest.mdf'. Use WITH MOVE to identify a valid location for the file.
消息 3634,级别 16,状态 1,第 17 行
The operating system returned the error '5(拒绝访问。)' while attempting 'RestoreContainer::ValidateTargetForCreation' on 'C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLDATAMyDBTest_log.ldf'.
消息 3156,级别 16,状态 5,第 17 行
File 'MyDB_log' cannot be restored to 'C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLDATAGUTAERPtest2_log.ldf'. Use WITH MOVE to identify a valid location for the file.
消息 3119,级别 16,状态 1,第 17 行
Problems were identified while planning for the RESTORE statement. Previous messages provide details.
消息 3013,级别 16,状态 1,第 17 行
RESTORE DATABASE is terminating abnormally.

原因:因为C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLDATA的目录权限不足。

解决方案:将MyDBTest数据库分离,文件移动到别的盘符,就可解决

原文地址:https://www.cnblogs.com/bklsj/p/15188157.html