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

MCSA/MCSE, MCDBA Training Kit Exam 70-228 Microsoft SQL Server 2000 System Administration Microsoft-Press курс SA/MCSE, MCDBA ...

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

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

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

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

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

Х/ импортировать и экспортировать данные с помощью утилиты командной строки Ьср;

S импортировать данные при помощи оператора Transact-SQL BULK INSERT.

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

Однако создать новые сценарии гораздо проще средствами служб DTS. Они обеспе чивают такую же производительность, как Ьср, поскольку оператор BULK INSERT инкапсулирован в задачу Bulk Insert и графический интерфейс упрошает форматиро вание данных.

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

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

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

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

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

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

файл для записи сведений об ошибках Ч NewData.err;

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

bcp NewDatabase..NewData in C:\SelfPacedSQL\CH_7\NewData.txt -с -t","-r\n /e C:\SelfPacedSQL\CH_7\NewData.err -Ь250 -m50 -Т -h "TABLOCK" Примечание Текст команды в этом примере вводится в одну строку.

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

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

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

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

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

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

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

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

6. Выберите файл NewData.sql из папки C:\SelfPacedSQL\CH_7.

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

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

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

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

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

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

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

bcp NorthwindReportData..NewData in C:\SelfPacedSQL\CH_7\NewData.txt -с Г," -г\п /е C:\SelfPacedSQL\CH_7\NewData.err -Ь250 -т50 ~Т -h "TABLOCK" Примечание Текст команды в этом примере вводится в одну строку.

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

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

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

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

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

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

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

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

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

BULK INSERT NewDatabase..NewData FROM 'С:\SelfPacedSQL\CH_7\NewDa t a. t x t ' WITH ( BATCHSIZE = 250, DATAFILETYPE = 'char', FIELDTERMINATOR = ', ', ROWTERMINATOR - '\!\', MAXERRORS - 50, TABLOCK } Оптимизация загрузки данных На производительность загрузки данных влияет режим восстановления конечной БД SQL Server 2000. Если для конечной БД выбран режим восстановления отдельных опе раций (full recovery), в журнале регистрируются все операции вставки рядов. При вставке большого числа рядов журнал может быстро переполниться, что негативно скажется на производительности. Чтобы повысить производительность, при загрузке большого объема данных конечную БД рекомендуется перевести в режим восстанов ления результатов импорта (bulk-logged recovery). При этом в журнале транзакций фиксируются результаты загрузки больших объемов данных;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

15 server copyright (О 1988-2i'D 2000-09-26 13 server All rights reserved.

2000-09-26 oft SQL Ч server !000-09-26 ;

erver\HS5QL\ 3RLOS 1.

6 server SQL server 1s tuning at priority>

1QQQ-Q9-2U i, [5000] Lock owner Block?

using dynamic lock > location. [!500] 46 server 77 server Attempt ing to 1л1т1а"1ге Distributed Tr гооо-оэ-26 34 Sp1d3 Starting up database 'master.

i000-09-26 гооо гооо-09-26 ii SI sp1d гооо-09-26 ii SO iplds 2000-09-26 SQL server listening on TCP, shared Memory, напев Pipes.

7 server гооо-09-26 ii dy but o1d3 necovery 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, но не наоборот.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Х компьютер с сетевым именем SelfPacedCPU, сконфигурированный как контрил лер домена SelfPacedSQL.MSFT;

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

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

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

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

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

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

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

Продолжительность занятии Ч около 15 минут Терминология Вам следует познакомиться с терминами, которые важны для понимания процессов резервного копирования и восстановления данных в SQL Server 2000. Наиболее важ ные термины разъясняются в табл. 9-1, Табл. 9-1. Терминология резервного копирования Термин Описание Резервная копия (Backup) Полная или частичная копия БД, журнала транзакций, файла или группы файлов, образующая набор резервных копий.

Набор резервных копий записывается на носитель (диск или стример) с использованием устройства резервного копирования (имя стримера или физическое имя файла) Устройство резервного Физический файл (например C:\SQLBackups\Full.bak) копирования или ленточный накопитель (например \\.\TapeO), (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.

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

Занятие 1 Носители и устройства резервного копирования Рис. 9-1. Создание устройства резервного копирования средствами SQL Server Enterprise Manager Создание устройства резервного копирования с помощью Transact-SQL Создать устройство резервного копирования для многократного использования мож но средствами системной хранимой процедуры spaddumpdevice.

Sp_addumpdevice 'disk', 'FullBackupDevice', 'E:\SQLBackups\Full.bak' Этот пример создает устройство резервного копирования с логическим именем Full BackupDevice, использующее файл на локальном диске.

Sp_addumpdevice 'tape', TLogTapeBackupDevice', '\\.\TapeO' Данный пример создает на стримере устройство резервного копирования с логичес ким именем TlogTapeBackupDevice, использующее ленточный накопитель 0 (т. е. пер вый ленточный накопитель системы).

Sp_addurnpdevice ' d i s k ', TLogBackupDevice', '\\NetSrv\SQLBak\TLog.bak В этом примере создается дисковое устройство резервного копирования с логичес ким именем TlogBackupDevice, использующее сетевой файл, путь к которому указан в UNC-формате (Universal Naming Convention, универсальные правила именования).

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

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

Sp_dropdevice 'FullBackupDevice Этот оператор удаляет устройство FullBackupDevice, но не связанный с ним фи зический файл. В следующем примере удаляется и то, и другое.

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

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

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

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

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

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

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

6. Откройте файл BackupDevices.sql из папки C:\SelfPacedSQL\CH_9. При этом заг рузится сценарий Transact-SQL, который создаст устройства резервного копиро вания со следующими логическими именами: MasterFullBackup, MSDBFullBackup, SSEMDBFullBackup, SSEMDBDiffBackup и SSEMDBTLogBackiip. Конкретный физический путь к ним не указан. Далее вы создадите каталог, где они будут хра ниться.

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

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

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

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

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

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

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

12. На диске С: создайте папку 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;

s создать резервную копию журнала транзакций средствами 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. Лучше выбрать содержательное имя, например Northwind Full Backup, которое сообщало бы о том, что из себя представляет резервная копия. При желании вы можете ввести дополнительную информацию об этом наборе в поле Description, чтобы не перепутать многочисленные резервные копии (рис. 9-4).

Глава Резервное копирование и восстановление баз данных base Wizard Create A led Wedrd Х Creel в Job Wizard Database Maintenance Plan IndexTijnino.'wTMrd Make Master SavtrWiiard MakaTareet Server Wizard Web Assistant Wiziiid Я BepfcKion Рис. 9-2. Окно Select Wizard Select Database ID Backup Select Hie database ID backup Рис. 9-3. Выбор БД для резервного копирования тВШВЕШаШШа Type Nam and Oeiciiplion IDI Backup Type the name and description oi line backup.

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

Sdecl Tn>c л(Backup Select the type of backup lo palani Рис. 9-5. Выбор типа резервного копирования Примечание Для дифференциального резервного копирования следует предваритель но создать полную резервную копию БД.

После этого в окне Select Backup Destination And Action нужно выбрать устройство резервного копирования для размещения набора резервных копий. Вы можете выб рать стример, файл или уже созданное устройство резервного копирования. Обратите внимание, что по умолчанию файлы располагаются в папке Backup вашего экземпля ра SQL Server 2000 (например C:\Program Files\Microsoft SQL Server\Mssql\Backup).

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

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

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

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

Глава Резервное копирование и восстановление баз данных Select Backup Detonation and Action Select в device m lite as the destination fa (he database being backed * Eithn append or ovwwWe the backup media Рис. 9-6. Выбор расположения резервной копии и параметров резервного копирования Initialize Media Initialing tape a disk media set erases the previous contents o* the mecia and lab* the media tet with the tpeofted i set name and OB Рис. 9-7. Инициализация носителя резервной копии Если вы не указали SQL Server инициализировать носитель резервной копии и не создали новое имя набора носителей, то в окне Backup Verification And Scheduling вы можете проверить, на какой набор носителей будет записана копия, и истек ли срок хранения набора резервных копий (если он задан). Благодаря этому можно избежать перезаписи еше действительной резервной копии или записи набора резервных ко пий с использованием неверного накопителя или файла. При графическом интер фейсе легко ошибиться в выборе стримера или устройства резервного копирования, а последствия могут быть очень серьезными. Например, вы можете случайно переза писать ленту, на которой хранится часть набора резервных копий с чередованием лент, созданного при параллельном резервном копировании, или какая-либо из этих лент может оказаться поврежденной Ч тогда весь набор будет испорчен. Если вы уве рены в том, что выбрали устройство правильно, то можете пропустить проверку имен носителей и срока хранения резервных копий.

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

Занятие 2 Резервное копирование БД, файлов, групп и журналов од?

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

Можно также создать задание (job) и составить график, чтобы резервная копия, только что определенная вами, создавалась регулярно. О заданиях и планировании Ч в главе 13.

acfcup 1/aiilidalmn and Schedding Check the fneaa label and back^j sel expiation dale aid t I heip prevent accidentd cvawites Yog can also s;

hedu.

*к backup lo lunpeuodici" ;

Н я thwind FJ Backupi | Рис. 9-8. Ввод срока хранения и создание расписания резервного копирования В окне Completing The Create Database Backup Wizard вы можете просмотреть все установленные параметры настройки, до того как резервная копия будет создана.

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

Completing the Create Database Backup Wizard Back',0 cevic BackuD Actio Wialae wd Isnel inedi Елие!Ш1 days Check media set tftiiy backup Eiect мое Не Рис. 9-9. Окно Completing The Create Database Backup Wizard Упражнение 2. Создание резервной копии БД master с помощью мастера Create Database Backup Wizard В этом упражнении вы создадите резервную копию БД master средствами ма стера Create Database Backup Wizard.

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

2. Раскройте меню Start\Programs\ 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.

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

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

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

Откроется окно Initialize Medic..

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

15. В поле Media Set Name введите MasterBackups.

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

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

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

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

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

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

19. Щелкните OK, чтобы закрыть окно Wizard Complete.

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

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

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

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

Примечание Если вы создаете устройства резервного копирования с использованием оператора Transact-SQL в SQL Query Analyzer, когда открыт SQL Server Enterprise Ma nager, завершите и возобновите сеанс связи с экземпляром SQL Server 2000, чтобы обно вить соединение и получить доступ к новым устройствам резервного копирования.

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

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

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

2. Щелкните msdb правой кнопкой и выберите All Tasks\Backup Database. Откроется окно SQL Server Backup Ч Msdb.

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

3.

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

4.

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

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

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

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

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

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

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

11. В поле Media Set Name введите msdbBackups.

12. В поле Media Set Description введите Media for msdb Database Backups и щелкните OK.

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

13. Чтобы закрыть окно сообщений SQL 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 может быть и очень простой, и очень сложной. Вы можете создать файл резервной копии она лету или же использовать уже созданное устройство резервного копирования.

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

BACKUP DATABASE Northwind TO DISK - ХC:\SQLBackups\Temp.bak Следующий оператор создает резервную копию БД Northwind на устройстве ре зервного копирования NorthwindFullBackup и затем проверяет резервную копию:

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

BACKUP DATABASE Northwind TO NorthwindFullBackup WITH FORMAT, MEDIANAME = 'NorthwindBackups', MEDIADESCRIPTION = 'Media for Northwind Database Backups', NAME = 'Full Northwind Database Backup V, DESCRIPTION = 'BackupSet #1', STATS = В следующем примере резервная копия БД Northwind создается параллельно на двух устройствах;

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

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

В следующем примере создается дифференциальная копия БД Northwind на уст ройстве резервного копирования NorthwindDiffBackup:

BACKUP DATABASE Northwind TO NorthwindDiffBackup ft'ITH DIFFERENTIAL Резервное копирование файла или группы файлов Чтобы создать резервную копию файла или группы файлов, добавьте аргумент F! LE = логическое_имяфайла или FILEGROUP = логическое_имя_группы в оператор BA CKUP DATABASE.

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

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

254 Резервное копирование и восстановление баз данных Глава В следующем примере создается резервная копия журнала транзакций БД North wind на устройстве NorthwindTLo&Backup:

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

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

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

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

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

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

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

5. Откройте файл SSEMDB_Full.sql из папки C:\SelfPacedSQL\CH_9.

Откроется сценарий Transact-SQL, который создаст таблицу Customer в БД SSE 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 File.

8. Откройте файл SSEMDB_TLogl.sql из папки C:\SelfPacedSQL\CH_9.

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

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

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

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

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

11. Откройте файл SSEMDB_Diff.sql из папки C;

\SelfPacedSQL\CH_9.

Откроется сценарий Transact-SQL, который добавит 7 записей о клиентах в табли ду Customer БД SSEMDB из файла NewCuscomerData2.txt с помощью оператора BULK INSERT и создаст дифференциальную резервную копию БД SSEMDB на устройстве SSEMDBDifffiackup.

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

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

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

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

14. Откройте файл SSEMDB_TLog2.sql из папки C:\SelfPacedSQL\CH_9.

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

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

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

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

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

17. Откройте файл SSEMDB_TLog3.sql из папки C:\SelfPacedSQL\CH_9.

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

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

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

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

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

20. Откройте файл SSEMDB_Insert4.sql из папки C:\SelfPacedSQL\CH_9.

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

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

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

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

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

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

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

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

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

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

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

Продолжительность занятия Ч около 60 минут Определение последовательности восстановления данных Если вы хотите восстановить данные, то сначала необходимо определить оптималь ную последовательность использования файлов резервных копий. SQL Server Enter prise Manager облегчает эту задачу. При выполнении резервного копирования или восстановления SQL Server 2000 записывает все детали, относящиеся к истории ре зервного копирования или восстановления в БД msdb. Для каждой резервной копии указано, какие файлы или устройства резервного копирования использовались, кто и когда проводил резервное копирование. Если вы хотите восстановить данные с по мощью 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 отсутствуют устройства резервного копирова ния, вам потребуется восстановит!, историю этого устройства. О том, как это сделать, Ч в конце этого занятия.

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

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

Чтобы считать информацию о носителе резервной копии > 1. Убедитесь, что вы зарегистрировались на контроллере домена SelfPacedSQL.MSFT под учетной записью 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 из папки C:\SelfPacedSQL\CH9.

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

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

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

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

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

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

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

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

10- Глава Резервное копирование и вс становление баз данных Примечание Перед тем как начать восстановление рабочей БД, ограничьте доступ пользователей к ней, Восстановление всей базы данных при повреждении диска данных Если вы не используете RAID, то при повреждении диска, содержащего файлы дан ных, БД, связанная с этими файлами данных, будет помечена в SQL Server Enterprise Manager как подозрительная (suspect) (рис. 9-16) SQl Server Group H Щ) 5ELFPUCEDCPU (Windows NTJ master model North* md 55ЕГО msdb (Suspect) Ncrthwlnd SSEMDB (Suspect] tempdb TSQLOe WBardDB Д Qj Date Transformation Servkes f Lj Replication j| j Security :

ilLJSuwortSei ж Cj Mela Data '.

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

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

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

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

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

SSwfef-- -drapifa г Рис. 9-17. Выбор параметров резервного копирования журнала транзакций Э/29/2000 8 45 ЭС ДМ - Ful SSEMDB Databa Вас ЭЯаОТН 7.51.5* ДМ- Full SSEMDB Database Badi 3/23/2000 7 23 51 АН - FUI SSEMDB Database В 3^23/200] 7 26'38 АН Х Full SSEMDB Database В S723/2000 7.23.44 АН - Full SSEHDB DalabasB В ВО Kb C:VSQLBsc. SSEHDB TransactionL 46. СЛБОШас... DWaranbal S5EMDB о Рис. 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 восстанавливает каждый выбранный вами набор и после обращения к последнему набору восстанав ливает БД. Это равносильно использованию оператора Transact-SQL RECOVERY.

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

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

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

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

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

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

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

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

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

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

> Чтобы провести полное восстановление БД 1. Убедитесь, что вы зарегистрировались на контроллере домена SelfPacedSQL.MSFT под учетной записью 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 введите C:\Piogram Files\Microsoft SQL Server\ flMSSQL\Data и нажмите клавишу Enter.

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Server 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 In Table 'Customer' In 'SSEMDB' On 'SelfPacedCPU' будет показано содержимое таблицы Customer после ее восстановления.

26. Проверьте, что SQL Server Enterprise Manager восстановил все 33 записи таблицы и закройте окно Data In Table 'Customer' In 'SSEMDB' On 'SelfPacedCPU'.

27. 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 не содержит информацию о резервных копиях БД, кото рую нужно восстановить. Для начала щелкните правой кнопкой БД в дереве консо ли, выберите All Tasks и щелкните Restore Database. На вкладке General диалогового окна Restore Database установите переключатель From Device (рис. 9-23).

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

Выбрав устройство для восстановления данных, установите соответствующие зна чения параметров восстановления. Вы можете просмотреть содержимое каждого на бора резервных копий на устройстве резервного копирования, а также восстановить определенный набор резервных копий. Также можно полностью восстановить БД или же оставить ее в состоянии, допускающем восстановление дополнительных журна лов транзакций. Помимо этого вам предоставляется возможность считать информа Восстановление пользовательских баз данных Занятие цию о наборе резервных копий с определенного устройства и добавить ее к БД 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).

IWatWX 200 09 =М Х ГЛ SSEMCB Database В* л Рис. 9-26. Выбор момента времени для восстановления БД Вы не можете выбрать более раннее время, чем время самого раннего восстанов ления выбранного вами журнала транзакций. Кроме того, при восстановлении до состояния на определенный момент времени вы не можете оставить БД в нерабочем (nonoperational), готовом к восстановлению дополнительных журналов транзакций, состоянии.

Примечание Хотя вы можете восстановить состояние БД до именованной отметки (named mark) так же как и на определенный момент времени, для этого вы должны использовать Transact-SQL.

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

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

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

В дереве консоли щелкните правой кнопкой SSEMDB, выберите 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 и щелкните ОК.

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