通过故障转移集群管理器,我最近向运行在 Windows Server 2012 R2 上的现有 SQL Server 2008 R2 集群添加了一个新磁盘。
尝试在此新存储上创建数据库时,出现以下错误:
Msg 5123, Level 16, State 1, Line 1
CREATE FILE encountered operating system error 5(failed to retrieve text for this error. Reason: 15105) while attempting to open or create the physical file 'J:\DATA\mydatabase.mdf'.
Msg 1802, Level 16, State 4, Line 1
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
我可以手动添加一个文件到 J:\data
新存储可以在节点之间移动而不会出现任何错误
SQL Server 服务帐户对整个 J:\ 驱动器具有完全控制权
SQL Server 服务帐户完全控制 J:\DATA 这是驱动器的布局,您会注意到 DATA 是安装在 J:\ 中的独立卷
有人可以帮我弄清楚为什么会出现此错误吗?
更新
来自 James,如果我向数据添加一个子目录,则创建数据库命令有效
CREATE DATABASE [MCO_DB] ON PRIMARY
( NAME = N'MYDATABASE_DB', FILENAME = N'J:\DATA\MYDATABASE\MYDATABASE_DB.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = N'MYDATABASE_DB_log', FILENAME = N'J:\TRN\MYDATABASE_DB_1.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO
操作系统错误 5 很简单
Access is denied
,您可以随时在命令提示符中检查这些错误net helpmsg 5
。现在卷安装点有时很麻烦。在 Windows Server 2000 中,calcs.exe出现错误,无法在底层驱动器上设置权限,唯一的方法是使用驱动器号装载卷,在根文件夹上设置权限,然后创建一个装载点。
更高版本的 Windows 应该能够使用 /M 开关设置挂载点的权限,以便
将授予 domain\account 对安装在 j:\data 的驱动器的根目录的完全权限,我仍然没有学会这样做,
icacls.exe
并且评论如何这样做将得到很好的应用。正如您发现的那样,在挂载点上创建子文件夹可以为该文件夹创建访问列表,但使用 GUI 设置驱动器根文件夹的权限似乎仍然存在问题。
通常我不会使用 calcs 命令,如果我需要在根目录上设置权限,我会添加一个驱动器号,使用 GUI 设置权限,然后删除驱动器号。
系统卷信息文件夹存在问题,该文件夹是该卷根目录下的隐藏文件夹。
在同一台机器上的其他卷上,这个受保护的卷在文件夹选项中可见后可以访问
但是,我无法访问我试图在其中创建数据库的 DATA 目录的 System Volume Information 文件夹。
我们的 Windows 管理员采取的解决步骤
一个新的驱动器盘符 T: 已创建
J: 驱动器的内容被复制到其中
J:驱动器被破坏,T:驱动器在Windows中被更改为J:驱动器。
之后,我就可以正常创建数据库了。
感谢@jamesanderson 让我走上了正确的道路。