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:\Desktop\DB_202105261930.bak'  WITH FILE = 1, --从DB_202105261930备份文件还原
MOVE N'MyDB' TO N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MyDBTest.mdf', --将原始文件名 还原到MyDBTest文件
MOVE N'MyDB_Log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MyDBTest_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 Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MyDBTest.mdf'.
消息 3156,级别 16,状态 5,第 17 行
File 'MyDB' cannot be restored to 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MyDBTest.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 Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MyDBTest_log.ldf'.
消息 3156,级别 16,状态 5,第 17 行
File 'MyDB_log' cannot be restored to 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\GUTAERPtest2_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 Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA的目录权限不足。

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

posted @ 2021-08-26 10:01  兮去  阅读(618)  评论(0编辑  收藏  举报