SQL Azure备份:事务一致意味着什么?

时间:2011-11-24 21:31:03

标签: sql-server azure azure-sql-database

我正在使用redgate的sql azure备份工具:http://www.red-gate.com/products/dba/sql-azure-backup/

看起来如果您选中“使备份事务一致”,您需要为sql server充电一整天。我想知道我是否需要检查一下。

我每天备份到blob存储,并且我将数据库备份到我的本地计算机,每3天左右一次。

如果我没有查看Transactionally Consistent框,我会遇到任何问题吗?

3 个答案:

答案 0 :(得分:8)

在Red Gate上编写SQL Azure备份的人我可以说,目前在Azure中创建有保证的事务一致性备份的唯一方法就是使用CREATE DATABASE ... AS COPY OF。此副本仅在我们进行备份期间存在,然后立即删除。

如果您不选中该框,则只有在从每个表中依次读取数据时,如果存在交易处于不一致状态的风险,您才会遇到问题。创建复制可能需要很长时间,也可能需要花钱才能复制。

如果您正在备份BLOB,那么您使用的是Microsoft Import Export服务,而不是SQL Compare和SQL Data Compare技术,但是也会从表中读取数据也可能不一致。

希望这会有所帮助 理查德

答案 1 :(得分:2)

AFAIK事务一致意味着您可以在某个时间点获取数据库的快照(这可能意味着SQL Azure会锁定数据库(我们希望很快)它会复制整个数据库=您的一天收费db只存在几分钟)。

非事务一致性备份更好地说明了这一点,从复制表X开始。当你这样做时,有人修改(因为它是一个实时数据库)表Y,后来被复制到备份。 X和Y之间的外键现在可能不匹配'cos X来自早于Y的时间段。

我使用过Sql Azure备份,但我确实考虑了事务的一致性,因为备份是针对紧急情况的,在这种情况下我想要的最后一件事就是数据不一致。

编辑:现在我想一想,Redgate应该说明如果你每天备份,你实际上是为你的数据库支付两倍的费率。我一直在等待我认为现在存在的同步框架......

答案 2 :(得分:1)

回答标题中的问题:SQL Azure数据库副本(“备份”)是从源数据库复制(完全在线)的SQL Azure数据库,不包含任何未提交的事务(即。{{3 }})。这与数据库快照或备份还原在独立SQL Server产品上实现一致性的方式相同:“分离”时的所有待处理事务都将回滚。

至于RedGate的产品为何或如何利用这一点,我不知道。我想冒昧地猜测,为了实现“过渡一致的备份”,他们正在进行transactionally consistent(创建所需的事务一致性),然后他们使用来自CREATE DATABASE ... AS COPY OF ...和{{3}的技术复制模式和数据。