(可选)禁用 Service Manager ECL 日志记录以加快连接器同步速度
可以观看此 视频 ,快速了解此功能。 有关更多详细信息,请继续阅读文章。
Service Manager 中的 Active Directory (AD) 和 System Center Configuration Manager (SCCM) 连接器可将大量数据导入 Service Manager 数据库。 这样不仅可增加数据表(连接器的数据的存储位置)的大小,还能大幅增加 EntityChangeLog (ECL) 表和历史记录表的大小。 在某些情况下,大型 ECL 表大小可能是个问题:它可以显著降低系统速度。
这种情况中,ECL 表和历史记录表将存储有关将数据引入 Service Manager 的时间的详细信息,以及为每个数据项添加或更新的数据。
禁用 ECL 日志记录不会影响从连接器导入数据。 相反,大多数日志数据不会写入到 ECL 和历史记录表中,从而可以明显提升性能。
禁用的 ECL 日志记录不会自动打开。 换句话说,默认情况下,ECL 日志记录处于启用状态。 但是,可以使用 PowerShell cmdlet 轻松打开禁用的 ECL 日志记录。
禁用 ECL 日志记录不会关闭有关事件、更改请求等工作项的日志记录历史记录数据。 它们将继续按原样工作。
用户对连接器导入的数据所做的任何显式更改(如用户或计算机)仍会记录在 ECL 和历史记录中。
尽管禁用 ECL 日志记录,但也会记录使用连接器导入的数据 的历史记录。 例如,如果将 SCCM 连接器导入的计算机添加到事件或将用户分配为受影响的用户,则这些更改仍记录在系统中。
目前,禁用 ECL 日志记录仅限于 SCCM 和 Active Directory 连接器。
安装 Service Manager 时,默认启用 ECL 日志记录。
禁用 ECL 日志记录的好处
禁用 ECL 日志记录时:
连接器同步时间显著减少。 在Microsoft测试期间,SCCM 连接器的性能提高了 65%,Active Directory 连接器的性能提高了 55%。
ECL 表和历史记录表的大小不会增加。 在 Active Directory 连接器测试期间,它引入 220 万行,在 SCCM 连接器测试中,它在 ECL 和历史记录表中引入 1160 万行。 启用该功能后,不会向这些表中添加任何行。
禁用 ECL 日志记录的缺点
以下是此功能的一些缺点:
禁用 ECL 日志记录时,无法创建 DCM 事件。
一些 Service Manager 用户创建了用户定义的工作流,用于监视连接器导入的数据。 如果已定义连接器导入数据时需要触发的工作流,则启用此功能不会触发这些工作流。 由于工作流会查找 ECL 表以获取条目,并且此功能不会记录 ECL 表中的条目,因此这些工作流不起作用。 在这种情况下,不应禁用 ECL 日志记录。
由于条目未写入 ECL 和历史记录表,因此不会记录 Service Manager 中连接器导入的数据项的创建和/或更改的历史记录。 换句话说,如果禁用 ECL 日志记录,则无法确定何时将用户或计算机对象导入 Service Manager 数据库,以及/或何时将这些对象的更改导入到 Service Manager 数据库中。
在某些情况下,需要将对用户和计算机等数据的更改记录在数据库中,以进行审核。 在此示例中,另一种方法是从源获取更改历史记录。 例如,需要从 Active Directory 获取对用户的更改历史记录,或者从 Configuration Manager 获取对计算机的更改历史记录。
有关禁用 ECL 日志记录的其他信息
使用 System Center 2016 - Service Manager 时,无论以前是否禁用的 ECL 日志记录,默认情况下都会对新安装和升级禁用 ECL 日志记录。 …之前可能使用过的设置将不再使用。 需要使用下面的过程来禁用 ECL 日志记录。
如果之前使用注册表项来禁用 ECL 日志记录,则注册表值将保留在管理服务器上。 可以手动删除 ConnectorLoggingDisabled
密钥下的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\System Center\2010\Common\SDK Service
REG_DWORD。
禁用 ECL 日志记录
使用以下过程为连接器禁用 ECL 日志记录。
禁用 SCCM 和 Active Directory 连接器的 ECL 日志记录
提示
可以使用 Service Manager shell 中的 cmdlet 读取 SCCM 和 AD 连接器 状态 - Get-SCSMClassInstance (Get-SCSMClass -Name "System.GlobalSetting.ConnectorEclLogSettings")
的 ECL 日志记录禁用。 设置为 0 时输出中的值 ConnectorEclLogDisabled
意味着所有 ECL 日志都已启用。 设置为 1 时输出中的值 ConnectorEclLogDisabled
意味着已禁用 SCCM 和 AD 连接器的 ECL 日志。
以主管理服务器上的管理员身份打开 Service Manager PowerShell 命令。
在 Service Manager shell 中运行以下命令:
Get-SCSMClassInstance (Get-SCSMClass -Name "System.GlobalSetting.ConnectorEclLogSettings") | %{$_.ConnectorEclLogDisabled = 1 ; $_} | Update-SCSMClassinstance
重新启用 ECL 日志记录
- 将上一过程中的值
1
替换为0
并运行命令。
后续步骤
- 阅读 配置项目 ,了解如何在 Service Manager 数据库中存储有关服务、计算机、软件、软件更新、用户和其他未定义的导入对象的信息。