加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何从现有备份恢复可靠服务状态?

发布时间:2020-12-15 22:35:31 所属栏目:百科 来源:网络整理
导读:我有一个状态服务,其备份逻辑根据 the corresponding documentation实现 就像这样: protected override async Task RunAsync(CancellationToken cancellationToken){ // ... while (true) { cancellationToken.ThrowIfCancellationRequested(); BackupDescr
我有一个状态服务,其备份逻辑根据 the corresponding documentation实现

就像这样:

protected override async Task RunAsync(CancellationToken cancellationToken)
{
  // ...

  while (true)
  {
    cancellationToken.ThrowIfCancellationRequested();
    BackupDescription myBackupDescription = new BackupDescription(BackupOption.Full,this.BackupCallbackAsync);
    await this.BackupAsync(myBackupDescription);

    // ...

    await Task.Delay(TimeSpan.FromSeconds(1),cancellationToken);
  }
}

private async Task<bool> BackupCallbackAsync(BackupInfo backupInfo,CancellationToken cancellationToken)
{
  var backupId = Guid.NewGuid();
  // backup files copied to external storage here ...
  return true;
}

文档建议只使用一种方法来恢复备份 – 使用OnDataLossAsync方法.但我不能激起对这个方法的援引.

所以,问题是:如果完全数据丢失,我如何从备份中恢复服务状态?

例如,所有服务结构群集节点都已销毁.我唯一拥有的是备份.重新部署后我应该怎么做才能恢复我的服务状态?

我检查了Service Fabric集群管理器的Data和Log目录,但数据格式与备份相比似乎有所不同.

解决方法

可以使用类似以下代码的服务触发Dataloss:

Connect-ServiceFabricCluster
$s = "fabric:/WebReferenceApplication/InventoryService"
$p = Get-ServiceFabricApplication | Get-ServiceFabricService -ServiceName $s | Get-ServiceFabricPartition | Select -First 1
$p | Invoke-ServiceFabricPartitionDataLoss -DataLossMode FullDataLoss -ServiceName $s

有一个示例显示了备份和还原在web reference sample中的工作方式,具体代码为here.

备份和还原的完整文档是here.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读