SQL Azure数据还原可能吗?

gil*_*ly3 3 sql-server azure azure-sql-database

我只是犯了一个愚蠢的错误.我以为我连接到我的本地dev db,我不小心对我的生产SQL Azure数据库运行了以下脚本:

DELETE myTable
GO
Run Code Online (Sandbox Code Playgroud)

我害怕,我的数据是不是很好,或者SQL Azure是否有一些神奇的"回滚到1小时前"按钮?

有什么办法可以恢复我的表数据吗?

(顺便说一句,不,我没有数据库的备份.SQL Azure不支持备份.而且,是的,我意识到这可能回答了我自己的问题......我只是希望我错了.)

tof*_*tim 5

更新

Azure SQL数据库自动为所有Basic,Standard和Premium数据库创建备份.使用这些备份,您可以执行时间点还原并恢复已删除的数据库.这些备份也会进行地理复制到配对区域,因此在发生区域性灾难时,您可以使用最新备份(V12服务器的1小时RPO)恢复数据库.

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

还有一个关于Point in Time Restore的博客和一个关于Geo-Restore的博客以及一个关于Azure SQL数据库中业务连续性产品的文档.

你可能不希望听到这一点,但常规数据库副本似乎是唯一的选择,即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要将Adventure Works数据库复制到同一服务器,我执行以下命令:

创建数据库[AdvetureWorksBackup]作为[AdventureWorksLTAZ2008R2]的副本当连接到目标SQL Azure服务器的主数据库时,必须执行此命令.