请帮我解决这个安装问题。
我正在尝试在两个 Windows Server 2012 R2 VM 上安装 SQL Server 2016(SP1 集成)故障转移群集实例 (FCI)。
我有 3 个集群磁盘。
- 数据驱动器:E:\
- 日志挂载点:E:\MSSQL\Log\L1
- Tempdb 挂载点:E:\MSSQL\Data\Tempdb1
我首先尝试直接安装到这些根目录。失败后,我创建了要安装到的子目录。服务帐户和我自己是虚拟机的本地管理员,我明确授予对每个子目录的完全控制权。最后,我暂时忽略了挂载点,只安装到 E: 上的子目录。所有尝试都失败并出现以下错误。
详细结果:功能:数据库引擎服务状态:失败:查看日志了解详细信息失败原因:功能设置过程中发生错误。下一步:使用以下信息解决错误,卸载此功能,然后再次运行设置过程。组件名称:
SQL Server 数据库引擎服务实例功能组件错误代码:0x84CF0004 错误描述:更新文件夹“E:\MSSQL\Data\TempDB1\System Volume Information”的权限设置时,文件“E:\MSSQL\Data\”的权限设置更新失败TempDB1\系统卷信息\ResumeKeyFilter.Store'。文件夹权限设置应该设置为 'D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;FA;;;CO)(A; OICI;FA;;;S-1-5-80-419818685-2113908795-3893829424-1849583840-1690709397)'。错误帮助链接: http:
//go.microsoft.com/fwlink ?LinkId=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=13.0.4001.0&EvtType=0x88792597%400xBB814387&EvtType=0x88792597%400xBB8143
下面是用于安装的配置文件的匿名版本。
;SQL Server 2016 Configuration File
[OPTIONS]
ACTION="InstallFailoverCluster"
SUPPRESSPRIVACYSTATEMENTNOTICE="False"
IACCEPTROPENLICENSETERMS="False"
IAcceptSQLServerLicenseTerms="True"
ENU="True"
QUIET="False"
QUIETSIMPLE="True"
UpdateEnabled="True"
USEMICROSOFTUPDATE="False"
FEATURES=SQLENGINE,REPLICATION,FULLTEXT,DQ,CONN,BC,SDK,SNAC_SDK
UpdateSource="MU"
HELP="False"
INDICATEPROGRESS="True"
X86="False"
INSTANCENAME="InstName"
INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"
INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server"
INSTANCEID="InstName"
INSTANCEDIR="C:\Program Files\Microsoft SQL Server"
FAILOVERCLUSTERDISKS="Cluster Disk 7"
FAILOVERCLUSTERGROUP="SQL Server (InstName)"
FAILOVERCLUSTERIPADDRESSES="IPv4;10.10.10.17;Cluster Network 2;255.255.255.0"
FAILOVERCLUSTERNETWORKNAME="abc-123-IN"
AGTSVCACCOUNT="DOMAIN\sqlsvc-abc-123"
COMMFABRICPORT="0"
COMMFABRICNETWORKLEVEL="0"
COMMFABRICENCRYPTION="0"
MATRIXCMBRICKCOMMPORT="0"
FILESTREAMLEVEL="0"
SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS"
SQLSVCACCOUNT="DOMAIN\sqlsvc-abc-123"
SQLSVCINSTANTFILEINIT="True"
SQLSYSADMINACCOUNTS="DOMAIN\AdminGroup"
SECURITYMODE="SQL"
SQLTEMPDBFILECOUNT="8"
SQLTEMPDBFILESIZE="8"
SQLTEMPDBFILEGROWTH="64"
SQLTEMPDBLOGFILESIZE="1024"
SQLTEMPDBLOGFILEGROWTH="128"
INSTALLSQLDATADIR="E:"
SQLBACKUPDIR="E:\MSSQL\Backup"
SQLUSERDBDIR="E:\MSSQL\Data"
SQLUSERDBLOGDIR="E:\MSSQL\Log"
SQLTEMPDBDIR="E:\MSSQL\Data"
SQLTEMPDBLOGDIR="E:\MSSQL\Data"
FTSVCACCOUNT="NT Service\MSSQLFDLauncher$InstName"
您可能需要在装载点卷上而不是在文件夹级别上设置权限。我怀疑这是您遇到的问题。
来自在装载点文件夹上设置 SQL 权限的指南(突出显示的是 Microsoft 的):
我必须解决这个问题的方法是使用cacls.exe实用程序。可以在这里找到它的详细说明。我怀疑您授予用户完全权限的命令如下:
您需要为您的帐户以及 SQL Server 服务帐户或组运行此操作。
最后要注意的是,您必须包含该
/E
标志,否则它将覆盖该路径上的权限。这种行为会带来溃疡和大量饮酒的额外副作用,因此请确保在运行此命令时不要忘记编辑标志。另一种选择是删除驱动器并从头开始重新分区。最初尝试通过 Windows 资源管理器设置安全性时,它们仍然可能搞砸了(例如,查看第一篇 MS 文章中的Gotcha子句)。
在这种情况下,如果您仍想写入挂载路径上的根文件夹,则需要使用该
cacls
实用程序。我还建议在、、E:\
等上设置三个子文件夹,然后将所有内容安装到子文件夹中。不要将挂载点嵌套到您将安装文件的目录中。Data
Logs
TempDB
已解决(解决方法)
首先要查看此隐藏文件夹(系统卷信息),单击查看选项卡并选择隐藏项目,然后转到选项选项卡单击查看选项卡并取消选择隐藏受保护的操作系统文件(推荐)。
要解决问题,我转到
G:\System Volume Information\
文件夹并右键单击文件ResumeKeyFilter.Store
单击属性,然后在安全选项卡中添加您的安装用户,在我的情况下,我使用名为 grid 的域用户并添加此用户以获得权限。