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

开始数据丢失

此 API 会造成指定的分区发生数据丢失。 它会触发对分区的 OnDataLossAsync API 的调用。

此 API 会造成指定的分区发生数据丢失。 它会触发对分区的 OnDataLoss API 的调用。 实际的数据丢失情况将取决于指定的 DataLossMode。

  • PartialDataLoss - 仅删除副本仲裁,并且会为分区触发 OnDataLoss,但实际的数据丢失情况取决于是否存在正在进行的复制。
  • FullDataLoss - 所有副本都会删除,因此会丢失所有数据并触发 OnDataLoss。

调用此 API 时,只能将有状态服务作为目标。

建议不要在调用此 API 时将系统服务作为目标。

注意:调用此 API 后,无法将其撤消。 调用 CancelOperation 只会停止执行操作并清除内部系统状态。 如果命令的执行时间很长,已导致数据丢失,则不会还原数据。

使用同一 OperationId 调用 GetDataLossProgress API 会返回使用此 API 启动的操作的信息。

请求

方法 请求 URI
POST /Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/StartDataLoss?api-version=6.0&OperationId={OperationId}&DataLossMode={DataLossMode}&timeout={timeout}

参数

名称 类型 必须 位置
serviceId string 路径
partitionId string (uuid) 路径
api-version 字符串 查询
OperationId string (uuid) 查询
DataLossMode string (枚举) 查询
timeout 整数 (int64) 查询

serviceId

类型:字符串
必需:是

服务的标识。 此 ID 通常是不带“fabric:”URI 方案的服务全名。 从版本 6.0 开始,分层名称以“~”字符隔开。 例如,如果服务名称为“fabric:/myapp/app1/svc1”,则 6.0 及更高版本中的服务标识为“myapp~app1~svc1”,在以前的版本中为“myapp/app1/svc1”。


partitionId

类型:字符串 (uuid)
必需:是

分区的标识。


api-version

类型:字符串
必需:是
默认

API 的版本。 此参数是必需的,其值必须为“6.0”。

Service Fabric REST API 版本基于引入或更改 API 的运行时版本。 Service Fabric 运行时支持 API 的多个版本。 这是 API 支持的最新版本。 如果传递的 API 版本较低,则返回的响应可能与本规范中所述的响应不同。

此外,运行时接受高于当前运行时版本支持的最新版本的任何版本。 因此,如果最新的 API 版本为 6.0,但如果运行时为 6.1,为了便于编写客户端,运行时将接受该 API 的版本 6.1。 但是,API 的行为将按照记录的 6.0 版本。


OperationId

类型:字符串 (uuid)
必需:是

用于标识此 API 的调用的 GUID。 这会传递到相应的 GetProgress API


DataLossMode

类型:字符串 (枚举)
必需:是

此枚举会传递到 StartDataLoss API,表示会导致哪种类型的数据丢失。 可能的值包括:“Invalid”、“PartialDataLoss”、“FullDataLoss”


timeout

类型:整数 (int64)
必需:否
默认
InclusiveMaximum4294967295
InclusiveMinimum1

执行操作的服务器超时,以秒为单位。 此超时指定客户端可以等待请求的操作完成的持续时间。 此参数的默认值为 60 秒。

响应

HTTP 状态代码 说明 响应架构
202 (已接受) 202 状态代码指示操作已接受。 调用 GetDataLossProgress API 以获取进度。
所有其他状态代码 详细的错误响应。
FabricError