Экспорт (0) Печать
Развернуть все
Развернуть Свернуть

Перенос данных в базу данных SQL Azure: средства и методы

Обновлено: Май 2014 г.

Этот документ содержит указания по переносу определения данных (схемы) и данных в База данных SQL Microsoft Azure. В основном они предназначены для одноразовой миграции из SQL Server в База данных SQL Azure.

В Microsoft Azure предусмотрено несколько вариантов хранения данных. В своих проектах можно использовать один или несколько из них.

База данных SQL Microsoft Azure — технология SQL Server, предоставляемая как служба на платформе Azure. Облачные решения База данных SQL Azure обеспечивают много преимуществ, в том числе быстрое провизионирование, экономически эффективную масштабируемость, высокий уровень доступности и сокращение расходов на управление. База данных SQL Azure поддерживает инструментарий и методы разработки, применяемые для локальных приложений SQL Server. Поэтому он должен быть знаком большинству разработчиков.

Долгосрочная цель SQL Server и База данных SQL Azure — добиться симметрии и паритета как компонентов, так и возможностей, однако в настоящее время существуют различия в архитектуре и реализации, которые необходимо учитывать при переносе баз данных в База данных SQL Azure и проектировании решений База данных SQL Azure.

Перед переносом базы данных в База данных SQL Azure важно понимать, когда следует выполнять перенос, и различия между База данных SQL Azure и SQL Server.

Есть три основных метода хранения данных на платформе Azure. Хранилище Azure содержит таблицы, большие двоичные объекты и очереди. При проектировании решения Azure необходимо оценить различные методы и использовать все механизмы хранения, чтобы добиться высшей производительности для каждой части решения Дополнительные сведения о новых уровнях и предложениях служб Azure см. в разделе Уровни служб (версии) в базе данных SQL Azure

 

Метод хранения

Назначение

Максимальный размер

База данных SQL Microsoft Azure

Система управления реляционными базами данных

150 ГБ

Хранилище Azure

Большой двоичный объект

Долговременное хранилище больших двоичных объектов, таких как видео или аудио.

200 ГБ или 1 ТБ

Таблица

Долговременное хранилище для структурированных данных

100 ТБ

Очередь

Долговременное хранилище для межпроцессных сообщений

100 ТБ

Локальное хранилище

Временное хранилище для отдельных экземпляров

250 ГБ — 2 ТБ

Локальное хранилище обеспечивает временное хранение данных для локально выполняемого экземпляра приложения. Локальное хранилище доступно только для локального экземпляра. Если экземпляр перезапускается на другом оборудовании, например в случае отказа или на время обслуживания оборудования, данные в локальном хранилище не последуют за экземпляром. Если для приложения необходима надежная устойчивость данных, требуется обмен данными между экземплярами или нужно получить доступ к данным за пределами Azure, следует подумать об использовании учетной записи хранилища Azure или База данных SQL Microsoft Azure.

База данных SQL Azure обеспечивает обработку данных с использованием запросов, транзакций и хранимых процедур, выполняемых на стороне сервера, и приложению возвращаются только результаты. Если ваше приложение нуждается в обработке данных и использует соединения и реляционные операции над данными ограниченного объема, хорошим выбором будет База данных SQL Azure. Если приложение хранит и извлекает большие наборы данных, но при этом не требуется обработка данных, то предпочтительным выбором будет хранилище таблиц Azure.

Ограничение размера в База данных SQL Azure сейчас составляет 500 ГБ для уровня Premium, и База данных SQL Azure существенно дороже хранилища Azure. Поэтому стоит переместить данные BLOB в хранилище больших двоичных объектов Azure. Таким образом можно смягчить требования к предельному размеру базы данных и сократить эксплуатационные расходы. . Дополнительные сведения о новых уровнях и предложениях служб Azure см. в разделе Уровни служб (версии) в базе данных SQL Azure

Аналогично SQL Server База данных SQL Azure предоставляет интерфейс потока табличных данных (TDS) для доступа к базе данных на основе Transact-SQL. Поэтому приложения базы данных могут использовать База данных SQL Azure так же, как SQL Server.

В отличие от SQL Server, в База данных SQL Azure логическое администрирование отделено от физического администрирования; заказчик по-прежнему администрирует базы данных, имена входа, пользователей и роли, а корпорация Майкрософт администрирует физическое оборудование, такое как жесткие диски, серверы и хранилища. Поскольку корпорация Майкрософт обеспечивает все физическое администрирование, существуют некоторые различия между База данных SQL Azure и SQL Server в отношении администрирования, провизионирования, поддержки Transact-SQL, модели программирования и функций.

Краткий обзор некоторых важных различий приведен в следующем списке.

  • Размер базы данных

    База данных SQL Azure сейчас предоставляет следующие версии:

    • Web Edition, размеры 1 ГБ и 5 ГБ.

    • Business Edition, размеры 10, 20, 30, 40, 50, 100, 150 ГБ.

    • Premium Edition поддерживает базы данных размером до 500 ГБ.

    Важно проверить размер базы данных и ее соответствие лимитам, выделенным для базы данных в База данных SQL Azure. Если база данных превышает предельный размер, установленный в База данных SQL Azure, то необходимо проанализировать базу данных и выяснить возможность ее разбиения на более мелкие базы данных (то есть сегментирования) или перемещения больших объемов данных в хранилище больших двоичных объектов Windows Azure. Дополнительные сведения о сегментировании баз данных см. в разделе Горизонтальное масштабирование баз данных SQL Azure.

  • Проверка подлинности

    База данных SQL Azure поддерживает только аутентификацию SQL. Необходимо выяснить, нужны ли изменения в схеме аутентификации, используемой приложением. Дополнительные сведения об ограничениях безопасности см. в публикации Безопасность: рекомендации и ограничения.

  • Версия базы данных SQL Server

    База данных SQL Azure основана на SQL Server 2014. Если нужно перенести базы данных SQL Server 2000 или SQL Server 2005 в База данных SQL Azure, необходимо убедиться в совместимости баз данных с SQL Server 2014. Практика показывает, что наилучший путь состоит в переходе от SQL Server 2014 к База данных SQL Azure. Можно выполнить локальное обновление до SQL Server 2014 перед переходом к База данных SQL Azure. Некоторые полезные ресурсы, с помощью которых проще выполнить переход от предыдущих версий SQL Server: Обновление до SQL Server 2014 и Советник по переходу на Microsoft SQL Server 2014.

  • Schema

    База данных SQL Azure не поддерживает кучи. ВСЕ таблицы должны иметь кластеризованный индекс перед вставкой данных. Дополнительные сведения о требованиях к кластеризованному индексу см. в разделе Внутри базы данных SQL Azure.

  • Поддержка Transact-SQL

    База данных SQL Microsoft Azure поддерживает подмножество языка Transact-SQL. Необходимо изменить скрипт, который должен содержать только поддерживаемые инструкции Transact-SQL, перед развертыванием базы данных на База данных SQL Azure. Дополнительные сведения см. в разделе Справочник Transact-SQL (компонент Database Engine).

  • Инструкция Use

    Инструкция USE в База данных SQL Azure не выполняет переключения между базами данных. Чтобы выбрать другую базу данных, необходимо подключиться к ней напрямую.

  • Цены

    Цена подписки База данных SQL Azure назначается по базам данных и зависит от выпуска. Дополнительная плата зависит от объема передаваемых данных и взимается каждый раз, когда данные поступают в центр обработки данных или покидают его. Можно выбирать между локальным запуском кода приложения и соединения с экземпляром База данных SQL Azure в центре обработки данных или запуском кода приложения в Azure, размещенном в том же центре обработки данных, что и экземпляр База данных SQL Azure. Запуск кода приложения в Azure позволяет избежать дополнительных затрат при передаче данных. В любом случае необходимо учитывать задержки в сети Интернет, которые нельзя сократить при использовании любой модели. Дополнительные сведения см. в разделе Общие сведения о расценках.

  • Ограничения функциональности

    В настоящее время некоторые функции SQL Server не поддерживаются в База данных SQL Azure. К ним можно отнести следующие: агент SQL, компонент Full-text search, компонент Service Broker, резервное копирование и восстановление, среда CLR и службы SQL Server Integration Services. Подробный список см. в разделе Ограничения функций SQL Server. Дополнительные сведения о вариантах резервного копирования и восстановления см. в разделе Резервное копирование и восстановление баз данных SQL Azure.

При использовании облачной базы данных, такой как База данных SQL Azure, требуется соединение через Интернет или другие сложные сети. Поэтому необходимо быть готовым к действиям в случае непредвиденных нарушений соединения.

База данных SQL Azure обеспечивает полноценное многопользовательское обслуживание баз данных на основе общих источников. Чтобы обеспечить хорошие условия работы для всех клиентов База данных SQL Azure, то или иное соединение может быть закрыто с учетом нескольких условий.

Ниже приведен список причин прекращения соединения.

  • Задержка в сети

    Задержка приводит к увеличению времени, требуемого для передачи данных в База данных SQL Azure. Лучший способ уменьшить этот эффект — передавать данные с использованием нескольких параллельных потоков. Однако эффективность распараллеливания ограничена пропускной способностью сети.

    База данных SQL Azure позволяет создавать базы данных в разных центрах обработки данных. В зависимости от местоположения и способа подключения к сети, сетевые задержки между конкретным местоположением и каждым центром обработки данных будут различными. В целях сокращения задержек в сети выберите ближайший для большинства своих пользователей центр обработки данных. Сведения об измерении задержки сети см. в разделе Тестирование задержки клиента в базе данных SQL Azure.

    Размещение кода приложения в Azure положительно отражается на производительности приложения, поскольку при этом уменьшается сетевая задержка, связанная с запросами приложения к данным База данных SQL Azure.

    Минимизация кругообращения в сети также способствует уменьшению проблем, связанных с сетью.

  • Отработка отказа базы данных

    База данных SQL Azure реплицирует многочисленные избыточные копии данных на многие физические серверы, обеспечивая доступность данных и непрерывность бизнес-деятельности. В случае сбоя или обновления оборудования База данных SQL Azure выполняет автоматический переход на другой ресурс для оптимизации доступности приложения. В настоящее время некоторые действия при отработке отказа могут привести к внезапному прекращению сеанса.

  • Балансировка нагрузки

    Подсистема балансировки загрузки в База данных SQL Azure обеспечивает оптимальное использование физических серверов и служб в центрах обработки данных. Если использование ЦП, задержка ввода или вывода (I/O) или количество занятых рабочих для машины превышает пороговые значения, База данных SQL Azure может прекратить транзакции и разъединить сеансы.

  • Регулирование выделяемых ресурсов

    Чтобы все подписчики наверняка получили надлежащую долю ресурсов и ни один подписчик не монополизировал ресурсы за счет других подписчиков, при определенных условиях База данных SQL Azure может закрывать или регулировать соединения подписчика. База данных SQL Azure Служба Engine Throttling постоянно отслеживает определенные пороги производительности для оценки работоспособности системы и может инициировать различные уровни регулирования конкретных подписчиков в зависимости от того, в какой степени эти подписчики влияют на работоспособность системы.

    Служба База данных SQL Azure Engine Throttling контролирует следующие пороги производительности:

    • Процент пространства, выделенного для используемой физической базы данных База данных SQL Azure, процентные показатели мягких и жестких квот одинаковы.

    • Процент пространства, выделенного для используемых файлов журнала База данных SQL Azure. Файлы журнала — общие для подписчиков. Процентные показатели мягких и жестких квот различны.

    • Задержка (в миллисекундах) при записи на диск журнала, показатели мягких и жестких квот различны.

    • Задержка (в миллисекундах) при чтении файлов данных, процентные показатели мягких и жестких квот различны.

    • Использование процессора, процентные показатели мягких и жестких квот одинаковы.

    • Размер отдельных баз данных по отношению к максимальному размеру, разрешенному для подписки базы данных, процентные показатели мягких и жестких квот одинаковы.

    • Общее количество рабочих потоков, обслуживающих активные запросы к базам данных, процентные показатели мягких и жестких квот различны. Если этот порог превышен, критерии выбора блокируемых баз данных иные, нежели в случае с другими порогами. Базы данных, использующие наибольшее количество рабочих потоков, являются более вероятными кандидатами для регулирования ресурсов, чем базы данных с самыми высокими показателями трафика.

Дополнительные сведения см. в разделах Управление соединениями в базе данных SQL Azure и Руководство по обеспечению производительности и эластичности базы данных SQL Azure.

Лучший способ справиться с потерей соединения — восстановить соединение и повторно выполнить давшие сбой команды или запрос. Дополнительные сведения см. в публикации Transient Fault Handling Framework (на англ. языке).

Улучшить производительность миграции можно с помощью нескольких подходов к использованию базы данных:

  • Отложить создание некластеризованных индексов или отключить некластеризованные индексы. Добавление индексов, созданных перед загрузкой данных, позволяет значительно увеличить размер окончательной базы данных и сократить время, необходимое для загрузки того же количества данных.

  • Отключить триггеры и проверки ограничений. Триггеры могут срабатывать при вставке строки в таблице, вызывая повторную вставку строки в другую таблицу. Триггер может привести к задержкам и подобные вставки могут быть нежелательны.

  • Производительность операции выполнения массового импорта увеличивается, если импортируемые данные упорядочены согласно кластеризованному индексу таблицы. Дополнительные сведения см. в публикации Управление порядком сортировки во время массового импорта данных.

Службы SQL Server Integration Services (SSIS) и программа bcp успешно применяются при миграции большого количества данных.

При загрузке большого количества данных в База данных SQL Azure рекомендуется разбить данные на несколько параллельных потоков для повышения производительности.

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

Существуют различные инструменты для миграции базы данных в База данных SQL Azure. В общем перенос базы данных состоит из миграции схемы и миграции данных. Существуют инструменты, обеспечивающие один или оба процесса. Можно даже использовать API-интерфейс массового копирования для создания собственного приложения загрузки данных.

 

Средства

Schema

Проверка совместимости с База данных SQL Azure

Данные

Эффективность передачи данных

Примечание

Пакет приложения уровня данных

Да

Да

Нет

Отсутствует

  • Сущность, содержащая все объекты базы данных, но не данные

  • Полная поддержка База данных SQL Azure

Экспорт и импорт приложения уровня данных BACPAC

Да

Да

Да

Хорошая

  • Экспорт или импорт приложения уровня данных, а также данных и платформы DAC

  • Доступна служба поддержки только облака

  • Примеры приложения уровня данных SQL доступны на CodePlex

Мастер создания скриптов среды SSMS

Да

Частично

Да

Низкая

  • Имеет явные варианты для создания скриптов База данных SQL Azure

  • Подходит для небольших баз данных

bcp

Нет

Отсутствует

Да

Хорошая

  • Эффективная передача данных в существующую таблицу

  • Каждая команда bcp передает одну таблицу

Мастер миграции База данных SQL Azure

Да

Да

Да

Хорошая

  • Большие возможности, например оценка файлов трассировки

  • Открытый источник на CodePlex

  • Не поддерживается корпорацией Майкрософт

Службы интеграции SQL Server

Нет

Отсутствует

Да

Хорошая

  • Максимальная гибкость

  • Прямая передача между источниками данных без использования файлов

Мастер импорта и экспорта SQL Server

Нет

Отсутствует

Да

Хорошая

  • Простой пользовательский интерфейс служб SSIS; доступность в среде SSMS

Помощник по миграции База данных SQL Azure может быть использован для переноса базы данных из Access, MySQL, Oracle, Sybase в База данных SQL Azure.

Приложение Майкрософт под кодовым названием «Data Transfer» может передавать данные CSV-файла или файла Excel в База данных SQL Azure.

Для переноса данных из одной базы данных База данных SQL Azure в другую базу данных База данных SQL Azure можно использовать копирование данных База данных SQL Azure.

База данных SQL Azure поддерживает функцию копирования базы данных. Эта функция создает в База данных SQL Azure базу данных, которая является согласованной на уровне транзакций копией существующей базы данных. Для копирования базы данных необходимо подключиться к базе данных master сервера База данных SQL Azure, на котором будет создана новая база данных, и использовать команду CREATE DATABASE:

CREATE DATABASE destination_database_name AS COPY OF 
[source_server_name.]source_database_name

Новая база данных может располагаться на том же или на другом сервере. Пользователь, выполняющий эту инструкцию, должно иметь роль dbmanager на целевом сервере (чтобы создать базу данных) и роль dbowner в базе данных-источнике. Дополнительные сведения см. в публикации Копирование баз данных в базу данных SQL Azure.

Приложения уровня данных (DAC) появились в SQL Server 2008 R2, а поддержка средств разработки — в Visual Studio 2010. Они полезны для упаковки схемы, кода и конфигурации базы данных для развертывания на другом сервере. Приложение DAC, готовое к развертыванию, встроено в пакет приложения уровня данных (BACPAC), который представляет собой сжатый файл, содержащий определения DAC в формате XML. Из среды SQL Server Management Studio можно экспортировать схему базы данных в пакет приложения уровня данных, а затем развернуть пакет на База данных SQL Azure.

noteПримечание
Формат DACPAC отличен от формата BACPAC. Формат BACPAC расширяет формат DACPAC и позволяет включить файл метаданных и данные таблиц в формате JSON в дополнение к стандартному содержимому DACPAC-файла. Формат BACPAC рассматривается в разделе «Импорт и экспорт приложения уровня данных».

Есть возможность изменить пакет приложения уровня данных с помощью Visual Studio 2010 до развертывания. В рамках проекта приложения уровня данных можно указать скрипты, выполняемые до и после развертывания. Это скрипты Transact-SQL, которые могут выполнять любые действия, включая вставку данных в скриптах, выполняемых после развертывания. Однако не рекомендуется вставлять большое количества данных с помощью пакета приложения уровня данных.

Приложение уровня данных поставляется вместе с SQL Server 2008 R2. Миграция схемы базы данных SQL Server на База данных SQL Azure состоит из двух основных шагов:

  1. Извлеките пакет приложения уровня данных из базы данных SQL Server.

    Мастер извлечения приложения уровня данных может применяться для построения пакета DAC на основе существующей базы данных. Пакет приложения уровня данных содержит выбранные объекты из базы данных и связанные объекты уровня экземпляра, например имена входа, сопоставленные с пользователями базы данных.

    Снимок экрана открытия мастера:



    Мастер охватывает следующие основные шаги.

    1. Задайте свойства приложения уровня данных, в том числе имя, версию, описание и расположение файла пакета приложения уровня данных.

    2. Проверьте, что все объекты базы данных поддерживаются приложением уровня данных.

    3. Выполните сборку пакета.

    Приложение уровня данных может быть извлечено только из базы данных в База данных SQL Azure либо SQL Server 2005 с пакетом обновления 4 (SP4) и более поздних версиях. Извлечь приложение уровня данных нельзя, если в базе данных имеются объекты, не поддерживаемые в приложении уровня данных, или содержащиеся пользователи. Дополнительные сведения о типах объектов, поддерживаемых в приложении уровня данных, см. в разделе Поддержка приложения уровня данных для объектов и версий SQL Server.

  2. Развертывание пакета приложения уровня данных в База данных SQL Azure:

    Мастер развертывания приложения уровня данных можно использовать для развертывания пакета приложения уровня данных. Необходимо сначала установить соединение с сервером База данных SQL Azure из среды SQL Server Management Studio. Мастер создает базу данных, если база данных не существует. Мастер развертывает пакет приложения уровня данных на экземпляре компонента ядра СУБД, связанном с узлом, который выбран в иерархии обозревателя объектов. Например, на следующих снимках экрана пакет развертывается на экземпляре SQL Server с именем maqqarly23.database.windows.net:

    ImportantВажно!
    Рекомендуется просмотреть содержимое пакета приложения уровня данных перед его развертыванием в рабочей среде, особенно если пакет не был разработан в организации. Дополнительные сведения см. в разделе Проверка пакета приложения уровня данных.

    Мастер охватывает следующие основные шаги.

    1. Выберите пакет приложения уровня данных.

    2. Проверьте содержимое пакета.

    3. Настройте свойства развертывания базы данных, в которых указана База данных SQL Azure.

    4. Разверните пакет.

Кроме мастера, можно также использовать PowerShell с методом dacstore.install() для миграции схемы на База данных SQL Azure.

Приложение уровня данных представляет собой единое средство разработки, развертывания объектов уровня данных и управления ими. Приложение уровня данных позволяет разработчикам и администраторам баз данных уровня данных упаковывать объекты Microsoft SQL Server, в том числе объекты базы данных и экземпляров, в единый объект — пакет приложения уровня данных (DACPAC-файл). Формат BACPAC расширяет формат DACPAC и позволяет включить файл метаданных и данные таблиц в формате JSON в дополнение к стандартному содержимому DACPAC-файла. Можно упаковать базу данных SQL Server в BACPAC-файл и использовать его для переноса базы данных в База данных SQL Azure.

noteПримечание
Пакеты DACPAC & BACPAC похожи, но предназначены для весьма различных сценариев. DACPAC предназначен для захвата и развертывания схемы. В основном он используется при развертывании в среде разработки, тестирования, а затем рабочей среде.

Пакет BACPAC в основном предназначен для записи схемы и данных. Это логический эквивалент резервной копии базы данных, он не может использоваться для обновления существующих баз данных. В основном пакеты BACPAC используются для перемещения базы данных с одного сервера на другой (или на База данных SQL Azure) и для архивации существующих баз данных в открытом формате.

Служба импорта и экспорта для База данных SQL Azure общедоступна. Служба может напрямую импортировать или экспортировать файлы BACPAC между База данных SQL Azure и хранилищем больших двоичных объектов Azure. Служба импорта и экспорта для База данных SQL Azure предоставляет общедоступные конечные точки REST для передачи запросов.

Портал управления платформой Azure располагает интерфейсом для вызова службы импорта и экспорта для База данных SQL Azure.

В настоящее время среда SQL Server Management Studio не поддерживает экспорт базы данных в BACPAC-файл. Для импорта и экспорта данных можно использовать API приложения уровня данных.

Раздел Примеры SQL DAC показывает, как использовать платформу приложения уровня данных для переноса баз данных с SQL Server на База данных SQL Azure. Пакет содержит две служебные программы командной строки и их исходный код:

  • Клиентские средства импорта и экспорта приложения уровня данных можно использовать для экспорта и импорта BACPAC-файлов.

  • Клиент службы импорта и экспорта приложения уровня данных может быть использован для вызова службы импорта и экспорта для База данных SQL Azure, чтобы импортировать или экспортировать BACPAC-файлы между хранилищем больших двоичных объектов Azure и База данных SQL Azure.

    Один из способов копирования BACPAC-файла в хранилище больших двоичных объектов Azure состоит в использовании приложения Майкрософт под кодовым названием «Data Transfer». Дополнительные сведения см. в разделе «Приложение Майкрософт под кодовым названием "Data Transfer"».

noteПримечание
Возможность импортировать и экспортировать База данных SQL Azure с использованием платформы приложения уровня данных (DAC) в настоящее время представлена только в примерах CodePlex. Инструменты поддерживаются только сообществом.

В этом разделе показано, как использовать клиентские средства примеров приложения уровня данных SQL для переноса базы данных из SQL Server в База данных SQL Azure.

Примеры приложения уровня данных SQL можно загрузить из CodePlex. Для запуска образца необходимо также установить Платформу приложения уровня данных на компьютере.

Перед использованием средства для переноса базы данных необходимо создать место назначения База данных SQL Azure. При миграции с использованием средства осуществляются два шага:

  1. Экспорт базы данных SQL Server

    Предположим, что существует база данных, функционирующая на SQL Server 2014 R2, к которой пользователь получает доступ через встроенную систему безопасности. База данных может быть экспортирована в BACPAC-файл путем вызова EXE-образца со следующими аргументами:

    DacCli.exe -s serverName -d databaseName -f C:\filePath\exportFileName.bacpac -x -e
    
  2. Импорт пакета в База данных SQL Azure

    После завершения экспорта экспортированный файл можно импортировать в База данных SQL Azure со следующими аргументами:

    DacCli.exe -s serverName.database.windows.net -d databaseName -f C:\filePath\exportFileName.bacpac -i -u userName -p password
    

Мастер формирования скриптов может использоваться для создания скриптов Transact-SQL для базы данных SQL Server и/или связанных объектов в выбранной базе данных. Затем скрипты можно использовать для передачи схемы и/или данных в База данных SQL Azure.

Мастер формирования скриптов устанавливается вместе с SQL Server 2008 R2. Мастер можно открыть из среды SQL Server Management Studio 2008 R2. На следующем снимке экрана показано, как открыть мастер.

Мастер охватывает следующие основные шаги.

  1. Выберите объекты для экспорта.

  2. Задайте параметры формирования скриптов. Можно сохранить скрипт в файле, буфере обмена, новом окне запроса. Также его можно опубликовать в веб-службе.

  3. Задайте дополнительные параметры формирования скриптов.

    По умолчанию скрипт создается для изолированного экземпляра SQL Server. Чтобы изменить конфигурацию, необходимо нажать кнопку Дополнительно в диалоговом окне Задание параметров создания скриптов, а затем назначить свойству Скрипт для типа компонента ядра СУБД значение База данных SQL.



    Вы можете также установить для свойства Типы данных для внесения в скрипт одно из следующих значений на основе ваших требований: только схема, только данные, схема и данные.

После создания скрипта имеется возможность изменить его перед его запуском в База данных SQL Azure для передачи базы данных.

Программа bcp является служебной программой командной строки, которая предназначена для высокопроизводительной массовой передачи данных в SQL Server или База данных SQL Azure. Это не средство миграции данных. Она не извлекает или создает схему. Сначала следует перенести схему в База данных SQL Azure с помощью одного из средств миграции схемы.

noteПримечание
С помощью программы bcp можно выполнять резервное копирование и восстановление данных в База данных SQL Azure.

noteПримечание
Мастер миграции База данных SQL Azure использует программу bcp.

Программа bcp поставляется вместе с SQL Server. Версия, поставляемая вместе с SQL Server 2014, полностью совместима с База данных SQL Azure.

При использовании программы bcp выполняются два этапа:

  1. Экспорт данных в файл данных.

    Чтобы экспортировать данные из базы данных SQL Server, можно запустить следующую инструкцию в командной строке:

    bcp tableName out C:\filePath\exportFileName.dat –S serverName –T –n -q
    
    Параметр out задает копирование данных из SQL Server. Параметр -n выполняет операцию массового копирования с использованием собственных типов данных базы данных. Параметр -q выполняет инструкцию SET QUOTED_IDENTIFIERS ON в соединении между программой bcp и экземпляром SQL Server.

  2. Импортирование файла данных База данных SQL Azure

    Для импорта данных в База данных SQL Azure необходимо сначала создать схему в целевой базе данных, а затем выполнить программу bcp из командной строки:

    Bcp tableName in c:\filePath\exportFileName.dat –n –U userName@serverName –S tcp:serverName.database.windows.net –P password –b batchSize
    
    Параметр -b указывает количество строк в каждом пакете импортированных данных. Каждый пакет импортируется и регистрируется как отдельная транзакция, которая фиксируется после выполнения импорта всего пакета. Определение наилучшего размера пакета и использование размера пакета — хороший способ уменьшить вероятность потери соединения с База данных SQL Azure во время переноса данных.

Ниже приведены некоторые примеры рекомендуемых методов использования программы bcp для передачи большого количества данных.

  1. Параметр –N используется для передачи данных в собственном режиме, поэтому преобразование типов данных не нужно.

  2. Используйте параметр –b для указания размера пакета. По умолчанию импорт всех строк в файле данных выполняется в одном пакете. Если транзакция завершится неудачно, то будет выполнен откат только операций вставки из текущего пакета.

  3. Используйте параметр –h "TABLOCK, ORDER(…)". Параметр –h "TABLOCK" указывает, что при выполнении массового обновления на период операции массовой загрузки требуется блокировка на уровне таблицы. В противном случае запрашивается блокировка на уровне строки. Это позволяет уменьшить количество конфликтов блокировок для таблицы. Параметр –h "ORDER(…)" указывает порядок сортировки данных в файле данных. Производительность операции выполнения массового импорта увеличивается, если импортируемые данные упорядочены согласно кластеризованному индексу таблицы.

Параметры –F и –L вы можете использовать для указания первой и последней строк неструктурированного файла, предназначенного для передачи. Это дает возможность избежать необходимости физического разбиения файла данных с целью организовать несколько потоков передачи.

Мастер миграции База данных SQL Azure — средство пользовательского интерфейса с открытым исходным кодом, упрощающее перенос баз данных SQL Server 2005, 2008 и более поздних версий в База данных SQL Azure. Помимо переноса данных, он может также использоваться для выявления любых проблем совместимости, их устранения, где это возможно, и уведомления пользователя обо всех обнаруженных неполадках.

Мастер миграции База данных SQL Azure располагает встроенной логикой для обработки потерь соединения. Он разбивает транзакции на малые фрагменты и функционирует, пока База данных SQL Azure не завершит соединение. После того как мастер обнаруживает ошибку соединения, он устанавливает новое соединение с База данных SQL Azure и возобновляет обработку с последней успешной команды. Таким же образом при использовании программы bcp для передачи данных в База данных SQL Azure мастер разделяет данные на отдельные пакеты и использует логику повторных попыток, чтобы выявить последнюю успешную запись, загруженную до закрытия соединения. Затем посредством bcp мастер перезапускает загрузку со следующим набором записей.

noteПримечание
Мастер миграции База данных SQL Azure — средство с открытым исходным кодом, созданное и поддерживаемое сообществом.

Мастер миграции База данных SQL Azure можно загрузить из http://sqlazuremw.codeplex.com. Распакуйте пакет на локальном компьютере и запустите SQLAzureMW.exe. Ниже приводится снимок экрана приложения.

Мастер охватывает следующие шаги.

  1. Выберите процесс, для выполнения которого требуется помощь мастера.

  2. Выберите источник, для которого нужно создать скрипт.

  3. Выберите объекты базы данных для создания скрипта.

  4. Сформируйте скрипт. Скрипт можно изменить впоследствии.

  5. Введите данные для соединения с целевым сервером. Можно создать целевую База данных SQL Azure.

  6. Выполните скрипт на целевом сервере.

Службы SQL Server Integration Services (SSIS) можно использовать для выполнения широкого круга задач миграции данных. Это мощный инструмент для работы с несколькими разнородными источниками и назначениями данных. Этот инструмент обеспечивает сложные рабочие процессы и преобразование данных между источником и местом назначения. Службы SSIS недоступны в качестве службы Azure, аналогичной базе База данных SQL Azure. Пакеты служб SSIS можно запускать на локальном экземпляре SQL Server для передачи данных в База данных SQL Azure. Кроме того, вы можете запускать пакеты SSIS на экземпляре SQL Server в виртуальной машине Azure для передачи данных в базу данных Microsoft SQL Azure. SQL IaaS также является вариантом размещения SSIS.

Мастер импорта и экспорта служб SSIS позволяет пользователю создавать пакеты для перемещения данных из одного источника данных к месту назначения без преобразования. Мастер позволяет быстро перенести данные из источников различных типов в места назначения различных типов, в том числе текстовые файлы и другие экземпляры SQL Server. Дополнительные сведения см. в разделе Использование служб Integration Services для миграции базы данных в базу данных SQL Azure.

Необходимо использовать версию SQL Server 2008 R2 или более позднюю версию служб SSIS для подключения к База данных SQL Azure.

Адаптеры ADO.NET обеспечивают необходимую поддержку База данных SQL Azure. Он предоставляет возможность массовой загрузки данных специально для База данных SQL Azure. Используйте адаптер загрузки данных назначения «ADO.NET» служб SSIS для передачи данных в База данных SQL Azure. Соединение с базой данных База данных SQL Microsoft Azure с помощью OLE DB не поддерживается.

Поскольку сбой пакета может произойти из-за регулирования или отказа сети, можно попытаться составить пакеты таким образом, чтобы возобновить работу в точке сбоя вместо перезапуска пакета. Дополнительные сведения см. в разделе SSIS для Azure и перенос гибридных данных.

При настройке точки назначения «ADO.NET» не забудьте использовать параметр «При возможности использовать массовую вставку». Это позволит вам использовать возможности массовой загрузки для повышения производительности передачи. . Дополнительные сведения см. в разделе Руководство по использованию и настройке SSIS.

Мастер импорта и экспорта SQL Server обеспечивает простейший метод создания пакета служб SQL Server Integration Services для простого импорта и экспорта. Дополнительные сведения см. в разделе Использование мастера импорта и экспорта для миграции базы данных в базу данных SQL Azure.

Мастер поддерживает следующие источники данных:

  • Поставщик данных .NET Framework для ODBC

  • Поставщик данных .NET Framework для Oracle

  • Поставщик данных .NET Framework для SQL Server

  • Источник «Неструктурированный файл»

  • Поставщик Microsoft OLE DB для служб Analysis Services 10.0

  • Поставщик Microsoft OLE DB для служб поиска

  • Поставщик Microsoft OLE DB для SQL Server

  • Собственный клиент SQL

  • Собственный клиент SQL Server версии 10.0

Мастер импорта и экспорта SQL Server может только передавать данные. Перед использованием мастера необходимо переместить схему с помощью одного из средств миграции схемы, мастера формирования скриптов или пакета приложения уровня данных.

noteПримечание
На 64-разрядном компьютере службы Integration Services устанавливают 64-разрядную версию мастера импорта и экспорта SQL Server (DTSWizard.exe). При этом для некоторых источников данных доступен только 32-разрядный поставщик. Для работы с этими источниками данных необходимо установить и запустить 32-разрядную версию мастера. Чтобы установить 32-разрядную версию мастера, во время работы программы установки нужно выбрать «Клиентские средства» или среду Business Intelligence Development Studio.

Приложение от Майкрософт под кодовым названием «Data Transfer» — это облачная служба, которая позволяет передавать данные с компьютера на База данных SQL Azure или хранилище больших двоичных объектов Azure. Предусмотрена возможность передавать данные любого формата в хранилище больших двоичных объектов Azure, а данные, хранящиеся в формате с разделителями-запятыми (CSV) или формате Microsoft Excel (XLSX), — в База данных SQL Azure. При передаче данных в База данных SQL Azure они преобразуются в таблицы базы данных.

Служба Data Transfer доступна по адресу https://web.datatransfer.azure.com/. На домашней странице есть функции импорта данных, управления наборами данных и пользовательских хранилищ.

Процесс импорта данных в База данных SQL Azure состоит из следующих шагов.

  • Введите свои учетные данные База данных SQL Azure.

  • Выберите файл для передачи.

  • Проанализируйте файл данных, а затем передайте данные.

Помощник по миграции Microsoft SQL Server (SSMA) — это семейство продуктов, позволяющих сократить стоимость и риск при переносе из баз данных Oracle, Sybase, MySQL и Microsoft Access в База данных SQL Azure или SQL Server. SSMA автоматизирует все аспекты миграции, в том числе оценочный анализ миграции, преобразование схем и инструкций SQL, а также сам перенос данных и их проверку.

SSMA можно загрузить из Интернета. Чтобы загрузить новейшую версию, обратитесь к странице продукта средств миграции SQL Server. На момент написания версии, указанные ниже, были последними:

SSMS устанавливается с помощью мастера на основе установщика Windows. SSMA предоставляется бесплатно, но необходимо загрузить регистрационный ключ. После установки и запуска приложение попросит зарегистрироваться и загрузить регистрационный ключ.

Процесс миграции SSMA для Access включает следующие действия.

  1. Создайте новый мастер миграции. Выберите базу данных База данных SQL Azure в поле Миграция.

  2. Добавьте базы данных Access.

  3. Выберите объекты Access, которые нужно перенести.

  4. Подключитесь к База данных SQL Azure.

  5. Свяжите таблицы. Если необходимо использовать существующие приложения Access с База данных SQL Azure, свяжите исходные таблицы Access с перенесенными таблицами База данных SQL Azure. Связывание изменяет базу данных Access, чтобы запросы, формы, отчеты и страницы доступа к данным использовали данные в База данных SQL Azure вместо базы данных Access.

  6. Преобразуйте выбранные объекты.

  7. Загрузите преобразованные объекты в База данных SQL Azure.

  8. Перенесите данные для выбранных объектов Access.

См. также

Показ:
© 2014 Microsoft