5 windows-server-2008 vss veeam
一位团队成员告诉我,我们的一个基于 Windows Server 2008(不是 2008 R2)的 MSSQL 服务器已经开始在应用程序事件日志中生成 CAPI2 事件 ID 513 错误:
Application\CAPI2
Cryptographic Services failed while processing the OnIdentity() call in the System Writer Object.
Details:
AddCoreCsiFiles: BeginFileEnumeration() failed.
System Error: Access is denied.
Run Code Online (Sandbox Code Playgroud)
一个小小的 PowerShell 显示该问题始于 14 年 8 月 6 日,并且似乎主要发生在每天 22:00 之后:
PS C:\Users\Administrator> Get-EventLog -LogName Application | ? { $_.EventID -like "513" -and $_.Source -like "Microsoft-Windows-CAPI2" } | Select -Property TimeGenerated
TimeGenerated
-------------
8/18/2014 10:41:32 AM
8/18/2014 10:25:17 AM
8/18/2014 10:15:20 AM
8/17/2014 10:55:41 PM
8/17/2014 10:55:27 PM
8/17/2014 10:55:26 PM
8/16/2014 10:49:44 PM
8/16/2014 10:49:28 PM
8/16/2014 10:49:28 PM
8/15/2014 10:52:11 PM
8/15/2014 10:51:58 PM
8/15/2014 10:51:57 PM
8/15/2014 1:03:06 AM
8/15/2014 1:02:45 AM
8/15/2014 1:02:45 AM
8/13/2014 10:58:49 PM
8/13/2014 10:58:32 PM
8/13/2014 10:58:31 PM
8/12/2014 10:57:09 PM
8/12/2014 10:56:56 PM
8/12/2014 10:56:56 PM
8/11/2014 10:56:13 PM
8/11/2014 10:55:56 PM
8/11/2014 10:55:55 PM
8/10/2014 10:50:15 PM
8/10/2014 10:50:04 PM
8/10/2014 10:50:03 PM
8/10/2014 7:12:09 AM
8/10/2014 7:11:52 AM
8/10/2014 7:11:51 AM
8/8/2014 10:57:00 PM
8/8/2014 10:56:44 PM
8/8/2014 10:56:43 PM
8/6/2014 9:47:26 PM
8/6/2014 9:47:03 PM
8/6/2014 9:47:02 PM
8/6/2014 10:48:33 AM
Run Code Online (Sandbox Code Playgroud)
好奇不?我想知道 System Writer 对象是做什么用的?影子副本!呵呵!本月,我开始使用 Veeam 对该虚拟机进行基于 VSS 的应用程序感知备份。自然地,备份过程从 22:00 开始,这解释了重复频率而不是“随机”时间发生的错误。
有趣的是,Veeam 没有将其注册为失败的备份尝试,这让我怀疑还原点是否实际上是事务一致的。无论如何,我快速搜索了 Veeam 备份日志并没有发现任何明显错误,但可能值得仔细查看它们并确认从这些还原点恢复是事务一致的。
该事件ID 513的TechNet引用推荐分辨率表示NTFS权限问题可能出错,但是C:\Windows\RegistrationCOM +注册文件夹具有相应的权限。
想法?
小智 6
Mathias R. Jessen 为我指明了正确的方向,即著名的 WinSxS 文件夹。但是,我没有在事件日志中看到任何 VSS 错误,这让我有点犹豫要不要取消所有 NTFS 权限,以免破坏其他内容。
我返回并再次阅读事件 ID 513 TechNet 参考,并注意到在验证部分下,建议我检查System Writer是否可用作为 VSS 编写器使用,vssadmin list writers并且确实不是。经验教训 #1:阅读整个知识库/TechNet/博客
做更多的研究,我遇到了Missing System Writer Case Explained,这似乎表明问题源于Cryptographic Services。我发现我可以CAPI2通过停止和启动CryptSVC服务来随意重现错误。经验教训#2:尝试找出一种方法来随意重现您的错误。
在这一点上,我几乎遵循了帖子的说明。我找到了使用Task Managersvchost包装的实例的 PID 。如果您可以重新启动有问题的服务器,您也可以使用sc config强制作为自己的进程运行。根据您对 ProcMon 的深入了解,值得在单个 PID 下隔离服务,以减少您必须整理的事件数量。CryptSVCCryptSVC
从这里它又回到了古老的 ProcMon。设置过滤器以排除所有不是svchost包装进程使用的 PID CryptSVC:

我应用了我可信赖的第一遍过滤器,即排除所有具有SUCCESS. 这将事件从 31,118 个减少到更易于管理的 139 个,并且在底部我找到了ACCESS DENIED我正在寻找的事件,毫不奇怪在WinSxS文件夹 ( C:\Windows\winsxs\FileMaps\$$.cdf-ms) 中。经验教训 #3:学会使用和热爱 ProcMon

怎么办?Mathias 链接的KB2009272有解决方案,但现在我知道为什么了。经验教训#4:不要猜测,知道!
分辨率与KB2009272 中的解释完全相同。取得所有权并重置FileMaps文件夹的权限,然后重新启动CryptSVC:
Takeown /f %windir%\winsxs\filemaps\* /a
icacls %windir%\winsxs\filemaps\*.* /grant "NT AUTHORITY\SYSTEM:(RX)"
icacls %windir%\winsxs\filemaps\*.* /grant "NT Service\trustedinstaller:(F)"
icacls %windir%\winsxs\filemaps\*.* /grant BUILTIN\Users:(RX)
net stop cryptsvc
net start cryptsvc
Run Code Online (Sandbox Code Playgroud)
而且……我们已经起飞了!在System Writer现在可作为一个VSS作家。无需更改PendingRename文件夹的权限。经验教训#5:从最小的更改开始,然后努力进行影响更多事情的更改。
C:\Users\administrator>vssadmin list writers
vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool
(C) Copyright 2001-2005 Microsoft Corp.
Writer name: 'System Writer'
Writer Id: {e8132975-6f93-4464-a53e-1050253ae220}
Writer Instance Id: {98c52075-429a-4487-8b77-e42b18767458}
State: [1] Stable
Last error: No error
Run Code Online (Sandbox Code Playgroud)
重新启动CryptSVC将不再产生CAPI2错误,经过一两天的监视后,它看起来已解决。
| 归档时间: |
|
| 查看次数: |
14693 次 |
| 最近记录: |