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

Копирование баз данных в базу данных SQL Azure

Обновлено: Июль 2014 г.

Операция копирования базы данных копирует База данных SQL Microsoft Azure в новую базу данных. Копию базы данных можно создать на том же или на другом логическом сервере. По завершении процесса копирования новая база данных будет полностью работоспособной и независимой от базы данных-источника. Новая база данных будет транзакционно согласована с базой данных-источником на момент завершения операции копирования. База данных в копии имеет такой же уровень служб, размер и уровень производительности, как и база данных-источник.

Поскольку новая база данных имеет тот же уровень производительности и уровень обслуживания. Каждая копия увеличивает число баз данных и оплачивается по тому же тарифу, что и база данных-источник. Дополнительные сведения см. на странице Сведения о ценах на базы данных SQL.

В этом разделе

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

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

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

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

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

Значок стрелки, используемый со ссылкой «В начало» [Top]

При использовании функции копирования базы данных копирование идет асинхронно, поэтому соединение с сервером База данных SQL Azure не требуется на всем протяжении данного процесса. Можно скопировать базу данных, войдя в базу данных master на целевом сервере и выполнив инструкцию Transact-SQL CREATE DATABASE с предложением AS COPY OF. Затем можно наблюдать за ходом процесса копирования с помощью представлений sys.dm_database_copies и sys.databases на целевом сервере.

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

При копировании базы данных на тот же сервер База данных SQL Azure можно использовать одно и то же имя входа для обеих баз данных. Субъект безопасности, используемый для копирования базы данных, становится владельцем (DBO) новой базы данных после ее создания. На следующем рисунке показано копирование на тот же сервер.

Копирование базы данных на тот же сервер базы данных SQL

На этом рисунке показано копирование базы данных Database1A в новую базу данных Database1B на том же сервере База данных SQL Azure, Server1. Учетная запись, от имени которой выполнялось копирование базы данных, становится владельцем базы данных Database1B. Пользователи базы данных, их разрешения, идентификаторы безопасности копируются из базы данных Database1A в базу данных Database1B. Поскольку пользовательские идентификаторы безопасности одинаковы для обеих баз данных, у имен входа в Server1 сохраняются одни и те же разрешения в обеих базах данных.

После завершения операции копирования, Database1B станет полностью работоспособной независимой базой данных. Именами входа, пользователями и разрешениями для базы данных Database1B можно управлять отдельно от базы данных Database1A.

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

Копирование базы данных на другой сервер базы данных SQL

На этом рисунке показано копирование базы данных Database1A с сервера Server1 в новую базу данных Database2A на другом сервере База данных SQL Azure, Server2. Учетная запись, от имени которой выполнялось копирование базы данных, становится владельцем базы данных Database2A. Пользователи базы данных и их разрешения (но не идентификаторы безопасности) копируются из базы данных Database1A в базу данных Database2A. Имена входа с сервера Server1 нельзя использовать в новой базе данных, так как они связаны с другим сервером База данных SQL Azure и идентификаторы безопасности в базе данных Database2A отличаются от идентификаторов безопасности пользователей базы Database1A.

ImportantВажно!
Регион базы данных SQL Azure может содержать несколько физических кластеров. В настоящее время нельзя копировать базу данных между двумя разными кластерами. Кроме того, в настоящее время нельзя копировать базу данных между двумя разными подписками. Дополнительные сведения об ограничениях см. в разделе Restrictions.

После завершения операции копирования межу серверами именами входа, пользователями и разрешениями базы данных Database2A можно будет управлять независимо от базы данных Database1A. Для сопоставления пользователей в новой базе данных с именами входа на новом сервере Transact-SQL используйте имя входа DBO и инструкцию База данных SQL Azure ALTER USER. Например: ALTER USER userName WITH LOGIN='loginName'. Дополнительные сведения см. в разделе ALTER USER.

Значок стрелки, используемый со ссылкой «В начало» [Top]

Копирование базы данных с использованием DB Copy — это наиболее простой способ, но, учитывая ограничения, описанные ранее, в некоторых случаях может возникнуть необходимость воспользоваться одним из альтернативных методов. .

Следует отметить несколько вещей о поддерживаемых вариантах:

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

Активная георепликация доступна только для уровня обслуживания базы данных Premium. Это позволяет контролировать время выполнения копирования. Использовать его следует только в случае, когда необходима тесная координация окончания копирования с другими действиями рабочего процесса. Дополнительные сведения см. в Активная георепликация для базы данных SQL Azure.

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

В таблице ниже перечислены варианты, доступные для различных сценариев использования:

 

Сценарий Подписка Регион Server Поддерживаемые варианты

Случай A

То же самое

То же самое

То же самое

  • DB Copy (T-SQL, REST или PowerShell)

  • Восстановление на определенный момент времени

Случай B

То же самое

То же самое

Разные

  • DB Copy (T-SQL)

  • DB Copy (T-SQL, REST или PowerShell) на том же сервере + экспорт и импорт

  • Восстановление на определенный момент времени на этом же сервере + экспорт и импорт

  • Активная георепликация

Случай B

То же самое

Разные

Разные

  • DB Copy (T-SQL, REST или PowerShell) на том же сервере + экспорт и импорт

  • Восстановление на определенный момент времени на этом же сервере + экспорт и импорт

  • Активная георепликация

Случай C

Разные

То же самое

Разные

  • DB Copy (T-SQL, REST или PowerShell) на том же сервере + экспорт и импорт

  • Восстановление на определенный момент времени на этом же сервере + экспорт и импорт

Случай C

Разные

Разные

Разные

  • DB Copy (T-SQL, REST или PowerShell) на том же сервере + экспорт и импорт

  • Восстановление на определенный момент времени на этом же сервере + экспорт и импорт

Сценарий использования A
Если исходная и конечная базы данных находятся на одном сервере, это самый простой способ копировать базу данных, используя DB Copy или восстановление на определенный момент времени. Как упоминалось ранее, восстановление на определенный момент времени позволяет создать копию базы данных на момент времени в прошлом, а DB Copy копирует базу данных в текущем состоянии.

Сценарий использования B
Если исходная и целевая базы данных находятся в одной подписке, но на разных серверах, для копирования на другой логический сервер можно использовать DB Copy через T-SQL. Если же логический сервер находится в другом физическом кластере, копирование завершится сбоем. Чтобы определить, находится ли логический сервер в том же кластере, используйте команду ping на обоих серверах, чтобы проверить, используют ли они один и тот же IP адрес. Если на конечном сервере другой кластер, выполните следующие шаги:

  1. Создайте промежуточную (подготовительную) копию базы данных на исходном сервере, используя DB Copy или восстановление на определенный момент времени.

  2. Экспортируйте копию в BACPAC-файл в хранилище больших двоичных объектов Azure.

  3. Импортируйте BACPAC-файл, созданный на шаге 2, в базу данных в нужной подписке, регионе или сервере.

  4. Удалите промежуточную базу данных, созданную на шаге 1.

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

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

  2. Когда процесс репликации будет в состоянии обновления, остановите получатель.

  3. Новая копия становится независимой базой данных, доступной для операций чтения и записи.

  4. Если копии нужно дать другое имя, переименуйте ее.

Сценарий использования C
Если исходная и конечная базы данных находятся в различных подписках вне зависимости от регионов, можно использовать процесс для сценария использования B за исключением Активная георепликация. Активная георепликация не работает между подписками.

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

См. также

Показ:
© 2014 Microsoft