2011-05-23 71 views
3

我刚刚犯了一个头脑发热的错误。以为我是连接到我的本地开发数据库,​​我不小心碰到了下面的脚本对我的生产SQL Azure数据库:SQL Azure数据还原可能吗?

DELETE myTable 
GO 

是我的数据消失了,因为我害怕,还是SQL Azure中有一些神奇的“回滚到1小时前“按钮?

我能做些什么来恢复我的表格数据吗? (不,我没有数据库的备份,SQL Azure不支持备份,而且,是的,我意识到这可能会回答我自己的问题......我只是希望我错了)。

+0

男人,我去过那里 - 我为你感觉。担心我! – tofutim 2011-05-23 23:00:18

回答

5

更新

Azure的SQL数据库自动为所有基本,标准,和高级数据库创建备份。通过这些备份,您可以执行即时点还原并恢复已删除的数据库。这些备份也是复制到对区域的地理位置,所以在发生区域性灾难时,您可以使用最新的备份恢复数据库(V12服务器的1小时RPO)。

您可以在此处了解有关Azure SQL数据库的备份和还原功能的更多信息:https://msdn.microsoft.com/en-us/library/azure/jj650016.aspx

还有一个关于Point in Time Restore的博客和一个关于Geo-Restore的博客,以及关于Azure SQL数据库中的Business Continuity产品的文档。

你可能不希望听到这一点,但常规数据库副本似乎是唯一的选择,即http://social.technet.microsoft.com/wiki/contents/articles/sql-azure-backup-and-restore-strategy.aspx - 而且必须积极进行。

用户错误数据库 恢复的常见原因不是来自故障或 灾难;它是由用户 错误引起的。无论是像 DROP DATABASE这样的错误命令, 未被正确执行(导致数据 丢失)的架构变更,还是破坏数据的代码。 创建备份以防范 用户错误是 客户的责任,在编写 备份和恢复策略时需要考虑 。

在SQL Azure的服务更新4中, 复制数据库的能力是 的介绍。此功能允许您将 拷贝一个正在运行的数据库,创建另一个全功能的SQL Azure 数据库在同一个数据中心。此 是您可以在对数据库进行任何更改之前采取的策略,或者是 代码调用数据库以创建完整备份。其中一个不错的 关于这种技术的事情是 该副本是一个功能齐全的 数据库,可以迅速恢复 。事实上,恢复可能是 就像更改应用程序 连接字符串以指向数据库的副本 一样简单。

在Transact SQL是这样的:

CREATE DATABASE destination_database_name AS COPY OF [source_server_name] source_database_name 中的冒险Works数据库 复制到同一台服务器,我执行此:

CREATE DATABASE [AdvetureWorksBackup] 作为[AdventureWorksLTAZ2008R2]的副本 当 连接到目标SQL Azure的主数据库 时,必须执行此命令erver。

+0

请注意,数据库是“在同一个数据中心”。 – tofutim 2011-05-23 23:04:23

+0

Azure门户中是否有任何方式来触发备份?即按需创建备份,然后再执行一些Db工作。 – GFoley83 2016-05-09 22:07:18