none
在服务器上访问指定的路径或文件。请确保您具有必需的安全权限且该路径或文件存在 RRS feed

  • 问题

  • 还原数据库时,选择需还原的.bak文件时提示:在服务器上访问指定的路径或文件。请确保您具有必需的安全权限且该路径或文件存在

    改怎么解决呢,谢谢!

    2021年7月13日 8:28

答案

全部回复

  • 你好,

    这可能是与SQL Server服务的启动帐号权限不足有关。

    请授予SQL Server服务帐号对于该备份所在的文件夹的完全权限。如果SQL Server服务的启动帐号是虚拟帐号(比如NT SERVICE\MSSQLSERVER),则在为该文件夹授权查找帐号时需要直接输入虚拟帐号名,浏览是找不到的。

    或者将备份文件移动至默认的备份位置,通常在C:\Program Files\Microsoft SQL Server\MSSQLnn.instancename\MSSQL\Backup.


    2021年7月13日 9:02
  • 这个背景是在sql server群集上进行的;

    针对您说的我尝试过了,授予SQL Server服务的启动帐号权限,但还是不行。



    2021年7月14日 3:34
  • 备份文件保存在什么位置呢,是在本地还是群集的共享磁盘上,SQL Server所在的服务器能否访问这个文件。
    2021年7月14日 5:51
  • 备份文件保存在群集共享磁盘上(我们设置的是Y盘),服务器通过文件资源管理器能访问该文件夹并能够在文件夹里常见新的文件夹
    2021年7月14日 6:32
  • 提供一个我认为很有价值的信息:定位备份文件的用户名为:sqlcluster 

    而不是sql server服务器本身的启动账号,也不是我连接sql server 服务器的sa账号

    2021年7月14日 6:47
  • 您说的sqlcluster 用户是什么账号呢,

    我在我的群集环境里测试,备份还原并没有出现什么问题。

    SSMS UI和T-SQL都测试了吗,具体的错误信息是什么的。


    2021年7月14日 7:42
  • 我也觉得奇怪,因为sql server服务器并没有此账号;应该是故障转移群集管理器里的服务器名称
    2021年7月14日 7:51
  • 由于我无法发图片,方便加您VX嘛。我的VX:13522993611
    2021年7月14日 7:53
  • 那就应该SQL Server故障转移群集的虚拟网络名了。

    把备份复制到SQL Server服务器本地磁盘还原试试

    2021年7月14日 7:56
  • C:\Program Files\Microsoft SQL Server\MSSQLnn.instancename\MSSQL

    我的群集没有backup文件夹,就放在这里试试,SSMS会按照默认路径底下去找,所以还是先会提示开头的错。

    2021年7月14日 9:34
  • 接着我把SSMS会按照默认路径改为C:\Program Files\Microsoft SQL Server\MSSQLnn.instancename\MSSQL;还是会报这个错;像问问一般sql server还原数据库时一般是通过什么用户去找路径;为什么我这边一直用sqlcluster去定位备份文件。
    2021年7月14日 9:57
  • 我手动添加了路径,然后执行还原;最后报错:.mdf文件不能用于群集服务器,只能使用服务器的群集资源所依赖的带格式文件。包含该文件的磁盘资源不在群集组中,或者sql server 的群集资源不依赖于它
    2021年7月14日 11:35
  • Where did you backup that db?
    2021年7月15日 1:02
  • 我手动添加了路径,然后执行还原;最后报错:.mdf文件不能用于群集服务器,只能使用服务器的群集资源所依赖的带格式文件。包含该文件的磁盘资源不在群集组中,或者sql server 的群集资源不依赖于它

    n这个错误说明,你还原备份时为数据库文件指定的路径所在的磁盘不在SQL Server故障群集的资源组内,或者磁盘资源和SQL Server没有依赖关系。

    你还原时为数据库文件指定了本地路径吗?你的数据库文件等应该保存在共享磁盘吧。

    如果是使用t-sql还原,请展示下还原脚本


    2021年7月15日 1:59
  • USE [master]
    RESTORE DATABASE [FiscanDB_CSMS_X_QD] FROM  DISK = N'Y:\MSSQL11.MSSQLSERVER\MSSQL\backup\FiscanDB_CSMS_X_QD.bak' WITH  FILE = 6,  MOVE N'FiscanDB_CSMS_X' TO N'Y:\MSSQL11.MSSQLSERVER\MSSQL\data\FiscanDB_CSMS_X123.mdf',  MOVE N'FiscanDB_CSMS_X_log' TO N'Y:\MSSQL11.MSSQLSERVER\MSSQL\data\FiscanDB_CSMS_X_123.ldf',  NOUNLOAD,  STATS = 5

    GO

    怎么确认数据库文件指定的路径所在的磁盘不在SQL Server故障群集的资源组内,或者磁盘资源和SQL Server没有依赖关系

    2021年7月15日 5:33
  • 检查故障转移群集管理器

    依赖关系右键点击SQLServer服务,查看属性,


    2021年7月15日 5:46
  • 对,就是这个地方

    已经添加完依赖关系并解决了,谢谢您呐,万分感谢。


    2021年7月15日 8:31

  • 感谢反馈。很高兴可以帮助到您。

    2021年7月15日 8:43