Каков самый быстрый способ резервного копирования/восстановления базы данных Azure SQL?
Фон: у нас есть база данных размером ~ 40 ГБ и восстанавливается из файла .bacbac(~ 4 ГБ сжатых данных) в основном с помощью службы импорта и экспорта базы данных Azure SQL занимает до 6-8 часов. Создание .bacpac также очень длинное и занимает ~ 2 часа.
UPD:
UPD.
Создание базы данных (кстати, последовательная транзакционная) копия с использованием CREATE DATABASE [DBBackup] AS COPY OF [DB]
занимает всего 15 минут с базой данных 40 ГБ, а восстановление - простое переименование базы данных.
UPD. декабрь 2014 года. Позвольте мне поделиться с вами нашим опытом о наиболее быстром способе схемы миграции DB, в котором мы закончили.
Прежде всего, подход с применением прикладного уровня данных (.bacpac) оказался нецелесообразным для нас после того, как БД стал немного больше, и он также не будет работать для вас, если у вас есть хотя бы один некластеризованный индекс с общий размеp > 2 ГБ, пока вы не отключите некластеризованные индексы перед экспортом - из-за ограничения журнала транзакций Azure SQL.
Мы придерживаемся Мастер миграции Azure, который для передачи данных запускает только BCP для каждой таблицы (параметры BCP настраиваются) и ~ 20 % быстрее, чем подход с .bacpac.
Вот некоторые ошибки, с которыми мы столкнулись с мастером миграции:
- Мы сталкиваемся с проблемами кодирования для строк, отличных от Unicode. Убедиться
что импорт и экспорт BCP выполняется с одинаковой сортировкой. Это переключатель конфигурации
-C ...
, вы можете найти параметры, с помощью которых вызов BCP в файле .config для приложения MW. - Учтите, что MW (по крайней мере версия, актуальная в момент написания) запускает BCP с параметрами, которые оставят ограничения в ненадежном состоянии, поэтому не забудьте доверенные ограничения после импорта BCP.