2016-03-07 76 views
6

我存储在Azure存储表和Blob存储数据。我想自动备份我的数据,以防止用户意外的数据损坏或软件问题。微软没有一个好的解决方案,虽然有自动备份的付费解决方案,但似乎应该有一种直接的方式来备份和恢复这些数据。如何备份Azure的表和斑点

+0

对于表存储,请使用[AzCopy](http://aka.ms/downloadazcopy)。它工作正常,也可以在自动化脚本中使用。 '''azcopy。exe/Source:http:// PathToYourTableStorage/Dest:C:\ YourFolderPath/Key:StorageAccessKey1or2''' –

+0

您也可以使用[此脚本](https://github.com/higtrollers/Scripts/tree/master/Azure %20Table%20Storage)。 –

+0

我制作了[this](https://github.com/kritollm/tablesbackup)节点脚本。它只备份表格的变化,所以你可以经常运行它。 – user3717718

回答

1

的最佳方式做了很多的研究后自动备份数据,我发现,要做到这一点最简单的方法是安排使用AZCopy的Azure的虚拟机上的Windows任务调度工作。 AZCopy负责将表数据移动到虚拟机,然后退出到Azure中的辅助blob存储以保留备份。批处理文件还会使AZCopy将源存储帐户中的斑点直接复制到目标帐户中。

你可以看到我是如何做这项工作完成链接到我用自动在此链接备份的批处理文件的详细说明:本答案 http://www.eastfive.com/2016/03/01/automated-backup-of-azure-storage-tables-and-blobs/

2018年2月8日更新: 我提出这个问题Azure支持于2018年1月18日,假设他们肯定有办法通过现在在Azure中的服务做到这一点。不幸的是,事实并非如此,并且(根据微软的支持)没有比第一次提出这个问题时更好的方式来做表备份。这是支持的答案,从2018年1月24日:

“我已经在你的情况下,审查和遗憾的是没有办法 做一个整个帐户或容器的一个快照,所以唯一的办法 使用Azure Storage执行快照是通过blob迭代和 应用快照,然后将快照迁移到次要帐户 或者您可以简单地将实际文件复制到另一个帐户 ,但这会在存储上产生更高的延迟并且成本更高 容量,其中快照会较少占用和更快到 传输。
的方法我们为转移支持是AzCopy和 数据移动图书馆,可用于制作在Java或C#自定义迁移 解决方案。
如果你想这些过程 ,那么你可以做到这一点通过PowerShell和Azure的自动化或 Azure的功能,但这些解决方案帮助可能会需要 通过我的团队的另一支撑的要求提高自动化纯粹 支持Azure存储。 “

因此,仍然存在没有自动化的方式来完成这些备份。我的团队正在对库进行备份。当我们有一个完成的,我会后回到这里。

+1

您可能需要重新检查您对AzCopy的使用,因为不需要将Blob复制到中间VM;它旨在直接复制blob到blob。使用表存储,即使稍后将json/csv存储在blob中,您也需要复制数据。 –

+0

@DavidMakogon,感谢您在我的写作中发现错误。我已经更新了答案,以反映表格数据在本地拉出,而blob数据直接推送到目标。 –

+0

对不起 - 只是澄清。很长一段时间以前,blob-copying只能通过首先转移到临时空间来工作。不知道这(数据外)信息是否仍然在... –

1

你也可以使用第三方工具,如Cerebrata Azure Management Cmdlets或功能由Microsoft Azure存储团队发布的y Asynchronous Copy Blob,它基本上允许您将数据从一个存储帐户复制到另一个存储帐户,而无需在本地下载数据。

检查线程更多:What is the best way to backup Azure Blob Storage contents

希望这会有所帮助。

+0

德里克,感谢您的评论。我看着Cerebrata Cmdlet,他们看起来很有前途,但是他们是125美元,我的批量命令AZCopy.exe是免费的。另外,如果你看看我上面的回答,你可以看到我已经明确AZCopy做了服务器端的blob副本,所以他们不需要离开Azure。表格存储是一个不同的故事 - 表格数据必须在本地提取,至少在这一点上是这样。感谢您的反馈意见。 –

+0

@Keith Holloway,对不起,我没有注意到,当我贴的线程发布时,AzCopy应该没有被公布。到目前为止,AzCopy应该是在Azure中备份数据的最佳方式。 – Derek

+0

Cerebrata Azure管理Cmdlet已停用! –