应用对象
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core

概要

不能创建 Microsoft SQL Server 2012 AlwaysOn 可用性组侦听器时,常常是其他问题,您不能在活动目录中创建一个对象或在 DNS 中注册的 IP 地址的一种症状。因为域策略,或由于缺乏权限的 Windows 群集与 Active Directory 或 DNS 进行交互,通常会出现这些问题。在 SQL Server 中创建一个侦听器时,Windows 群集将创建客户端访问点资源。如果 SQL Server 无法创建侦听器,它可能无法报告原因,原因是 Windows 群集创建资源。 在此情况下,可以为了诊断原因收集 Windows 群集日志和 Windows 系统事件日志。如果您不能创建一个侦听器,通常是由于至少由于以下原因之一︰

  • 您没有足够的 Windows 群集权限,以创建和更改 Active Directory 群集帐户名称。

  • 由于某些涉及重复或无效的 IP 地址的问题,无法在 DNS 中注册的 IP 地址。

  • 违反 Windows 策略。

本文讨论为了诊断失败的尝试,如果 SQL Server 无法报告导致创建一个侦听器可以执行的步骤。此外,本文列出了一些可用性组侦听器创建失败时,您可能会看到的错误消息。

详细信息

SQL Server 可能无法报告原因时不能创建一个可用性组侦听器

通过 SQL Server 管理 Studio添加侦听器对话框创建一个可用性组侦听器时,可能会收到一条错误消息,其中包含一个错误,它可以帮助您解决此问题的原因有关的信息。例如,您收到类似于以下内容的子网的 IP 地址不正确有关的错误消息︰

指定的 IP 地址 <IP 地址> 是无效群集允许 IP 范围内。请与网络管理员联系,以选择适合的群集允许 IP 范围的值。(Microsoft SQL Server,错误︰ 19457)

Image 1 但是,也可能会收到错误消息,不能说明为什么您不能创建组侦听器。例如,当您尝试创建一个可用性组侦听器,您将收到没有指定错误的实际原因如下所示的错误消息︰

消息 19471,级别 16,状态 0,第 2 行WSFC 群集可以使网络名称资源联机 DNS 名称 <DNS 名称>。DNS 名称可能已采取的与现有名称服务,有冲突或 WSFC 群集服务可能没有运行,或者可能无法访问。使用不同的 DNS 名称来解析名称冲突或检查 WSFC 群集日志中的详细信息。

消息 19476,级别 16,状态 4,第 2 行侦听器创建网络名称和 IP 地址的尝试失败。WSFC 服务未在运行或在其当前状态或网络名称为提供的值可能无法访问,IP 地址可能不正确。检查 WSFC 群集的状态和验证的网络名称和 IP 地址与网络管理员联系。

Image 2

此问题是由于的 Windows 群集不能创建并使其联机的客户端访问点,它是群集的资源。当您遇到此问题时,您可以为了找到原因从 Windows 群集日志和 Windows 系统事件日志收集相关信息。若要执行此操作,请执行以下步骤。

第 1 步︰ 注意问题发生的确切时间执行任何步骤所需重现该问题,并注意此问题发生的时间。

步骤 2: Review Windows 群集日志中的数据 (Cluster.log)您为组侦听器指定的网络名为 Cluster.log 文件中搜索。备注:

  • Cluster.log 文件项中记录以协调通用时间 (UTC)。

  • 若要使用 Windows Server 2008 R2 或更高版本的 Windows 服务器管理命令提示符生成 Windows 群集日志,请运行以下命令︰

    Cluster log /g

    Image 4

  • 若要使用 Windows PowerShell 生成 Windows 群集日志,请运行以下 cmdlet 提升 PowerShell 窗口︰

    Get-ClusterLog

    Image 5

  • 默认情况下,日志文件 %windir%\cluster\reports 中创建。

步骤 3︰ 检查 Windows 系统事件日志中的数据查看 Windows 系统事件日志中的条目相关的侦听程序创建尝试通过使用您在步骤 1 中记下的时间。

有时,SQL Server 无法报告有关为什么您不能创建一个组侦听器由于域策略的特定信息。例如,域策略允许域用户必须在默认情况下创建 10 个计算机帐户。当您尝试创建一个将是第十一个计算机帐户的组侦听器时,SQL Server 可以只报告一般性错误消息"Msg 19471"和"Msg 19476""更多信息"一节中讨论。若要查找原因为什么您不能创建一个侦听器,组,查看 Windows 系统事件日志和 Cluster.log 文件。

  • 若要查看 Windows 系统事件日志,请执行以下步骤︰

    1. 单击开始,指向程序,指向管理工具,然后单击事件查看器

    2. 在控制台树中,展开Windows 日志,然后单击系统

    3. 在详细信息窗格中,滚动查看最新的事件并找到 1194年事件。在常规选项卡下几种原因被建议的失败的原因。

    4. 单击详细信息选项卡。在EventData部分下友好视图,您可以找到更具体的错误消息类似于以下︰

      您已超出允许您在此域中创建的计算机帐户的最大数量。

      Image 6

  • 若要查看 Cluster.log 文件中的条目,请执行以下步骤︰

    1. 单击开始,指向所有程序,都指向Windows PowerShell V2Windows PowerShell ISE,用鼠标右键单击,然后单击以管理员身份运行

    2. 在命令提示符下运行以下 cmdlet 以生成群集日志︰

      Get-ClusterLog

      Image 5

    3. 在记事本中打开 Cluster.log 文件。

    4. 单击编辑,然后单击查找在记事本,然后搜索字符串"无法创建计算机对象 <DNS 名称>"。检查结果,并可以找到类似于以下内容的消息︰

      00000d24.00000dc8:: <时间戳> 信息 [RES] 网络名称: [<网络名称>] NetUserAdd 对象 <DNS 名称>域名:?域名,结果︰ 8557

      00000d24.00000dc8:: <时间戳> ERR [RES] 网络名称: [<网络名称>] 无法在活动目录中,错误 8557 创建计算机对象 <DNS 名称>

    5. 要确定该错误的指示,请在命令提示符下,键入Net helpmsg 8557 ,然后按 enter 键。 Image 9

结论您现在可以得出结论,导致问题的原因归功于您的环境中实际上是 Active Directory 策略。在此特定情况下,身份验证域中的用户分配"域中的添加工作站"用户权限,并且可以在域中创建计算机帐户最多十台。因为您已经超出了此限制,您会收到错误消息。

有时,SQL Server 无法报告有关为什么不能由于在 Active Directory 中的权限不足,无法创建组侦听器的特定信息。例如,群集名称帐户创建的群集的服务或应用程序时,需要"创建计算机对象"权限。当群集名称帐户不具有此权限时,SQL Server 无法创建可用性组侦听器。当您尝试创建组侦听器具有足够的权限时,SQL Server 可以只报告一般性错误消息"Msg 19471"和"Msg 19476""更多信息"一节中讨论。要了解此问题的原因,请查看 Windows 系统事件日志和 Cluster.log 文件。

  • Windows 系统事件日志中查看。若要执行此操作,请执行以下步骤:

    1. 单击开始,指向程序,指向管理工具,然后单击事件查看器

    2. 在控制台树中,展开Windows 日志,然后单击包含您想要查看的事件的系统日志。

    3. 详细信息选项卡下滚动浏览最新的事件并找到事件 1194年。在常规选项卡下多种原因都会建议有关的故障,原因如"群集标识 <域用户> 可以创建计算机对象的权限。

    4. 单击详细信息选项卡。在EventData部分下友好视图,您可以找到更具体的错误消息类似于以下︰

      指定的目录服务的属性或值不存在。

      Image 12

  • 查看 Cluster.log 文件中的条目。若要执行此操作,请执行以下步骤:

    1. 单击开始,指向所有程序,都指向Windows PowerShell V2Windows PowerShell ISE,用鼠标右键单击,然后单击以管理员身份运行

    2. 在命令提示符下运行以下 cmdlet 以生成群集日志︰

      Get-ClusterLog

      Image 5

    3. 在记事本中打开 Cluster.log 文件。

    4. 单击编辑,然后单击记事本中找到搜索字符串"无法创建计算机对象 <DNS 名称>。"检查结果,并可以找到类似于以下内容的消息︰

      00000d24.000005f8:: <时间戳> ERR [RES] 网络名称: [<网络名称>] 无法在活动目录中,错误 8202 创建计算机对象 <DSN 名称>

    5. 要确定该错误的指示,请在命令提示符下,键入Net helpmsg 8202 ,然后按 enter 键。 Image 14

结论您现在可以得出结论的群集名称帐户没有在 Active Directory 用户和计算机的计算机容器中的"创建计算机对象"权限。

有关如何获取足够的权限在 Active Directory 中,当您在 SQL Server 中创建可用性组侦听器的详细信息,请访问以下 Microsoft TechNet 网站︰

如何配置故障转移群集中的 Active Directory 计算机帐户在创建 Windows 故障转移群集之前,您必须检查是否正在使用创建群集向导中的域用户帐户具有"创建计算机对象"权限。有关详细信息,您可以查看前面提到的指南的“为安装群集的用户配置帐户的步骤”部分如果您组织的安全策略不允许授予此特定用户帐户的权限,则可以请求您的域管理员创建的 Windows 故障转移群集之后,授予群集帐户名称中的"创建计算机对象"权限。有关详细信息,您可以查看上述指南"步骤添加群集名称帐户"一节。当您运行高可用性向导,它通常更简单,让帐户创建并自动配置,如果有没有预备好的群集的服务、 应用程序或一个侦听器的虚拟网络名称的计算机帐户。但是,如果必须预备由于要求您的组织中的帐户,然后按照上述指南"配置群集的服务或应用程序的帐户的步骤"一节中的步骤。备注:

  • 若要使用本部分中介绍的过程,必须具有域管理员或帐户操作员权限。

  • 如果您设置可用性组侦听器在多个子网,则必须从每个副本所属的子网获取静态 IP 地址。通常情况下,您必须向网络管理员为此讨论。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。