Полное руководство: средства и способы миграции данных в Windows Azure SQL Database

от автора

image

В этом документе представлены рекомендации по миграции определений данных (схем) и данных в базу данных SQL Windows Azure. Эти рекомендации предназначены главным образом для однократного переноса с SQL Server в базу данных SQL. Сведения о совместном использовании данных и резервном копировании базы данных SQL см. в статье SQL Data Sync Overview (Обзор синхронизации данных SQL).

Факторы, которые следует учесть при миграции

Microsoft Windows Azure предоставляет несколько вариантов хранения данных. Можно выбрать один или несколько вариантов для использования в проектах.

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

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

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

График миграции

Платформа Windows Azure поддерживает три основных способа хранения данных. Хранилище Windows Azure Storage содержит таблицы, BLOB-объекты и очереди. При разработке решения Windows Azure необходимо обеспечить максимальную производительность, выбрав оптимальный способ хранения данных.

Способы хранения данных Назначение Максимальный размер
База данных SQL Windows Azure Система управления реляционной базой данных 150 ГБ
Windows Azure Storage (Хранилище Windows Azure) BLOB-объекты Надежное хранилище для BLOB-объектов, таких как видео или аудио 200 ГБ или 1 ТБ
Таблица Надежное хранилище для структурированных данных 100 ТБ
Очередь Надежное хранилище для сообщений, передаваемых между процессами 100 ТБ
Локальное хранилище Временное хранилище для каждого экземпляра От 250 ГБ до 2 ТБ

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

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

В настоящее время размер базы данных SQL ограничен 150 ГБ; при этом база данных SQL намного дороже хранилища Windows Azure. Поэтому мы рекомендуем переместить BLOB-объекты в хранилище Windows Azure. Это позволит избежать ограничений, накладываемых на размер базы данных и сократить эксплуатационные расходы.

Дополнительные сведения см. в статье Data Storage Offerings on the Windows Azure platform (Предложения по хранению данных на платформе Windows Azure).

Сравнение базы данных Windows Azure SQL и SQL Server

SQL Server и база данных SQL имеют одинаковый интерфейс, позволяющий обрабатывать поток табличных данных (Tabular Data Stream, TDS) для доступа к базе данных на основе Transact-SQL. Это позволяет приложениям использовать базу данных SQL так же, как SQL Server.

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

Ниже приведен обзор основных отличий.

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

В настоящее время возможно использование двух выпусков базы данных SQL:

  • Выпуски Web Edition объемом 1 и 5 ГБ.
  • Выпуски Business Edition объемом 10, 20, 30, 40, 50, 100, 150 ГБ.

Необходимо определить размер имеющейся базы данных и проверить его соответствие ограничениям, принятым для базы данных SQL. Если объем вашей базы данных превышает максимально допустимый объем базы данных SQL, необходимо разделить ее на небольшие сегменты или переместить большую часть данных в хранилище BLOB-объектов Windows Azure. Дополнительные сведения о сегментировании базы данных см. в статье Federation: Building Scalable, Elastic, and Multi-tenant Database Solutions with Windows Azure SQL Database (Федерация: создание масштабируемых, гибких, мультитенатных решений для баз данных с помощью базы данных Windows Azure SQL).

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

База данных SQL поддерживает только проверку подлинности SQL. Необходимо определить, требуется ли изменение схемы проверки подлинности, используемой приложением. Дополнительные сведения об ограничениях в сфере безопасности см. в статье Security Guidelines and Limitations (Рекомендации и ограничения в сфере безопасности).

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

База данных SQL создана на основе SQL Server 2008 (уровень 100). Чтобы перенести базы данных SQL Server 2000 или SQL Server 2005 в базу данных SQL, необходимо убедиться в их совместимости с SQL Server 2008. Наилучший вариант — миграция с SQL Server 2008 в базу данных SQL. Перед началом миграции в базу данных SQL можно выполнить локальное обновление до SQL Server 2008. При миграции с более ранних версий SQL Server рекомендуется изучить следующие материалы: Upgrading to SQL Server 2008 R2 (Обновление до SQL Server 2008 R2) и Microsoft SQL Server 2008 Upgrade Advisor (Консультант по обновлению Microsoft SQL Server 2008).

Схема

База данных SQL не поддерживает heap-таблицы. ВСЕ таблицы должны иметь кластеризованный индекс. Только в этом случае в них можно добавлять данные. Дополнительные сведения о требовании к кластеризованному индексу см. в статье Inside Windows Azure SQL Database (За кулисами базы данных Windows Azure SQL).

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

База данных SQL Windows Azure поддерживает подмножество языка Transact-SQL. Перед развертыванием базы данных в базе данных SQL необходимо изменить сценарий так, чтобы выполнялись только поддерживаемые инструкции Transact-SQL. Дополнительные сведения см. в статьях Supported Transact-SQL Statements (Поддерживаемые инструкции Transact-SQL), Partially Supported Transact-SQL Statements (Частично поддерживаемые инструкции Transact-SQL) и Unsupported Transact-SQL Statements (Неподдерживаемые инструкции Transact-SQL).

Оператор Use

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

Стоимость

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

Ограничения функциональных возможностей

В настоящее время база данных SQL не поддерживает некоторые функции SQL Server, к которым относятся: агент SQL, полнотекстовый поиск, Service Broker, резервное копирование и восстановление, среда CLR и службы интеграции SQL Server Integration Services. Более подробный список приведен в статье SQL Server Feature Limitations (Ограничения функциональных возможностей SQL Server).

Обработка подключений

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

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

Ниже приводится список возможных причин разрывов соединения.

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

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

База данных SQL позволяет создать базу данных в различных центрах обработки данных. В зависимости от места нахождения пользователя и возможностей сетевых подключений, показатели задержки в сети между расположением пользователя и каждым центром обработки данных будут разными. Чтобы сократить задержки, следует выбрать центр обработки данных в непосредственной близости от клиентов. Сведения об измерении задержки в сети см. в статье Testing Client Latency to Windows Azure SQL Database (Тестирование задержки клиента при передаче данных в базу данных Windows Azure SQL).

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

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

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

Распределение нагрузки

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

Регулирование количества запросов

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

  • Объем пространства (в процентах), выделенного физической базе данных SQL. Проценты жесткого и мягкого ограничений одинаковы.
  • Объем пространства (в процентах), выделенного файлам журнала базы данных SQL. Файлы журнала общие для всех подписчиков. Проценты жесткого и мягкого ограничений различны.
  • Время задержки в миллисекундах при записи на диск журнала. Проценты жесткого и мягкого ограничений различны.
  • Время задержки в миллисекундах при чтении файлов данных. Проценты жесткого и мягкого ограничений одинаковы.
  • Использование ресурсов ЦП. Проценты жесткого и мягкого ограничений одинаковы.
  • Размер отдельных баз данных относительно максимально допустимого размера для подписки базы данных. Проценты жесткого и мягкого ограничений одинаковы.
  • Общее количество рабочих ролей, обслуживающих активные запросы к базе данных. Проценты жесткого и мягкого ограничений различны. При превышении этого порогового значения критерии выбора базы данных для блокировки будут отличаться от критериев, применяемых для других пороговых значений. Для баз данных, использующих наибольшее количество рабочих ролей, необходимость регулирования возникает намного чаще, чем для баз данных с наивысшей скоростью трафика.

Дополнительные сведения см. в статьях Windows Azure SQL Database Connection Management (Управление подключениями к базе данных Windows Azure SQL) и Windows Azure SQL Database Performance and Elasticity Guide (Руководство по обеспечению высокой производительности и гибкости базы данных Windows Azure SQL).

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

Оптимизация баз данных для импорта данных

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

  • Отложить создание некластеризованных индексов или отключить их. Дополнительные индексы, созданные до загрузки данных, могут значительно увеличить окончательный размер базы данных и замедлить процесс загрузки.
  • Отключить триггеры и ограничить объем проверки. При вставке строки в таблицу могут сработать триггеры, и строка будет вставлена в другую таблицу. Срабатывание триггеров может привести к задержкам. Кроме того, пользователю может не потребоваться повторная вставка выбранных элементов.
  • Если импортируемые данные отсортированы в таблице в соответствии с кластеризованным индексом, производительность процесса массового импорта повышается. Дополнительные сведения см. в статье Controlling the Sort Order When Bulk Importing Data (Контроль порядка сортировки при массовом импорте данных).

Перемещение больших объемов информации в базу данных SQL

Для переноса больших объемов данных хорошо подходят службы интеграции SQL Server Integration Services (SSIS) и утилита BCP.

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

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

Выбор средств миграции

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

Миграция из SQL Server

Средства Схема Проверка совместимости базы данных SQL Данные Эффективность передачи данных Примечание
Пакет приложения уровня данных (DAC Package) Да Да Нет Недоступно · Сущность, содержащая все объекты базы данных, но не содержащая данные.

· Полная поддержка базы данных SQL.

Импорт и экспорт приложения уровня данных DAC BACPAC Да Да Да Хорошая · Экспорт и импорт приложения уровня данных и данных с помощью платформы DAC.

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

· Проект SQL DAC доступен на веб-сайте CodePlex.

Мастер создания сценариев SSMS Да Частичная Да Плохая · Параметры создания сценариев для базы данных SQL задаются в явном виде.

· Хорошо для небольших баз данных.

BCP Нет Недоступно Да Хорошая · Эффективная передача данных в существующую таблицу.

· Каждая команда bcp передает одну базу данных.

Мастер миграции базы данных SQL Да Да Да Хорошая · Широкие функциональные возможности, например оценка файлов трассировки.

· Открытый исходный код на веб-сайте CodePlex.

· Не поддерживается Microsoft.

Службы интеграции SQL Server Integration Services Нет Недоступно Да Хорошая · Высокий уровень гибкости.
Мастер импорта и экспорта SQL Server Нет Недоступно Да Хорошая · Простой пользовательский интерфейс в SSIS; также доступен в SSMS.

Миграция с других RDMS

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

Продукт Microsoft с кодовым названием Data Transfer (Передача данных) позволяет переносить в базу данных SQL данные в формате CSV или Excel.

Миграция между базами данных SQL

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

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

CREATE DATABASE destination_database_name AS COPY OF

[source_server_name.]source_database_name

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

Служба синхронизации базы данных SQL позволяет планировать и регулярно выполнять синхронизацию между базой данных SQL и SQL Server, а также между разными базами данных SQL. Дополнительные сведения см. в статье SQL Data Sync Overview (Обзор синхронизации данных SQL).

Использование средств миграции

Пакет приложений уровня данных (Data-tier Application DAC Package)

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

Примечание. Формат DACPAC отличается от формата BACPAC. Формат BACPAC является расширением формата DACPAC и включает в себя, наряду со стандартным содержимым файла DACPAC, файл метаданных и данные таблицы, закодированные с помощью JavaScript Object Notation (JSON). Формат BACPAC рассматривается в разделе «Импорт и экспорт DAC».

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

Установка и использование
Пакет DAC входит в комплект поставки SQL Server 20008 R2. Миграция схемы базы данных SQL Server в базу данных SQL выполняется в два основных этапа.

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

На снимке экрана показано открытие мастера.

clip_image002

Мастер позволяет выполнять следующие основные действия.

  1. Установка свойств DAC, включая имя приложения уровня данных, версию, описание и расположение файла пакета.
  2. Проверка совместимости объектов базы данных с приложением уровня данных.
  3. Формирование пакета.

Пакет DAC можно извлечь только из базы данных, находящейся в базе данных SQL или SQL Server 2005 с пакетом обновления 4 (SP4) или более поздней версии. Если в базе данных существуют объекты, которые не поддерживаются в DAC или содержат пользователей, пакет DAC извлечь невозможно. Дополнительные сведения о типах объектов, поддерживаемых в DAC, см. в статье DAC Support For SQL Server Objects and Versions (Объекты и версии SQL Server, поддерживаемые DAC).

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

clip_image003

Важно! Перед развертыванием пакета DAC в рабочей среде рекомендуется проверить его содержимое, особенно если этот пакет разрабатывался в другой организации. Дополнительные сведения см. в статье Validate a DAC Package (Проверка пакета DAC).

Ниже описаны основные шаги, выполняемые мастером развертывания приложений уровня данных.

  1. Выбор пакета DAC.
  2. Проверка содержимого пакета.
  3. Настройка свойств развертывания базы данных с указанием базы данных SQL.
  4. Развертывание пакета.

Вы можете отказаться от использования мастера. Вместо этого для переноса схемы в базу данных SQL можно воспользоваться средой PowerShell с методом dacstore.install().

Ресурсы

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

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

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

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

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

clip_image005

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

В проекте SQL DAC Examples показано использование интерфейса API платформы приложений уровня данных для миграции баз данных с SQL Server в базу данных SQL. Пакет содержит две утилиты командной строки и их исходный код.

Клиентские средства импорта и экспорта DAC используются для экспорта и импорта файлов BACPAC.

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

Можно также копировать файл BACPAC в хранилище BLOB-объектов Windows Azure с помощью продукта Microsoft с кодовым названием Data Transfer. Дополнительные сведения см. в разделе, посвященном продукту Microsoft с кодовым названием Data Transfer.

Примечание. В настоящее время возможность импорта и экспорта данных в базу данных SQL с помощью платформы приложений уровня данных доступна только в виде примеров CodePlex. Эти инструменты поддерживаются только сообществом.

Установка и использование
В этом разделе рассматривается использование клиентских средств проекта SQL DAC Examples для миграции базы данных из SQL Server в базу данных SQL.

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

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

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

DacCli.exe -s serverName -d databaseName -f C:\filePath\exportFileName.bacpac -x -e

Импорт пакета в базу данных SQL
Экспортированный файл можно импортировать в базу данных SQL с помощью следующих аргументов:

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

Ресурсы

Мастер создания сценариев

Мастер создания сценариев позволяет создавать сценарии Transact-SQL для базы данных SQL Server и связанных объектов в выбранной базе данных. С помощью этих сценариев можно перенести схему и данные в базу данных SQL.

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

clip_image006

Ниже описаны основные шаги, выполняемые мастером.

  1. Выбор объектов для экспорта.
  2. Установка параметров сценария. Можно сохранить сценарий в файл, буфер обмена, окно нового запроса или опубликовать его на веб-сайт.
  3. Установка дополнительных параметров сценария. 
    По умолчанию сценарий создается для изолированного экземпляра SQL Server. Чтобы изменить конфигурацию, необходимо нажать кнопку Advanced (Дополнительно) в диалоговом окне Set Scripting Options (Установка параметров сценариев), а затем присвоить свойству Script for the database engine type (Сценарий для типа ядра СУБД) значение SQL Database (База данных SQL). 

    clip_image007

    Свойству Types of data to script (Типы данных для внесения в сценарий) можно присвоить одно из следующих значений: Schema only (Только схема), Data only (Только данные), Schema and data (Схема и данные).

Созданный сценарий можно изменить перед его выполнением в базе данных SQL.

Ресурсы

Утилита bcp

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

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

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

Установка и использование

Программа bcp входит в комплект поставки SQL Server. Версия, входящая в комплект поставки SQL Server 2008 R2 полностью поддерживается базой данных SQL.

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

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

Для экспорта данных из базы данных 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.

Импорт файла данных в базу данных SQL

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

Bcp tableName in c:\filePath\exportFileName.dat –n –U userName@serverName –S tcp:serverName.database.windows.net –P password –b batchSize

Параметр –b указывает количество строк в каждом пакете импортированных данных. Каждый пакет импортируется и перед подтверждением регистрируется в журнале как отдельная операция импорта всего пакета. Для сокращения количества разрывов подключений к базе данных SQL во время миграции рекомендуется оптимизировать размер пакета.

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

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

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

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

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

Ресурсы

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

Мастер миграции базы данных SQL — это инструмент с открытым исходным кодом для переноса баз данных SQL Server 2005/2008 в базу данных SQL. Он позволяет также выявлять и устранять проблемы с совместимостью и отправлять пользователям уведомления об известных ошибках.

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

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

Установка и использование

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

clip_image008

Основные шаги, выполняемые с помощью мастера.

  1. Выбор процесса, который необходимо выполнить с помощью мастера.
  2. Выбор источника, для которого нужно создать сценарий.
  3. Выбор объектов базы данных, для которых нужно создать сценарий.
  4. Создание сценария. Созданный сценарий можно изменить.
  5. Ввод информации для подключения к целевому серверу. Вы можете создать целевую базу данных SQL.
  6. Выполнение сценария на целевом сервере.

Ресурсы

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

Службы интеграции SQL Server (Server Integration Services, SSIS) используются для выполнения различных задач миграции данных. Это мощный инструмент, способный работать с разнородными источниками и узлами назначения данных. Он обеспечивает поддержку сложных рабочих процессов и преобразований данных между источником и узлом назначения. В настоящее время SSIS не поддерживается базой данных SQL. Тем не менее его можно запустить в локальной системе SQL Server 2008 R2 для передачи данных в базу данных SQL Windows Azure.

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

Установка и использование
Для подключения к базе данных SQL необходимо использовать SSIS версии SQL Server 2008 R2 или адаптеры ADO.NET. Адаптеры ADO.NET дают возможность массовой отправки данных для базы данных SQL. Целевой адаптер ADO.NET предназначен для передачи данных в базу данных SQL. Подключение к базе данных SQL Windows Azure с помощью OLEDB не поддерживается.

Приведенный ниже снимок экрана отображает настройки подключения ADO.NET к базе данных SQL.

clip_image009

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

При настройке параметров узла назначения ADO.NET необходимо использовать опцию Use Bulk Insert when possible (По возможности использовать массовую вставку). Массовая загрузка способствует повышению скорости перемещения данных.

Один из способов повышения производительности — разделение исходных данных на несколько файлов в файловой системе. Для обращения к файлам можно использовать компонент «Неструктурированный файл» в конструкторе SSIS. При этом каждый входной файл подключается к компоненту ADO .Net, для которого установлен флажок Use Bulk Insert when possible.

Ресурсы

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

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

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

  • поставщик данных .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 может только передавать данные. Перед использованием мастера необходимо передать схему с помощью одного из средств миграции схемы — мастера создания сценариев или пакета DAC.

Примечание. На 64-разрядном компьютере службы интеграции необходимо установить 64-разрядную версию мастера импорта и экспорта SQL Server (DTSWizard.exe). Однако для некоторых источников данных, таких как Access или Excel, доступны только 32-разрядные версии. Для работы с этими источниками данных может потребоваться установка и запуск 32-разрядной версии мастера. Чтобы установить 32-разрядную версию мастера, при установке программы выберите опцию Client Tools (Клиентские средства) или Business Intelligence Development Studio.

Установка и использование
В SQL Server 2008 R2 или более поздней версии, мастер импорта и экспорта SQL Server поддерживает базу данных SQL. Запустить мастер можно несколькими способами.

В меню Start (Пуск) последовательно выберите All Programs (Все программы), Microsoft SQL Server 2008, а затем щелкните Import and Export Data (Импорт и экспорт данных).

При работе с Business Intelligence Development Studio, в Solution Explorer (Обозреватель решений) правой кнопкой мыши щелкните папку SSIS Packages (Пакеты SSIS), затем в контекстном меню выберите пункт SSIS Import and Export Wizard (Мастер импорта и экспорта SSIS).

В меню Project (Проект) Business Intelligence Development Studio выберите пункт SSIS Import and Export Wizard.

В SQL Server Management Studio подключитесь к типу сервера Database Engine (ядро СУБД), разверните узел Databases (Базы данных), щелкните базу данных правой кнопкой мыши и последовательно выберите пункты Tasks (Задачи), Import Data (Импорт данных) или Export data (Экспорт данных).

В окне командной строки запустите файл DTSWizard.exe, находящийся в каталоге C:\Program Files\Microsoft SQL Server\100\DTS\Binn.

В процессе миграции выполняются следующие основные действия.
Выбор источника данных, из которого будут копироваться данные. Выбор узла назначения, в который будут копироваться данные. Для экспорта данных в базу данных SQL в качестве узла назначения следует выбрать .NET Framework Data Provider for SQLServer (Поставщик данных .NET Framework для SQLServer).

clip_image010

Указание копии таблицы или запроса. Выбор исходных объектов. Сохранение и запуск пакета.

Пакет, созданный мастером импорта и экспорта SQL Server, можно сохранить для последующих повторных запусков или для настройки и модернизации в SQL Server Business Intelligence (BI) Development Studio.

Примечание. Перед изменением или запуском в BI Development Studio, сохраненный пакет необходимо добавить в существующий проект служб Integration Services.

Ресурсы

Продукт Microsoft с кодовым названием Database Transfer

Продукт Microsoft с кодовым названием Database Transfer — это облачная служба для передачи данных с компьютера в базу данных SQL или в хранилище BLOB-объектов Windows Azure. Вы можете отправлять данные любого формата в хранилище BLOB-объектов Windows Azure. Вы можете также отправлять данные, хранящиеся в формате CSV или Microsoft Excel (XLSX), в базу данных SQL. Данные, отправляемые в базу данных SQL, преобразуются в таблицы базы данных.

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

Импорт данных в базу данных SQL включает в себя следующие шаги.

  • Ввод учетных данных базы данных SQL.
  • Выбор файла для передачи.
  • Анализ файла и последующая передача данных.

Ресурсы

Помощник по миграции SQL Server

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

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

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

В процессе миграции с использованием SSMA для Access выполняются следующие действия.

  1. Создание мастера миграции. Выберите базу данных SQL в поле Migrate To (Выполнить миграцию в).
  2. Добавление баз данных Access.
  3. Выбор объектов Access для миграции.
  4. Подключение к базе данных SQL.
  5. Связывание таблиц. Чтобы использовать существующие приложения Access совместно с базой данных SQL, можно связать исходные таблицы Access с перенесенными таблицами базы данных SQL. При связывании структура базы данных Access модифицируется: теперь вместо базы данных Access для формирования запросов, форм, отчетов и страниц доступа к данным используется база данных SQL.
  6. Преобразование выбранных объектов.
  7. Загрузка преобразованных объектов в базу данных SQL.
  8. Миграция данных для выбранных объектов Access.

Ресурсы

ссылка на оригинал статьи http://habrahabr.ru/company/microsoft/blog/155921/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *