SQL Azure Backup: что означает транзакционная согласованность? - PullRequest
3 голосов
/ 25 ноября 2011

Я использую средство резервного копирования sql azure от redgate: http://www.red -gate.com / products / dba / sql-azure-backup /

Похоже, если вы установите флажок «Сделать резервное копирование транзакционно согласованным», вам будет начислен полный рабочий день за использование сервера sql. Мне интересно, если мне нужно проверить это.

Я делаю ежедневные резервные копии в хранилище больших двоичных объектов и резервирую базу данных на своем локальном компьютере для работы каждые 3 дня или около того.

Если я не установлю флажок Транзакционно согласованный, у меня возникнут какие-либо проблемы?

Ответы [ 3 ]

8 голосов
/ 25 ноября 2011

Как и тот, кто написал SQL Azure Backup в Red Gate, я могу сказать, что единственный способ создать гарантированную транзакционно-согласованную резервную копию в Azure в настоящее время действительно заключается в использовании CREATE DATABASE ... AS COPY OF.Эта копия существует только в течение срока, когда мы берем резервную копию, а затем сразу же удаляется.

Если вы не установите флажок, вы столкнетесь с проблемами только в том случае, если существует риск того, что транзакции будут противоречивымисостояние при чтении данных из каждой таблицы по очереди.CREATE COPY OF может занять очень много времени, а также может стоить денег за копию.

Если вы создаете резервную копию на BLOB-объекте, вы используете службу экспорта-импорта Microsoft, а не SQL Compare и данные SQL.Сравните технологию, но она также считывает данные из таблиц, чтобы они тоже могли быть несовместимыми.

Надеюсь, это поможет Ричарду

2 голосов
/ 25 ноября 2011

Транзакционная согласованность AFAIK означает, что вы получаете моментальный снимок базы данных в определенный момент времени (что, по-видимому, означает, что SQL Azure блокирует базу данных, в то время как (мы надеемся, быстро) делает копию всей базы данных = ваша плата за один день задБ, которая существует всего несколько минут).

Это лучше проиллюстрировано нетранзакционно-согласованным резервным копированием, начинающимся с копирования таблицы X. Пока вы этим занимаетесь, кто-то вносит поправки (поскольку это живая база данных) в таблицу Y, которая впоследствии копируется в резервную копию.Внешние ключи между X и Y могут теперь не совпадать, потому что X принадлежит более раннему периоду времени, чем Y.

Я использовал Sql Azure Backup, и я пошел на согласованность транзакций, потому что резервные копии для чрезвычайной ситуации ипоследнее, что я хочу в этом сценарии, это несоответствия в данных.

edit: теперь я думаю об этом, Redgate должен действительно заявить, что если вы делаете резервное копирование каждый день, вы фактически платите в два раза больше за вашу базу данных.Я ждал структуры синхронизации, которая, я думаю, уже есть ...

1 голос
/ 25 ноября 2011

Чтобы ответить на вопрос в заголовке: копия базы данных SQL Azure («резервная копия») - это база данных SQL Azure, которая копируется (полностью в оперативном режиме) из исходной базы данных и не содержит незафиксированных транзакций (т. Е. Is ).транзакционно последовательный ).Это достигается так же, как моментальные снимки базы данных или восстановления резервных копий достигают согласованности в автономном продукте SQL Server: все отложенные транзакции в момент «разделения» откатываются.

Что касается того, почему или как продукт RedGate использует это,Я не знаю.Я бы рискнул предположить, что для достижения «непротиворечивой резервной копии» они делают CREATE DATABASE ... AS COPY OF ... (что создает желаемую согласованность транзакций), а затем используют технологию из SQL Compare и Сравнение данных для копирования схемы и данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...