Опубликован: 29.07.2008 | Уровень: специалист | Доступ: платный
Лекция 7:

Использование отсоединения и присоединения для переноса данных

< Лекция 6 || Лекция 7: 123
Аннотация: В данной лекции освещено использование репликации для переноса данных, в частности, рассмотрена репликация моментальных снимков, репликация транзакций и репликация слиянием

Если вам нужна уверенность в том, что вы знаете, какие данные переносите, и при этом вы можете вывести базу данных в автономный режим на некоторый период времени, использование отсоединения и присоединения для переноса данных, возможно, будет для вас подходящим вариантом. Главный недостаток метода отсоединения/присоединения заключается в том, что придется смириться с недоступностью базы данных на тот короткий промежуток времени, когда база данных будет отсоединена, потому что необходимо создать копию файла .mdf (mdf – это сокращение от master database file), что возможно только тогда, когда база данных отсоединена. Значит, база данных будет недоступна до тех пор, пока вы не завершите создание копии базы данных. Если база данных достаточно велика, возможно, не удастся создать копию в приемлемый промежуток времени.

Совет. Выбрав вариант с отсоединением/присоединением базы данных, вы, возможно, получите преимущество, если изучите, какие функции репликации или высокоскоростного копирования, доступны в программах сторонних разработчиков.

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

Отсоединяем базу данных

  1. В меню Start (Пуск) выберите All Programs,. Microsoft SQL Server 2005, SQL Server Management Studio (Все программы, Microsoft SQL Server 2005, Среда SQL Server Management Studio). Соедините сервер-источник с Object Explorer (Обозревателем объектов).
  2. Щелкните правой кнопкой мыши на базе данных, которую нужно перенести, и выберите из контекстного меню команды Tasks, Detach (Задачи, Отсоединение). При этом откроется диалоговое окно Detach Database (Отсоединение базы данных) (см. рис. вверху следующей страницы):
  3. Установите флажок Drop Connection (Удалить соединения), а затем нажмите кнопку OK. После этого база данных будет отсоединена, благодаря чему файлы .mdf и .ldf станут доступными для перемещения или копирования в папку на сервере-адресате. Теперь скопируйте файлы .mdf или .ldf базы данных на целевой сервер.
    Совет. Ниже приводится инструкция T-SQL для отсоединения базы данных.
    EXEC sp_detach_db AdventureWorks 
    GO

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

Присоединяем базу данных

  1. В SQL Server Management Studio щелкните правой кнопкой на папке Databases (Базы данных) и выберите из контекстного меню команду Attach (Присоединить). При этом откроется диалоговое окно Attach Database (Присоединение базы данных) (см. рис. вверху следующей страницы):
  2. Нажмите кнопку Add (Добавить), а затем выберите файл или файлы, которые нужно присоединить.
    Примечание. Если в структуре базы данных используется несколько файлов, то после того, как вы добавите файл .mdf в первый список, убедитесь, что во втором списке в этом диалоговом окне представлены все эти файлы.
    Совет. Если нужно присоединить копии файлов базы данных к серверу-источнику, в результате чего на одном сервере окажутся две изначально одинаковые базы данных, то при присоединении можно изменить имя базы данных. Для этого нужно только указать другое имя в столбце Attach As (Присоединить как) в первом списке.
  3. После нажатия кнопки ОК вы получаете успешно отсоединенную базу данных.
Совет. Ниже приводится инструкция T-SQL для присоединения базы данных.
EXEC sp_attach_db @dbname = N'AdventureWorks',
               @filename1 = N'd:\MSSQL\AdventureWorks.mdf',
GO

Если для переноса данных была выбрана стратегия Отсоединение/ Присоединение, то не забудьте снова присоединить базу данных, которую вы отсоединили. Если это не будет сделано, то приложения, которым известно это размещение базы данных, не будут работать, как следует, если вообще будут работать.

Использование репликации для переноса данных

Репликация - это старый, испытанный метод перемещения данных между базами данных и серверами. SQL Server 2005 поддерживает три значимых метода репликации. Эти методы репликации уже достаточно долго являются компонентами платформы SQL Server.

  • Репликация моментальных снимков
  • Репликация транзакций
  • Репликация слиянием

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

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

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

Важно. Прежде чем решать, какой из методов переноса будет наилучшим для вашей среды, внимательно изучите требования для репликации.
< Лекция 6 || Лекция 7: 123
Марат Уздемиров
Марат Уздемиров
Ярослав Малащенко
Ярослав Малащенко
Динара Абдрахманова
Динара Абдрахманова
Казахстан
Volker Grote
Volker Grote
Германия, Bremen