簡體   English   中英

如何備份 Azure 表存儲

[英]How to make backup of Azure table storage

我有一個需求,我需要將數據從一個 azure 表存儲遷移,基本上是從一個表遷移到另一個表(兩個表可以是相同的訂閱或不同的訂閱)。

在 Azure 表存儲中是否有任何方法可以像在 SQL 存儲中那樣滿足上述要求,用戶可以在其中生成腳本或備份整個數據庫或單個表。

簡短回答:沒有內置備份。 更長的答案:

  • 沒有用於表存儲的內置備份服務或“快照”功能(blob 具有):您需要執行自己的復制操作,從一張表到另一張表。 有一個 REST API 以及 SDK、PowerShell cmdlet、CLI 命令和 AzCopy(均基於 API 構建)。 您還可以搜索許多 3rd 方工具。 如何完成表復制取決於您。

  • 表存儲是持久存儲 - 在一個區域內進行三次復制(並且可以選擇異地復制到另一個區域)。 即使存儲在主要區域中變得不可用,您也可以選擇從配對區域讀取(假設您已啟用存儲帳戶為異地冗余)。 注意:這與備份不同 - 如果您刪除表中的實體,則該刪除會復制到任何地方

  • 無論訂閱如何,存儲復制(例如,將實體從一個表復制到另一個表)都是相同的。 存儲帳戶以帳戶命名空間 + 訪問密鑰(以及可選的 SAS)為鍵。

我意識到這是一個老問題,但我想我會把這個回答留給那些仍在尋找在 2018 年備份 Azure 表數據的方法的人。

我已經看到很多關於使用 AzCopy 的建議,這看起來是一個很好的方法。

但是,如果使用 C# 更適合您,我在 github 上編寫了一個工具(我的工作場所允許我開源): https : //github.com/Watts-Energy/Watts.Azure#azure-data-factory

該項目的主要目標不是備份,但它可以用來做到這一點,我們在 Azure Web 作業中使用其中的功能運行備份。 我們開源它是因為我們認為它可以證明對除我們之外的其他人有用,因為它允許您進行“增量”備份,我不知道您是否可以使用 AzCopy 完成。 我不是說你不能,只是我不知道這是否可能。

這個想法是您在 .NET 中創建一個小型控制台應用程序(例如作為 Azure Web 作業托管),您可以執行以下操作:

DataCopyBuilder
.InDataFactoryEnvironment(environment)
.UsingDataFactorySetup(environment.DataFactorySetup)
.UsingDefaultCopySetup()
.WithTimeoutInMinutes(numberOfMinutes)
.AuthenticateUsing(authentication)
.CopyFromTable(sourceTable)
.WithSourceQuery(null)
.ToTable(targetTable)
.ReportProgressToConsole()
.StartCopy();

如果您在作業運行時存儲上次復制操作開始時的時間(以 UTC 為單位),則可以提供“源查詢”(例如:“ Timestamp gt datetime'{lastBackupStarted.ToIso8601()} ”)而不是null就像上面的例子一樣,它只會從那個日期起修改數據。 它在項目 README.txt 中有更詳細的解釋。

同樣,不確定它是否對任何人有用,但它確實解決了我們遇到的一些挑戰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM