Книги, научные публикации Pages:     | 1 |   ...   | 2 | 3 | 4 | 5 | 6 |   ...   | 9 |

Kit Exam 70-228 SQL Server 2000 System Administration курс Сертификационный экзамен 70-228 Администрирование Microsoft SQL Server 2000 Официальное пособие Microsoft для самостоятельной подготовки ...

-- [ Страница 4 ] --

Примечание Аппаратные RAID поддерживают горячую замену дисков (hot drives), благодаря чему можно заменить испорченный диск без остановки системы. Не которые из них поддерживают также резервирование дисков (hot standby drives), при этом дополнительные диски уже установлены. Следует отметить, что уровень RAID 10 реализован только в RAID.

Как правило, в системах на основе SQL Server 2000 используются следующие уров ни RAID: О, 5, и 10 (также иногда называемый 1+0). SQL Server интерпретирует систему RAID как отдельный диск, где можно разместить один файл. В табл. 6-2 пе речислены все уровни RAID и кратко перечислены их рабочие характеристики.

Замятие 4 Размещение файлов БД т дисках Табл. 6-2. RAID и их Уровень Характеристики Преимущества и недостатки О Состоит из двух или Обеспечивает самую высокую производитель более дисков. Запись ность операций чтения и записи;

а также данных на диск осуще- использует 100% объема диска. Однако ствляется блоками, рав- RAID 0 не от аппаратных сбоев.

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

Этот уровень называют Кроме того, обеспечивается зашита от также (или аппаратных сбоев. Относительно низка сдвоенными дисками, производительность операций записи, если используются два и используется только 50% объема диска контроллера) Состоит из трех или более Производительность операций чтения дисков. Запись данных высока, эффективно используется дисковое на диск пространство и обеспечивается защита блоками, равномерно от аппаратных сбоев. Однако производи распределенными между тельность операций записи сравнительно всеми дисками;

кроме низка. Некоторая доля общего объема того, добавлен дополни- диска используется для записи данных блока тельный блок четности, четности (доля этого блока от общего используемый для восста- объема диска составляет где Ч общее новления данных число дисков в массиве) Состоит из четырех или Обеспечивает самую высокую более дисков. Запись дан- производительность опера ных на два или более дис- ций чтения и записи и ков осуществляется рав- защиту от аппаратных сбоев.

номерно размешенными Использует только 50% блоками, для которых объема диска затем создаются зеркаль ные копии на том же числе дисков, которое используется для разме щения данных оригинала.

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

Каждая БД может иметь не более 256 групп файлов. SQL Server 2000 всегда содержит по крайней мере одну группу файлов Ч основную. Группа файлов может состоять из нескольких файлов данных, размещенных на нескольких дисках. Журналы транзак ций не могут входить в группы Основная группа файлов содержит основной файл данных, где хранятся системные таблицы. Когда вы создаете в БД ные файлы данных, по умолчанию они помещаются в основную группу файлов. Ког да вы создаете объекты БД (например таблицы и индексы) и размешаете данные в этих объектах, SQL Server 2000 использует свободное место в каждом из этих файлов данных, входящих в одну группу файлов, распределяя данные между файлами равно мерно, а не заполняет до конца сначала один файл данных, затем Ч второй и т. д.

Такой равномерный метод позволяет разместить БД на нескольких дис ках, что приводит к повышению производительности системы. Например, если в си стеме на основе SQL Server 2000 четыре диска, вы можете на одном размес тить файл журнала транзакций, а на оставшихся трех Ч файлы данных одному на каждом диске).

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

Если при создании объекта БД не выбрана группа файлов, этот объект будет по мещен в группу файлов, выбранную по умолчанию. Выбранной по умолчанию после установки и первого запуска сервера является основная группа файлов. Этот параметр впоследствии можно изменить при помощи оператора Transact-SQL ALTER DATA BASE, выбрав в качестве группы но умолчанию другую группу файлов.

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

Конфигурирование дисковой подсистемы SQL Server Чтобы обеспечить максимальную производительность, отказоустойчивость и мини мизировать время восстановления данных при сбое, вы должны стремиться достичь лучших показателей производительности операций чтения и записи для файла жур нала транзакций, файлов данных БД tempdb, не жертвуя при этом такими парамет рами, как отказоустойчивость или время, необходимое для системы после сбоя.

Для повышения производительности рекомендуется использовать контрол лер диска системы Small Computer System Interface (SCSI), а не Integrated Drive Elect ronics (IDE) или Enhanced Integrated Drive Electronics Контроллеры SCSI более интеллектуальны, они могут работать с несколькими потоками ввода Ч вывода одно временно, и их быстродействие не зависит от более медленных устройств ввода вывода, в обмене данными (например CD-ROM).

4 Размещение БД на нескольких Журнал транзакций Необходимо правильно выбрать дисковую подсистему для журнала транзакций с уче том того, что основная его функция Ч обеспечение возможности восстановления данных в случае поломки одного или нескольких дисков, где размещены файлы дан ных. При выборе и конфигурировании дисковой подсистемы должно учитываться также и то, что операции записи в журнал транзакций выполняются последовательно и синхронно, но операции чтения выполняются только при создании резервных ко пий БД, при отмене транзакций, а также в процессе восстановлении БД при запуске SQL Server 2000. При чтении журнала транзакций для создания резервной копии на грузка на систему может существенно возрасти.

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

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

Дальнейшие меры по оптимизации производительности журнала транзакций это использование системы RAID Такое решение обходится дороже (поскольку для такой системы требуется вдвое больше дискового однако оно обеспе чивает существенный выигрыш в производительности и защиту от аппаратных сбоев.

Использование RAID 1 почти удваивает производительность операций чтения дан ных с диска (это особенно важно при выполнении резервного копирования данных) и сокращает время простоя (если один диск испорчен, то считываются данные с дру гого диска). Операции записи данных на диск выполняются несколько медленнее, хотя и быстрее чем для RAID 5. Вы можете уменьшить стоимость этого решения, со кращая размер журнала транзакций (а следовательно, объем и стоимость дисков) и чаше архивируя журнал транзакций.

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

Создание и баз Глава Следующий шаг к оптимизации дисковой системы Ч это повышение производи тельности операций ввода Ч вывода. Хотя объем данных, которые могут храниться на одном большом и на нескольких маленьких дисках, может быть одинаковым, раз данных на нескольких дисках повышает производительность ввода Ч выво да (особенно когда используется несколько контроллеров). Это обеспечивается бла годаря специальным возможностям SQL Server 2000, выполняющего параллельный просмотр данных за счет отдельных потоков операционной системы, по одному на каждый диск. Существуют разные способы размещения данных на скольких дисках.

Первый способ Ч это нескольких размещенных на отдельных дис ках файлов данных, объединенных в одну группу файлов. Можно также использовать RAID, чтобы разместить один файл (и хранящиеся в нем данные) на нескольких фи зических дисках, что позволяет большего выигрыша в производительности.

Использование RAID также обеспечивать отказоустойчивость. Если вы обла даете информацией о том, как выполняется доступ к данным в вашей то можете также использовать несколько групп файлов вместо RAID (или как дополне ние к нему), размещая на отдельных дисках те и индексы, к которым доступ осуществляется наиболее часто. позволяет повысить производительность ввода Ч вывода. Однако в большинстве случаев RAID обеспечивает преимущества, которые вы получаете при использовании групп файлов, не создавая дополнительной нагрузки для администратора системы. При работе с очень большими БД (VLDB) может пона добиться использовать несколько систем RAID и объединять файлы RAID в группы файлов для повышения производительности и упрощения поддержки БД.

Учитывая сложности администрирования групп файлов, администраторы БД обычно предпочитают решения на основе RAID и избегают использовать группы файлов. Как правило, большинство администраторов выбирает RAID 5, эффективно использующий дисковое пространство и отказоустойчивость. Не достатком является относительно низкая производительность операций записи. RAID 5 подходит для систем, где требуется высокая производительность операций чтения и средняя производительность записи. Если же нужна высокая производи тельность записи, следует выбрать RAID 0 или RAID 10.

Если вы RAID 5, то в случае поломки одного диска в то время, когда для восстановления данных используется блок четности, про изводительность очень низка (хотя система продолжает работать во время восстановле ния данных).

При выборе между RAID 0 и RAID 10 предпочтительнее выбрать RAID 10 из-за менее высокой надежности и восстановления данных в RAID 0. Однако RAID 0 значительно дешевле, и этот фактор может сыграть решающую роль при вы боре. Но при планировании вложений следует что RAID обеспечивает аналогичную RAID 0 и надежность, аналогичную RAID 1, и при достаточно продолжительной эксплуатаиии системы суммарная сто имость времени простоя из-за и поломок диска может сравниться со стоимос тью RAID 10.

Если нужно использовать несколько систем RAID, можно разместить каждый файл данных в одной группе файлов или использовать несколько групп файлов (как правило, каждая система RAID вообще представляет собой отдельный файл Если вы уже определили, к каким объектам и как будут осуществлять доступ пользо ватели системы, и у вас имеется достаточный опыт в оптимизации производительно Занятие 4 Размещение на нескольких дисках сти, вы можете некоторого повышения производительности, используя не сколько групп файлов. В среде VLDB использование отдельных групп файлов из со ображений снижения затрат на поддержку БД может определять некоторые параметры файлов данных. Например, вам может понадобиться создавать архивные копии фай лов или групп файлов VLDB по отдельности, чтобы оптимизировать процесс резервно го копирования и восстановления данных. О создании резервных копий и восстанов лении данных Ч в главе 8.

База данных tempdb При выборе дисковой подсистемы для БД tempdb следует принимать во внимание, что эта БД используется только для временного хранения рабочих файлов (например промежуточных наборов результатов, используемых в сложных запросах и DBCC). Оптимизация БД tempdb означает возможность обраба тывать большое число операций чтения и записи. Обеспечивать отказоустойчивость и оптимальное время восстановления данных в этой базе не нужно, так как tempdb создается заново при каждом запуске SQL Server 2000.

Первым шагом к оптимизации производительности является файла данных tempdb на отдельном диске, чтобы исключить возможность конкуренции с другими объектами БД при доступе к диску. Второй шаг Ч использование отдельного дискового контроллера для этого Наконец, если производительность tempdb низка и это является фактором, влияющим на снижение производительности всей системы, используйте RAID 0. Обеспечивать отказоустойчивость для tempdb не тре буется, поскольку в этой базе данные не хранятся постоянно.

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

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

Отсоединение и присоединение баз данных при помощи SQL Server Enterprise Manager Чтобы отсоединить БД с помощью SQL Server Enterprise Manager, щелкните ее пра вой кнопкой и выберите All Tasks\Detach Database (рис. 6-18).

Если с этой БД работают пользователи, щелкните кнопку чтобы пользовательские соединения и завершать процесс отсоединения БД. Вы можете так же обновить статистические сведения о БД перед ее отсоединением. Рекомендуется выполнять обновление статистических сведений о БД перед ее на но сители, предназначенные только для чтения данных (например на компакт-диск).

и баз данных Рис. 6-18. Окно Detach Database После отсоединения БД вы можете переместить один или несколько физических файлов в другое место, например на жесткий диск или дисковую матрицу RAID. Что бы снова присоединить БД с SQL Server Enterprise Manager, Databases правой кнопкой и All Tasks\Attach Database. Откроется окно, по присоединить БД (рис. 6-19).

Рис. 6-19. Окно Attach Database В диалоговом окне Attach Database введите полное имя и путь к основному файлу данных (чтобы выбрать путь, щелкните кнопку Browse). Основной файл данных со держит о местоположении других файлов, в состав БД. SQL Server 2000 использует информацию, хранящуюся в основном файле и отображает все дополнительные файлы данных и файлы журнала транзакций, которые необходимо присоединить. Если SQL Server 2000 не удается обнаружить какой-либо из этих фай лов, он будет помечен в списке красным крестиком (рис. 6-20). Файлы будут помече ны как ненайденные, если вы переместите дополнительные файлы данных или фай лы журнала транзакций не в тот же самый куда был перемещен основной файл данных. В этом случае нужно указать путь самостоятельно. В поле Current File Location для каждого перемещенного файла укажите текущее место его расположе ния. В этом диалоговом окне вы можете также изменить имя перемещенной БД.

В поле Specify database owner укажите владельца присоединяемой БД и щелкните ОК.

Примечание Если нужно присоединить более 16 файлов, вы должны использовать оператор CREATE DATABASE с инструкцией FOR ATTACH.

Занятие 4 Размещение БД на нескольких Рис. 6-20. Присоединение БД с SQL Server Enterprise Manager Отсоединение и присоединение БД при помощи операторов Transact-SQL Чтобы отсоединить БД при оператора Transact-SQL, используйте системную хранимую Например, чтобы отсоединить БД без обновления статистических сведений о БД, выполните оператор:

TSQLDB, TRUE Чтобы присоединить БД при оператора Transact-SQL, используйте сис темную хранимую процедуру При этом можно указать до 16 имен фай лов, включаемых в БД, которую вы хотите присоединить. В списке имен файлов обя зательно должно быть указано имя основного файла данных, так как этот файл со держит системные таблицы, где хранится информация о других файлах, входящих в состав БД. Список имен файлов должен также содержать все файлы, перемещенные после отсоединения БД. Например, чтобы присоединить БД выполните оператор:

TSQLDB1, = SQL Резюме При использовании нескольких дисков для оптимизации производительности систе мы, основанной на SQL Server 2000, самое простое решение Ч разместить журналы транзакций и файлы данных на разных дисках. Этот способ гарантирует возможность восстановления данных в случае поломки диска. По возможности следует размешать каждый из файлов SQL Server 2000 на отдельном диске. Более удачное (но и более дорогостоящее) решение Ч использовать RAID I для размещения журнала транзак ций. Для размещения файлов данных лучше всего использовать RAID 10. Если ис пользовать RAID 10 окажется слишком дорого, рассмотрите возможность использо вания RAID 0 или RAID 5.

Создание и конфигурирование баз данных Глава Закрепление материала ? j Приведенные ниже вопросы помогут вам лучше усвоить основные темы дан ной главы. Если вы не сумеете ответить на вопрос, повторите материал соот ветствующего Правильные ответы приведены в приложении Воп росы и ответы в конце книги.

1. Вы хотите создать пользовательскую БД, включающую в себя несколько файлов данных, размешенных на разных физических дисках. У вас мало опыта в составле нии операторов Transact-SQL. Как проще всего создать такую БД?

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

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

4. Вы администрируете небольшую систему БД на платформе Windows 2000 Server.

Хотя объем БД составляет менее 1 Гб, нагрузка на систему достаточно велика (прежде всего при выполнении операций записи данных), и вы хотите повысить ее производительность. У вас не хватает бюджета для приобретения аппаратного RAID, и вы не знаете, к каким таблицам и объектам БД чаще всего обращаются пользователи. Вы уже журнал транзакций и файл данных на разных физических дисках. Какие недорогие способы дальнейшего повы шения производительности системы можно использовать?

Заполнение базы данных Занятие Импорт и преобразование данных 2. Обзор служб DTS Занятие 3. Обработка данных графическими средствами DTS Занятие 4. Работа с пакетами DTS 5. Утилита и оператор BULK INSERT В этой главе Здесь рассказывается о заполнении БД из источника данных. Мы обсудим проблемы преобразования, согласованности и проверки возникаю щие при импорте из одного или нескольких источников в БД SQL Server 2000. Вы изучите основные средства заполнения БД, предоставляемые SQL Server 2000, и научитесь использовать их в соответствующих ситуациях.

Прежде всего Для изучения материалов этой главы вам потребуются:

Х компьютер, соответствующий минимальным требованиям к конфигурации, численным в главе 2;

Х Microsoft Windows 2000 Server, установленный на разделе диска с файловой систе мой NTFS;

Х компьютер с сетевым именем сконфигурированный как контрол лер домена Х один установленный по умолчанию и по крайней мере один именованный экзем пляр SQL Server 2000.

базы данных Импорт и преобразование данных Созданную пользовательскую БД следует заполнить данными. Обычно это включает в себя импорт и преобразование имеющихся данных из одного или нескольких вне шних источников (например других в БД SQL Server 2000. Здесь рассказывается о проблемах импорта данных из внешних источников. Вы вкратце познакомитесь с основными средствами импорта и преобразования данных Ч службами DTS, утили той и оператором BULK INSERT Ч и их возможностями, Изучив материал этого вы сможете:

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

описать преобразования, выполняемые при импорте данных из существующих источников;

рассказать о предоставляемых SQL Server 2000 средствах импорта данных.

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

Х Оцените степень данных внешнего источника. Вполне возмож но, что при первоначальном вводе данных источник не обеспечивал их согласо ванность: например, в одних случаях названия штатов вводились в виде двухзнач ных аббревиатур, а в других Ч Х Определите, потребуются ли дополнительные столбцы. Может что дан ные внутренне согласованы, но не содержат отдельных столбцов, значения кото рых во внешнем источнике предполагались, Ч например коды выхода на между городнюю или международную линию связи.

Х Решите, нужно ли менять существующий формат данных. Возможно, что имею щиеся данные внутренне согласованы, но хранятся не в том формате, какой вам хотелось бы использовать в конечной БД. Так, вам может потребоваться изменить формат даты или преобразовать числовые значения в более удобные строковые значения, например цифры 1, 2. и 3 в строки неудовлетворительно, лудовлетво рительно и лотлично соответственно).

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

Х будет ли импорт данных единовременным или периодичным. Так, вы можете однократно перенести с устаревшей системы, которая больше не 1 и данных будет или периодически (например еженедельно или ежемесяч но) переносить с другой рабочей системы.

Х Определите, как будет доступ к данным. Доступен ли внешний источник и есть ли у вас разрешения на непосредствен ный доступ к данным? (Если нет, данные будут экспортированы в формат, под держиваемый SQL Server, например в текстовый файл с Преобразование данных средствами служб DTS Оценив данные всех внешних источников, следует решить, что делать дальше. В не которых случаях необходимые изменения данных можно выполнять но во внешнем источнике, однако чаще всего при этом нарушается работа ющих приложений (например, когда вы добавляете столбцы или изменяете формат данных) или тратится слишком много времени (например, когда вы вручную реали зуете отсутствовавшую ранее согласованность данных). Все эти изменения можно осуществить как после заполнения БД SQL Server, очистив данные при помощи вре менных и операторов так и непосредственно в процессе им порта, Изменение данных в процессе их импорта/экспорта называется (DTS имеет место, когда данные, еще не достигшие конечной точки, обрабатываются средствами одной или нескольких операций или функций. Данные в источнике при этом не изменяются. Благодаря трансформациям в процессе импорта/экспорта данные можно легко чистить, преоб разовывать и проверять на соответствие сложным критериям, Определив тип и глубину необходимых преобразований, вы сможете выбрать ходящее средство импорта и время трансформации данных. Зачастую на выбор сред ства переноса данных и степень автоматизации преобразований также влияет то, бу дет ли импорт данных однократной или периодически выполняемой операцией. Про цесс импорта, особенно при работе с большими объемами данных, следует но спланировать и протестировать, используя для этого подмножества данных.

Средства преобразования данных В SQL Server 2000 имеются различные средства импорта и экспорта данных, которые обладают разными возможностями по извлечению и преобразованию подмножеств данных из имеющихся источников (табл. 7-1).

Табл. 7-1. Средства данных Описание Службы DTS Службы DTS Ч это графическое средство импорта, экспорта и преобра данных, способное напрямую работать с разнообразными источниками. DTS создают пакеты, которые можно выполнять по распи санию. Кроме того, DTS позволяют импортировать и экспортировать схему объектов БД (метаданные) между экземплярами SQL Server Утилита bcp Ч это утилита командной строки, предназначенная для загрузки данных из текстового файла в таблицу или представление SQL Server 2000 (либо из таблицы или представления SQL Server 2000 в текстовый файл) с использованием ODBC. Утилита bcp обладает возможностями трансформации данных и требует файлов неявного формата. Работа с БД Microsoft и сторонних производителей осущест вляется в два этапа Заполнение Глава Табл. 7-1.

Средство Описание Оператор Оператор BULK INSERT предназначен для загрузки данных текстового файла ASCII в таблицу или представление SQL BULK INSERT Server 2000 (но не наоборот) с использованием OLE DB.

Функциональность (и ограничения) этого оператора аналогичны возможностям и его можно включать в пакеты DTS Примечание Перемещать данные между источниками можно и другими способами, которые обычно не используются для начального заполнения БД. К этим способам относятся резервное копирование и восстановление (см. главы 8 и репликация (см, главу 15), сценарии ActiveX, а также операторы Transact-SQL INSERT и SELECT INTO, распределенные (см. главу 12).

Резюме При заполнении БД из внешнего источника следует оценить данные последнего и определить, нужны ли какие-то в процессе импорта и после него.

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

2 Обзор служб DTS Занятие 2. Обзор служб DTS Службы DTS (Data Transformation Services) Ч это мощный набор графических утилит и программируемых объектов, для импорта, экспорта и преобразо вания данных между разнообразными источниками и получателями. Здесь рассказы вается о компонентах пакетов DTS, включая подключения, задачи, и управление обработки. Вы узнаете о вариантах хранения пакетов DTS, а также научитесь работать с утилитами DTS, включая мастер DTS Import/Export Wizard конструктор DTS Designer и средства выполнения пакетов DTS.

Изучив материал этого вы сможете:

описать структуру пакета DTS;

перечислить источники данных, к которым службы DTS могут подключаться напрямую;

описать доступные типы трансформации данных;

описать ход обработки пакета DTS;

рассказать о вариантах хранения пакетов DTS;

рассказать об утилитах DTS.

Продолжительность занятия Ч около минут Пакеты DTS Пакеты DTS позволяют подключаться к источнику данных, копировать и управлять данными и объектами БД, выполнять различные задачи как отдельные задания в со ставе пакета, а также преобразовывать данные и сохранять преобразованные данные и объекты БД в тот же самый источник данных или в другое место. Об успешном или неудачном выполнении пакета можно уведомить или пользователя, включая вложение файла в сообщение электронной почты. Пакет DTS состоит из отдельных этапов, называемых задачами DTS (DTS tasks);

для управления порядком выполне ния задач используются константы предшествования (например, если текущий этап выполнился успешно, выполняется одна задача, а если неудачно Ч другая). Создать пакет DTS можно средствами мастера DTS Import/Export Wizard, доступного в кон структоре DTS Designer, или программно, Типы подключений DTS Для пакета DTS следует указать действительный источник и приемник данных, к ко торым он будет подключаться. В процессе выполнения пакет может также чаться к дополнительным источникам данных (например к таблицам поиска).

В табл. 7-2 перечислены типы подключений, которые можно устанавливать при со здании пакета.

Табл. 7-2. Типы подключений Тип подключения Описание Соединение с источником Подключение к стандартной БД (например БД данных (Data source SQL Server 2000, Microsoft Access 2000, dBase connection) или Paradox), OLE к данных, электронной таблице Microsoft Excel 2000, HTML источнику данных или любому другому OLE Глава Заполнение Табл. 7-2. (окончание) Тип подключения Описание шику. Необходимые параметры соединения с источником данных задаются в свойствах подключения Соединение с файлом Соединение с текстовым файлом (обычно использующим (File connection) символы-разделители). Формат файла определяется подключения. Можно использовать разные форматы, например с или полями фиксированной длины Канальное соединение Соединение с промежуточным файлом (Data link connection) содержит строку подключения для открытия OLE преобразуемую во время выполнения пакета При соединении параметры подключе ния можно поместить в отдельный и затем строку соединения менять источник данных), не затрагивая пакет DTS Задачи Пакет DTS может выполнять множество задач как последовательно, так и параллель но. Параллельные задачи выполняются независимо друг от друга, используя для по вышения производительности отдельные потоки ОС, а последовательные задачи Ч в определенном порядке, который зависит от успеха, ошибки или завершения выпол нения предыдущего этапа. Задача Ч это отдельная единица работы, частью процесса переноса и преобразования данных (например загрузка содержимо го текстового файла в таблицу SQL Server 2000). Задачи DTS, преобразующие дан ных, например Parallel Data Pump, Transform Data и Data Driven Query, основаны на компоненте DTS, который называется каналом данных DTS (DTS data pump). Канал данных DTS Ч это поставщик служб OLE DB, предоставляющий интерфейсы и сред ства импорта, экспорта и преобразования данных между OLE DB-источниками и приемниками.

В SQL Server 2000 имеется ряд задач DTS, которые преобразование копирование и управление данными и метаданными в виде отдельных зада ний. Практически все эти задачи доступны в конструкторе DTS Designer (табл. 7-3) и программно. Задача Data Pump доступна только программно.

Табл. 7-3. Задачи, доступные в конструкторе DTS Designer Категория Описание Задача Задачи копиро- Bulk Insert Запускает из пакета DTS оператор BULK вания и управ- INSERT. Эта задача Ч самый быстрый способ загрузить ления данными данные в таблицу или представление, однако в процессе и метаданными ее выполнения не регистрируются ряды, при вставке которых произошла ошибка. Чтобы записать информацию о вызвавших ошибки, в файл исключений, воспользуйтесь задачей Transform Data Execute SQL в процессе выполнения пакета операторы Transact-SQL. Позволяет выполнять ряд операций, включая удаление таблицы или запуск хранимых процедур 2 Обзор DTS Табл. 7-3. (окончание) Категория Задача Описание Copy SQL Копирует объекты БД SQL Server (метаданные) из одного Server экземпляра SQL Server в другой. Позволяет перемещать Objects объекты экземплярами SQL Server 7.0, между экземплярами SQL Server 2000, а также из экземпляра SQL Server 7.0 в экземпляр SQL Server Transfer Набор задач, копирующих информацию уровня сервера Database (задача Copy SQL Server Objects копирует только сведения, Objects для конкретной БД) между экземплярами SQL Server. Эти задачи используются мастером Сору Database Wizard и включают в себя Transfer Database, Transfer Error Messages, Transfer Logins, Transfer Jobs и Transfer Master Stored Procedures Задачи, преоб- Transform Копирует, преобразует и вставляет данные из источника разующие Data в приемник. Это реализация канала данные данных в DTS Data Driven Основываясь на данных ряда, выбирает, настраивает Query и выполняет к нему один из нескольких операторов Transact-SQL (например UPDATE или DELETE).

Используйте эту задачу, если задачи Transform Data и Bulk Insert не соответствуют требованиям вашего Задачи, функ- ActiveX Выполняет сценарий ActiveX. Используйте эту задачу для Script написания кода, который будет выполнять функции, как задания недоступные в конструкторе DTS Designer Dynamic Выбирает данные из внешнето источника и задает Properties полученные значения указанным свойствам пакета.

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

Package He используйте эту задачу рекурсивно Ч может возникнуть ошибка переполнения стека, и консоль ММС закроется Execute Запускает исполняемую программу или пакетный файл.

Process Эта задача позволяет любое стандартное приложение, например Microsoft Excel, однако обычно ее используют для запуска пакетных файлов или работающих с источником данных File Transfer Загружает с удаленного сервера или интернет Protocol ресурса по протоколу FTP. Задача FTP и Ftp.exe используют одинаковый метод подключения Send Mail Выполняет отправку почтового как отдельную задачу. Например, можно уведомить администратора об успехе или ошибке резервного копирования. Для использования этой задачи на экземпляре SQL Server следует предварительно установить MAPI-клиент В процессе импорта службы DTS могут трансформировать данные на уровне стол бцов. При работе с конструктором DTS Designer для такой трансформации можно Глава базы данных воспользоваться задачей Transform Data или Data Driven Query или написать сцена рий ActiveX. В Visual Basic и Visual C++ можно про граммно или при задачи Data Pump. Для трансформации данных сна чала следует сопоставить один несколько столбцов источника одному или не скольким столбцам приемника, и затем указать, какие именно преобразования нуж ны. В табл. 7-4 перечислены возможные типы трансформации.

Табл. 7-4. Возможные типы данных Тип трансформации Copy Копирует данные из одного столбца источника в один столбец приемника (или из нескольких Ч в несколько).

При необходимости автоматически усекает текст, не генерируя сообщений об ошибках ActiveX Script С сценария ActiveX преобразует (и усекает) данные между одним и более столбцами источника и обрабатывая данные по рядам Date Time String Переносит значение даты или времени из исходного столбца в конечный, преобразуя его в другой формат. Тип данных в обоих столбцах должгн быть строковым Lowercase String Переносит строковые данные из исходного столбца в конечный, преобразуя их в нижнего регистра и, при необходимости, приводя данные к нужному конечному типу и усекая их. Тип данных в обоих столбцах должен быть строковым Uppercase String Переносит строковые данные из исходного столбца в конечный, их в символы верхнего регистра и, при необходимости, приводя данные к нужному конечному типу и усекая их. Тип данных в должен быть строковым Middle of String Переносит строки данных из исходного столбца в конечный, при необходимости усекая данные. Может также преобразовывать регистр символов. Тип данных в обоих столбцах должен быть строковым Trim String Переносит строковые данные из исходного столбца в конечный, удаляя лишние пробелы в начале, в конце и непосредственно в строке. При необходимости усекает данные;

может также регистр символов. Тип данных в обоих столбцах должен быть Read File и копирует содержимое файла, указанного в исходном столбце, в конечный столбец. Тип данных исходного столбца должен быть строковым, а конечного Ч строковым или двоичным Write File Копирует исходного столбца в файл, указанный в конечному Тип данных исходного столбца должен быть строковым или двоичным Ход обработки пакета Службы DTS упорядочивают задачи в пакетах DTS при помощи констант предше ствования и этапов. Этапы определяют, в какой последовательности выполняются задачи пакета. Управление этой последовательностью в конструкторе DTS Designer и Занятие 2 Обзор служб DTS на программном уровне осуществляется с констант предшествования (табл. 7-5). Константы последовательно связывают все пакета. Для задачи мо жет быть определено несколько констант предшествования. Задачи без таких кон стант выполняются параллельно.

Табл. 7-5. Константы предшествования и их функции Константа Описание Unconditional Если Вторая задача связана с Первой средствами константы Unconditional, она будет ожидать завершения Первой и затем выполнится, независимо от успеха или неудачи Первой задачи On Success Если Третья задача связана со Второй константы On Success, она будет ожидать завершения Второй и выполнится, только если Вторая задача завершилась успешно On Failure Если Четвертая задача связана со Второй средствами константы On Failure, она будет ожидать завершения Второй задачи и выполнится, только если при выполнении Второй задачи произошла ошибка Рассмотрим следующий пример. Пусть Первая задача удаляет Вторая Ч создает новую Третья Ч заполняет ее, и Четвертая Ч восстанавливает ста рую таблицу. Если таблица не существует, Первая задача завершится с и Вторая задача создаст новую таблицу. Если таблица существует, Первая задача удалит ее, и затем Вторая задача создаст новую таблицу. Далее, если Вторая задача заверши лась успешно, Третья задача заполнит новую таблицу данными. Если же Вторая ча создать новую таблицу не смогла, Четвертая задача восстановит старую Варианты хранения пакетов DTS Пакет DTS можно сохранить в БД Server 2000, репозиторий службы SQL Server 2000 Meta Data Services, файл Microsoft Visual Basic или структурированный файл хра (табл. 7-6). Вместе с пакетом DTS сохраняются все подключения DTS, зада чи, трансформации и этапы хода обработки.

Табл. 7-6. Варианты хранения DTS пакета Описание БД SQL Server 2000 Пакет может храниться в виде БД msdb на любом экземпляре SQL Server 2000. Это вариант хранения по умолчанию;

он позволяет записывать множество пакетов и их версий. При сохранении пакета в БД SQL Server 2000 его можно защитить одним или несколькими паролями Репозиторий Meta Пакет хранится на вашем компьютере, в БД репозитория Data Services службы Meta Data Services. Этот вариант позволяет отслеживать и таблицы, задействованные в источнике и приемнике, включая происхождение данных конкретного ряда, Хранимый в репозиторий пакет можно защитить средствами Meta Data Services Файл Visual Basic Пакет хранится в коде Visual Basic, который можно открыть и отредактировать с помощью Visual Basic или Visual C++.

Защитить пакет DTS, хранящийся в файле Visual Basic, можно при помощи специальных средств типа Microsoft Visual SourceSafe Заполнение базы Глава Табл. 7-6. (окончание) пакета Описание Структурированный Пакет хранится в файле ОС. Этот вариант позволяет хранить файл и перемещать пакеты DTS независимо от БД SQL Server.

В одном файле может храниться несколько пакетов и их версий. Пакеты в структурированном файле можно защитить одним или несколькими паролями.

Средства создания пакетов DTS Пакет DTS можно создать с помощью мастера DTS Import/Export Wizard, конструк тора DTS Designer или Мастер DTS Import/Export Wizard Ч простей ший способ создания пакетов DTS для копирования данных между источниками. Но он ограничивает сложность трансформации данных и хода обработки создаваемой за не позволяет использовать несколько задач DTS. Мастер DTS Import/Export Wizard доступен в консоли SQL Server Enterprise Manager, а также в меню SQL Server. Параметры созданных этим мастером пакетов можно из менять в конструкторе DTS а также с помощью Visual Basic и Visual C++.

Конструктор DTS Designer изменять пакеты DTS и при помощи графических объектов упрощает создание новых пакетов со сложной после довательностью обработки задач (например пакетов, открывающих несколько нений, или содержащих логику, управляемую событиями). Конструктор доступен в контейнере Data Transformation Services дерева консоли SQL Server Enterprise Manager.

Пакеты DTS можно также создавать в Visual Basic и Visual C++. Это окажется по лезно разработчикам, которым требуется прямой доступ к объектной модели DTS и четкое управление операциями пакета. Созданные программно пакеты можно редак тировать в конструкторе DTS Designer. За основу собственного пакета можно взять один из стандартных шаблонов пакетов, рассчитанный на конкретную ситуацию (на пример запросы, управляемые данными).

В состав служб DTS также входят утилита DTS Run и команда предназначенные для запуска и планирования выполнения пакетов DTS из командной строки. Утилита DTS Run позволяет выполнить пакет DTS (и создать па кетный файл Dtsrun) при помощи диалогового окна. Команда Dtsrun запускает пакет DTS из командной строки, используя заданные параметры (зачастую параметры вы Dtsrun сохраняют в пакетном файле).

Резюме Для подключения и перемещения данных между OLE службы DTS используют пакеты. Пакет DTS может извлекать данные из одного или нескольких источников данных OLE DB, выполнять простую или сложную трансформацию ных, и сохранять преобразованные данные в один или несколько приемников. Кро ме того, в пакете может содержаться логика хода обработки (константы предшество вания). Пакет DTS можно сохранить в БД SQL Server 2000, репозиторий служб Meta Data Services, файл Visual Basic или структурированный файл хранилища. Создать пакет DTS можно с помощью DTS Import/Export Wizard, конструктора DTS Designer, а также Visual Basic и Visual 3 данных DTS Занятие 3. Обработка данных графическими средствами DTS Службы DTS предоставляют две графических утилиты для создания пакетов DTS, перемещающих и трансформирующих данные. Здесь рассказывается о работе с каж дой из этих утилит. Мы рассмотрим создание простых трансформаций с помощью мастера DTS Import/Export Wizard, а также создание сложных трансформаций и ло гики обработки задач при конструктора DTS Designer. Вы научитесь сохра нять созданные пакеты в различных форматах и узнаете, как расширить функцио нальность пакета DTS.

Изучив материал этого занятия, вы сможете:

создавать пакеты DTS с помощью мастера DTS Import/Export Wizard и конструктора DTS Designer;

пакеты DTS в различных форматах;

рассказать, как расширить функциональность пакета DTS.

Продолжительность занятия - около 60 минут Использование мастера DTS Import/Export Wizard Мастер DTS Import/Export Wizard доступен в консоли Server Enterprise Manager, а также в меню SQL Server. Чтобы запустить его из SQL Server Enterprise Manager, выберите в меню Tools команду Wizards;

можно также контейнер Data Transformation Services дерева консоли правой кнопкой и выбрать манду All Data или All Data. Мастер DTS Import/Export Wizard в пошаговом режиме поможет вам импортировать или экспортировать данные из одних форматов в другие.

Сначала следует выбрать в окне Choose A Data Source нужный источник данных.

Источник по умолчанию Ч поставщик Microsoft OLE DB Provider SQL Server, он используется для подключения к экземплярам SQL Server. В списке Data Source вы берите драйвер формата для хранилища, из которого вы собираетесь копировать дан ные (например, хранилищем может быть текстовый файл или БД Oracle database).

Прочие представленные в этом окне параметры зависят от выбранного источника данных. Так, если источник данных Ч БД SQL Server, следует указать имя сервера, базы данных и способ проверки подлинности (рис. 7-1).

Если используется другой источник данных, нужно указать другие параметры под ключения. когда вы копируете данные из текстового файла, в окне Choose A Data Source следует указать имя файла, а окнах Select File Format и Specify Column Delimiter Ч формат файла или разделенные специальными симво лами поля, тип файла, разделители рядов и столбцов, спецификатор текста) (рис. 7-2, 7-3 и 7-4).

gg базы данных a do lo tan Рис. 7-1. Выбор источника данных в DTS Import/Export Wizard a Data From lo copy can data of i 3.

Рис. 7-2. Выбор текстового в качестве источника данных Select То ft e К I Им Х ' Х т mm Рис. 7-3. Выбор формата типа полей и текста средствами DTS the type Mb.

Рис. 7-4. Выбор столбцов Следующий этап Ч выбор приемника данных в окне Choose A Destination. Опять же, приемником по умолчанию является Microsoft OLE DB Provider for SQL Server, для которого следует указать имя сервера и параметры подключения.

Перечень приемников данных очень разнообразен. Источником и приемником дан ных одновременно могут быть БД, отличные от Server 2000 (рис. 7-5). Например, службы DTS позволяют копировать данные из БД Oracle в БД dBase. Если приемник данных Ч SQL Server 2000, можно создать новую БД она будет размещена в той же папке, что и БД master. При этом в окне Create Database можно задать только ее имя, размеры файла данных и журнала (рис. 7-6).

a do you to You la of fol Рис. 7-5. Выбор приемника данных Выбрав источник и приемник данных, укажите или отфильтруйте в окне Specify Table Copy Or Query копируемые данные (при создании новой БД это окно не выво дится). Параметры копирования и фильтрации будут зависеть от источника и прием ника. Если источник Ч БД, данные можно просто скопировать без фильтрации и упо рядочивания, установив переключатель Copy And View(s) From The Source Database. Для более сложной операции копирования, которая с запроса базы в определенном порядке извлекает соответствующие критерию выбор ки строки, установите переключатель Use A Query To Specify The Data To Transfer.

Кроме если источником и являются БД SQL Server 7.0/2000, мож но копировать объекты БД (например хранимые процедуры и регистрационные за писи), установив переключатель Copy Objects And Data Between SQL Server (рис. 7-7).

Рис. 7-6. Выбор имени и свойств базы данных Copy to one a the of i 7-7. Выбор вида операции таблиц и Чтобы полностью скопировать какие-либо таблицы или представления, выберите их в окне Select Source Tables And Views. По умолчанию при копировании в приемник имена таблиц и представлений меняются. Можно указать новое имя или выбрать другую конечную таблицу или представление (рис, 7-8).

Если не указано иное, содержимое всех выбранных таблиц или представлений будет скопировано в приемник без изменений. Если конечная суще ствует, копируемые данные по умолчанию будут добавлены к уже имеющимся. В про тивном случае конечная таблица будет создана, и ей будет задано указанное вами имя, Чтобы изменить эти параметры го умолчанию, щелкните в окне Select Source Tables And Views кнопку (...) в столбце Transform напротив нужных таблиц и представлений.

На вкладке Column Mappings диалогового окна Column Mappings And Transformations можно задать сопоставления и конечных столбцов, создать новую коне чную таблицу, изменить оператор Transact-SQL CREATE TABLE (если создается но вая таблица или представление), указать, что делать с рядами существующей Занятие Обработка графическими средствами ной таблицы Ч удалить или разрешить вставку значений IDENTITY (для таблиц с полем IDENTITY), а также изменить тип данных, когда это допустимо (рис. 7-9).

and can on* я пив or views copy. can cow and a to data Рис. 7-8. Выбор таблиц и в качестве источника данных Рис. 7-9. Редактирование параметров трансформации данных и столбцов На вкладке Transformations диалогового окна Column Mappings And Transforma tions, используя язык сценариев VBScript (по умолчанию) или можно опреде лить специальные трансформации. Наберите в области ввода сценарий, который пре образует содержимое столбцов в процессе копирования данных (рис. 7-10). Не стандартные трансформации можно выполнять и с помощью мастера DTS Import/ Export Wizard, однако конструктор DTS Designer предоставляет больше возможнос тей в этом так как позволяет использовать сложные сценарии ActiveX.

Заполнение to lion Рис. 7-10. Выбор варианта данных Выбор копируемых данных с помощью запросов Если вы решили отобрать данные для копирования при запроса, его в поле Query statement окна Type SQL Statement. Можно также импортировать щийся или создать запрос в графическом режиме с помощью конструктора DTS Query Designer, щелкнув кнопку Query Builder. Чтобы проверить синтаксис сце нария, щелкните Parse (рис. 7-11).

Введя текст сценария и щелкнув Next, можно просмотреть результа ты его выполнения Ч для этого в окне Select Source Tables And Views (рис. 7-8} щел кните Preview. Если не указано иное, результаты запроса будут скопированы в новую таблицу с именем Results (его можно изменить). Чтобы отредактировать сопоставле ния исходных и конечных и определить нестандартные преобразования ных, щелкните в столбце Transform окна Source Tables and Views (рис. 7-12) кнопку (..,).

Type SOL Type SOL I ELECT AS Value] FROM о p ON 6V Рис. Создание сценария с помощью конструктора DTS Query Designer Занятие данных графическими средствами DTS | Рис. 7-12. параметров трансформации данных и сопоставлений столбцов при выборке данных запросом Копирование данных и объектов между БД SQL Server Чтобы скопировать данные и объекты из одной БД SQL Server в другую, пометьте их в окне Select Objects To Copy. Возможно копирование между экземплярами SQL Server 7.0, SQL Server 2000, а также из экземпляра SQL Server 7.0 в экземпляр SQL Server 2000 (скопировать объекты и данные из экземпляра SQL Server 2000 в экземпляр SQL Server 7.0 нельзя). По умолчанию копируются все объекты для копируемых тов создаются новые конечные объекты, перед их созданием ста рые конечные объекты (если таковые имеются) удаляются, вместе с копируемыми объектами перемещаются все зависимые объекты. Кроме того, по умолчанию копи руются все данные источника, и все данные приемника удаляются (рис. 7-13). Спи сок копируемых объектов можно ограничить (например переместить только конк ретные таблицы и сохраненные процедуры, и не копировать tecl 0* and to copy.

Рис. 7-13. Выбор копируемых объектов Заполнение базы Глава Сохранение и планирование выполнения пакетов Заключительный этап работы с мастером DTS Import/Export Wizard Ч запустить па кет для немедленного выполнения или в диалоговом окне Save, And Repli cate Package в окне Save, And Replicate Package сохранить его и спланиро вать его выполнение. По умолчанию мастер предлагает запустить пакет, не сохраняя его и не создавая расписание его Можно создать расписание, по кото рому пакет DTS будет выполняться как задание под управлением службы SQL Server Agent. Подробнее о и планировании их выполнения Ч в главе 13. Можно также сохранить пакет в любом из поддерживаемых форматов (подробнее Ч в заня тии 4 этой главы).

and replicate to DTS You or ID Бе at a Рис. 7-14. Сохранение и планирование выполнения пакета Упражнение Перенос таблиц и данных из БД средствами мастера OTS Import/Export Wizard В этом упражнении вы с помощью мастера DTS Import/Export Wizard переме стите таблицы и данные БД Northwind в новую базу. Затем вы отредактируете и получите сводку данных БД / Чтобы перенести таблицы и данные из БД Northwind средствами мастера DTS Import/Export Wizard 1. Убедитесь, что вы зарегистрировались на контроллере домена под учетной записью 2. Раскройте меню SQL Server и выберите Import And Export Data.

Запустится мастер DTS Import/Export Wizard.

3. Щелкните Next.

Откроется окно Choose A Data Source.

4. Убедитесь, что в раскрывающемся списке Data Source выбран источник данных Microsoft OLE DB Provider for SQL Server, 5. В раскрывающемся списке выберите 6. Убедитесь, что переключатель находится в положении Use Windows Authentication.

7. В раскрывающемся списке Database выберите Northwind и щелкните Next.

3 DTS Откроется окно Choose A Destination.

8. Убедитесь, что в раскрывающемся списке Destination выбран приемник данных Microsoft OLE DB Provider SQL Server.

9. В раскрывающемся списке Server выберите 10. Убедитесь, что переключатель находится в положении Use Windows В раскрывающемся списке Database выберите .

Откроется окно Create Database.

12. В поле Name введите wind Report Data и щелкните ОК.

Откроется окно Choose A Destination, где будет показана новая БД.

13. Щелкните Next.

Откроется окно Specify Table Copy Query.

14. Убедитесь, что переключатель находится в положении Copy Table(s) And From The Source Database, и Next.

Откроется окно Select Source Tables And Views.

15. Щелкните Select All.

Заметьте: именам конечных таблиц будут автоматически заданы имена 16. Щелкните Next.

Откроется окно Save, Schedule, And Replicate Package.

17. что помечен флажок Run Immediately.

18. Пометьте флажок Save DTS убедитесь, что переключатель находится в положении SQL Server, и щелкните Next.

Откроется окно Save DTS Package.

В поле Name введите и Next.

Откроется окно Completing The DTS Import/Export Wizard.

20. Щелкните кнопку Finish.

Откроется окно Executing Package с информацией о состоянии выполнения эта пов пакета. По завершении выполнения появится окно мастера DTS Import/Export Wizard с сообщением об успешном копировании 29 таблиц из одного экземпляра Microsoft SQL Server в другой.

Щелкните ОК.

22. В окне Executing Package просмотрите информацию об успешно выполненных эта пах, и щелкните Done.

23. В дереве консоли SQL Server Enterprise Manager раскройте контейнер экземпляра SQL Server по умолчанию, и затем Ч контейнер Databases.

Заметьте: появилась БД (возможно, вам потребуется обно вить дерево консоли, нажав клавишу F5).

Чтобы отредактировать таблицы и получить сводку данных БД NorthwindReportData средствами мастера DTS Import/Export Wizard 1. Щелкните значок NorthwindReportData правой кнопкой и выберите All port Data.

Откроется окно DTS Import/Export Wizard.

2. Щелкните Next.

Откроется окно Choose A Data Source.

3. Убедитесь, что в раскрывающемся списке Data Source выбран источник Microsoft OLE DB Provider for SQL Server.

базы 4. В раскрывающемся списке выберите Убедитесь, что переключатель в положении Use Windows Authentication.

6. В раскрывающемся списке Database выберите и щелкните Next.

Откроется окно Choose A Destination.

7. что в раскрывающемся списке Destination выбран источник данных Microsoft OLE DB Provider for SQL Server.

8. В раскрывающемся списке Server выберите SelfPacedCPU.

9. Убедитесь, что находится в положении Use Windows Authentication.

В раскрывающемся списке abase выберите и щелкните Next.

Откроется окно Specify Table Copy Or П. Установите переключатель в положение Use A Query To Specify The Data To Transfer и щелкните Next.

Откроется окно Type SQL Statement.

12. Щелкните кнопку Browse.

Откроется диалоговое окно В раскрывающемся списке Look In выберите путь и от кройте сценарий Текст сценария появится в поле Query Statement.

14. Щелкните Next.

Откроется окно Select Source Tables And Views.

Щелкните ячейку Results столбца Destination и введите Убедитесь, что TotalValue набрано одним без пробелов.

16. Щелкните кнопку Preview.

Откроется окно View Data с результатами выполнения запроса.

17. Щелкните ОК.

Откроется окно Select Source Tables And Views.

18. Щелкните кнопку (...) в столбце Transform.

Откроется окно Column Mappings And Transformations.

19. Щелкните кнопку Edit SQL.

Откроется окно Create Table SQL Statement.

20. Просмотрите оператор Transact-SQL.

Обратите внимание: поле TotalValue допускает значения NULL.

Щелкните OK, чтобы закрыть окно Create Table SQL Statement.

Откроется окно Column Mappings And Transformations.

22. В группе Mappings снимите для записи TotalValue флажок Nullable.

23. Щелкните Edit SQL чтобы просмотреть оператор Transact-SQL.

Откроется окно Create Table SQL Statement. Заметьте: теперь поле TotalValue не допускает значений NULL.

24. Щелкните ОК, чтобы закрыть окно Create Table SQL Statement.

25. Щелкните ОК, чтобы закрыть окно Column Mappings And Transformations.

Откроется окно Select Source Tables And Views.

26. Щелкните Next.

Откроется окно Save, Schedule, And Replicate Package.

27. Убедитесь, что переключатель находится в положении Run Immediately.

Занятие 3 Обработка графическими DTS 28. Пометьте флажок Save DTS Package.

29. Установите переключатель в положение SQL Server Data Services и щелкните Next.

Откроется окно Save DTS Package.

30. В поле Name введите и щелкните Next.

Откроется окно The DTS Wizard.

Щелкните Finish.

Откроется окно Executing Package с информацией о состоянии выполнения эта пов пакета. По завершении появится окно мастера DTS Import/Export Wizard с об успешном копировании таблицы из одного экземпляра Microsoft SQL Server в другой.

32. Щелкните ОК.

33. В окне Executing Package просмотрите информацию об успешно выполненных эта пах и щелкните Done.

34. В дереве консоли SQL Server Enterprise Manager раскройте контейнер экземпляра SQL Server по умолчанию, затем Ч контейнеры Databases и и щелкните Tables.

35. В правой панели щелкните значок TotalValue правой кнопкой и выберите Open All Rows.

Откроется окно Data In Table In On cedCPU' с содержимым только что созданной и заполненной БД.

36. Закройте окно Data In Table In On cedCPU'.

37. Консоль SQL Server Enterprise Manager оставьте открытой.

Использование конструктора DTS Designer Чтобы создать новый пакет DTS средствами DTS Designer, щелкните в дереве консоли SQL Server Enterprise Manager контейнер Data Transformation Services правой кнопкой и выберите New Package. Способ открытия существующего пакета DTS зависит от того, где тот хранится. Если пакет находится в структурированном файле хранилища, щелкните контейнер Data Transformation Services правой кнопкой и выберите Open Package, чтобы открыть файл на диске. Если пакет DTS находится в БД SQL Server, раскройте в дереве консоли контейнер Data Packages и затем дважды щелкните в правой панели значок нужного пакета. Если пакет находится в репозитории SQL Server Meta Data Services, раскройте в дереве консоли контейнер Data Data Services и затем дважды щелкните в правой пане ли значок нужного пакета.

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

Первый этап создания пакета DTS средствами DTS Designer Ч источника данных. Можно объект-источник данных с панели инструментов tion в область проектирования, или выбрать источник в меню Connection. Откроется диалоговое окно Connection Properties, в котором следует задать параметры выбран Глава Заполнение базы ного источника данных. Это окно диалоговому окну, выводимому масте ром DTS Import/Export Wizard. На рис. показано диалоговое окно свойств под ключения к SQL Server, использующего поставщик Microsoft OLE Provider for SQL Server.

Панель инструментов Панель подключения задач Рис. 7-15. Пользовательский интерфейс конструктора DTS Designer Рис. 7-16. Диалоговое окно Connection Второй этап Ч выбор и конфигурирование приемника как описывалось выше. На рис. 7-17 показана область проектирования, включающая три источника данных: два подключения к поставщику Microsoft OLE DB Provider SQL Server и одно подключение к текстовому файлу [Text File Примечание Подключение к текстовому файлу что он является источником данных или канальным соединением.

Занятие Рис. Настройка приемника данных Затем нужно при меню Task или одноименной панели инструментов Task определить задачи, выполняемые пакетом. При выборе задачи Transform Data нам предложат выбрать источник и приемник данных. При выборе любой другой откроется окно настройки ее свойств (например, можно настроить задачу Execute SQL для создания таблицы через имеющееся подключение к БД). Для задач Transform Data в области проектирования отображаются темно-серые стрелки, направленные от ис точника данных к приемнику. Другие задачи отображаются в области проектирова ния в виде обычного значка. На рис. 7-18, помимо трех подключений к источникам данных, показаны две задачи Transform Data и одна задача Execute SQL, которая со здает таблицу.

Рис. 7-18. Пакет DTS Package без логики ходом выполнения Чтобы изменить параметры задачи Data Transformation, дважды щелкните темно серую стрелку между источником и приемником данных. Откроется окно свойств задачи. Если источник данных Ч БД, на вкладке Source можно отфильтровать копи руемые данные, пометив нужные таблицы и представления или воспользовавшись запросом Transact-SQL. На рис. 7-19 показан запрос Transact-SQL для фильтрации импортируемых данных.

Заполнение базы данных p BY Рис. 7-19. Фильтрация импортируемых данных с запроса На вкладке Destination можно описать импортируемые данных (допустим, задать определения Параметры импорта зависят от приемника данных. Если при емник Ч БД, для всех импортируемых можно создать и определить новые или выбрать На вкладке Transformations можно создавать нестандартные трансформации дан ных. По умолчанию исходные копируются в конечные без изменений. Что бы преобразовать данные при копировании между источником и приемником, выбе рите нужный столбец в списке Name или щелкните стрелку, направленную от источ ника данных к приемнику (стрелка для выбранного столбца будет отображаться чер ным цветом). Затем щелкните кнопку New или Edit, чтобы создать новую или отре дактировать имеющуюся трансформацию (для редактирования можно также дважды щелкнуть черную стрелку). Щелкнув New, вы сможете выбрать нужный тип транс формации из списка в окне Create New Transformation (рис. 7-20).

Рис. 7-20. Создание нового преобразования Занятие 3 Обработка графическими средствами OTS Если в окне Create New Transformation пункт ActiveX Script, можно со здать новый осуществляющий сложные преобразования данных (рис. 7-21).

На вкладке Lookups можно ввести запрос на поиск. Он, помимо источника и при емника, требует подключения к данным, по которому будут выполняться и хранимые процедуры. Запросы на поиск позволяют находить информацию в табли цах, параллельно обновлять данные нескольких СУБД, оценивать вводимые данные перед загрузкой их в БД, вызывать хранимые процедуры в зависимости от условий ввода, а также передавать значения глобальных переменных в качестве параметров запросов.

each the с "unction End Atn Cm Eke Рис. 7-21. Создание для данных На вкладке Options можно настроить ряд дополнительных параметров трансфор мации. Укажите один или несколько файлов, куда будут заноситься записи об исклю чениях, возникших при выполнении пакета. Файлы исключений могут размещаться на локальных и сетевых дисках;

для преемственной совместимости их можно запи сывать в формате SQL Server 7.0. Ошибки источника и приемника можно заносить в отдельные файлах;

можно также указать максимальное число ошибок для прекраще ния выполнения пакета. Если подключение к приемнику осуществляется через по ставщик OLE DB Provider для SQL Server, можно задать специфические па раметры выполнения, включая высокоскоростную обработку загрузки данных, про верку ограничений при выполнении пакета, тип блокировки, размер пакета и пара метры вставки значений IDENTITY.

Сконфигурировав задачу Data Transformation и другие задачи пакета DTS, задайте константы предшествования. В нашем примере данные из двух разных источников копируются в один и выполняется задача Create Table. Задать порядок выполнения этапов пакета можно с помощью констант предшествования. Чтобы оп ределить ход обработки, выберите две или более задачи в том порядке, в каком они должны и затем в меню Workflow выберите нужную константу предше ствования. Например, если задача Create Table должна выполняться раньше копиро вания данных в приемник, выберите в меню Workflow команду On Success (рис. 7-22).

базы данных Глава Рис. 7-22. Выбор константы On Success Можно создать задачу Send Mail и определить между задачей Create Table и зада чей Send Mail константу предшествования On Failure. При этом, в случае ошибки со здания таблицы администратор получит уведомление по электронной почте. Если для работы с БД используются полностью автоматизированные и выполняющиеся по за данному расписанию пакеты DTS, администратора следует обязательно уведомлять о любых ошибках.

Упражнение 2. Создание пакета, импортирующего и преобразующего данные, средствами DTS Designer В этом упражнении вы с помощью конструктора DTS Designer создадите па кет, импортирующий и преобразующий данные.

Чтобы создать пакет, импортирующий и преобразующий данные, средствами конструктора DTS Designer Убедитесь, что вы зарегистрировались на контроллере домена под учетной записью Administrator, В дереве консоли SQL Server Enterprise Manager раскройте контейнеры Microsoft SQL Servers и SQL Server Group, а затем Ч контейнер экземпляра SQL Server умолчанию.

Щелкните контейнер Data Transformation Services правой кнопкой и выберите New Package.

Откроется окно DTS Designer.

В меню Connection выберите Text File (Source).

Откроется окно Connection Properties.

В поле New Connection введите New Products.

В поле File Name введите и щелкните ОК.

Откроется диалоговое окно Text Properties с выбранной вкладкой Select File Format.

Занятие 3 Обработка данных графическими DTS 7. Убедитесь, что переключатель находится в положении Delimited Columns Are Separated By и щелкните Next.

Откроется окно Specify Column Delimiter.

8. Убедитесь в что установлен переключатель Comma и щелкните Finish.

Снова откроется окно Connection Properties.

9.

В области проектирования появится значок New Products.

10. В меню Connection выберите команду Microsoft OLE DB Provider for SQL Server.

Откроется окно Connection Properties.

В поле New Connection введите wind Report Data.

12. В раскрывающемся списке Server выберите 13. В списке Database выберите и щелкните ОК.

В области проектирования появятся значки New Products и Report Data.

14. В меню Task выберите команду Transform Data Task.

Значок указателя мыши изменится и форму стрелки с надписью Source Connection.

15. Щелкните значок New Products.

Значок указателя мыши изменится и примет форму стрелки с надписью Select Destination Connection.

16. Щелкните значок Northwind Report Data.

В области проектирования появится стрелка, направленная от знач ка New Products к значку Northwind Report Data.

Дважды щелкните темно-серую стрелку.

Откроется диалоговое окно Transform Data Task Properties с выбранной вкладкой Source.

В поле Description введите New Products.

19. Перейдите на вкладку Destination.

20. Щелкните кнопку Create, чтобы создать новую таблицу, в которую будут загруже ны данные.

Откроется диалоговое окно Create Destination Table с оператором CREATE TABLE.

Удалите текст оператора CREATE TABLE.

22. Запустите Notepad и откройте файл из лапки SQL\CH_7.

23. Скопируйте содержимое файла и вставьте его в поле SQL Statement. Затем щелк ните ОК.

Откроется окно Transform Data Task Properties.

24. Перейдите на вкладку Transformations.

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

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

25. Щелкните стрелку, направленную от столбца ColOlO к столбцу ReorderLevel, пра вой кнопкой и выберите Edit.

Откроется диалоговое окно Transformation Options.

26. Перейдите на вкладку Destination Columns.

204 данных Глава 27. В списке Selected Columns щелкните кнопку <, чтобы удалить столбец ReorderLevel из списка.

28. В списке Available Columns выберите Discontinued, щелкните кнопку > и затем Ч ОК.

Заметьте: теперь столбец сопоставлен столбцу Discontinued.

29. Щелкните стрелку, направленную от столбца к столбцу пра вой кнопкой и выберите Edit.

Откроется диалоговое окно Transformation Options.

30. Перейдите на вкладку Destination Columns.

В списке Selected Columns щелкните кнопку <, чтобы удалить столбец OnOrder из списка.

32. В списке выберите ReorderLevel, щелкните кнопку > и затем Ч ОК.

Заметьте: теперь столбец сопоставлен ReorderLevel.

33. Щелкните направленную от столбца к столбцу правой кнопкой и выберите Edit.

Откроется диалоговое окно Transformation Options.

34. Перейдите на вкладку Destination Columns.

35. В списке Selected Columns щелкните кнопку <, чтобы удалить столбец TotalValue из списка.

36. В списке Available Columns выберите щелкните кнопку > и затем Ч ОК.

Заметьте: теперь столбец сопоставлен со столбцом UnitsOnOrder.

В списке Source щелкните и затем, удерживая клавишу Ctrl, щелкните Со1007.

Обратите внимание: теперь два столбца Ч СоЮОб и 38. В столбце Destination щелкните TotalValue.

39. Щелкните кнопку New.

Откроется окно Create New Transformation.

40. Щелкните ActiveX Script и затем Ч ОК.

Откроется окно Transformation Options.

41. На вкладке General щелкните кнопку Properties.

Откроется окно ActiveX Script Transformation Properties.

42. Замените строку кода "СоЮОб") на 43. Щелкните кнопку Parse.

Конструктор DTS Designer сообщит, что сценарий ActiveX не содержит синтакси ческих ошибок.

44. Щелкните ОК.

45. Щелкните кнопку Test.

Откроется окно Testing Transformation, в котором проверка транс формации. Затем появится окно Package Execution Results с сообщением об ус пешном выполнении пакета.

46. Щелкните ОК.

47. В окне Testing Transformation Done.

Занятие 3 Обработка данных графическими средствами DTS 48. В окне ActiveX Script Transformation Properties щелкните ОК.

окно Transformation Options.

49. Щелкните ОК.

Заметьте: столбцы и сопоставлены со столбцом TotalValue.

50. В окне Transform Data Task Properties ОК.

В меню Task выберите Execute SQL Task.

Откроется окно Execute SQL Task Properties.

52. В поле Description Drop Table.

В раскрывающемся списке Existing Connection выберите подключение Report Data.

54. В поле SQL Statement введите DROP TABLE и щелкните ОК.

В области проектирования появится значок задачи Drop Table, 55. В меню Task выберите Execute SQL Task.

Откроется окно Execute SQL Task Properties.

56. В поле Description введите Create Table.

В раскрывающемся списке Existing Connection выберите Northwind Report Data.

58. Щелкните кнопку Browse.

Откроется диалоговое окно Select File.

В списке Look In выберите путь и откройте сценарий NewProducts.sql.

В поле SQL Statement появится код оператора CREATE TABLE.

60. Щелкните ОК.

В области проектирования появится значок задачи Create Table.

61. В меню Task выберите команду Execute SQL Task.

Откроется окно Execute SQL Task Properties.

62. В поле Description введите Backup Northwind Report Data.

63. В списке Existing Connection выберите Northwind Report Data.

64. Щелкните Browse и откройте файл из В поле SQL Statement появится код оператора BACKUP DATABASE. Если SQL Server 2000 и учебные файлы установлены на диске, отличном от в следует отредактировать пути.

65. Щелкните ОК.

В области проектирования появится значок задачи Backup Northwind Report Data.

66. Щелкните значок задачи Drop Table и затем, удерживая клавишу Ч значок задачи Create Table.

Заметьте: выбраны оба значка.

67. В меню Workflow выберите команду On Completion.

Между значками задач Tabie и Create Table появится стрелка с белыми и си ними полосками. Задача Create Table ожидает завершения задачи Drop Table и выполняется независимо от успеха или неудачи последней. Если таблица NewPro ducts не существует, при выполнении задачи Drop Table произойдет ошибка и дача Create Table создаст одноименную таблицу.

68. Щелкните значок задачи Create Table и затем, удерживая клавишу Ctrl, Ч значок задачи New Products.

В меню Workflow выберите команду On Success.

206 базы Между значками задач Create Table и New Products to Report Data по явится стрелка с белыми и зелеными полосками. Задача New Products to Northwind Report Data выполняется, только если задача Create Table успешно создаст табли New Products.

70. Щелкните значок Northwind Report Data и затем, удерживая клавишу Ctrl, Ч зна чок Backup Northwind Report Data.

71. В меню Workflow выберите команду On Success.

Между значками задач New Products to Northwind Report Data и Backup Northwind Report Data появится стрелка с белыми и зелеными полосками. Задача Backup Northwind Report Data выполняется только в случае успешного выполнения зада чи New Products to Northwind Report Data.

72. В меню Package выберите команду Save.

Откроется окно Save DTS Package.

73. В поле Package Name введите Lesson 2 и щелкните ОК.

74. Щелкните кнопку Execute в панели инструментов.

Откроется окно Executing DTS Package: Lesson 2, сообщающее о ходе выполнения пакета DTS. По завершении всех появится окно Package Execution Results с сообщением об успешном выполнения пакета.

75. Щелкните ОК и затем Ч Done.

76. В окне DTS Designer чтобы закрыть окно DTS Package: Lesson 2.

77. В дереве консоли SQL Server Enterprise Manager последовательно раскройте кон тейнеры Microsoft SQL Servers, SQL Server Group, экземпляра SQL Server по умол чанию, Databases, Northwind Data и щелкните контейнер Tables.

78. В правой панели значок Products правой кнопкой и выберите Open Table\Return All Rows. При необходимости обновите содержимое панели, нажав клавишу F5.

Откроется окно Data In Table 'NewProducts' In On Заметьте: новая заполнена данными и включает столбец с аг регатным значением Ч TotalValue.

79. Закройте окно Data In Table In On Консоль SQL Server Enterprise Manager оставьте открытой.

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

Поддержка транзакций Благодаря функциям, которые предоставляет координатор Microsoft Distributed Tran saction Coordinator (DTC), пакеты DTS могут использовать распределенные транзак ции. При этом на компьютере, выполняющем пакет DTS, должен быть запущен DTC.

Распределенные транзакции гарантируют успешное завершение или откат сразу всех параллельно выполняющихся задач пакета DTS. Это особенно полезно, когда пакет DTS работает с несколькими БД, и когда один пакет DTS управляет вы полнением нескольких.

3 данных DTS Задача Message Queue Позволяет организовать очередь для приема и отправки между пакетами DTS. может представлять собой текст, файл, глобальную переменную и ее значение. Очередь позволяет обмениваться даже если конечный пакет DTS недоступен когда несколько ноутбуков отключено от обшей сети). Когда конечный пакет DTS становится доступным, пакет DTS, отправивший сообщение, возобновляет работу и выполняется до завершения. Кроме того, очередь сообщений позволяет отправлять файлы данных на компьютеры, отвечающие за их обработку, распространять файлы в сети предприятия, а также делить большое зада ние на несколько частей и передавать их на выполнение разным компьютерам сети.

Есть два вида очереди сообщений Ч и ная. Транзакционная очередь сообщений исключает многократную доставку одного и того же сообщения адресату.

Для использования задачи Message Queue вам потребуется установить в локальной сети серверное ПО Message Queuing, а также клиентское ПО Message Queuing на ком пьютере, выполняющем задачу Message Queue. В сетях Windows 2000 серверное ПО Message Queuing устанавливается на контроллер домена Windows 2000, где выполня ется служба Active Directory. Затем следует установить клиентское ПО Message Queuing на своем компьютере. В случае с Windows NT необходимо установить компонент MSMQ из пакета Windows NT 4.0 Option Pack.

Задача Send Mail Позволяет пакету DTS уведомлять администратора о ходе своего выполнения пример об успехе или неудаче резервного копирования). Задача Send Mail также по зволяет которые могут состоять из динамически обновляемых файлов. Для использования задачи Send Mail установите на локальном компьютере службу Messaging Programming Interface (MAPI) и сконфигурируйте про филь MAPI для доменной учетной записи службы SQL Server.

Шаблоны программ В комплект поставки SQL Server 2000 входит множество примеров кода на Visual C++ и Visual Basic. Они записаны в папке \DevTools\ Samples\DTS компакт-диска SQL Server 2000 и находятся в самораскрывающемся Их можно скопировать на выбрав при установке SQL Server вариант установки Custom. По умолчанию файлы примеров копируются в папку SQL Резюме Копировать и преобразовывать объекты БД и собственно данные можно с мастера DTS Import/Export Wizard. Он наиболее удобен для копирования данных и объектов БД с минимальными преобразованиями из одного источника в один при емник данных. Проектировать пакеты, осуществляющие более сложные трансфор мации, следует в конструкторе DTS Designer. Он позволяет создавать пакеты для об мена данными между несколькими источниками, логику управления выполнением, а также использующие очереди сообщений и логику управления тран закциями. Расширить и более точно управлять ходом пакетов DTS можно с помощью Visual C++ и Visual Basic.

Заполнение базы данных Глава Занятие 4. Работа с пакетами DTS Здесь рассказывается о вариантах хранения и способах защиты пакетов DTS. Мы рас смотрим дополнительные методы выполнения сохраненного пакета DTS и устране ние проблем с выполнением при помощи журналов пакетов DTS. Вы также научи тесь редактировать пакеты DTS, когда источник и приемник данных и узнаете, как просмотреть и предоставить в совместное пользование метаданные, носящиеся к пакетам DTS.

Изучив этого вы сможете:

описать варианты хранения пакетов DTS;

защитить пакет DTS;

выполнить пакет DTS из командной строки;

отредактировать пакет DTS, когда источник и приемник данных недоступны.

Продолжительность занятии Ч около минут Обзор вариантов хранения пакетов DTS Как уже пакет DTS можно хранить в БД SQL Server 2000, репозиторий SQL Server Meta Data Services, структурированном файле хранилища или файле Visual Basic. Каждый из форматов хранилища имеет свои отличительные особенности и предназначен для различных целей.

SQL Server Пакет DTS можно хранить в виде двоичного объекта таблицы БД на любом экземпляре SQL Server 2000, благодаря чему возможно централизованное хранение описи пакетов. каждая версия пакета DTS, т. е. создается сво его рода журнал разработки. Это позволяет выбирать и редактировать любую, а не только самую последнюю версию нужного вам пакета DTS.

Пакет DTS, хранимый в БД Server 2000, можно защитить паролем владельца и паролем пользователя. Эти пароли дополняют средства проверки подлинности Windows/SQL Server, применяемые для подключения к SQL Server. Лица, знающие пользовательский пароль, могут только выполнять пакет DTS. Чтобы открыть или отредактировать его, необходим пароль владельца. Настоятельно рекомендуем вам реализовать этот дополнительный уровень защиты, особенно в экземплярах SQL Server 2000, использующих проверки подлинности SQL Server 2000.

Репозиторий службы Meta Data Services Позволяет отслеживать версии хранящихся в нем пакетов DTS, их метаданные, а так же происхождение данных (оригинальный источник данных и выполненные преоб разования). В SQL Server Enterprise Manager можно просматривать журнал версий пакетов, в репозиторий служб Meta Data Services, и открывать нужные версии. Для записи метаданных о трансформациях в репозиторий Meta Data Services службы DTS используют модель DTS Information Model. Она опи сывает преобразования, и типы доступа к данным. Метаданные из репо зитория можно хранить, просматривать и повторно использовать.

Поместив пакет DTS в служб Meta Data Services, вы сможете отсле живать происхождение данных двумя способами: на уровне ряда и на уровне столбца.

В первом случае фиксируется источник данных каждого ряда и выполнявшиеся 4 Работа с пакетами DTS образования. Это позволяет вести аудит выполнения пакета и трансформаций уровня ряда. Для сбора информации о происхождении данных уровня ряда необходимо до бавить в каждый ряд поле, идентификатор происхождения. Сведения о происхождении данных уровня столбца предоставляют информацию о версии та, а также об использовавшихся таблицах БД и их столбцах. Чтобы определить, пользует ли пакет из репозитория Meta Data Services конкретную таблицу или бец, просмотрите его версии. Это особенно полезно в случаях, когда после создания пакета ценность источника данных ставится под сомнение (например, источник держит поврежденные или неточные данные). Чтобы отслеживать происхождение данных на уровне столбца, после записи пакета в репозиторий Meta Data Services сле дует регулярно сканировать и сохранять метаданные.

Примечание Службы Meta Data Services не поддерживают на уровне пакета.

файл хранилища Позволяет копировать, перемещать и передавать пакет по сети в почтовом не сохраняя его в БД или репозиторий. В одном файле может храниться несколько версий нескольких пакетов. Пакеты в структурированном файле хранили ща можно защитить паролем владельца и паролем пользователя. Выполнять пакеты DTS, записанные в структурированном файле хранилища, можно при помощи спе утилит командной строки. Пакету сохраненному в ном файле, присваивается расширение Файл Visual Basic Сохранив пакет DTS в файл Visual Basic, вы сможете редактировать его с помощью Visual C++ или Visual Basic. Это позволяет разработчикам включать пакеты в программы Visual Basic, а также в качестве прототипов ссылки на компоненты объектной модели DTS. Пакет DTS, сохраненный в файл Visual Basic, нельзя открыть и отредактировать в конструкторе DTS Designer.

Утилиты выполнения пакетов DTS В состав служб DTS входит две утилиты выполнения пакетов, запускаемые из коман дной строки, Ч DTS и Они позволяют выполнить пакет DTS, не откры вая его. Если для пакета DTS определен пароль пользователя или владельца, его по требуется указать. Если пакет DTS находится в структурированном файле хранили ща, следует указать имя файла. Если пакет DTS размешается в БД SQL Server, укажи те параметры подключения к соответствующему экземпляру SQL Server.

Утилита DTS Run Интерактивная утилита DTS Run позволяет подключиться к серверу или указать файл с пакетом, задать расписание выполнения, включить ведение и указать имя журнала событий, добавить новые глобальные переменные и изменить свойства имеющихся переменных, а также создать для последующего использования команду Dtsrun с не зашифрованными или зашифрованными параметрами. Чтобы запустить DTS Run, введите в командной строке и нажмите клавишу Enter.

Команда Dtsrun Позволяет запустить пакет DTS из командной используя указанные аргумен и создать вызывающий ее пакетный файл. Например, чтобы выполнить Заполнение базы данных Глава MyPackage из папки C:\DTSPackages\DTSl.dts, для которого определен пароль вла дельца Password, введите команду:

/NMyPackage Примечание Обычно пакет DTS выполняется в контексте зашиты запустившего его пользователя. Однако в случае выполнения по расписанию пакет DTS запускается в контексте зашиты пользователя, которому принадлежит выполняющее пакет задание SQL Server Agent. Подробнее о заданиях Ч в главе 13.

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

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

Автономное редактирование пакета Конструктор DTS Designer позволяет открывать и редактировать существующие па кеты DTS. Во избежание указания неверных параметров соединения обычно необхо димы подключения ко всем источникам и приемникам данных. Но иногда подклю читься к некоторым из них невозможно. Конструктор DTS Designer поддерживает ав тономное редактирование (Disconnected Edit), позволяющее редактировать пакет DTS, когда оригинальный источник или приемник данных недоступен (например, если пакет создавался в тестовой среде и предназначен для использования на другом узле).

Кроме того, автономное редактирование позволяет просматривать и изменять пара метры, недоступные DTS Designer (имена задач, этапов и подключений и т. д.).

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

Резюме несколько вариантов хранения пакетов DTS. Пакет, находящийся в БД SQL Server 2000 или в файле хранилища, можно защитить паролем владельца и паролем пользователя. При этом пользователь сможет запускать пакет DTS из командной строки с помощью специальных утилит, но не сможет просмот реть или изменить его. Для хранящихся в репозитории SQL Server Data Services, можно отслеживать информацию о происхождении данных уровня строки и уровня столбца, а также метаданные о выполнявшихся трансформациях. Это особен но полезно при импорте данных из большого числа источников. Конструктор DTS Designer поддерживает режим автономного редактирования, позволяющий изменять свойства пакета DTS при источников и приемников данных.

5 Утилита Ьср и Transact-SQL BULK Замятие 5, Утилита и оператор Transact-SQL BULK INSERT Оператор Transact-SQL BULK INSERT и утилита командной строки предназна чены для загрузки данных в БД SQL Server 2000 из текстового файла, и обеспечивают эффективное перемещение больших объемов информации. Здесь рассказывается о работе с этими средствами импорта данных.

Изучив материал этого занятия, вы сможете:

рассказать, как SQL Server 2000 загружает данные из текстовых файлов;

описать способы загрузки данных;

импортировать и экспортировать данные с помощью утилиты командной строки импортировать данные при помощи оператора Transact-SQL BULK INSERT.

Продолжительность занятия Ч около 30 минут Загрузка данных из текстовых файлов В дополнение к службам DTS, SQL Server 2000 может загружать данные из текстовых файлов при помощи оператора Transact-SQL BULK INSERT или утилиты командной строки Каждое из этих средств предназначено для высокоскоростного импорта больших объемов данных с минимальными преобразованиями. Как правило, опера тор BULK INSERT работает быстрее. Утилита использовалась многие годы (служ бы DTS появились сравнительно недавно), и матерые администраторы БД часто здавали разнообразные сценарии для импорта данных. Поэтому вам научить ся использовать SQL Server 2000 поддерживает все существующие сценарии Однако создать новые сценарии гораздо проще средствами служб DTS. Они обеспе чивают такую же производительность, как поскольку оператор BULK INSERT инкапсулирован в задачу Bulk Insert и графический интерфейс форматиро вание данных.

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

Утилита и оператор Transact-SQL BULK INSERT могут использо вать файлы одинаковых форматов.

Использование При загрузке данных из файла с использованием утилиты следует указать всех параметров. Синтаксис вызова довольно сложен и должен быть точным Ч в Заполнение противном случае команда не будет выполнена. В табл. 7-7 приведен список часто используемых параметров утилиты (они чувствительны к регистру символов).

Табл. 7-7. Параметры вызова утилиты Параметр Описание БД, в которую загружаются данные. Если параметр опущен, данные вставляются в БД по умолчанию для указанного пользователя Имя таблицы, в которую будут вставлены или из которой будут скопированы данные Запрос для данных, копируемых из БД SQL Server In | Out Направление данных Format Используется для создания файла описания формата Файл, в качестве источника или приемника при загрузке Максимальное ошибок перед отменой загрузки данных (по умолчанию Ч 10) -f параметр. Указывает полный путь к файлу описания формата Указывает путь к файлу ошибок, в который записываются все ряды, утилита не смогла вставить в БД. Если параметр опущен, файл ошибок не создается Ь Указывает рядов в каждом пакете копируемых данных.

Операция копирования каждого пакета в БД SQL Server является транзакцией Указывает, что БД загружаются символьные данные Задает полей (по умолчанию Ч символ табуляции) Задает символ-разделитель рядов (по умолчанию Ч символ новой строки) -S Указывает имя (и при необходимости имя экземпляра), [ к которому утилита По умолчанию открывается соединение с экземпляром по умолчанию на локальном сервере -U Указывает идентификатор учетной записи пользователя -Р Указывает пароль для идентификатора учетной записи (по умолчанию Ч значение NULL) -Т Предписывает доверенное соединение с использованием контекста текущего пользователя -h луказание Содержит указания, например и ORDER ASC | DESC, с которых SQL Server определяет порядок наиболее эффективной обработки импортированных данных Следующая команда импортирует символьные данные из текстового файла New Data в таблицу NewData БД NewDatabase. Разделителем столбцов является запятая, разделителем рядов Ч символ новой строки;

размер пакета Ч 250 рядов, 5 Утилита bcp и оператор BULK INSERT ное число ошибок Ч 50;

файл для записи сведений об ошибках Ч от крывается доверенное соединение с источником данных и используется указание bcp in -с /e -m50 -h "TABLOCK" Текст команды в этом примере вводится в одну строку.

Упражнение 3. Импорт данных средствами bcp В этом упражнении вы загрузите данные в БД SQL Server 2000 при утилиты командной строки bcp.

Чтобы импортировать данные средствами утилиты Ъср Убедитесь, что вы зарегистрировались на контроллере домена под учетной записью Administrator.

2. Раскройте меню SQL Server и выберите Query Analyzer.

Запустится SQL Server Analyzer и откроется окно Connect To SQL Server.

3. В раскрывающемся списке SQL Server выберите Установите ключатель в положение Use Windows Authentication.

4. Щелкните ОК.

5. В меню File выберите команду Open.

Откроется окно Open Query File.

6. Выберите файл NewData.sql из папки В SQL Server Analyzer отобразится оператор CREATE TABLE для создания табли цы в которую вы загрузите данные при помощи утилиты bcp.

7. Щелкните кнопку Execute Query в панели инструментов, чтобы выполнить сцена рий NewData.sql.

8. Раскройте меню и выберите Command Prompt.

Откроется окно сеанса MS-DOS.

9. Введите bcp и нажмите клавишу Enter.

Заметьте: в окне отобразятся параметры вызова утилиты bcp.

10. Введите следующую команду:

bcp in -г\п /е ~Т "TABLOCK" Текст команды в этом примере вводится в одну строку.

П. Нажмите клавишу Enter.

Появится сообщение, что скопировано 1343 рядов, объединенных в пакеты по 250 рядов. На экране также отобразятся время, затраченное на импорт данных, и размер пакета. В папке будет создан новый, пустой файл NewData.err.

Закройте окно сеанса MS-DOS.

13. В панели инструментов окна SQL Query Analyzer щелкните кнопку Clear Window.

14. В области запросов введите SELECT * FROM NewData.

Заполнение базы Глава 15. Щелкните кнопку Execute в панели инструментов.

Заметьте: таблица содержит 1343 ряда.

16. Закройте SQL Query Analyzer.

Использование оператора Transact-SQL BULK INSERT Для загрузки данных с оператора Transact-SQL BULK INSERT следует ука зать те же сведения, что и при использовании утилиты Следующий пример иден тичен приводившемуся за исключением того, что написан на Transact-SQL:

BULK INSERT FROM WITH ( 250, DATAFILETYPE =, = ', ', MAXERRORS 50, TABLOCK } Оптимизация загрузки данных На производительность загрузки данных влияет режим восстановления конечной БД SQL Server 2000. Если для конечной БД выбран режим восстановления отдельных опе раций (full recovery), в журнале регистрируются все операции вставки рядов. При вставке большого числа рядов журнал может быстро переполниться, что негативно скажется на производительности. Чтобы повысить производительность, при загрузке большого объема данных конечную БД рекомендуется перевести в режим восстанов ления результатов импорта (bulk-logged recovery). При этом в журнале транзакций фиксируются результаты загрузки больших объемов данных;

операции же вставки отдельных рядов не регистрируются.

Кроме того, при загрузке данных с одной клиентской системы в пустую таблицу рекомендуется использовать указание по блокировке TABLOCK (по умолчанию SQL Server 2000 накладывает блокировки уровня ряда, и затем преобразует их в блокиров ки уровня таблицы), и с помощью указания задать большой раз мер пакета (обычно большие пакет более эффективны, чем маленькие). Если на таб лице, принимающей данные, определены лучше будет удалить все неклас терные индексы и повторно создать их после вставки данных. Если на таблице опре делены кластерные индексы, отсортировать данные текстового файла в соответствии с порядком индекса, и воспользоваться указанием ORDER.

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

Занятие 5 Ьср и Резюме В дополнение к службам DTS, SQL Server 2000 может загружать данные из текстовых файлов при помощи оператора Transact-SQL INSERT или утилиты командной строки Каждое из этих средств предназначено для высокоскоростного импорта больших объемов данных с минимальными преобразованиями. Долгие утилита была единственным способом загрузки данных в БД SQL Server, и для нее созда но множество сценариев. Чтобы использовать их, администратор БД должен уметь использовать Оператор BULK INSERT может использоваться в SQL Query Ana lyzer, и инкапсулирован в Оптимизировать загрузку данных можно многими способами, включая перевод конечной БД в режим восстановления результатов импорта и некластерных индексов.

2 базы Глава Закрепление материала 7 Приведенные ниже вопросы помогут вам лучше усвоить основные темы дан ной главы. Если вы не сумеете ответить на вопрос, повторите материал соот ветствующего занятия. Правильные ответы приведены в приложении росы и ответы в конце книги.

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

2. Опишите различия констант предшествования On Success и On Failure.

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

4. Вы создали пакет, который получает данные о совершенных сделках из несколь ких электронных таблиц, менеджерами вашей компании. Собрав данные, пакет копирует их в БД, применяемую для составления отчетов о прода жах. Вы хотите разослать этот пакет менеджерам, чтобы они регулярно выполняли его при составлении отчетов. Одновременно требуется, чтобы ме неджеры не могли открыть редактировать пакет. Как нужно сохранить и за щитить пакет в этом случае?

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

Разработка стратегии восстановления данных Занятие Восстановление данных Занятие 2, Способы резервного копирования данных 3. Восстановление данных В этой главе Одна из основных обязанностей администратора БД Ч обеспечение безопасности информации, содержащейся в пользовательских БД. Эта задача включает в себя ряд отдельных задач, в том числе проектирование отказоустойчивых систем, стратегии восстановления данных для предупреждения возможных проблем и защиту данных. О проектировании отказоустойчивых систем рассказывалось в главе 7. Здесь приводится информация по разработке стратегии восстановления данных, включаю щей план резервного копирования и восстановления. В главе 9 обсуждается ное копирование и восстановление. Главы 10 и посвящены сохранности данных.

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

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

Изучив материал этого вы сможете:

описать цели стратегии восстановления данных;

перечислить способы копирования и варианты восстановления БД;

определить системные и пользовательские БД, требующие резервного копирования;

разработать успешный план восстановления данных.

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

Обеспечение По возможности следует обеспечить такой уровень отказоустойчивости, чтобы SQL Server 2000 оставался несмотря на сбои оборудования. Для этого рекомендуется использовать RAID-массив, обеспечивающий отказоустойчивость дис ковой подсистемы. Кроме того, необходимо также обеспечить безопасность данных от сбоев в работе сервера Windows. Подробное обсуждение проблем обеспечения от казоустойчивости сервера выходит за рамки этой книги, и мы ограничимся только самыми рекомендациями. К числу элементарных мер безопасности данных относятся надежное аппаратное обеспечение, использование аппаратуры, по зволяющей обеспечить защиту от скачков сетевого напряжения и отключения элект ропитания, а также регулярное копирование данных системы во избежа ние порчи или потери при отказе оборудования сервера. Помните: та кие отказы обязательно будут. Реализовать повышенную доступность можно, исполь зуя возможности создания и кластерами Windows. В главе 16 рассказыва ется о резервировании серверов SQL Server 2000 с использованием кластеризации Windows. В этом случае Windows применяется как наиболее удобное решение для создания отказоустойчивых приложений БД, работающих круглосуточ но семь дней в неделю.

1 данных Мониторинг баз данных Следует постоянно вести мониторинг БД, чтобы при необходимости предотвратить возможные неполадки. Эти регулярные меры по предотвращению возможных непо ладок включают в себя проверку согласованности БД с команды DBCC, использование оповещений о событиях SQL Server, которые уведомляют вас о потен циальных проблемах (например о близком переполнении журнала транзакций) и ав томатизацию рутинных задач (например резервного копирования журнала ций) с помощью службы SQL Server Agent. Подробнее о мониторинге системы и БД Ч в главе 14.

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

Х потеря информации на диске с файлами данных;

Х потеря информации на диске с журналом транзакций;

Х потеря информации на диске с системными файлами;

Х отказ сервера;

Х стихийные бедствия (наводнение, землетрясение, пожар и т. д.);

Х потеря данных, кража информации или уничтожение сервера;

Х кража носителя резервных данных;

Х неисправный носитель резервных данных;

Х неисправное устройство восстановления данных;

Х непреднамеренная ошибка пользователя (случайное удаление таблицы и т.

Х злонамеренные действия сотрудника (умышленный ввод неточной информации и Определение сроков восстановления данных Необходимо определить продолжительность процесса восстановления данных в слу чае возникновения неисправностей. Минимальный срок восстановления варьирует ся в зависимости от вида неполадки и размера БД. Оптимальный срок устанавливает ся в зависимости от интенсивности использования БД. Требования, ко времени восстановления БД, используемой для ввода данных в форму заказа при помощи Web-интерфейса в крупной компании, будут значительно более строгими, чем аналогичные требования к БД системы принятия решений, еженедельно обнов ляемой при передаче данных из системы оперативной обработки транзакций. При расчете времени на восстановление данных следует также помнить, что, в отличие от информации систем принятия решений, восстановить информацию БД регистрации заказов гораздо сложнее, а иногда и невозможно. Для БД, обеспечивающих работу важных приложений, определение времени на восстановление данных Ч достаточно сложный и ответственный вопрос. Подробнее о выборе оптимального решения для систем, работающих в режиме горячего резервирования серверов и использующих кластеризацию с резервированием узлов, Ч в главе 16. Решающий фактор при выбо ре стратегии восстановления данных Ч время на восстановление.

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

Х Каковая будет стоимость БД?

Устраивает ли вас время на замену диска с данными что он у вас под рукой) и восстановление данных из резервной копии БД?

Х Нужно ли использовать RAID-массив, чтобы неисправность одного диска не при вела к потере всей БД?

Х Сколько времени реально потребуется на из резервной копии БД?

Х Поможет ли более частое резервное копирование значительно сократить время на восстановление данных?

Х Есть ленточный накопитель при восстановлении данных откажет, есть ли у вас аналогичное запасное устройство?

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

Оперативная проверка БД Прежде чем предоставить пользователям доступ к восстановленной БД, выполните оперативную проверку ее работоспособности. Как правило, для этого используют зап росы Типы резервного копирования данных Теперь можно приступить к разработке первого этапа плана восстановления данных Ч стратегии резервного копирования БД. Во-первых, определите, какие способы зервного копирования в SQL 2000 обеспечивают необходимый защи ты данных от поломки диска и сбоев в работе системы. В табл. 8-1 перечислены спо собы резервного копирования, которые могут быть при разработке плана восстановления данных.

Табл. 8-1. Способы резервного копирования БД резервного копирования Полное Полное копирование БД Дифференциальное всех страниц данных, измененных со времени последнею полного резервного копирования БД Групп файлов Полное копирование всех файлов из указанной группы Дифференциальное всех страниц измененных со времени группы файлов последнего полного резервного копирования группы файлов Файлов данных Полное копирование файла данных Дифференциальное всех страниц данных в файле данных, файлов данных измененных со времени последнего полного резервного копирования файла Журнала транзакций Копируется часть журнала транзакций (он при этом усекается) 1 Восстановление данных Табл. (окончание) Способ резервного Описание копирования Моментальная Полное копирование БД за несколько секунд. Для этого архивация/ используется специальное оборудование производства третьих восстановление фирм, а в ряде случаев Ч специальное программное обеспе чение. Может использоваться вместе с дифференциальным резервным копированием и резервным копированием журнала транзакций Примечание Для архивации используемых файлов БД необходимо использовать про граммы резервного копирования SQL Server 2000 или сторонних производителей. Ути литы архивации Windows NT 4,0 и 2000 не выполнять резервное копирова ние используемых файлов, в том числе не могут архивировать используемые файлы БД SQL Server 2000.

Типы восстановления данных В табл. 8-2 перечислены возможные типы восстановления данных, основанные на различных способах резервного копирования БД.

Табл. 8-2. Способы восстановления данных Тип восстановления Описание Полное восстановление БД Восстановление с использованием полной резервной копии БД, последней резервной копии БД (если выполнялось дифференциальное резервное копирование) и всех резервных копий журнала транзакций в строгой последовательности, начиная со времени последнего полного или дифференциального резервного копирования БД Восстановление по состоя- всей БД по состоянию на определенную нию на определенную дату дату (как правило, на один или несколько дней назад) с использованием полной информации о транзакциях в резервной копии журнала транзакций, а также резервных копий БД, файлов или групп файлов Полное восстановление файла или группы файлов с исполь Восстановление файла или зованием резервных копий файла или группы файлов, группы файлов с полным восстановлением БД последней дифференциальной резервной копии файла или группы файлов (если выполнялось дифференциальное резервное копирование) и всех резервных копий транзакций в строгой последовательности, начиная со времени последнего резервного или резервного копирования файлов или групп файлов Восстановление всей БД до определенного Восстановление до например сразу после или перед определенной транзак заданной транзакции цией, с использованием полной информации о транзак циях в резервной копии журнала транзакций, а также резервных копий БД, файлов или групп файлов 222 Разработка стратегии данных Глава Можно также выполнить частичное восстановление БД на запасной сервер, чтобы извлечь необходимые данные. При этом восстанавливаются только от дельные группы файлов Резервное копирование 5Д Архивируйте все БД, которые требуется полностью восстанавливать после любых сбо ев. Эта операция включает в себя резервное копирование как прикладных пользова тельских, так и соответствующих системных БД. Обязательно нужно регулярно вы полнять полное резервное копирование БД master (это единственный подходящий для нее способ резервного копирования). Она содержит важные объекты БД, являю общими для всего сервера целом (например учетные записи пользователей), устройства резервного копирования, системные и сообщения об ошибках, а также информацию о связанных серверах. Также следует выполнять регу лярное резервное копирование БД msdb Ч как правило, этом случае выполняется полное резервное копирование БД, хотя иногда используется и резервное копирова ние журнала транзакций. БД msdb содержит всю информацию о работе агента SQL Server, репозиторий службы Meta Data Services, а также архив (и схемы) всех выпол ненных операций резервного копирования БД. Наконец, если используется реплика ция, вам также необходимо выпол нить резервное копирование публикуемой Под робнее о репликации в SQL Server 2000 Ч в главе 15.

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

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

Х Описать каждый из экземпляров SQL Server 2000 (а также SQL Server 6.5 или 7.0), следующие параметры: версию ОС и установлен ных пакеты обновлений ОС, SQL Server и установленных пакетов обнов лений SQL Server, имена файлов журнала транзакций и файлов данных с ем путей к ним, имена серверов, используемые сетевые библиотеки и последова тельность сортировки (кодовую страницу и порядок сортировки для предыдущих версий SQL Server), а также имя учетной записи, используемой службами. Сохра ните эту информацию в надежном месте и регулярно обновляйте, отражая теку щие изменения.

Х какие БД, как часто и какими способами архивируются. Можно также указать причину, по которой был выбран тот или иной способ и периодичность резервного копирования (со временем они могут меняться).

Х Определить степень восстановления данных. Возможно, вы огра ничитесь созданием расписания запусков заданий резервного копирования, и оп ределите оповещения о SQL Server, при срабатывании которых будет выполняться архивация журнала транзакций. Подробнее о планировании заданий и системных оповещениях Ч главе 13.

Х Определить лицо, ответственное за резервное копирования, и лицо, проверяющее, действительно ли выполняется.

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

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

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

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

Х Документировать процесс создания резервных копий и аппаратное обеспечение сервера. Следить за своевременным обновлением документации.

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

224 стратегии восстановления Занятие 2. Способы резервного копирования базы данных Для разработки плана восстановления данных вам изучить все способы резервного копирования в SQL Server 2000. На этом занятии вы познакомитесь со способами резервного копирования БД, узнаете, чем они отличаются и когда нужно использовать каждый из них, а какие данные копируются при создании резер вной копии. На занятии 3 вы узнаете, какие способы резервного копирования нужно использовать для разных типов данных. После этого вы сможете раз работать собственный план восстановления данных.

Изучив материал этого вы сможете:

описать различия между способами резервного копирования в SQL Server 2000;

определить, когда следует использовать каждый из способов резервного копирования.

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

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

Хотя резервное копирование в SQL Server 2000 и не оказывает сильного влияния на производительность все лучше выполнять полное резервное копирование, когда БД используются не так интенсивно, например ночью.

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

если какая-либо из записей была изменена более одного раза с момента последнего полного резервного копирования, то при дифференциальном копировании будет зарегистрировано только последнее 2 Способы копирования данных из внесенных изменений (в отличие от резервной копии журнала где отражается каждое изменение). резервное копирование БД зани мает меньше времени и места, чем полное, и позволяет сократить время восстановле ния БД.

Для увеличения скорости дифференциального резервного копирования БД SQL Server 2000 прослеживает все изменения в экстентах, которые произошли с момента последнего полного резервного копирования БД. Эти изменения отражаются на стра нице карты изменений Changed Map, DCM). В дифференциаль ного резервного копирования просматриваются все страницы DCM, определяется, какие экстенты были затронуты при изменении данных, и затем эти экстенты вклю чаются в резервную копию (при каждом полном резервном копировании БД все стра ницы DCM обновляются). Если значение бита карты, некоторому экстенту, равно 0, значит этот экстент не изменялся со времени последнего резерв ного копирования БД. Если значение бита карты равно I, то соответствующий зк стент содержит измененные данные. Благодаря использованию страниц время на дифференциальное резервное копирование существенно сокращается по сравне нию с полным резервным копированием БД, поскольку оно пропорционально коли честву экстентов, где содержатся измененные данные, а не объему всей БД.

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

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

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

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

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

При использовании модели результатов импорта для где все записи о внесенных изменениях регистрировались в журнале транзакций, изме нения в файлах данных в этих операций регистрируются на странице, где размещается карта изменений при загрузке данных (Bulk Changed Map, BCM). В про цессе резервного копирования журнала транзакций просматривается каждая страни ца ВСМ, и в резервную копию включаются все экстенты, где произошли изменения со времени последнего резервного копирования журнала транзакций. Использова ние модели востановления результатов импорта позволяет за достаточно короткий срок создавать резервные копии при выполнении операций загрузки большого объе ма данных одновременно с созданием резервной копии журнала транзакций. Однако регистрируется не каждая отдельная операция, а только результирующие изменения данных, выполненные в ходе загрузки. Страницы ВСМ не используются в Занятие 2 Способы копирования базы данных рот полной модели восстановления, так как в данном случае все операции по большого объема данных полностью регистрируются в журнале транзакций.

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

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

Если не определено иное, после завершения резервного копирования журнала транзакций SQL Server 2000 удаляет все виртуальные файлы журнала (Virtual Log Files, которые не содержат активную часть журнала, что позволяет повторно исполь зовать их. Активная часть включает в себя любую часть журнала транзакций, содер жащую активную транзакцию или транзакцию, но еще реплициро ванную. В промышленных БД вы будете использовать либо модель результатов импорта, либо модель восстановления отдельных операций;

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

Промежуток времени между операциями резервного копирования журнала тран закций зависит от объема размера файла журнала транзакций, необхо димого уровня отказоустойчивости и сроков восстановления. Выполнять резервное копирование можно часто, каждые 10-15 минут, или раз в 2-3 часа (возможен больший период, если было выполнено всего несколько транзакций). Помните: если поврежден и диск с файлами данных, и диск с файлами журнала транзакций, и не предпринято никаких мер по обеспечению то любые изменения, которые были внесены после последнего резервного копирования журнала транзак ций, можно восстановить лишь с помощью других средств, которые могут быть недо ступны.

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

3 Занятие 3. Восстановление данных Для реализации эффективной стратегии резервного копирования и данных необходимо понимать, как происходит процесс восстановления данных в SQL Server 2000. На этом занятии вы узнаете, как выполняется автоматическое и ручное восстановление данных. Здесь рассказывается об использовании различных спосо бов резервного копирования для быстрого восстановления данных. Также вы узнаете о параметрах частичного восстановления, доступных при определенных способах ре зервного копирования БД. Наконец, вы выполните восстановление данных при раз личных сценариях устранения неисправностей.

Изучив материал этого занятия, вы сможете:

описать процесс автоматического восстановления данных;

описать процесс восстановления данных вручную;

рассказать, как различные типы резервирования могут увеличить скорость восстановления данных;

назвать параметры полного и частичного восстановления данных;

рассказать о способах восстановления данных в сценариях с различными неисправностями.

Pages:     | 1 |   ...   | 2 | 3 | 4 | 5 | 6 |   ...   | 9 |    Книги, научные публикации