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

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

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

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

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

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

SQL Server 2000 начинает процесс восстановления с БД master, которая информацию, необходимую для открытия и восстановления всех остальных БД. За тем SQL Server 2000 восстанавливает БД model и а также БД, публикуемые при Глава стратегии данных репликации (если таковые в системе). Далее SQL Server 2000 восстанавлива ет все пользовательские БД. В конце SQL Server 2000 удаляет и снова создает БД Чтобы ознакомиться с каждым шагом процесса восстановления, просмотри те журнал ошибок SQL Server (рис. 8-1).

11 15 copyright (О 11 Ч server 11 6 server SQL server priority 46 server using dynamic lock > 11 77 to 11 34 Sp1d3 up database.

11 SO 7 SQL server on TCP, complete.

Рис. 8-1. Журнал ошибок SQL Server Пользователи не могут непосредственно контролировать автоматический процесс восстановления. Однако вы можете задать допустимое время для его выполнения в SQL Server 2000. По умолчанию значение этого параметра равно 0, то есть SQL Server 2000 самостоятельно определяет, как часто необходимо устанавли вать контрольные точки. Чем чаще они устанавливаются, тем меньшее число зареги стрированных в журнале транзакций необходимо повторять или отменять в процессе восстановления. Установленное по умолчанию значение времени выполнения авто матического восстановления данных не следует изменять без веских причин. Как и для большинства других параметров настройки SQL Server 2000, вы добьетесь лучшей производительности, если позволите SQL Server 2000 динамически выполнять само стоятельную регулировку этих параметров.

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

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

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

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

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

Резервные копии БД SQL Server 7.0 можно восстановить на сервере SQL Server 2000, но не наоборот.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Поломка диска, на котором размещена база данных master Если на диске, содержащем БД master, происходит сбой, и если при использовании RAID 1 БД master не была полностью необходимо восстановить ее с помощью резервных а затем Ч каждую из системных БД. Далее вы можете восстановить пользовательские БД из резервных копий или присоединить их повтор но, если размещенные на других дисках файлы данных и файлы журнала транзакций, которые они содержали, не были повреждены.

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

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

Закрепление материала Закрепление материала Приведенные ниже вопросы помогут вам лучше усвоить основные дан ной главы. Если вы не сумеете ответить на вопрос, повторите материал соот занятия. Правильные ответы приведены в приложении Воп росы и ответы в книги.

1. Вы используете RAID 1 для журнала и RAID 10 для своей БД. Почему с таким уровнем отказоустойчивости все же необходимо составлять план восста новления данных?

2. Вы разрабатываете план восстановления данных. Вы выяснили, сколько времени потребуется для выполнения полного резервного копирования БД, и что можно выполнить резервное копирование всей БД за 6 часов. Вы решили вы полнять полное резервное копирование БД каждую ночь. Также вы определили, что вам необходимо выполнять резервирование журнала транзакций каждые минут для сведения к минимуму риска потери данных. Нужно ли включать в план восстановления данных выполнение регулярного резервного копирования 3. Вы являетесь ответственным за поддержку и восстановление БД системы приня тия решений. Эта БД регулярно наполняется из нескольких различных источни ков данных с пакетов DTS. Обеспечивает ли какие-либо использование полной модели восстановления для этой БД, учитывая существен ное увеличение числа и размера необходимых для восстановления резервных ко пий журнала транзакций? Если такие преимущества все-таки есть, то в чем они заключаются?

копирование и восстановление данных Носители и устройства резервного копирования 2. Резервное копирование баз данных, групп файлов и журналов транзакций 3. Восстановление пользовательских данных Занятие 4, Восстановление и повторное создание системных баз данных В этой главе Здесь рассказывается, как реализовать каждый из способов резервного копирования и восстановления БД Server 2000. Вы познакомитесь с соответству терминами, а также узнаете о носителях и устройствах резервного копирова ния. Кроме того, вы узнаете, как реализовать каждый из имеющихся способов резер вного копирования БД при помощи Server Enterprise Manager и и как с помощью SQL Enterprise Manager и восстановить БД и их файлы.

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

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

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

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

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

.Х БД созданная при помощи сценария CreateDB.sql.

Резервное и баз данных Носители и устройства резервного копирования Прежде чем приступить к резервных копий БД, следует изучить некоторые термины, связанные с резервным копированием и восстановлением БД SQL Server 2000. После этого вы узнаете, какие носители можно использовать для создания ре зервных копий. Также вы создавать повторно используемые устройства ре копирования (reusable backup devices).

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

объяснить значение терминов, связанных с процессом резервного копирования в SQL Server 2000;

выбрать для резервных копий;

создать устройства резервного копирования.

Продолжительность Ч около минут Терминология Вам следует познакомиться с терминами, которые важны для понимания процессов резервного копирования и данных в SQL Server 2000. Наиболее важ ные термины разъясняются в табл.

Табл. Терминология копирования Термин Описание Резервная копия (Backup) Полная частичная копия БД, журнала файла или группы файлов, образующая набор резервных копий.

Набор копий записывается на носитель или стример) с использованием устройства резервного копирования (имя стримера или физическое имя файла) Устройство резервного Физический файл (например C:\SQLBackups\Full.bak) копирования или ленточный накопитель (например (Backup device) используемый при записи резервной копии на носитель Файл резервной копии Файл с набором резервных копий (Backup file) Носитель резервной Физический носитель (диск или стример), на который копии (Backup media) сохраняют набор резервных копий с использованием файла резервной копии. На носителе может храниться несколько наборов резервных копий (например несколько резервных копий SQL Server 2000 и несколько из Windows 2000) Набор резервных копий Резервная копия, созданная за одну резервного (Backup set) копирования и размещенная на носителе. Набор резервных копий может быть размещен на одном носителе, семействе или же на наборе носителей Семейство носителей Все (диски или ленты) в наборе носителей, (Media family) записанные одним устройством резервного копирования для одного набора резервных копий Занятие 1 Носители устройства Табл. 9-1. (окончание) Термин Описание Заголовок носителя Предоставляет о содержимом носителя. Чтобы (Media header) на носитель резервной копии можно было записать набор резервных копий, следует предварительно записать заголовок носителя (этот процесс также называют инициализацией носителя). Обычно заголовок носителя записывается один и сохраняется в течение всего времени работы носителя Набор носителей Все носители, задействованные в операции резервного (Media set) копирования (например лента, дисковый файл, устройство резервного записывающее набор лент, или же набор лент, записанный несколькими устройствами резервного копирования) Например, если архивную копию БД записывают на два устройства копирования на ленточные накопители) и набор резервных копий включает по три ленты на устройство, набор носителей будет состоять из 6 лент (по три ленты в каждом семействе носителей). Набор носителей может включать в себя наборов резервных копий Ч например, при добавлении одного набора резервных ко пий к другому на одном или на нескольких ленточных накопителях.

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

Для SQL Server 2000 подходят следующие виды носителей: локальные ленточные на копители, локальные жесткие диски, сетевые жесткие диски и именованные каналы (named pipes). Последние предоставляют интерфейс, который могут использовать решения резервного копирования сторонних фирм.

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

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

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

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

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

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

Создание устройства резервного копирования средствами SQL Server Enterprise Manager Чтобы создать устройство резервного копирования с помощью SQL Server Enterprise Manager, раскройте контейнер Management, щелкните контейнер Backup правой кнопкой и выберите New Backup Device. В диалоговом окне Backup Device Properties Ч New Device укажите логическое имя устройства копирования и имя лен точного накопителя или же имя файла устройства резервного копирования (рис. 9.1).

Чтобы удалить устройство резервного копирования с помощью SQL Server Enter prise Manager, щелкните в дереве консоли контейнер Backup. В правой панели ото бразится список всех имеющихся устройств резервного копирования. Щелкните зна чок нужного устройства правой кнопкой и выберите Delete.

Примечание Устройства резервного копирования не привязаны к какой-либо БД.

и устройства резервного копирования Рис. 9-1. Создание устройства резервного копирования SQL Server Enterprise Manager Создание устройства резервного копирования с помощью Создать устройство резервного копирования для многократного использования мож но средствами системной хранимой,, Этот пример создает устройство резервного копирования с логическим именем Full BackupDevice, использующее файл на локальном диске.

,, Данный пример создает на стримере устройство резервного копирования с логичес ким именем ленточный накопитель 0 е. пер вый ленточный накопитель системы).

, В этом примере создается дисковое устройство резервного копирования с ким именем использующее сетевой путь к которому указан в UNC-формате (Universal Naming универсальные правила именования).

С помощью Transact-SQL можно создать и сохранить который при за пуске создает все используемые устройства резервного копирования. Важно сохра нять созданные сценарии, так как при необходимости вы можете заново создать уст ройства резервного копирования в БД master (или скопировать структуру устройств резервного копирования на другие серверы SQL Server 2000 в сети).

Чтобы с помощью Transact-SQL просмотреть список устройств резервного копи рования на вашем экземпляре SQL Server, воспользуйтесь системной хранимой про цедурой sp_helpdevice. Удалить устройство резервного копирования можно средства ми системной хранимой процедуры Этот оператор удаляет устройство FullBackupDevice, но не связанный с ним фи зический файл. В следующем примере удаляется и то, и другое.

, 242 Резервное копирование и баз данных Упражнение Создание устройств резервного копирования при помощи Transact-SQL В этом упражнении вы с помощью сценария Transact-SQL, си стемную хранимую создадите несколько уст ройств резервного копирования.

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

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

3. В диалоговом окне Connect To SQL Server подключитесь к с исполь зованием средств проверки подлинности Windows.

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

5. В панели инструментов щелкните кнопку Load SQL Script.

Откроется окно Open Query 6. Откройте файл из папки При этом заг рузится сценарий Transact-SQL, который создаст устройства резервного копиро вания со следующими логическими именами:

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

7. Щелкните кнопку Execute Query, чтобы выполнить сценарий Обратите внимание, что после его выполнения добавлено 5 дисковых устройств.

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

8. В панели инструментов кнопку Clear Window.

9. В панели запросов введите и щелкните кнопку Execute Query в пане ли инструментов. На экран будут выведены названия 5 устройств резервного ко пирования, а также о БД master, model и tempdb.

Закройте SQL Query не сохраняя изменений.

Откройте Windows Explorer.

На диске С: создайте папку SQLBackups.

13. Закройте Windows Explorer.

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

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

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

создать полную резервную копию БД средствами SQL Server Enterprise Manager и Transact-SQL;

создать дифференциальную резервную копию БД средствами SQL Server Enterprise Manager и Transact-SQL;

создать резервную копию журнала транзакций средствами SQL Server Enterprise Manager и Transact-SQL;

создать резервные копии файлов и групп файлов средствами SQL Server Enterprise Manager и Transact-SQL.

Продолжительность занятия - около 60 минут Резервное копирование с использованием SQL Server Enterprise Manager Для создания резервных копий рекомендуется использовать SQL Server Enterprise Manager, который познакомит вас с параметрами и терминологией резервного копи рования и поможет освоить синтаксис Transact-SQL. Кроме того, для создания ре зервных копий можно воспользоваться мастером Create Database Backup Wizard.

Использование мастера Create Database Backup Wizard Вы можете вызвать любой мастер SQL Server Enterprise Manager из меню Tools или из панели задач. Мастер Backup Wizard (и не только) можно вызвать из диалогового окна Select Wizard 9-2).

После запуска Backup Wizard в окне Create Database Backup просмотрите и выбе рите для которой необходимо создать резервную копию. Можно выбрать любую БД на сервере (рис. 9-3), Затем введите имя данного набора резервных копий в окне Type Name And Descrip tion For Backup. Лучше выбрать содержательное имя, например Full которое сообщало бы о том, что из себя представляет резервная копия. При желании вы можете ввести дополнительную информацию об этом наборе в поле Description, чтобы не перепутать многочисленные резервные копии (рис. 9-4).

244 копирование и баз данных base Х Creel Plan Web Я Рис. 9-2. Окно Select Wizard ID Backup ID Рис. 9-3. Выбор БД для резервного Type and Backup Type Рис. 9-4. Присваивание имени резервных копий 2 Резервное копирование БД, файлов, групп и Затем в окне Select Type Of Backup необходимо выбрать тип резервного копирова ния. С помощью мастера Create Database Backup Wizard вы можете выполнять полное и резервное копирование, а также создавать резервные копии журнала транзакций (но не файлов или групп файлов). Если какой-либо вариант ре зервного копирования выделен серым цветом, его нельзя использовать для выбран ной БД. Например, для БД master вы можете создать только полную резервную ко пию, а если выбранная БД использует простую модель создать ре зервную копию ее журнала транзакций нельзя (рис. 9-5).

the of Рис. 9-5. Выбор типа резервного копирования Примечание Для дифференциального резервного копирования следует предваритель но создать полную резервную копию БД.

После этого в окне Select Backup Destination And Action нужно выбрать устройство резервного копирования для набора резервных копий. Вы можете выб рать стример, файл или уже созданное устройство резервного копирования. Обратите внимание, что по умолчанию файлы располагаются в папке Backup вашего экземпля ра SQL Server 2000 (например SQL Вы можете добавить данный набор к на выбранном носителе набо рам или перезаписать их. Также вы можете выбрать параметр, при котором SQL Server 2000 после завершения создания копии откроет результат резервного копирования и проверит, корректно ли записаны файлы резервной копии и могут ли они быть про читаны (рис. 9-6).

Подробнее о проверке согласованности БД Ч в главе 14.

Если ранее вы решили перезаписать набор резервных копий, то в окне Initialize Media вы можете инициализировать носитель (создать заголовок), задав его имя и введя дополнительную информацию об этом наборе. К примеру, если у вас есть лента с резервной копией и вы не что на ней хранится, вы можете с помощью SQL Server Enterprise Manager или Transact-SQL прочитать заголовок ленты и какие данные на ней хранятся (конечно, если ранее вы установили для нее метку).

Процесс инициализации носителя показан на рис. 9-7.

Резервное и баз данных Backup Select в device as fa being append backup Рис. 9-6. Выбор расположения копии и параметров резервного копирования Media a set the and media name and OB Рис. 9-7. Инициализация резервной копии Если вы не указали SQL Server инициализировать носитель резервной копии и не создали новое имя набора носителей, то в окне Backup Verification And Scheduling вы можете проверить, на какой набор носителей будет записана копия, и истек ли срок хранения набора резервных копий (если он задан). Благодаря этому можно избежать перезаписи еше действительной резервной копии или записи набора резервных ко пий с использованием неверного накопителя или файла. При графическом интер фейсе легко ошибиться в выборе стримера или устройства резервного копирования, а последствия могут быть очень серьезными. Например, вы можете случайно переза писать ленту, на которой хранится часть набора резервных копий с чередованием лент, созданного при параллельном резервном копировании, или какая-либо из этих лент может оказаться поврежденной Ч тогда весь набор будет испорчен. Если вы уве рены в том, что выбрали устройство правильно, то можете пропустить проверку имен носителей и срока хранения копий.

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

Занятие 2 Резервное копирование БД, файлов, групп и Вы можете назначить дату годности при создании набора резервных копий. На пример, можно задать интервал в одну неделю между созданием резервных копий на диске (каждой на своем устройстве), и периодически архивировать их на ленточный накопитель, чтобы не перезаписать данные раньше, чем через 7 дней.

Можно также создать задание (job) и составить график, чтобы резервная копия, только что определенная вами, создавалась регулярно. О заданиях и планировании Ч в главе and the label dale t can Рис. 9-8. срока хранения и создание расписания резервного копирования В окне Completing The Create Database Backup Wizard вы можете просмотреть все установленные параметры настройки, до того как резервная копия будет создана.

Если вы хотите изменить какой-нибудь параметр, вернитесь к соответствующему окну мастера, щелкнув кнопку Back. Чтобы создать резервную копию БД, щелкните кноп ку Finish (рис. 9-9).

Completing the Create Database Backup Wizard Actio Check media tftiiy backup Рис. 9-9. Окно Completing The Create Database Backup Wizard Упражнение 2. Создание резервной копии БД master с помощью мастера Create Database Backup Wizard В этом упражнении вы создадите резервную копию БД master средствами ма стера Create Database Backup Wizard.

Резервное и нос баз данных Чтобы создать резервную БД master с помощью мастера Create Database Backup Wizard что вы зарегистрировались на контроллере домена под учетной записью Administrator.

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

В окне SQL Server Enterprise Manager будут показаны серверы Microsoft SQL Server и деревья консоли Event Viewer (Local).

3. В дереве консоли раскройте пункт Microsoft SQL Servers, затем Ч Microsoft SQL Group и выберите экземпляр сервера по умолчанию (default instance).

4. В меню Tools выберите Wizards.

Откроется окно Select Wizard.

5. На вкладке Management дважды Backup Wizard.

Запустится мастер Create Database Backup Wizard.

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

Откроется окно Select Database To Backup.

7. В списке Database выберите БД master и Next.

окно Type Name And Description For Backup, 8. В поле Name введите Full master Database Backup #1.

9. В поле Description введите Backup Set #1 и щелкните Next.

Откроется окно Select Type Of Backup. Обратите внимание, что вы можете выпол нять только полное резервное БД master.

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

Откроется окно Select Backup Destination And Action.

Установите переключатель в положение Backup Device и в списке выберите Master FullBackup.

Установите переключатель в положение Overwrite The Backup Media.

Пометьте флажок Read And Verify The Integrity Of The Backup After Backup и щел кните Next.

Откроется окно Initialize 14. Пометьте флажок Initialize And Label Media.

15. В поле Media Set Name введите 16. В поле Media Set Description Media Master Database Backups и щелкни те Next.

Откроется окно Backup And Scheduling.

Щелкните Next.

Откроется окно Completing The Create Database Backup Wizard. Просмотрите свой ства определенной вами копии.

18. Щелкните Finish.

Откроется окно Backup в котором будет отображаться процесс записи резервной копии. Затем откроется окно Verify Progress, где будет отображаться процесс проверки резервной копии БД master. Когда закончится процесс созда ния и проверки резервной откроется окно Wizard Щелкните OK, чтобы закрыть окно Wizard Complete.

20. Не закрывайте SQL Server Enterprise Manager.

2 БД, групп и Непосредственное использование SQL Server Enterprise Manager Чтобы создать резервную копию БД непосредственно в SQL Server Enterprise Manager, можно либо щелкнуть контейнер Databases, а затем выбрать Backup Database в меню Tools, либо Databases (или контейнер любой другой БД) правой кнопкой и выбрать All Database. На вкладках General и Options окна Server Backup можно ввести ту же информацию, что и при мастера Create Database Backup Wizard: название набора резервных копий, набора носителей, тип резервного копирования, и происходит ли при этом добавление или пе резапись данных (рис. 9-10 и 9-11) Рис. 9-Ю, Создание резервной копии на вкладке General окна SQL Server Backup Full Рис. 9-11. Установка параметров резервного копирования на вкладке Options окна SQL Server Backup Резервное копирование и данных Примечание Обратите внимание на флажок на рисунке нужно усекать неактивную часть журнала Если вы не выполняете резервное копирование журнала транзакций, этот флажок будет выделен серым цветом. Снимите его, чтобы не усекать журнал после создания резервной копии (например при отказе диска).

Если вы выполняете резервное копирование файла или группы файлов, на вклад ке General установите в соответствующее положение. Вы можете выб рать один файл или труппу в диалоговом окне Specify Filegroups And Files. Если выбра на группа файлов, все ее файлы автоматически помечаются как выбранные (рис. 9-12).

Рис. 9-12. Выбор файла или группы файлов Рис. 9-13. Выбор местоположения резервной копии Занятие Резервное БД, групп и журналов Выбрав тип носителя (диск или ленту), щелкните кнопку Add, чтобы выбрать ме сто размешения резервной копии. Вы можете выбрать файл резервной копии (если выбрали диск), ленточный накопитель (если выбрали или существующее уст ройство резервного копирования (рис. 9-13).

Примечание Если вы создаете устройства резервного копирования с использованием оператора в SQL Query Analyzer, когда открыт SQL Server Enterprise Ma nager, завершите и возобновите сеанс связи с экземпляром SQL Server чтобы обно вить соединение и получить доступ к новым устройствам резервного Выбрав устройство резервного щелкните кнопку Contents на вклад ке General, чтобы просмотреть содержимое выбранного устройства резервного (чтобы определить, хотите ли вы перезаписать наборы резервных копий дан ного устройства). Если устройство содержит наборы резервного копирования, вы смо жете просмотреть содержимое каждого набора в диалоговом окне View Backup Media Contents. Здесь вам помогут интуитивно понятные имена и дополнительная инфор мация, введенная для наборов резервных копий (рис. 9-14).

Рис. 9-14. Просмотр содержимого набора резервных копий Упражнение 3. Создание резервной копии БД с помощью SQL Server Enterprise Manager В этом упражнении вы создадите резервную копию БД msdb, используя SQL Server Enterprise Manager.

Чтобы создать резервную копию БД msdb с помощью SQL Server Enterprise Manager 1. В дереве консоли раскройте Microsoft SQL Servers, затем Ч Microsoft SQL Group, перейдите к экземпляру SQL Server умолчанию и раскройте пункт Databases.

2. Щелкните msdb правой кнопкой и выберите All Tasks\Backup Database.

окно SQL Server Backup Ч Msdb.

3. На вкладке General в поле Name введите Full msdb Database Backup #1.

4. В поле Description введите Backup Set #1.

252 Резервное копирование и баз Глава 5. Щелкните Add.

Откроется окно Select Backup Destination.

6. Установите переключатель Backup Device.

7. В списке выберите MSDBFullBackup и щелкните ОК.

8. Установите переключатель Existing Media и перейдите на вкладку Options.

9. Пометьте флажок Verify Backup Upon Completion.

10. Пометьте флажок Initialize And Label Media.

В поле Media Set Name введите В поле Media Set Description введите Media for Backups и OK.

Откроется окно Backup Progress, в котором будет отображаться процесс записи резервной копии. Затем откроется окно Verify Progress, где будет отображаться процесс проверки резервной копии БД master. Когда процессы создания и про верки резервной копии закончатся, откроется окно сообщений SQL Server En terprise Manager.

13. Чтобы закрыть окно сообщений Server Enterprise Manager, ОК.

14. He закрывайте SQL Server Enterprise Manager.

Резервное копирование с использованием Transact-SQL Вы также можете создавать копии, используя команды BACKUP DATA BASE и BACKUP LOG Transact-SQL. Познакомиться с синтаксисом и необязатель ными параметрами этих команд вы можете, обратившись к SQL Server Books Online.

Значения параметров для команд резервного копирования Transact-SQL те же, что и в SQL Server Enterprise Manager, но освоение синтаксиса требует практики. Кроме того, в Transact-SQL есть ряд дополнительных параметров, которые расширяют воз можности создания резервных КОЕИЙ. Большинство из них используется при работе с ленточными накопителями, а некоторые из перечисленных ниже могут быть исполь зованы со всеми типами носителей и доступны только в Transact-SQL.

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

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

Х Можно начать заново прерванное резервное копирование. Это особенно полезно при создании резервных копий больших БД.

Хотя команды BACKUP DATABASE и BACKUP LOG поначалу кажутся сложны ми, следующие примеры помогут вам лучше понять их.

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

Следующий оператор создает полную резервную копию БД в файле C:\SQLBackups\Temp.bak:

DATABASE Northwind TO DISK оператор создает резервную копию БД Northwind на устройстве ре зервного копирования и затем проверяет резервную копию:

Занятие 2 Резервное БД, файлов, групп и BACKUP DATABASE TO NorthwindFullBackup RESTORE FROM NorthwindFullBackup В следующем примере создается резервная копия БД Northwind на устройстве ре зервного копирования NorthwindFullBackup. Он инициализирует носитель, создает набор носителей с описанием Media for Northwind Database Backups и создает набор резервных копий Full Northwind Database Backup #1 с описанием Backup Set #1. Эта команда также выводит сообщение о ходе процесса при выполне нии каждых 25% от общего объема BACKUP DATABASE Northwind TO NorthwindFullBackup WITH FORMAT, MEDIANAME =, MEDIADESCRIPTION = for Northwind Database Backups', NAME = Northwind Database Backup, DESCRIPTION = 'BackupSet, STATS = В примере резервная копия БД Northwind создается параллельно на двух устройствах;

NwindDevicel и Перед началом записи файла резер вной копии на каждое устройство SQL Server 2000 проверяет, определена ли Media Set for Northwind Database Backups для данного набора носителей:

BACKUP DATABASE Northwind TO WITH MEDIANAME = Set Northwind Database Backups' Дифференциальное резервное копирование базы данных Чтобы создать дифференциальную резервную копию БД с помощью команды BA CKUP DATABASE, необходимо добавить аргумент WITH DIFFERENTIAL в любой из примеров (кроме того, сначала нужно создать полную резерв ную копию).

В следующем примере создается дифференциальная копия БД Northwind на уст ройстве резервного копирования BACKUP DATABASE Northwind TO NorthwindDiffBackup ft'ITH DIFFERENTIAL Резервное копирование файла или группы файлов Чтобы создать резервную копию файла или группы файлов, добавьте аргумент F!

= или FILEGROUP = в оператор BA CKUP DATABASE.

Следующий оператор создает резервную копию группы файлов БД Northwind на устройстве резервного копирования Backup:

BACKUP DATABASE Northwind FILEGROUP = TO Резервное копирование журнала транзакций Синтаксис команды BACKUP LOG, с помощью которой создается резервная журнала, очень похож на синтаксис BACKUP DATABASE.

254 Резервное и данных Глава В примере создается резервная копия журнала транзакций БД North wind на устройстве BACKUP LOG TO В примере резервная копия журнала БД North wind на устройстве NorthwindTLogBackup, но журнал транзакций не усекается. Ис пользуйте эту команду при повреждении диска с файлами данных:

BACKUP LOG Northwind TO NorthwindTLogBackup WITH NO_TRUNCATE Упражнение 4. Резервное копирование с помощью Transact-SQL В этом упражнении вы создадите полную и дифференциальную резервные копии БД и две резервные копии журнала транзакций БД SSEMDB, исполь зуя несколько сценариев Transact-SQL.

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

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

3. В диалоговом окне Connect To SQL Server подключитесь к с исполь зованием средств проверки подлинности Windows.

4. В панели инструментов щелкните Load SQL Script.

Откроется окно Open Query 5. Откройте файл из папки Откроется сценарий Transact-SQL, который создаст таблицу Customer в БД MDB, содержащую 21 запись о клиентах, полученную из файла NewCustomer Datal.txt с оператора BULK INSERT. Затем он выполнит полное резер вное копирование БД SSEMDB на устройство резервного копирования SSEMDB FullBackup.

6. Чтобы выполнить сценарий SSEMDB_Full.sql, нажмите кнопку F5.

В панели результатов будет список, содержащий 21 о клиентах из таблицы Customer БД SSEMDE. Обратите внимание: на вкладке Messages что успешно выполнено копирование включая 2 файла данных и одну страницу журнала транзакций (так как во время резервного копирования БД не изменялась).

7. В панели инструментов Load SQL Script.

Откроется окно Open Query 8. Откройте файл SSEMDB_TLogl.sql из папки Откроется сценарий Transact-SQL, который добавит записи о 2 клиентах в табли цу Customer БД SSEMDB с помощью оператора INSERT и создаст резервную ко пию журнала транзакций БД SSEMDB на устройстве 9. В панели инструментов щелкните кнопку Execute Query, чтобы выполнить сцена рий SSEMDB_TLogl.sql.

Обратите внимание, что в панели результатов в таблицу Customer БД SSEMDB добавлены 2 записи о клиентах (всего таблица содержит теперь 23 записи о клиен тах). На вкладке Messages вы увидите, что резервное копирование журнала тран закций БД SSEMDB было выполнено успешно.

Занятие 2 Резервное БД, групп и журналов 10. В панели инструментов щелкните Load SQL Script.

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

Откройте файл из папки Откроется сценарий Transact-SQL, который добавит 7 записей о клиентах в табли ду Customer БД из файла с помощью оператора BULK INSERT и создаст дифференциальную резервную копию БД SSEMDB на устройстве 12. В панели инструментов щелкните кнопку Execute Query, чтобы выполнить сцена рий SSEMDB_ Обратите внимание, что в панели результатов в таблицу Customer БД SSEMDB добавлено 7 записей о клиентах (всего таблица содержит теперь 30 записей о кли ентах). На вкладке Messages вы увидите, что резервное копирование БД SSEMDB, включая 2 файла данных и одну страницу журнала транзакций (во время резерв ного копирования БД не изменялась), прошло успешно.

13. В панели инструментов щелкните Load SQL Script.

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

14. Откройте файл SSEMDB_TLog2.sql из папки Откроется сценарий Transact-SQL, который добавит одного клиента в таблицу БД SSEMDB с помощью оператора INSERT и создаст резервную копию журнала транзакций БД SSEMDB на устройстве 15. В панели инструментов кнопку Execute Query, чтобы выполнить рий SSEMDB_TLog2.sql.

Обратите внимание, что в панели результатов в таблицу Customer БД SSEMDB добавлена 1 запись о клиенте (теперь таблица содержит 31 запись о клиентах). На вкладке Messages вы увидите, что резервное копирование журнала транзакций БД SSEMDB прошло успешно.

16. В панели инструментов щелкните Load SQL Script.

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

17. Откройте файл из папки Откроется сценарий Transact-SQL, который добавит одного клиента в таблицу Customer БД SSEMDB с помощью команды INSERT и создаст резервную копию журнала транзакций БД SSEMDB на устройстве SSEMDBTLogBackup.

18. В панели инструментов щелкните кнопку Execute Query, чтобы выполнить сцена рий SSEMDB_TLog3.sql.

Обратите внимание, что в панели результатов в таблицу Customer БД SSEMDB добавлена 1 запись о клиенте (теперь таблица содержит 32 записи о клиентах). На вкладке Messages вы увидите, что резервное копирование журнала транзакций БД SSEMDB прошло успешно.

В панели инструментов щелкните Load SQL Script.

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

20. Откройте файл из папки сценарий Transact-SQL, который добавит 1 запись о клиенте в таблицу Customer БД SSEMDB с помощью команды INSERT. После этого изменения не будем создавать резервную копию БД.

21. В панели инструментов кнопку Execute Query, чтобы выполнить сцена рий 256 Резервное копирование и восстановление баз данных Глава Обратите внимание, что в результатов в таблицу Customer БД SSEMDB добавлена 1 запись о клиенте (теперь таблица содержит 33 записи о клиентах).

22. Не закрывайте SQL Query Analyzer.

Резюме С SQL Server Enterprise Manager и Create Database Backup Wizard вы можете создавать полные и дифференциальные резервные копии БД и копии журнала тран Для создания любых резервных копий можно использовать сценарии Тгап sact-SQL. Вы можете указывать различные параметры для наборов резервных копий и для наборов носителей. Работа с ними в SQL Server Enterprise Manager поможет легче освоить синтаксис операторов Занятие 3 Восстановление баз данных Занятие 3. Восстановление пользовательских баз данных Теперь, когда вы умеете создавать резервные копии с использованием SQL Server Enterprise Manager и нужно научиться использовать эти копии для вос становления данных. На этом занятии вы научитесь просматривать резервные копии, чтобы определить последовательность, в которой должно выполняться восстановле ние. Вы узнаете, как провести полное восстановление пользовательских БД ми SQL Server Enterprise Manager и Transact-SQL, а также как можно восстановить БД до состояния, которое она имела на определенный момент времени.

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

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

провести полное восстановление данных с использованием SQL Server Enterprise Manager и Transact-SQL;

с SQL Server Enterprise Manager и Transact-SQL восстановить БД по состоянию на определенный момент времени;

восстановить БД для работы в резервном режиме средствами SQL Server Enterprise Manager и Transact-SQL, чтобы определить ее состояние до восстановления дополнительных файлов резервных копий.

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

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

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

Чтобы просмотреть содержимое устройства резервного копирования с помощью SQL Server Enterprise Manager, раскройте контейнер Management, Backup, в области свойств резервной копии шелкните правой кнопкой устройство, свойства которого хотите просмотреть, и Properties. В диалоговом окне Backup Device Properties вы увидите имена файлов или ленточные накопители, связанные с устрой ством резервного копирования. Щелкните кнопку View Contents, чтобы посмотреть содержимое устройства в диалоговом окне View Backup Media Contents (рис. 9-15).

Рис. 9-15. Просмотр содержимого устройства резервного копирования с использованием SQL Server Enterprise Manager Примечание Если в контейнере Backup отсутствуют устройства резервного копирова ния, вам потребуется историю этого устройства. О том, как это сделать, Ч в конце этого занятия.

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

Табл. 9-2. Команды для восстановления информации Команда Transact-SQL Описание RESTORE Позволяет получить информацию из заголовка носителя, включающую в себя название и описание набора носителей RESTORE информацию о наборе резервных копий, включая имя и описание каждого набора на отдельном устройстве резервного копирования. Кроме того, восстанав ливается LSN. который используется SQL Server 2000 для последовательности восстановления Ч какие файлы резервных копий потребуются и в каком порядке они будут использоваться RESTORE FILELISTONLY Позволяет получить список файлов данных и журнала входящих в набор резервных копий 3 Восстановление пользовательских баз данных у Упражнение 5. Чтение информации о носителе резервной копии В этом упражнении вы считаете с устройства резервного копирования инфор мацию о носителе резервной копии средствами SQL Server Enterprise Manager и Transact-SQL.

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

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

В области свойств резервной копии будут перечислены все устройства резервного копирования вашей системы SQL Server 2000.

3. В области свойств резервной копии щелкните правой кнопкой SSEMDBTLogBackup и выберите Properties.

В диалоговом окне Backup Device Properties Ч SSEMTLogBackup будет указано имя файла, связанного с этим устройством.

4. Щелкните кнопку View Contents.

В диалоговом окне View Backup Media Contents отображается содержимое устрой ства SSEMTLogBackup. Вы увидите записи о трех наборах резервных копий жур нала транзакций.

5. Разверните окно SQL Query Analyzer.

6. В панели инструментов щелкните кнопку Load SQL Script.

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

7. Откройте файл QueryHeaders.sql из папки Откроется Transact-SQL, где содержится 5 запросов, восстанавливаю щих информацию с устройства резервного копирования SSEMDBTLogBackup.

8. Чтобы выполнить сценарий QueryHeaders.sql, щелкните кнопку Execute Query.

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

9. Сравните информацию, которую вы получили с помощью SQL Server Enterprise Manager и с помощью Transact-SQL.

10. Разверните окно SQL Server Enterprise Manager.

Щелкните кнопку Close, чтобы закрыть окно View Backup Media Contents, и кноп ку чтобы закрыть окно Backup Device Properties Ч SSEMDBTLogBackup.

12. He закрывайте SQL Server Enterprise Manager и SQL Query Analyzer.

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

Глава и баз данных Примечание Перед тем как начать восстановление рабочей БД, ограничьте доступ пользователей к ней, Восстановление всей базы данных при повреждении диска данных Если вы не используете RAID, то при повреждении диска, содержащего файлы дан ных, БД, связанная с этими файлами будет помечена в SQL Server Enterprise Manager как (suspect) (рис. 9-16) Server Group (Windows msdb ж Data '.

Event (Local) Рис. 9-16. Поврежденный файл данных помечается как подозрительный Если вы видите, что БД помечена как подозрительная, немедленно создайте ре зервную копию журнала транзакций без усечения и лишь потом начинайте восста новление данных (в противном случае вы потеряете информацию обо всех изменени сделанных после последнего резервного копирования журнала). Если вы создади те резервную копию журнала транзакций с использованием режима Without Trunca tion, вы сможете восстановить ваши данные до момента повреждения диска (рис.

Затем замените диск, Если в вашей системе используется RAID для повышения вам надо только добавить новый диск в систему RAID. Если же вы не используете необходимо восстановить данные до того, как вы предоставите доступ к БД, которая была повреждена. Вы мо жете либо восстановить БД полностью, либо восстановить файлы или группы файлов (см. следующий раздел). В обоих случаях, чтобы провести восстановление, раскройте контейнер Databases, кнопкой БД, которая помечена как подозри тельная, выберите пункт All Tasks, затем Ч Restore Database. SQL Server Enterprise Manager определит наиболее эффективный путь восстановления этой БД, используя информацию о резервном копировании, которая содержится в БД (рис. 9.18).

Если один из наборов резервных копий, указанных SQL Server Enterprise Manager для использования в операции восстановления, отсутствует в диалоговом окне Restore Database, вы можете выбрать другие комбинации наборов резервного копирования, чтобы провести восстановление, и SQL Server Enterprise Manager поможет вам в этом.

Например, если вы хотите с полной резервной копии, предшествующей баз данных ранной, раскройте список First Backup To Restore и выберите нужную полную копию.

SQL Server Enterprise Manager быстро определит остальные резервные копии, кото рые необходимы для выполнения восстановления, и покажет их в виде списка в ниж ней части диалогового окна.

г Рис. 9-17. Выбор параметров резервного журнала транзакций 8 ДМ - Вас 7.51.5* SSEMDB 7 23 51 АН - В 7 АН Х Full SSEMDB В АН - Full В.

46.

Рис. 9-18. Выбор наборов резервных копий для восстановления Если вы хотите просмотреть информацию о содержимом какого-нибудь набора резервных копий из списка, выберите его и кнопку Properties. В диалого вом окне Backup Set Properties будет отображаться информация о наборе резервного копирования, которую вы ввели при его а также информация, которую при создании резервной копии SQL Server 2000 (рис. 9-19).

и баз данных Глава 9-19. Просмотр свойств набора резервных копий Если расположение файла резервной копии изменилось и отличается от записан ного в БД msdb, то, щелкнув кнопку Change в диалоговом окне Backup Set Properties, вы можете указать новый путь к файлу. Например, это потребуется в том случае, если вы сначала создали резервную копию на локальном диске, а затем перенесли на лен ту или на сетевой диск.

Определив, какие наборы копий вы будете использовать, перейдите на вкладку Options диалогового окна Restore Database, чтобы задать дополнительные па раметры восстановления данных (рис. 9-20).

9-20. Выбор дополнительных параметров процесса восстановления данных На вкладке Options в поле Restore As со списком восстанавливаемых фай лов вы можете изменить физическое расположение любого восстанавливаемого фай ла данных. По умолчанию при файлы записываются туда, где они были размешены первоначально (при этом файлы с таким же расположением и име нем перезаписываются). Также вы можете определить, в каком состоянии будет на ходиться БД после По умолчанию SQL Server 2000 восстанавливает каждый выбранный вами набор и после обращения к последнему набору восстанав ливает БД. Это равносильно использованию оператора RECOVERY.

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

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

Х Вы можете оставить БД в состоянии для чтения (read-only) и готовую к восстановлению дополнительных файлов журнала транзакций. Это равносильно использованию оператора Transact-SQL STANDBY MODE. При выборе режима доступа для чтения потребуется указать файл отмены (undo который будет создан в процессе восстановления данных. По умолча нию этот файл создается в папке Backup и называется При необходимости используйте различные имена, чтобы избежать пе резаписи созданных ранее файлов журнала отмены операции восстановления.

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

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

Восстановление файлов данных или групп файлов Если вы хотите восстановить только файлы данных или группы файлов, а не всю БД, установите переключатель Filegroups Or Files на вкладке General. В диалоговом окне Restore Database вы увидите все файлы а также все файлы журнала транзакций, для которых созданы резервные копии. Этот список включает как фай лы данных и группы файлов, для которых были созданы резервные копии при пол ном резервном копировании БД, так и те, которые сохранены при резервном копи ровании файлов или групп (рис. 9-21).

Рис. 9-21. Выбор файла и группы файлов для восстановления Резервное копирование и баз данных Глава Э После того как вы выберете один или несколько файлов данных для восстановле ния, SQL Server Enterprise определит файлы журнала транзакций, связанные с выбранными файлами, чтобы привести БД в состояние.

Если вы установите переключатель Select A Subset Of Backup Sets, то, кнопку Selection Criteria, фильтровать наборы резервных копий по назва нию диска, дате создания набора копирования или по свойствам файлов. Помните, что для восстановления БД посредством восстановления резервных копий файлов или групп файлов, необходимо восстановить все файлы журнала транзакций, которые яв ляются более поздними, чем вами файлы данных. Это делается для того, чтобы гарантировать целостность БД.

9-22. Определение критерия для фильтрации наборов резервных копий Упражнение 6. Полное восстановление базы данных В этом упражнении вы выполните полное восстановление БД с помощью SQL Server Enterprise Manager.

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

2. В дереве консоли SQL Server Enterprise Manager щелкните правой кнопкой экзем пляр сервера по умолчанию и выберите Stop.

SQL Server Enterprise Manager выдаст системный запрос на подтверждение оста новки службы SQL Server Service.

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

Откроется окно Service Control Failure с запросом на подтверждение остановки службы SQL Server Agent.

4. Щелкните Yes.

5. Откройте Windows Explorer.

6. В поле Address введите SQL flMSSQL\Data и нажмите клавишу Enter.

7. Переместите файл на Рабочий стол.

8. Закройте Windows Explorer.

Занятие 3 пользовательских баз данных.Х > 9. В дереве консоли SQL Server Enterprise Manager раскройте экземпляр сервера по умолчанию.

Обратите внимание, что через некоторое время SQL Server Enterprise Manager пустит службу SQL Server и подключится к экземпляру по умолчанию.

10. В дереве консоли Databases.

В области просмотра свойств объектов содержится список БД, причем БД SSEMDB будет помечена как подозрительная (так как вы переместили ее файл данных).

Правой кнопкой щелкните SSEMDB, выберите All Tasks, затем Ч Backup Database.

Откроется окно SQL Server Backup Ч SSEMDB.

12. Установите переключатель Transaction Log.

13. В группе элементов управления Destination щелкните кнопку Add.

Откроется окно Select Backup Destination.

14. Установите переключатель Backup Device и в списке устройств резервного копи рования выберите SSEMDBTLogBackup.

Щелкните ОК.

16. Проверьте, что в группе Destination указан только один набор резервных копий SSEMDBTLogBackup.

17. Проверьте, что установлен переключатель Append To Media.

18. Перейдите на вкладку Options.

19. Снимите флажок Remove Inactive Entries From Transaction Log и щелкните ОК.

Откроется окно Backup Progress, в котором будет отражаться процесс создания резервной копии. После завершения резервного копирования откроется окно SQL Server Enterprise Manager, подтверждающее успешное окончание резервного пирования.

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

21. В дереве консоли SQL Enterprise Manager правой кнопкой щелкните SSEMDB, выберите All Tasks и щелкните Restore Database.

Откроется окно Restore Database, в котором будут перечислены все наборы резер вных необходимые для восстановления БД SSEMDB. Обратите внимание, что SQL Server Enterprise Manager выбрал полную и дифференциальные копии БД, а также все резервные копии журнала транзакций, созданные после дифференци альной копии (всего выбрано 3 из 4 резервных копий журнала транзакций).

22. Щелкните ОК, чтобы восстановить БД SSEMDB.

Откроется окно Restore Progress, отражающее процесс восстановления, После за вершения восстановления откроется окно SQL Server Enterprise Manager, подтвер ждающее окончание восстановления.

23. ОК.

24. В дереве консоли раскройте SSEMDB и Tables.

Вы увидите список таблиц БД SSEMDB.

25. В правой панели щелкните Customer правой кнопкой и выберите Open Table\Re turn All Rows.

В окне Data Table In On будет содержимое таблицы Customer после ее восстановления.

26. что SQL Server Enterprise Manager восстановил все 33 записи таблицы и закройте окно Data In Table In On He закрывайте SQL Server Enterprise Manager.

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

При восстановлении БД на другом экземпляре SQL Server 2000 с SQL Server Enterprise Manager сначала необходимо создать БД SQL Server 2000, в которую вы будете восстанавливать БД резервной копии. Обычно используют имя восста навливаемой базы, пути к файлам также оставляют прежними. Если вы выбираете другое имя, то при восстановлении на другом экземпляре SQL Server 2000 вам нужно установить флажок Force Restore Over Existing Database на вкладке Options диалого вого окна Restore Database. Если вы решили использовать другой физический путь к файлам, измените пути восстановления для файлов БД.

После того как вы создали БД, в которую будете восстанавливать БД из копии, вы должны воспользоваться информацией о каждом наборе резервных копий исходной БД, чтобы выполнить восстановление. Это необходимо потому, что БД msdb этого экземпляра SQL Server 2000 не содержит информацию о резервных копиях БД, кото рую нужно восстановить. Для начала щелкните правой кнопкой БД в дереве консо ли, выберите Tasks и щелкните Restore Database. На вкладке General диалогового окна Restore Database установите переключатель From Device (рис. 9-23).

Рис. 9-23. Выбор устройства для восстановления Чтобы выбрать устройство копирования, с которого вы будете восста навливать данные, щелкните кнопку Select Devices, в диалоговом окне Choose Restore Devices выберите тип устройства (диск или ленту), затем щелкните кнопку Add (рис. 9-24). Это необходимо, потому что в данной системе нет информации об уст ройствах резервного копирования для восстанавливаемой БД.

Выбрав устройство для восстановления данных, установите соответствующие зна чения параметров Вы можете просмотреть содержимое каждого на бора резервных копий на устройстве резервного копирования, а также восстановить определенный набор резервных копий. Также можно полностью восстановить БД или же оставить ее в состоянии, восстановление дополнительных журна лов транзакций. Помимо этого вам предоставляется возможность считать информа Занятие 3 баз данных о наборе резервных копий с определенного устройства и добавить ее к БД msdb (рис. 9-25).

Рис. 9-24. Добавление устройства, с которого будут считаны данные Рис. 9-25. Выбор параметров, метод восстановления Какой бы путь вы не выбрали, в каждый момент времени вы должны работать только с одним набором резервных копий. Таким образом, если вы хотите поместить в БД msdb информацию о наборах резервного копирования с различных экземпляров SQL Server 2000, с трех устройств резервного копирования, содержащих всего семь наборов резервных копий, вам прочитать семь наборов резервных ко пий, чтобы выполнить восстановление БД или же добавить информацию в БД msdb.

В этом случае Transact-SQL позволит сделать это быстрее, чем SQL Server Enterprise Manager.

Восстановление состояния БД на определенный момент времени Если вы решили восстановить БД до состояния на определенный момент времени, вы можете восстановить один или несколько наборов резервных копий и оставить БД в невосстановленном (no recovery) или резервном (standby) состоянии в промежутке между операциями восстановления каждого журнала транзакций. Если БД находится копирование и баз данных в резервном состоянии, вы можете просматривать ее состояние после каждого вос становления до восстановления дополнительных файлов журнала транзакций. Опре делив момент времени, на который вам необходимо восстановить состояние БД, в диалоговом окне Restore Database на вкладке General установите флажок Point In Time Restore и выберите дату и время, на которых операция восстановления должна оста новиться (рис. 9-26).

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

Хотя вы можете восстановить состояние БД до именованной отметки (named mark) так же как и на определенный момент времени, для этого вы должны использовать Упражнение 7. Восстановление состояния базы данных на определенный момент времени В этом упражнении вы с помощью SQL Server Enterprise Manager восстанови те БД по состоянию на определенный момент времени.

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

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

В дереве консоли щелкните правой кнопкой выберите All Tasks, затем Ч Restore Database.

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

Занятие 3 баз данных talL/M* 4. В группе элементов управления Parameters отмените выбор всех наборов резерв ных копий, выбранных SQL Server Enterprise Manager, и установите флажок Full SSEMDB Database Backup #1. Проверьте, что другие наборы не выбраны.

5. Перейдите на вкладку Options.

6. Установите переключатель Leave Database Nonoperational But Able To Restore Additional Transaction Logs и щелкните ОК.

Откроется окно Restore Progress, отражающее процесс восстановления. После за вершения восстановления откроется окно SQL Server Enterprise Manager, ждающее успешное окончание процесса восстановления.

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

Обратите внимание, что в дереве консоли база SSEMDB помечена как загружае мая (Loading). Вы не можете просматривать ее объекты.

8. В дереве консоли SQL Server Enterprise Manager правой кнопкой SSEMDB, выберите All Tasks, затем Ч Restore Database.

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

9. В списке наборов резервных копий отмените выбор, SQL Server Enter prise Manager, и установите флажок Full SSEMDB Database Backup Проверьте, что другие наборы не выбраны.

10. Перейдите на вкладку Options.

Установите переключатель Leave Database Read-Only And Able To Restore Additional Transaction Logs и щелкните ОК.

Откроется окно Restore Progress, в котором будет отражаться ход восста новления. После завершения восстановления откроется окно SQL Server Manager, успешное окончание процесса восстановления БД SSEMDB.

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

Обратите внимание, что в дереве консоли БД SSEMDB помечена как доступная только для чтения (read-only).

13. В дереве консоли щелкните Tables.

14. В правой панели щелкните Customer правой кнопкой и выберите Open Table\Re turn All Rows.

В окне Data In Table In On будет показано содержимое таблицы Customer после восстановления. Обратите внимание, что вос становлена только 21 запись. Закройте окно Data In Table 15. В дереве консоли щелкните SSEMDB правой кнопкой и выберите All Database.

Обратите внимание, что SQL Server Enterprise Manager выбрал оставшиеся журна лы записи транзакций.

В списке наборов резервных копий отмените выбор, сделанный SQL Server Enter prise Manager и пометьте флажок SSEMDB Transaction Log Backup #1. Проверьте, что другие наборы не выбраны.

17. Перейдите на вкладку Options.

18. Установите переключатель в положение Leave Database Read-Only And Able To Restore Additional Transaction Logs и щелкните ОК.

Резервное и данных Глава Откроется окно Restore в котором будет ход процесса восста новления. После завершения восстановления откроется окно SQL Server Enterprise Manager, подтверждающее успешное окончание процесса восстановления БД SSEMDB.

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

20. В дереве консоли щелкните Tables.

21. В правой панели щелкните Customer правой кнопкой и выберите Open Table\Re All Rows.

В окне Data In Table In On будет показано содержимое таблицы Customer после восстановления.

22. Обратите внимание, что только 23 записи (добавлено 2 записи).

Закройте окно Data In Table In On 23. В дереве консоли правой кнопкой щелкните выберите All Tasks, затем Ч Restore Database.

Обратите внимание, что SQL Server Enterprise Manager выбрал оставшиеся журна лы записи транзакций.

24. В списке наборов резервных копий отмените выбор, сделанный SQL Server Enter prise Manager и пометьте флажок SSEMDB Transaction Log Backup #2. Проверьте, что другие наборы не выбраны.

25. Перейдите на вкладку Options.

26. Установите переключатель в Leave Database And Able To Restore Additional Transaction Logs и щелкните ОК.

Откроется окно Restore в котором будет отражаться ход процесса восста новления. После завершения восстановления откроется окно SQL Server Enterprise Manager, подтверждающее успешное окончание процесса БД SSEMDB.

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

28. В дереве консоли щелкните 29. В правой панели щелкните Customer правой кнопкой и выберите Open Table\Re All Rows.

В окне Data In Table In On будет показано содержимое Customer после восстановления.

30. Обратите внимание, что восстановлена только 31 запись (добавлено 8 записей).

Закройте окно Data In Table In On В дереве консоли правой кнопкой щелкните SSEMDB, выберите All Tasks, затем Ч Restore Database. Обратите что SQL Server Enterprise Manager выбрал оставшиеся журналы записи транзакций.

32. Расширьте поле Backup Set Date, чтобы увидеть дату и время.

33. Пометьте флажок Point In Tims Restore.

Откроется окно Point In Time Restore.

34. Выберите время на секунд позже времени создания третьей резервной копии журнала транзакций и щелкните ОК.

35. Щелкните ОК, чтобы восстановить базу к определенному моменту времени.

Откроется окно Restore Progress, ход процесса восстановления. Пос ле завершения восстановления откроется окно SQL Server Enterprise Manager, под тверждающее успешное окончание процесса восстановления БД SSEMDB.

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

3 Восстановление баз Так как мы работаем с небольшими объемами БД, используемая в этом упражнении, не может отразить эту особенность. Выбор интервала в 15 секунд произволен и не показывает разницу в сравнении с восстановлением Transaction Log Backup #3. Однако, в реальных системах это будет заметно.

37. В дереве консоли щелкните Tables.

38. В правой панели щелкните Customer правой кнопкой и выберите Open Table\Re Ail Rows. В окне Data In Table In On будет показано содержимое Customer после восстановления.

39. Обратите внимание, что восстановлены только 32 записи. Закройте окно Data In Table In On 33 записи не добавлены 40. Закройте SQL Server Enterprise Manager.

Восстановление с использованием Transact-SQL Восстанавливать БД и журналы транзакций можно также с команд BASE и RESTORE LOG Transact-SQL. Их синтаксис и необязательные параметры описаны в SQL Server Books Online. В командах резервного копирования Transact-SQL требует ся указывать ту же информацию, что и при использовании SQL Server Enterprise Manager, но для понимания синтаксиса операторов Transact-SQL необходимо попрак тиковаться в их использовании. Кроме того, в Transact-SQL есть ряд параметров, предоставляющих дополнительные возможности для управления рабо той с резервными копиями. Большинство из них связано с записью на ленточный накопитель, но перечисленные ниже параметры могут быть использованы с любым типом носителей;

доступны же они только в Transact-SQL.

Х Вы можете ограничить доступ к только что восстановленной БД.

Х Вы можете переместить БД на новое место, используя необязательный параметр MOVE.

Х Вы можете установить пароль.

Х Вы можете заново начать прерванное восстановление Х Вы можете восстановить состояние БД до именованной метки.

Как и команды BACKUP, команды RESTORE DATABASE и RESTORE LOG ка жутся достаточно сложными. С помощью следующих примеров вы научитесь их ис пользовать. Вероятно, главное отличие от ситуации, когда вы используете SQL Server Enterprise Manager при восстановлении, состоит в том, что при использовании Tran sact-SQL вы должны верно и в правильном порядке указать наборы резервных копий, в том числе номер набора резервных копий на наборе носителей.

Полное восстановление базы данных Команды RESTORE DATABASE и RESTORE LOG могут быть как очень простыми, так и очень сложными.

В следующем примере происходит восстановление БД из дискового файла RESTORE Northwind FROM DISK = В следующем примере восстанавливается полная резервная копия БД Northwind с устройства затем восстанавливается резер вная копия (набор резервных копий 2 на устройстве) и две копии журнала транзак ций (наборы 4 и 5 на устройстве). Восстановление происходит после завершения становления второго журнала.

Резервное и данных Глава DATABASE FROM WITH NORECOVERY DATABASE Northwind FROM WITH FILE 2, NORECOVERY RESTORE LOG Northwind FROM NorthwindTLogBackup WITH FILE = 4, NORECOVERY RESTORE LOG Northwind FROM WITH FILE Восстановление файла данных или группы файлов В следующем примере восстанавливается дополнительный файл данных БД North wind с устройства File_Backup. БД остается в режиме NO RECOVERY, а после вы полнения каждых 25% процесса восстановления сообщение. Далее вос станавливается журнал транзакций (набор 2 на устройстве), по завершении этого БД является восстановленной полностью. После восстановления доступ к БД имеют только администраторы, RESTORE DATABASE Northwind FILE = FROM WITH RESTRICTEI)_USER, STATS = RESTORE LOG Northwind FROM NorthwindTLogBackup WITH FILE = Восстановление с необязательного параметра Move В следующем примере восстанавливается полная резервная копия БД Northwind и журнал транзакций. Файл данных перемещается в а файл журнала транзакций Ч в Кроме носитель резервной копии должен включать имя набора носителей RESTORE DATABASE Northwind FROM NorthwindFullBackup WITH NORECOVERY, MEDIANAME =, MEDIAPASSWORD, MOVE = TO MOVE = TO, RESTORE LOG Northwind FROM NorthwindTLogBackup Восстановление до резервного состояния В примере восстанавливается полная резервная копия БД Northwind с устройства и копии журнала транзакций (наборы резервных копий 4 и 5), БД является восстановленной в резервном состоянии после окончания восстановления второго журнала транзакций.

RESTORE DATABASE Northwind FROM NorthwindFullBackup WITH NORECOVERY RESTORE LOG Northwind FROM NorthwindTLogBackup WITH FILE = 4, NORECOVERY RESTORE LOG Northwind FROM NorthwindTLogBackup WITH FILE = 5, STANDBY TO Восстановление на определенный момент времени В примере полная резервная копия БД Northwind восстанавливается с устройства NorthwindFullBackup;

также восстанавливаются и копии журнала 3 ций (наборы резервных копий 4 и Восстановленная на 2 октября 2000 г.

БД в резервном состоянии после окончания восстановления второго жур нала транзакций.

RESTORE DATABASE FROM WITH NORECOVERY RESTORE LOG Northwind FROM WITH FILE = 4, NORECOVERY RESTORE LOG Northwind NorthwindTLogBackup WITH FILE = 5, RECOVERY, STOPAT = 'Oct 2, 2000 5:08: Упражнение 8. Восстановление базы данных средствами Transact-SQL В этом упражнении вы с помощью нескольких сценариев Transact-SQL вос становите полную и резервные копии БД, а также вос становите две резервные копии журнала транзакций БД SSEMDB.

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

2. Раскройте окно SQL Server Query 3. В панели инструментов Query Analyzer кнопку Load SQL Script.

Откроется окно Open Query 4. Откройте файл из папки Откроется сценарий Transact-SQL, восстанавливающий полную резервную копию БД, дифференциальную резервную копию БД и затем две резервные копии жур нала транзакций. БД останется в резервном состоянии, используя файл отката.

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

5. Чтобы выполнить сценарий SSEMDB_Restore щелкните кнопку Execute Query.

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

6. Откройте SQL Server Enterprise Manager.

7. В дереве консоли раскройте контейнер SQL Server Group, затем Ч контейнер эк земпляра сервера по умолчанию и выберите Databases. Обратите что БД SSEMDB находится в резервном состоянии и доступна только для 8. Раскройте окно SQL Query Analyzer.

9. В панели инструментов щелкните кнопку Load SQL Script.

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

10. Откройте файл SSEMDB_Restore2.sql из папки Откроется сценарий Transact-SQL, восстанавливающий последнюю резервную копию журнала транзакций и затем БД. Сценарий также со держит оператор SELECT, чтобы вывести результаты восстановления.

Чтобы выполнить сценарий щелкните кнопку Execute Обратите внимание, что в области результатов восстановлено 33 записи о тах. Также обратите внимание на восстановление каждого набора резервных ко пий (см. вкладку Messages).

274 Резервное и бзз данных Глава 12. Раскройте окно SQL Server Enterprise Manager.

В дереве консоли выберите экземпляр сервера по умолчанию, Databases правой кнопкой и выберите Обратите внимание, что БД SSEMDB уже не находится в резервном состоянии и доступна не только для 14. Закройте SQL Server Enterprise Manager и SQL Query Analyzer.

Резюме Вы можете восстанавливать БД с помощью SQL Server Enterprise Manager или Tran sact-SQL. SQL Server Enterprise Manager помогает определить оптимальную последо вательность файлов резервных копий, при использовании Transact-SQL вы должны это делать сами. И в SQL Server Enterprise и в Transact-SQL есть возмож ность определять содержимое носителя резервной копии.

4 и системных данных Занятие 4. Восстановление и повторное создание системных баз данных Если БД master повреждена или экземпляр SQL Server 2000 перестал работать, необ ходимо либо восстановить БД master из резервной копии, либо повторно создать ее.

На этом занятии вы научитесь восстанавливать и заново создавать БД master.

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

восстановить БД master из резервной копии;

заново создавать системные БД.

Продолжительность занятия Ч около 15 минут Восстановление базы данных master Если БД master работает, но повреждена (например, если удалены все учетные запи си), вы можете восстановить ее из последней полной резервной копии. Однако все изменения, сделанные после создания копии, которую вы восстановили, будут уте ряны. Поэтому, когда вы создаете различные объекты в этой БД, следует создавать и сохранять сценарии. Также при возможности надо создавать зеркальные копии сис темных БД, используя RAID 1.

Чтобы восстановить БД master, запустите SQL Server 2000 в однопользовательском (single-user) режиме с параметром из командной строки. Воспользуйтесь для это го окном сеанса MS-DOS или диалоговым окном Run.

Sqlservr При этом запустится SQL Server 2000 как приложение из окна консоли. Текст, кото рый вы увидите, совпадает с текстом журнала ошибок SQL Server 2000 (рис. 9-27).

Затем запустите SQL Query Analyzer и восстановите последнюю резервную копию БД master с помощью известных вам команд для восстановления пользовательских БД.

MI -i Рис. Запуск SQL Server 2000 как окна консоли Гл В следующем примере БД восстанавливается с устройства Full Backup (рис. 9.28);

RESTORE DATABASE master FROM та.тш A Fund and TIM * V Рис. 9-28. Восстановление БД master После завершения БД master приложение SQL Server 2000, запу щенное в однопользовательском режиме, прекратит свою работу. Теперь вы можете запустить SQL Server 2000 в обычном режиме. Если ваша резервная копия БД создана недавно и содержит все важные изменения, вы снова можете работать. Если надо будет заново создавать нужные объекты и, возможно, повторно подключить пользо вательские БД. В зависимости от причины, по которой вы восстанавливали БД master, вам также может понадобиться восстановить другие системные БД.

Воссоздание системных баз данных Если ваша БД master больше не работает, восстановить ее сложнее. Вам придется повторно создать системные БД временных файлов (или заново установить SQL Server 2000). Чтобы перестроить системные БД, воспользуйтесь утилитой Rebuildm.exe из папки C:\Program SQL При этом вы исполь зуете оригинальные файлы данных системных БД для того, чтобы перестроить каж дую базу в ее первоначальное состояние работая в диалоговом окне Rebuild Master.

Вы должны иметь доступ к исходным файлам программы установки SQL Server на сетевом или локальном диске (рис. 9-29).

Примечание Снимите в окнах свойств исходных файлов данных флажок только для иначе при работе программы Rebuildm.exe произойдет сбой.

Щелкните кнопку Rebuild. Появится окно Rebuild Master, предупреждающее, что вы собираетесь повторно создать и перезаписать системные БД (рис. 9-30).

После окончания повторного создания БД, необходимо восстановить БД master, как было описано ранее. Затем восстановите все системные БД (обязательно восста новите БД Если вам нужна БД model, восстановите ее. Если вы используете репликацию, восстановите БД distribution. О рассказывается в главе 15.

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

Занятие и создание системных баз данных Рис. 9-29. базы данных master Рис. 9-30. Окно Rebuild Master Резюме При повреждении БД master вам понадобится восстановить ее или создать заново.

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

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

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

2. Вы Ч начинающий администратор БД и хотите создать сценарий Transact-SQL для автоматизации резервного копирования. Но его синтаксис кажется вам слож ным. Какие средства могут облегчить понимание синтаксиса Transact-SQL и па раметров резервного копирования?

3. Какое важное преимущество имеет SQL Server Enterprise Manager перед Transact SQL при восстановлении БД?

4. Каково главное отличие процесса восстановления БД master от процесса восста новления других БД?

Управление доступом к SQL Server, Проверка подлинности Авторизация 3. Создание и управление учетными записями В этой главе Прежде чем развернуть БД SQL Server 2000 в необходимо решить воп росы их защиты и назначить пользователям и администраторам соответствующие разрешения доступа. В этой главе вы узнаете, как SQL Server 2000 управляет досту пом к серверу и БД, включая назначение разрешений на уровне сервера и на уровне БД. Также вы научитесь создавать учетные записи для пользователей при помощи средств проверки подлинности Windows и SQL Server.

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

Х минимальным аппаратным требованиям, перечис ленным в главе 2;

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

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

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

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

как SQL Server 2000 проверяет подлинность пользователей;

выбрать режим проверки подлинности в SQL Server 2000;

изменить режим проверки подлинности в SQL Server 2000;

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

Продолжительность занятия Ч около минут Проверка подлинности в SQL Server Чтобы пользователь мог выполнять какие-либо действия или получить доступ к БД в системе SQL Server 2000, должен создать регистрационную запись, которая предоставит доступ к SQL Server 2000, и назначить ей соответ ствующие разрешения. Регистрационная запись может быть связана с определенной группой или пользователем Windows NT 4.0/2000 или с записью пользователя SQL Server 2000 (учетная запись SQL Server 2000). Подробнее о создании регистрацион ных записей, связанных с учетными записями SQL Server 2000 или пользователями и группами Windows NT 4.0/2000 Ч в главе 3. О назначении и управлении разрешени ями учетной записи Ч в главе 11.

Подключаясь к SQL Server 2000, пользователь выбирает вид проверки подлиннос ти средствами Windows или средствами SQL Server 2000) и вводит имя и пароль. Чтобы пользователь мог войти в систему, SQL Server 2000 должен проверить, является ли он пользователем и имеет ли право устанавливать соединение с SQL Server, т. е. быть проверены регистрационные реквизиты пользователя.

Проверка подлинности средствами Windows Если пользователь прошел подлинности в домене и является зарегистри рованным пользователем ОС предложит SQL Server 2000 доверять результа там этой проверки и предоставить доступ на основании указанных имени и пароля.

При этом для подтверждения пользователя передается билет Kerberos (в Windows 2000) или маркер (в Windows NT 4.0). SQL Server 2000 проверяет аутентичность билета Kerberos или маркера и сравнивает полученные дан ные со списком пользователей и групп, которым разрешен доступ. На основе этой информации SQL Server 2000 предоставляет или отказывает в доступе.

Подключение, средства проверки подлинности Windows, называется доверенным (trusted connection).

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

Сравнение типов проверки подлинности В табл. 10-1 перечислены различные возможности зашиты, предоставляемые при про верке подлинности средствами Windows и средствами SQL Server 2000.

Табл. 10-1. Возможности защиты проверке средствами Windows и SQL Server Проверка подлинности подлинности средствами Windows SQL Server Имя и пароль, указываемые пользователем Windows не проверяет подлинность для входа в домен, передаются контроллеру пользователя домена Windows в зашифрованном виде Когда пользователь, прошедший проверку Имя и пароль, которые вводит подлинности, передает имя и пароль SQL пользователь, передаются Server 2000, билет или маркер в незашифрованном виде доступа зашифровываются (если не включен протокол SSL) В Windows NT 4.0/2000 действует политика Политики пароля нет: он может паролей (требуется сложный пароль, быть любой длины и сложности, срок действия пароля ограничен) его время действия не ограничено В Windows NT 4.0/2000 действует политика SQL Server 2000 не блокирует блокировки учетных записей (при нескольких учетные записи: пароль можно попытках ввода неправильного пароля) сколько угодно раз Клиентские сетевые библиотеки и проверка подлинности Чтобы подключиться к серверной клиенты SQL Server 2000 ис пользуют аналогичную клиентскую библиотеку. Для поддержки нужного протокола пара сетевых библиотек должна быть активна на клиенте и на сервере. На компьютерах с Windows NT 4.0/2000 клиентскими библиотеками по умолчанию являются TCP/IP Sockets и Named Pipes;

они используются в той очеред ности, в какой перечислены здесь. В большинстве случаев вам не придется изменять настройки сетевых библиотек. Однако если возникают проблемы с подключением к SQL Server 2000, необходимо проверить настройки сетевых библиотек. Подключить 282 Управление к SOL 2000 Глава новые сетевые библиотеки, задать для них нестандартные параметры соединения и определить очередность библиотек на клиентском компьютере мож но с помощью утилиты SQL Server Client Network Utility.

Запустить утилиту SQL Server Client Network Utility можно из меню SQL Server.

Рис. 10-1. Утилита SQL Server Client Network UtUity Примечание Можно реализовать принудительное SSL-шифрование. Если вы поме тите флажок, система SQL Server 2000, к которой вы также должна будет использовать шифрование. С помощью SQL Server Client Network Utility вы можете установить шифрование в серверных библиотеках При использовании сетевых библиотек Named Pipes и Multiprotocol требуется, что бы прошел проверку подлинности в домене Windows, и только потом он может подключиться к SQL Server 2000, используя средства проверки подлиннос ти Windows или SQL Server 2000. Это не создает проблем, если вы используете Win dows-клиент и уже зарегистрировались в том же самом домене (или доверенном до мене), к которому принадлежит компьютер с SQL Server 2000. Если же вы пытаетесь подключиться к SQL Server 2000 с компьютера, не имеющего доверенного соедине ния с доменом, то при использовании библиотек Named Pipes и Multiprotocol вы не сможете этого сделать (однако, используя библиотеку TCP/IP Sockets, вы можете под ключиться, если введете правильное имя и пароль).

Примечание Легче всего соединение (не входя в домен), подключившись к домена, к которому открыт доступ.

Ни библиотека TCP/IP ни любая другая не требует начальной проверки подлинности в домене Windows. Пользователь (или приложение) может попытаться подключиться к SQL Server 2000, используя сетевой протокол TCP/IP и библиотеку TCP/IP Sockets, с любого компьютера, который может установить соединение с SQL Server 2000. Поэтому вам необходимо знать, как обезопасить домен Windows и свой экземпляр SQL Server 2000, чтобы защитить данные.

Занятие 1 Проверка Выбор режима проверки подлинности для SQL Server При установке SQL Server 2000 вы выбираете режим проверки подлинности, который будет использовать ваша система: режим проверки подлинности Windows или сме шанный Примечание Если ваш экземпляр SQL Server 2000 под управлением Windows вы можете использовать только проверку подлинности средствами SQL Server 2000.

Проверка подлинности Windows Если режим проверки подлинности (Windows Authentication Mode), пользователь может подключиться к SQL Server 2000 только с помощью средств про верки подлинности Windows (такое соединение называется доверенным). Windows NT 4.0/2000 обеспечивает различные методы для зашиты среды которые невоз можно перечислить в этой книге, но которые очень важны для зашиты вашего экзем пляра SQL Server 2000. К ним относятся политики учетных записей и групп, прокси серверы, брандмауэры, маршрутизаторы и протокол (Internet Protocol Security).

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

Смешанный режим проверки подлинности При смешанном режиме проверки подлинности (Mixed Authentication Mode) тель может подключиться к SQL Server 2000 с помощью средств проверки подлинно сти Windows или SQL Server 2000. Этот режим необходим для прямого подключения к SQL Server 2000 клиентов Novell NetWare, Apple Macintosh, Banyan Vines, UNIX и Linux. Однако при использовании этого режима данные защищены меньше, чем при режиме проверки подлинности Windows, и поэтому его следует использовать только в случае крайней необходимости.

Смена режимов проверки Для смены режимов после установки используйте SQL Server Enterprise Manager.

В дереве консоли щелкните правой кнопкой свой экземпляр сервера и выберите Properties. На вкладке Security диалогового окна SQL Server Properties установите пе реключатель SQL Server And Windows или Windows Only, чтобы изменить режим про верки и щелкните ОК 10-2).

Теперь выйдите из системы и перезапустите SQL Server, чтобы установить режим проверки. SQL Server Enterprise Manager запросит, нужно ли перезагрузить сервер сейчас (рис. 10-3).

Примечание Если запушена служба SQL Server Agent, SQL Server Enterprise выдаст сообщение с вопросом, следует ли остановить и перезапустить также и ее, од нако сам не выполнит перезапуск. Вам придется сделать это вручную.

284 Управление доступом к SQL Рис. 10-2. Переключение режимов подлинности Рис. SQL Server Enterprise Manager запрашивает подтверждение на остановку и SQL Server Упражнение Выбор режима проверки подлинности для SQL Server В этом упражнении вы сиените режим проверки подлинности Windows на смешанный режим.

Чтобы выбрать проверки подлинности для SQL Server В дереве консоли SQL Server Enterprise Manager последовательно раскройте кон тейнеры Microsoft SQL Servers и Microsoft SQL Group.

2. Щелкните правой кнопкой экземпляр по и выберите Properties.

3. Откроется окно SQL Server Properties (Configure) Ч 4. Перейдите на вкладку Security.

5. Установите переключатель SQL Server And Windows и щелкните ОК.

Система выдаст вопрос, хотите ли вы перезапустить сервер 6. Щелкните Yes.

Система запросит, требуется ли остановить службу и все связанные с нею службы.

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

При делегировании учетной записи пользователя требуется, чтобы на всех уча ствующих серверах была установлена ОС Windows поддерживался протокол Kerberos и использовалась служба Active Directory. При использовании Active Directory для передачи соответствующих разрешений пользователь должен иметь право деле гирования. Чтобы предоставить пользователю эти разрешения, соответству ющий флажок в диалоговом окне свойств учетной записи, из оснастки Active Directory Users And Computers (рис.

Рис. 10-4. Выбор компьютера, которому будет делегирование Кроме того, на компьютере, где работает система SQL Server 2000, должно быть разрешено делегирование. Для выполнения распределенных запросов на двух SQL Server 2000 на различных компьютерах оба компьютера должны использовать делеги рование. Это свойство учетной записи устанавливается в диалоговом окне Properties, доступном из Active Directory Users And Computers (рис. 10-5).

И наконец, чтобы делегирование учетной записи пользователя, у системы SQL Server 2000 должно быть основное имя (Service Principal Name, SPN). SPN определяется с помощью утилиты Setspn из состава Windows 2000 Resource Kit. Чтобы задать постоянное имя SPN, назначаемое администратором домена Win dows учетной записи, используемой службой SQL Server, воспользуйтесь утилитой Setspn. Постоянное имя SPN назначается на основании номера используемого порта.

Разным экземплярам SQL Server и разным портам присваиваются разные SPN. Что 288 Управление доступом к SQL Server бы разрешить делегирование, используйте сетевую библиотеку а не Named Pipes, поскольку SPN определенному сокету TCP/IP (TCP/IP socket).

Рис. 10-5. Определение параметров учетных записей компьютеров, которым будет доверено В следующем примере SPN для экземпляра SQL Server 2000 с именем использующего порт 1433 и учетную запись поль зователя домена Setspn -a sqlservice Также вы можете задать назначаемое службой SQL Server 2000, под учетной записью локальной системы. При этом SQL Server ав томатически регистрирует SPN при запуске системы. Срок действия временного SPN имени заканчивается при остановке службы SQL Server. Если вы хотите изменить по стоянное имя на временное, удалите зарегистрированное ранее SPN-имя.

В следующем примере удаляется SPN для экземпляра SQL Server 2000 с именем использующего порт 1433 и учетную запись поль зователя домена SQLService:

sqlservice Если вы хотите учетную запись службы SQL Server, удалите все существующие и создайте новые SPN-имена.

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

288 Управление доступом к SQL Глава Занятие 2. Авторизация После проверки подлинности пользователь может выполнять только административ ные задачи и обращаться только к тем БД, для которых ему были предоставлены со ответствующие разрешения доступа. На этом занятии вы узнаете о различных мето дах назначения разрешений пользователям. Вы познакомитесь с ролями сервера (их также называют ролями сервера). Вы узнаете, какие разрешения можно определять на уровне БД. В их число входят разрешения владельца БД (database owner), разрешения роли БД (database roles), разрешения на выполнение операторов (statement permissions), разрешения доступа к (object permissions) и роли при ложений (application roles).

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

описать роли сервера;

описать фиксированные роли и пользовательские роли БД;

рассказать о разрешениях владельца БД;

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

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

Примечание Концепция ролей сервера совпадает с концепцией встроенных групп Windows 2000.

В табл. 10-2 перечислены 8 ролей сервера SQL Server 2000.

Табл. 10-2. Роли сервера в SQL Server Роль сервера Член роли может Sysadmin Выполнять любую в любой БД SQL Server 2000. По умолчанию учетная запись SQL Server sa и все члены группы Windows Administrators являются членами данной роли Конфигурировать SQL Server 2000 с помощью системной хранимой процедуры и останавливать службы SQL Server 2000.

Рекомендуется добавить сюда членов встроенной группы Windows Server Operators Устанавливать и изменять параметры конфигурации удаленных и связанных а также параметры репликации. Кроме того, пользователи также включать некоторые хранимые процедуры, например в число выполняемых при запуске системы. Рекомендуется добавить сюда членов встроенной группы Windows Server В табл. 10-4 перечислены фиксированные роли уровня БД в Server 2000.

Табл. 10-4. Фиксированные роли базы в SQL Server Роль БД Права участника этой роли Может выполнять любые задачи в БД SQL Server 2000. Имеет те же права, что владельцы БД и участники роли DBO db_accessadmin Может добавлять в БД и удалять из нее пользователей Windows NT 4.0/2000 или SQL Server (с системной хранимой процедуры Может управлять разрешениями, записями участников и создателей объектов в БД (используя операторы GRANT, REVOKE и DENY) Может добавлять, изменять и удалять объекты (используя операторы CREATE, ALTER и DROP) Может выполнять команды DBCC, процесс фиксации транзакций, создавать резервные копии (используя операторы CHECKPOINT и BACKUP Может считывать данные из пользовательских таблиц и представ лений в БД (имеет право использовать оператор SELECT) Может изменять или удалять из пользовательских таблиц и представлений в БД право использовать операторы INSERT, UPDATE и DELETE) Не может считывать данные из пользовательских таблиц представ лений в БД (не имеет права использовать оператор SELECT).

Эта роль может использоваться с ролью чтобы предоставить администратору право создавать объекты, принад лежащие роли DBO, и при этом запретить чтение важных или секретных данных, содержащихся в этих объектах db Не может или удалять данные из ц в БД (не имеет права использовать операторы INSERT, UPDATE и DELETE) Резюме Получив доступ к SQL Server 2000, пользователь должен получить разрешения на выполнение каких-либо действий, При назначении разрешений для выполнения фун кций уровня сервера используются роли сервера. Чтобы предоставить или группам разрешения на работу с БД, используйте роли БД. Вы также можете пре доставлять разрешения на выполнение операторов или управление объектами. Чтобы предоставить такие разрешения, можно использовать роли, определенные пользова телем. Можно назначить некоторые разрешения пользователю guest и перечислить разрешения, предоставляемые всем прошедшим проверку подлинности лям, в роли public.

292 Управление к SQL Server 2000 Занятие 3. Создание и управление учетными Чтобы пользователь мог выполнять какие-либо действия в системе SQL Server 2000, он должен подключиться к SQL Server 2000, используя учетную запись, и к БД, ис пользуя регистрационную запись. На этом занятии вы научитесь предоставлять права доступа с SQL Server Enterprise Manager и Transact-SQL, а также просмат ривать с их помощью о доступе.

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

создавать учетные записи с использованием SQL Server Enterprise Manager и Transact-SQL;

просматривать информацию о доступе к SQL Server 2000 и к БД.

Продолжительность занятия около 45 минут Предоставление доступа с использованием SQL Server Enterprise Manager SQL Server Enterprise Manager позволяет в интерактивном режиме сопоставить учет ную записи пользователя или группы Windows NT 4.0/2000 с регистрационной сью, создать регистрационную запись SQL Server 2000 для учетной записи системы защиты SQL Server 2000. Вы использовать непосредственно SQL Server Enter prise Manager или же мастер Create Login Wizard.

Примечание При SQL Server Enterprise Manager за один раз можно создать только одну учетную запись.

Создание учетной записи средствами мастера Create Login Wizard Вы можете вызвать любой мастер SQL Server Enterprise Manager из меню Tools или из панели задач. Любой мастер, в том числе и Create Login Wizard, вызывается из диало гового окна Select Wizard (рис. 10-6).

После запуска Create Login Wizard вам надо будет выбрать режим проверки под линности для создаваемой учетной записи в окне Select Authentication Mode This Login (рис. 10.7).

Если вы выбрали проверку подлинности средствами Windows, то можете привя зать идентификатор учетной записи к пользователю или группе Windows NT 4.0/2000 в окне Authentication With Windows. Вы также можете предоста вить или запретить доступ к серверу этому пользователю или группе (рис. 10-8).

Если вы выбрали проверку подлинности средствами SQL Server, то в окне Authen tication With SQL Server вы должны создать новую регистрационную запись SQL Server 2000. Задайте имя и пароль нового пользователя. Чтобы запретить доступ, удалите учетную запись из списка Logins SQL Server Enterprise Manager (или из sysxlogins БД master). Создание регистрационной записи показано на рис. 10-9.

Создание и учетными Занятие Wizard Data Рис. 10-6. Запуск мастера Create Login Wizard из окна Select Wizard hit Login Select the Рис. 10-7. Выбор режима проверки подлинности для создаваемой учетной записи is the ID Рис. 10-8. Предоставление/запрет доступа к серверу для новой учетной записи к SQL Server with SQL SOL login ID and is used Рис. 10-9. имени регистрационной записи SQL Server После того как вы определили тип учетной записи, сопоставили ее с существую записью или новую, в окне Grant Access To Security Roles выберите для нее роль сервера. Если пользователь не будет обладать правами администратора на уровне сервера, не выбирайте никакую из ролей (рис, 10-10).

the ay Рис. 10-10. Выбор роли сервера для создаваемой учетной записи В окне Access To Databases выберите роль БД (рис. Помните, что шинство ролей сервера (за исключением роли sysadmin) не дают прав доступа к БД.

Все установленные вами параметры для новой учетной записи до ее создания вы можете посмотреть в окне Completing The Create Login Wizard. Чтобы изменить ка кой-нибудь параметр, кнопку Back;

чтобы создать учетную запись, ните Finish (рис. 10-12).

и ID the Рис. 10-11. Предоставление доступа к базам данных Completing the Login the The have Рис. 10-12. процесса создания учетной записи Упражнение 2. Создание учетной записи с помощью мастера Create Login Wizard В этом упражнении вы используете мастер Create Login Wizard для создания учетной записи.

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

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

В окне SQL Server Enterprise Manager будут показаны все деревья Microsoft SQL Server и Event Viewer (Local).

3. В дереве консоли раскройте Microsoft SQL Servers, затем Ч Microsoft SQL Group и экземпляр сервера по умолчанию.

4. В меню Tools выберите Wizards.

Откроется окно Select Wizard.

Управление доступом к SQL Server 5. Раскройте контейнер Database и щелкните Create Login Откроется окно Welcome To The Create Login Wizard.

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

Откроется окно Select Authentication Mode For This Login.

7. Установите переключатель SQL Server Login Information That Was Assigned To Me By The System Administrator Server Authentication) и щелкните Next. Откроет ся окно Authentication With SQL Server.

8. В поле Login ID введите 9. В полях Password и Confirm Password введите password и щелкните Next.

Откроется окно Grant Access To Security Roles.

Щелкните Next. He выбирайте относящиеся к системе безопасности.

Откроется окно Grant Access To Databases.

Пометьте флажок SSEMDB, чтобы разрешить доступ только к этой БД, и те Next.

Откроется окно Completing The Create Login Wizard. Просмотрите параметры учет ной записи, которые вы определили.

Щелкните Finish.

После создания учетной записи появится окно системного сообщения Wizard 13. Щелкните OK, чтобы закрыть окно Wizard Complete.

14. В дереве консоли раскройте контейнер Security и щелкните Logins.

В области просмотра параметров учетная запись Joe будет указана как стандартная.

В Tools выберите SQL Query Analyzer.

Вы подключены к SQL Server с использованием средств аутентификации Windows.

В меню File выберите Connect.

Откроется окно Connect To SQL Server.

37. Пометьте флажок SQL Server Authentication.

В поле Login name введите Joe.

19. В поле Password введите password и щелкните ОК.

Вы подключились к экземпляру SQL Server по умолчанию, используя учетную за пись Joe. Обратите внимание, что в заголовке диалогового окна указано, что вы подключены как Joe.

20. В панели инструментов в списке БД выберите SSEMDB.

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

21. В панели запросов введите * FROM 22. Щелкните кнопку Execute Query. Обратите внимание, что, хотя пользователь Joe и имеет доступ к БД, он не имеет права выполнять оператор SELECT в таблице Customer.

23. Закройте SQL Query Analyzer, не сохраняя изменений.

24. Не закрывайте SQL Server Enterprise Manager.

Создание учетной записи с использованием SQL Server Enterprise Manager Чтобы создать учетную запись непосредственно при помощи SQL Server Enterprise Manager, щелкните правой кнопкой объект Logins в контейнере Security и выберите New Login. На вкладках General, Server Roles и Database Access диалогового окна SQL и записями Server Login Properties Ч New Login вы можете указать те же свойства, что и в мастере Create Login (режим проверки подлинности, доступ к серверу, доступ к БД).

Однако в них содержится и дополнительная Если вы кнопку рядом с полем Name на вкладке General, откроется дополнительное окно SQL Server Login Properties Ч New Login, где вы сможете выбрать домен Windows в раскрываю щемся списке и просмотреть список всех входящих в него пользователей и групп (рис.

10-13).

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

Вы можете запретить доступ к SQL Server пользователю или группе Win dows NT 4.0/2000. В этом случае пользователь не сможет подключиться к SQL Server (даже если он состоит в имеющей другую учетную запись).

На вкладке Server Roles вы сможете выбрать роль сервера для новой записи. Для удобства описание каждой роли сервера представлено в группе Description (рис. 10-14).

Если вы выберете роль сервера и щелкнете Properties, на вкладке General диалого вого окна Server Role Properties Ч вы сможете просмотреть список уча стников данной роли, добавить или удалить учетные записи из списка (рис, Если вы выберете роль сервера System то увидите, что ее участни ками являются члены группы Administrator и учетная запись SQL Server sa. На вклад ке Permissions отображаются разрешения роли сервера sysadmin.

На вкладке Database Access диалогового окна SQL Server Login Properties Ч New Login вы можете определить права доступа к БД и роль БД для учетной записи (рис.

Обратите внимание: новая учетная запись стала членом роли public всех БД. Вы не можете удалить учетную запись из состава этой роли.

298 Управление доступом к SQL Server Рис. 10-14. Выбор роли сервера для создаваемой учетной записи Рис. 10-15. Просмотр учетных членов роли I ID la membei to to ID ta/fi Рис. 10-16. Просмотр разрешений роли сервера Занятие 3 и управление учетными Рис. 10-17. Предоставление к БД Упражнение 3. Создание учетной записи с помощью SQL Server Enterprise Manager В этом упражнении вы используете SQL Server Enterprise Manager для ния учетной записи.

создать учетную при помощи SQL Server Enterprise Manager 1. Откройте Windows Explorer.

2. Откройте файл из папки В окне Windows Script Host выдается что вы добавили 1 пользователя в группу объектов Users. Сценарий Windows Script Host добавляет пользователя Bill с паролем Bill в группу объектов Users контроллера домена (об ратите внимание: этот сценарий создает нового пользователя в текущем домене), 3. Щелкните ОК, чтобы закрыть окно Windows Script Host.

4. Разверните окно SQL Server Enterprise Manager.

5. В дереве консоли SQL Server Enterprise Manager раскройте контейнер Security и щелкните контейнер экземпляра сервера по умолчанию.

6. Щелкните правой кнопкой Logins и выберите New Login.

Откроется окно SQL Server Login Properties Ч New Login.

7. На вкладке General щелкните кнопку справа от поля Name.

8. В списке Names для домена SelfPacedSQL выберите Bill.

9. Щелкните затем Ч ОК. Обратите внимание, что в поле Name теперь указа но Bill.

10. В списке Database выберите БД SSEMDB.

Перейдите на вкладку Server Roles.

12. Пометьте флажок Security Administrators.

Щелкните кнопку Properties. Откроется окно Server Role Properties Ч tyadmin.

14. Перейдите на вкладку Permissions.

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

300 Управление к SOL Server 2000 Глава 15. Щелкните Cancel и на вкладку Database Access.

16. Пометьте флажок рядом с именем БД В списке Database Roles For пометьте флажок рядом с названием роли и щелкните ОК.

Обратите внимание, что пользователь с учетной записью указан в списке Logins как пользователь Windows.

18. Разверните окно Windows Explorer.

19. Откройте файл из папки При выполнении пакета который предоставит всем пользователям Windows 2000 право подключения к локальному SQL Server, в течение нескольких секунд на экране появляется окно утилиты командной строки.

20. Закройте Windows Explorer и SQL Server Enterprise Manager и завершите тельский сеанс в Windows Зарегистрируйтесь на контроллере домена под именем указав пароль password.

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

Откроется окно Connect To SQL Server.

23. Установите переключатель Windows Authentication, чтобы к домену SelfPacedSQL с использованием средств аутентификации Windows.

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

Запустится SQL Query Обратите внимание: в заголовке диалогового окна указано, что вы подключены как и текущей БД является SSEMDB.

25. В панели запросов введите SELECT * FROM 26. Щелкните кнопку Execute Query.

Обратите внимание, что Bill имеет право выполнить этот запрос, потому что явля ется участником группы владельцев БД SSEMDB.

27. Закройте SQL Query Analyzer, сохраняй изменений.

28. Раскройте меню SQL Server и выберите Enterprise Manager.

В окне SQL Server Enterprise будут показаны все серверы Microsoft SQL Server. Event Viewer при этом не отображается. У пользователя Bill свои параметры настройки, поэтому он может сам определять вид консоли SQL Server Enterprise Manager.

29. В дереве консоли последовательно раскройте контейнеры Microsoft SQL Servers, Microsoft SQL Group, сервера по умолчанию и Security.

30. Щелкните правой кнопкой Logins и выберите New Login.

Откроется окно SQL Server Login Properties Ч New Login.

На вкладке General в поле Name введите Ana, 32. Установите переключатель SQL Server Authentication.

33. В поле Password введите password и ОК.

34. В диалоговом окне Confirm Password еще раз введите password и щелкните ОК.

В области отображения свойств выбранных объектов Ana будет обозначена как стандартная учетная запись, 35. На вкладке Security щелкните правой кнопкой Linked Servers.

Обратите внимание, что Bill не имеет права создавать связанные серверы, так как является участником роли сервера setupadmin, но он может создавать учетные записи, потому что является участником роли сервера 3 Создание и учетными 36. Закройте SQL Server Enterprise Manager и завершите пользовательский сеанс Windows 2000.

37. Зарегистрируйтесь в Windows 2000, используя учетную запись Administrator и пароль password.

Создание пользовательской роли БД средствами SQL Server Enterprise Manager Чтобы создать пользовательскую роль с помощью SQL Server Enterprise Manager, рас кройте пункт Databases и выберите ту БД, для которой хотите создать роль. Правой кнопкой Roles и выберите New Database Role. В диалоговом окне Database Role Properties Ч New Database Role щелкните кнопку Add, чтобы просмотреть спи сок пользователей, которых вы можете добавить к этой роли (рис. 10-18).

Рис. 10-18. Создание пользовательской роли БД Чтобы создать новую пользовательскую роль, просто введите ее имя в поле Name.

Вы можете добавить к ней пользователей сейчас или позже, щелкнув кнопку Add. Вы также можете выбрать стандартную роль или роль приложения (подробнее Ч в ве 11). Заметьте: кнопка Permissions сейчас недоступна, т. к. назначать разрешения еще не созданной пользовательской роли нельзя. Подробнее о назначении разреше ний пользовательской роли Ч в главе 11.

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