В этой статье я рассмотрю один из вариантов копирования базы данных, расположенной на SQL Server — копирование через пакет служб Integration Services.
Данный механизм копирования является встроенной функцией Management Studio и предлагает 2 варианта работы: с отключением базы источника и без отключения. Разница между этими вариантами приведена ниже:
Метод | Описание |
---|---|
С отключением базы данных | Работа с базой невозможна пока выполняется копирование. При этом копия базы является точной, а сама процедура копирования происходит быстро. |
Без отключением базы данных | Возможна работа с базой в процессе копирования. Копия базы может содержать несогласованные данные, а процедура копирования происходит медленно. |
Ввиду наличия в обоих вариантах серьезных недостатков: «с отключением» — невозможна работа пользователей, а «без отключения» могут быть несогласованные данные, я считаю данный механизм копирования неподходящим для реальной жизни, тем не менее я продолжу его рассмотрение в общеобразовательных целях.
Выполнение копирования
В целом, настройка данного механизма не составит проблем. Для того чтобы выполнить копирование, необходимо зайти в Management Studio. Далее, щелкнув правой клавишей мыши на копируемой базе данных, в контекстном меню перейти «Задачи» (Tasks) → Скопировать базу данных (Copy database), после чего откроется окно помощника.
Далее, помощник попросит указать сервер с которого необходимо копировать базу данных, а так же способ авторизации и реквизиты доступа на этом сервере; после чего помощник запросит аналогичную информацию о сервере-приемнике (куда будет скопирована база).
На следующем этапе мастер настройки предлагает вариант копирования: «метод отсоединения и присоединения» (use the detach and attach method) — т.е. копирование с отключением базы данных; или же использовать метод объектов SMO (use the SQL Management Object Method) — т.е. без отключения базы данных. Выше были описаны плюсы и минусы этих вариантов. Помимо этого, для варианта с отключением БД, необходимо выбрать вариант действий в случае возникновения ошибки (if a failure occurs…): если флаг установлен — подключение в БД будет восстановлено, в противном случае — нет.
Далее необходимо выбрать копируемую базу и действие с ней (копирование или перемещение). Данные флаги уже будут расставлены, поскольку мастер настройки мы вызвали из контекстного меню.
На следующем шаге помощник предлагает указать имя базы-приемника, а так же расположение файлов базы данных и журнала транзакций. Помимо этого, необходимо выбрать вариант действия когда база-приемник существует: прекратить передачу (stop the transfer) или удалить целевую базу (drop database)
Далее необходимо указать имя пакета и параметры ведения журнала, на этом этапе можно все оставить по умолчанию, после чего можно указать будет ли задание выполнено немедленно или указать расписание для задания.
На последнем шаге приводится сводная информация о задании, затем, если все корректно, необходимо нажать «Готово» (Finish), после чего будет создано задание и, если было указано, немедленно выполнен созданный пакет.
В результате будет создано задание в дереве «Обозревателя объектов», которое можно выполнить в любой момент времени, вызвав контекстное меню правой клавишей мыши и выбрав «Запустить задание на шаге» (Start job at step)