你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Failover Groups - Create Or Update

创建或更新故障转移组。

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/failoverGroups/{failoverGroupName}?api-version=2021-11-01

URI 参数

名称 必需 类型 说明
failoverGroupName
path True

string

故障转移组的名称。

resourceGroupName
path True

string

包含该资源的资源组名称。 可以从 Azure 资源管理器 API 或门户获取此值。

serverName
path True

string

包含故障转移组的服务器的名称。

subscriptionId
path True

string

用于标识 Azure 订阅的订阅 ID。

api-version
query True

string

要用于请求的 API 版本。

请求正文

名称 必需 类型 说明
properties.partnerServers True

PartnerInfo[]

故障转移组的合作伙伴服务器信息列表。

properties.readWriteEndpoint True

FailoverGroupReadWriteEndpoint

故障转移组实例的读写终结点。

properties.databases

string[]

故障转移组中的数据库列表。

properties.readOnlyEndpoint

FailoverGroupReadOnlyEndpoint

故障转移组实例的只读终结点。

tags

object

资源标记。

响应

名称 类型 说明
200 OK

FailoverGroup

已成功更新故障转移组。

201 Created

FailoverGroup

已成功创建故障转移组。

202 Accepted

已接受

Other Status Codes

错误响应: ***

  • 400 FailoverGroupCreateOrUpdateRequestInvalidDatabases - 提供的数据库 ID 不是正确构造的数据库资源 ID。 有关正确格式的示例,请参阅 https://docs.microsoft.com/en-us/rest/api/sql/failovergroups/createorupdate

  • 400 FailoverGroupCreateOrUpdateRequestInvalidPartner - 创建或更新故障转移组请求正文中的给定合作伙伴字段为空或无效。 请提供此字段的有效值。 有关正确设置格式的请求的示例,请参阅 https://docs.microsoft.com/en-us/rest/api/sql/failovergroups/createorupdate

  • 400 FailoverGroupCreateOrUpdateRequestDuplicatePartner - 提供的一个或多个合作伙伴服务器已是故障转移组的一部分。 请确保主服务器和所有给定的伙伴服务器都是唯一的。

  • 400 FailoverGroupCreateOrUpdateRequestInvalidDatabaseServer - 故障转移组的主服务器上不存在一个或多个提供的数据库。 请确保主服务器上存在所有数据库。

  • 400 FailoverGroupCreateOrUpdateRequestUnsupportedPartnerCount - 仅支持故障转移组的一个伙伴服务器。 请相应地修改请求。 有关有效请求的示例,请参阅 https://docs.microsoft.com/en-us/rest/api/sql/failovergroups/createorupdate

  • 400 FailoverGroupCreateOrUpdateRequestInvalidReadWriteEndpoint - 创建或更新请求需要 readWriteEndpoint 字段。

  • 400 FailoverGroupCreateOrUpdateRequestInvalid - 创建或更新故障转移组请求正文为空或无效。

  • 400 FailoverGroupUpdateOrDeleteRequestOnSecondary - 不允许在辅助服务器上修改故障转移组。 在主服务器上执行请求。

  • 400 FailoverGroupCreateOrUpdateRequestNegativeGracePeriodValues - 读写终结点的宽限期值必须为非负值。

  • 400 FailoverGroupCreateOrUpdateRequestLessThanMinimumGracePeriodValues - 故障转移组的宽限期值必须大于或等于“”{0}分钟最小宽限期

  • 400 FailoverGroupCreateOrUpdateRequestInvalidReadWriteEndpointFields - 为读写终结点选择故障转移策略“自动”时,必须提供属性 failoverWithDataLossGracePeriodMinutes。

  • 400 FailoverGroupCreateOrUpdateRequestInvalidReadWriteFailoverPolicy - 创建或更新请求需要读-写终结点的 failoverPolicy 字段。

  • 400 FailoverGroupCreateOrUpdateRequestInvalidReadWriteEndpointFieldsForManualPolicy - 为读写终结点选择故障转移策略“手动”时,不应提供宽限期值。 请从请求中删除它。

  • 400 FailoverGroupCreateOrUpdateRequestReadOnlyPropertyModified - 创建或更新故障转移组请求正文不应修改只读属性“”。{0}

  • 400 FailoverGroupFailoverRequestOnPrimary - 应在故障转移组的辅助服务器上启动故障转移请求。

  • 400 FailoverGroupPartnerServerFromDifferentSubscription - 故障转移组的主服务器和伙伴服务器来自不同订阅。 不允许对故障转移组的服务器进行跨订阅。

  • 400 InvalidAddSecondaryPermission - 用户没有足够的权限在指定服务器上添加辅助数据库。

  • 400 InvalidSku - 用户指定的 SKU 无效。

  • 400 ServerNotFound - 找不到请求的服务器。

  • 400 FeatureDisabledOnSelectedEdition - 用户尝试使用在当前数据库版本上禁用的功能。

  • 400 TokenTooLong - 提供的令牌太长。

  • 400 InvalidTargetSubregion - 不可读辅助数据库的目标服务器不在 DR 配对的 Azure 区域中。

  • 400 PartnerServerNotCompatible - 用户尝试将数据库从 SAWA V1 服务器复制到 Sterling 服务器,反之亦然。

  • 400 IncorrectReplicationLinkState - 操作预期数据库在复制链接上处于预期状态。

  • 400 ResourcePoolNotFound - 指定的弹性池不存在于指定的逻辑服务器中。

  • 400 AzureKeyVaultKeyDisabled - 由于禁用了 Azure 密钥保管库密钥,无法在服务器上完成该操作。

  • 400 AzureKeyVaultInvalidExpirationDate - 无法完成操作,因为 Azure 密钥保管库密钥过期日期无效。

  • 400 SecurityAzureKeyVaultUrlNullOrEmpty - 无法完成操作,因为 Azure 密钥保管库 URI 为 null 或空。

  • 400 AzureKeyVaultNoServerIdentity - 未正确配置服务器标识。

  • 400 AzureKeyVaultInvalidUri - 来自 Azure 密钥保管库的无效响应。 请使用有效的 Azure 密钥保管库 URI。

  • 400 AzureKeyVaultMissingPermissions - 服务器缺少对 Azure 密钥保管库所需的权限。

  • 400 SecurityAzureKeyVaultInvalidKeyName - 由于服务器密钥名称无效,操作无法完成。

  • 400 PlannedFailoverTimedOutForDatabase - 用户调用计划的故障转移,它超时,并且特定数据库似乎要追溯。

  • 400 PlannedFailoverTimedOut - 用户调用计划的故障转移,尝试联系合作伙伴管理服务时超时。

  • 400 AdalGenericError - 由于遇到 Azure Active Directory 错误,无法完成该操作。

  • 400 AdalServicePrincipalNotFound - 操作无法完成,因为遇到 Azure Active Directory 库服务主体找不到错误。

  • 400 AzureKeyVaultMalformedVaultUri - 提供的密钥保管库 URI 无效。

  • 400 CannotUseReservedDatabaseName - 此操作中不能使用保留的数据库名称。

  • 400 InvalidFailoverGroupRegion - 故障转移组中指定的服务器需要驻留在不同的区域中以提供隔离。

  • 400 FailoverGroupDoesNotExist - 服务器上不存在故障转移组。

  • 400 FailoverGroupNotSecondary - 无法从故障转移组中的主服务器启动故障转移。

  • 400 InvalidServerName - 指定的服务器名称无效。

  • 400 DatabaseInFailoverGroupNotPrimary - 数据库的 GeoDR 链接已存在,但其角色不是“主”或不是连续复制链接。

  • 400 SecurityAdalPrincipalCertExpiredError - 操作无法完成,因为 Azure 密钥保管库主体证书已过期。

  • 400 UnableToCreateFailoverGroupDueToTableAuditing - 无法为启用了表审核的服务器创建故障转移组。

  • 400 InvalidIdentifier - 标识符包含 NULL 或无效的 unicode 字符。

  • 400 UnableToAddDbWithTableAuditingToFailoverGroup - 无法通过故障转移组终结点访问启用了表审核的数据库。

  • 400 SecurityInvalidAzureKeyVaultRecoveryLevel - 提供的密钥保管库 URI 无效。

  • 400 KeyMaterialNotFoundOnRemoteServer - 远程服务器无权访问用作 TDE 保护程序的密钥材料。

  • 400 LimitOfFailoverGroupsPerServerExceeded - 创建新的故障转移组将超出每个服务器允许的故障转移组数。

  • 400 SameKeyUriNotFoundOnRemoteServer - 辅助服务器没有与启用了密钥自动轮换的主服务器的加密保护程序相同的密钥保管库中的密钥材料。

  • 400 AzureKeyVaultRsaKeyNotSupported - 提供的密钥保管库使用不受支持的 RSA 密钥大小或密钥类型。 支持的 RSA 密钥大小为 2048 或 3072,密钥类型为 RSA 或 RSA-HSM。

  • 400 SameKeyMaterialNotFoundOnRemoteServer - 辅助服务器没有主服务器的加密保护程序的密钥材料。

  • 400 GeoReplicationDatabaseNotSecondary - 操作要求数据库成为复制目标。

  • 400 GeoReplicaLimitReached - 已达到每副本 (replica) 复制限制。

  • 400 FailoverGroupWithVirtualNetworkRulesNotSupported - 配置了自动故障转移策略的故障转移组目前在配置了虚拟网络防火墙规则的服务器上不受支持。 请使用手动故障转移策略配置故障转移组。

  • 400 UnableToResolveRemoteServer - 由于服务器名称无效或 DNS 连接问题,无法解析远程伙伴服务器名称。

  • 400 RemoteDatabaseCopyPermission - 用户没有足够的权限在指定的服务器上创建数据库副本。

  • 400 SecurityAzureKeyVaultGeoChainError - 使用 Azure 密钥保管库 (BYOK) 启用透明数据加密时,不支持创建辅助 (称为链接) 的过程。

  • 400 FailoverGroupCreateOrUpdatePartiallySucceeded - 无法添加或删除某些数据库。

  • 404 OperationIdNotFound - ID 为 的操作不存在。

  • 404 ResourceNotFound - 找不到请求的资源。

  • 404 OperationIdNotFound - ID 为 的操作不存在。

  • 404 ServerNotInSubscriptionResourceGroup - 指定的服务器不存在于指定的资源组和订阅中。

  • 404 ServerNotInSubscription - 指定的服务器不存在于指定的订阅中。

  • 404 SourceDatabaseNotFound - 源数据库不存在。

  • 405 UnsupportedReplicationOperation - 对数据库启动了不受支持的复制操作。

  • 409 OperationCancelled - 用户已取消操作。

  • 409 操作中断 - 无法完成对资源的操作,因为同一资源上的另一个操作中断了该操作。

  • 409 ConflictingServerOperation - 服务器当前正在进行操作。

  • 409 SubscriptionDisabled - 订阅已禁用。

  • 409 ConflictingSystemOperationInProgress - 数据库上的系统维护操作正在进行中,后续操作需要等待完成。

  • 409 GeoReplicationCannotBecomePrimaryDuringUndo - 用户尝试故障转移或强制终止异地链接,而辅助数据库处于物理上不一致的状态,因此无法进入主要角色。

  • 409 ServerKeyNameAlreadyExists - 服务器上已存在服务器密钥。

  • 409 ServerKeyUriAlreadyExists - 服务器上已存在服务器密钥 URI。

  • 409 ServerKeyDoesNotExists - 服务器密钥不存在。

  • 409 UpdateSloInProgress - 用户在 SLO 更新正在进行时尝试启动不兼容的操作。

  • 409 AzureKeyVaultKeyNameNotFound - 无法完成操作,因为 Azure 密钥保管库密钥名称不存在。

  • 409 AzureKeyVaultKeyInUse - 服务器当前正在使用密钥。

  • 409 FailoverGroupAlreadyExists - 给定服务器上已存在故障转移组。 请使用不同的故障转移组名称。

  • 409 FailoverGroupBusy - 故障转移组正忙于另一个操作。

  • 409 DatabaseBelongsToOtherFailoverGroup - 数据库属于其他故障转移组,不能被视为此组的一部分。

  • 409 DatabaseBeingAddedToFailoverGroup - 数据库当前正在添加到故障转移组,客户需要等待此操作完成才能发出删除。

  • 409 DatabaseBeingRemovedFromFailoverGroup - 数据库当前正在从故障转移组中删除,客户需要等待此操作完成才能发出添加。

  • 409 FailoverGroupDnsRecordInUse - 请求的终结点存在重复的 DNS 记录。

  • 409 InvalidFailoverGroupName - 提供的故障转移组名称无效。

  • 409 InvalidOperationForDatabaseNotInReplicationRelationship - 对已处于复制关系中的数据库执行了复制种子设定操作。

  • 409 InvalidDatabaseStateForOperation - 不允许对处于当前复制状态的数据库执行该操作。

  • 409 DuplicateGeoDrRelation - 数据库已处于复制关系中。 这是重复的请求。

  • 409 RemoteDatabaseExists - 目标服务器上已存在目标数据库名称。

  • 409 FailoverGroupUnableToPerformGroupOperationOnDatabases - 要向故障转移组添加/删除的数据库列表包含阻止操作完成的错误。

  • 429 SubscriptionTooManyCreateUpdateRequests - 请求数超出可用资源可以处理的最大请求数。

  • 429 SubscriptionTooManyRequests - 请求数超出可用资源可以处理的最大请求数。

  • 429 SubscriptionTooManyCreateUpdateRequests - 请求数超出可用资源可以处理的最大请求数。

  • 429 SubscriptionTooManyRequests - 请求数超出可用资源可以处理的最大请求数。

  • 500 OperationTimedOut - 操作超时并自动回滚。 请重试该操作。

  • 503 TooManyRequests - 请求数超出可用资源可以处理的最大请求数。

  • 503 TooManyRequests - 请求数超出可用资源可以处理的最大请求数。

  • 503 AzureKeyVaultConnectionFailed - 无法在服务器上完成该操作,因为尝试连接到 Azure 密钥保管库失败

  • 503 AzureKeyVaultGenericConnectionError - 无法完成该操作,因为在尝试检索密钥保管库信息 时遇到错误。

  • 503 DatabaseUnavailable - 操作失败,因为数据库不可用。

  • 504 RequestTimeout - 服务请求超出了允许的超时。

示例

Create failover group

示例请求

PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/failover-group-primary-server/failoverGroups/failover-group-test-3?api-version=2021-11-01

{
  "properties": {
    "readWriteEndpoint": {
      "failoverPolicy": "Automatic",
      "failoverWithDataLossGracePeriodMinutes": 480
    },
    "readOnlyEndpoint": {
      "failoverPolicy": "Disabled"
    },
    "partnerServers": [
      {
        "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/failover-group-secondary-server"
      }
    ],
    "databases": [
      "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/failover-group-primary-server/databases/testdb-1",
      "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/failover-group-primary-server/databases/testdb-2"
    ]
  }
}

示例响应

{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/failover-group-primary-server/failoverGroups/failover-group-test-3",
  "name": "failover-group-test-3",
  "type": "Microsoft.Sql/servers/failoverGroups",
  "location": "Japan East",
  "properties": {
    "readWriteEndpoint": {
      "failoverPolicy": "Automatic",
      "failoverWithDataLossGracePeriodMinutes": 480
    },
    "readOnlyEndpoint": {
      "failoverPolicy": "Disabled"
    },
    "replicationRole": "Primary",
    "replicationState": "CATCH_UP",
    "partnerServers": [
      {
        "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/failover-group-secondary-server",
        "location": "Japan West",
        "replicationRole": "Secondary"
      }
    ],
    "databases": [
      "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/failover-group-primary-server/databases/testdb-1",
      "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/failover-group-primary-server/databases/testdb-2"
    ]
  }
}
{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/failover-group-primary-server/failoverGroups/failover-group-test-3",
  "name": "failover-group-test-3",
  "type": "Microsoft.Sql/servers/failoverGroups",
  "location": "Japan East",
  "properties": {
    "readWriteEndpoint": {
      "failoverPolicy": "Automatic",
      "failoverWithDataLossGracePeriodMinutes": 480
    },
    "readOnlyEndpoint": {
      "failoverPolicy": "Disabled"
    },
    "replicationRole": "Primary",
    "replicationState": "CATCH_UP",
    "partnerServers": [
      {
        "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/failover-group-secondary-server",
        "location": "Japan West",
        "replicationRole": "Secondary"
      }
    ],
    "databases": [
      "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/failover-group-primary-server/databases/testdb-1",
      "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/failover-group-primary-server/databases/testdb-2"
    ]
  }
}

定义

名称 说明
FailoverGroup

故障转移组。

FailoverGroupReadOnlyEndpoint

故障转移组实例的只读终结点。

FailoverGroupReadWriteEndpoint

故障转移组实例的读写终结点。

FailoverGroupReplicationRole

故障转移组实例的本地复制角色。

PartnerInfo

故障转移组的合作伙伴服务器信息。

ReadOnlyEndpointFailoverPolicy

故障转移组的只读终结点的故障转移策略。

ReadWriteEndpointFailoverPolicy

故障转移组的读写终结点的故障转移策略。 如果 failoverPolicy 为 Automatic,则需要 failoverWithDataLossGracePeriodMinutes。

FailoverGroup

故障转移组。

名称 类型 说明
id

string

资源 ID。

location

string

资源位置。

name

string

资源名称。

properties.databases

string[]

故障转移组中的数据库列表。

properties.partnerServers

PartnerInfo[]

故障转移组的合作伙伴服务器信息列表。

properties.readOnlyEndpoint

FailoverGroupReadOnlyEndpoint

故障转移组实例的只读终结点。

properties.readWriteEndpoint

FailoverGroupReadWriteEndpoint

故障转移组实例的读写终结点。

properties.replicationRole

FailoverGroupReplicationRole

故障转移组实例的本地复制角色。

properties.replicationState

string

故障转移组实例的复制状态。

tags

object

资源标记。

type

string

资源类型。

FailoverGroupReadOnlyEndpoint

故障转移组实例的只读终结点。

名称 类型 说明
failoverPolicy

ReadOnlyEndpointFailoverPolicy

故障转移组的只读终结点的故障转移策略。

FailoverGroupReadWriteEndpoint

故障转移组实例的读写终结点。

名称 类型 说明
failoverPolicy

ReadWriteEndpointFailoverPolicy

故障转移组的读写终结点的故障转移策略。 如果 failoverPolicy 为 Automatic,则需要 failoverWithDataLossGracePeriodMinutes。

failoverWithDataLossGracePeriodMinutes

integer

对读写终结点尝试故障转移数据丢失之前的宽限期。 如果 failoverPolicy 为 Automatic,则需要 failoverWithDataLossGracePeriodMinutes。

FailoverGroupReplicationRole

故障转移组实例的本地复制角色。

名称 类型 说明
Primary

string

Secondary

string

PartnerInfo

故障转移组的合作伙伴服务器信息。

名称 类型 说明
id

string

合作伙伴服务器的资源标识符。

location

string

合作伙伴服务器的地理位置。

replicationRole

FailoverGroupReplicationRole

伙伴服务器的复制角色。

ReadOnlyEndpointFailoverPolicy

故障转移组的只读终结点的故障转移策略。

名称 类型 说明
Disabled

string

Enabled

string

ReadWriteEndpointFailoverPolicy

故障转移组的读写终结点的故障转移策略。 如果 failoverPolicy 为 Automatic,则需要 failoverWithDataLossGracePeriodMinutes。

名称 类型 说明
Automatic

string

Manual

string