SQL Server 2000 DTS. Часть 2. Создание DTS пакетов с помощью мастеров

ПУБЛИКАЦИИ  

По материалам статьи Marcin Policht: SQL Server 2000 DTS Part 2 - Creating DTS Packages using Wizards

Как уже говорилось в первой части статьи, существует три метода создания DTS пакетов: с помощью графического интерфейса DTS Designer, программированием на основе DTS object model или с помощью мастеров SQL Server Enterprise Manager. В этой части статьи мы рассмотрим использование мастеров, которые хоть и ограничены в возможностях, но могут послужить отправной точкой для освоения более сложных методов. Enterprise Manager располагает двумя мастерами, с помощью которых можно быстро и легко создавать DTS пакеты, это DTS Export/Import Wizard и Copy Database Wizard.

DTS Export/Import Wizard

Как видно из названия, цель этого мастера состоит в том, чтобы исполнять операции импорта/экспорта между базой данных SQL Server и любым другим OLE DB - источником данных. Хотя мастера DTS Import и DTS Export перечислены в меню Tools-> Wizards-> Data Transformation Services, проще всего запустить эти мастера выбрав Import или Export из контекстного меню непосредственно базы данных. В любом случае, мастер проведёт Вас через следующие шаги:

1. Сначала нужно указать источник данных. В зависимости от выбранного источника может понадобиться ввод дополнительных учётных данных. Например, при импорте данных из базы данных, не являющейся SQL Server, вместо логина SQL Server придётся ввести информацию об учётной записи Windows или домена. Выбор источника данных может потребовать установки дополнительных свойств соединения - Advanced Connection Properties (зависящие от OLE DB провайдера), установить которые можно нажав кнопку Advanced на странице мастера Choose a Data Source. В следующем окне мастера будут запрошены аналогичные данные для сервера-адресата передачи данных (включая тип провайдера и расширенные свойства соединения).

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

  • Записи одной или нескольких таблиц/представлений - когда импорт или экспорт осуществляется в базу данных, в ней будут созданы участвующие в передаче таблицы, если они до этого там не существовали. Если таки таблицы уже существуют, по умолчанию в них будут добавлены новые строки, которые поместятся после уже существующих данных. Эти и другие параметры настройки необходимого варианта пакета можно задать в окне мастера: Column Mappings and Transformations, и с помощью них можно настроить трансформацию каждой отдельной пары таблиц или представлений источника и адресата. Например, Вы можете выбрать удаление или добавление данных в таблицах сервера-назначения (или удаление с пересозданием), если они уже существуют, а также разрешить/запретить вставку значений identity. В последнем случае, Вы можете предписать игнорирование полей identity при передаче (хотя эта опция возможна и для любого поля, не только для identity). Также Вы можете изменить типовые инструкции T-SQL для создания таблиц на сервере назначения. Если Вы умеете писать VB-скрипты и знакомы с DTS object model, Вы можете изменить заданный по умолчанию сценарий трансформации. Однако, обратите внимание на то, что применение такого преобразования может заметно замедлить процесс импорта/экспорта при большом объёме данных.
  • Результат исполнения T-SQL запроса (который более селективен, чем предыдущий вариант) - это означает, что Вы просто определяете передаваемые данные, используя T-SQL скрипт. Кнопки: Query Builder (средство автоматизации создания T-SQL запросов) и Parse (синтаксический анализатор, проверяющий корректность синтаксиса), упрощают эту задачу. Даже при том, что Query Builder имеет ограниченную функциональность (например, невозможно задать порядок по убыванию или использовать предложение GROUP BY), Вы можете легко доработать T-SQL запрос вручную. Также Вы можете создать T-SQL запрос в Query Analyzer и скопировать его на закладку Type SQL Statement в DTS Import/Export Wizard или сохранить его в .SQL файл и открыть его на той же самой закладке, щёлкнув по кнопке Browse... .
  • Выборочные объекты базы данных и данные - это позволяет передавать любые объекты между двумя базами данных SQL Server. Предлагается множество дополнительных вариантов отбора с настройкой необходимой конфигурации на закладке мастера Select Object to Copy. Вы можете передавать таблицы, представления, хранимые процедуры, правила, значения по умолчанию, определяемые пользователем типы данных и функции, пользователей и роли базы данных, а также все логины, включая разрешения уровня объекта (однако, Вы не можете передавать выборку логинов). Для каждой таблицы Вы можете указать, нужно ли копировать индексы, триггеры или первичные и внешние ключи. Вы можете создать новый объект в базе назначения или копировать данные из источника в существующий объект. Во втором случае можно указать, нужно ли добавлять данные в конец или заменять имеющиеся.

3. Независимо от определяемого набора данных, который будет импортирован/экспортирован, следующая страница мастера: Save, Schedule, and Replicate Package - всегда будет выглядеть одинаково. На ней можно указать опцию немедленного выполнения пакета или запланировать его исполнение на позднее время. Второй вариант требует, чтобы пакет был предварительно сохранён. Как говорилось в первой части статьи, Вы можете сохранить пакет в следующих местах: база MSDB SQL Server (таблица sysdtspackages), SQL Server Meta Data Services (Microsoft Repository), Structured Storage File (.DTS файл) или в файл Visual Basic (.BAS). Кроме того, для исполнения намеченных пакетов потребуется, чтобы был запущен SQL Server Agent.

4. Также имеется опция, позволяющая передавать данные на сервер назначения с помощью репликации (только если сервер назначения является SQL Server). Эта опция после завершения мастера Import/Export активирует Create Publication Wizard, который автоматически создаст публикацию.

5. Если Вы решили сохранять DTS пакет, Вы увидите ещё одно окно: Save DTS Package. Содержание этого окна будет зависеть места сохранения пакета, указанного в предыдущем окне.

Если пакет исполняется немедленно, Вы сможете наблюдать прогресс его исполнения, отображаемый в диалоговом окне Executing Package. Каждый шаг пакета будет показан отдельно с учётом присущих ему состояний исполнения. Иначе, пакет появится в папке: SQL Server Enterprise Manager->Management->SQL Server Agent->Jobs, и будет выполняться согласно заданному расписанию. Как говорилось в предыдущей статье, при планировании DTS пакетов используется регистрация (с настраиваемой на закладке Logging окна DTS Package Properties конфигурацией), так что это очень упрощает поиск неисправностей в случае отказов.

Copy Database Wizard

Не смотря на то, что этот мастер доступен из Tools-> Wizards-> Management (вместо Data Transformation Services), он использует Data Transformation Services и создаёт стандартный DTS пакет. Его основная цель - копирование баз данных между двумя SQL серверами. Он обычно используется в корпоративной среде, когда тестовая база данных должна быть перемещена на промышленный сервер, но он также удобен и для консолидации, когда несколько базы данных сливаются на более мощный сервер. Обратите внимание на то, что для успешной работы мастера необходимо, чтобы копируемая база данных не существовала на сервере назначения, и в течение копирования пользователи не обращались к исходной базе данных.
Логика работы этого мастера требует определения исходного сервера и сервера назначения, и типов аутентификации для каждого из них. Как только это будет сделано, Вы сможете указать исходные базы данных, которые не должны существовать на сервере назначения, и определить, хотите ли Вы копировать их или переместить (обратите внимание на то, что при перемещении базы данных, на сервере источнике не будут физически удалены её файлы). После этого мастер проверит, что имена файлов исходной базы данных не совпадают с именами файлов на сервере назначения и достаточно дискового пространства для новой базы. В случае конфликтов имён или проблем с дисковым пространством, у Вас есть возможность изменить путь к файлам на сервере назначения или сами имена файлов. В следующем окне Select Related Object, можно указать необходимо ли копировать логины (Вы можете ограничить их только теми, которые используются выбранными базами данных), хранимые процедуры, задания SQL Server Agent и определяемые пользователями сообщения об ошибках. В каждом конкретном случае (кроме логинов), Вы можете выбрать какие объекты будут переданы. И наконец, в окне Schedule DTS Package Вы можете указать будет ли пакет исполнен немедленно или по расписанию. В любом случае, пакет будет сохранён на сервере назначения, что позволяет запускать его повторно в случае сбоев при исполнении.
Обратите внимание на то, что даже при относительной ограниченности возможностей обоих мастеров, Вы всегда можете изменить сгенерированные мастерами пакеты средствами DTS Designer (или сохранить их как файлы Visual Basic и использовать их для перепрограммирования). Очевидно, что для этого потребуется сохранить пакет до завершения работы мастера. Редактирование пакетов в DTS Designer будет темой следующей статьи.

[В начало]    [К следующей статье цикла]


Перевод: Александра Гладченко  2004г.

ПУБЛИКАЦИИ

Скачать электронную карту Ангарска бесплатно
Сайт управляется системой uCoz