Урок 6. Восстановление баз данных
Обзор Процесс регенерации на сервере SQL Server Подготовка к восстановлению базы данных Восстановление резервных копий Восстановление баз данных по резервным копиям различных видов Использование запасного сервера SQL Server Восстановление поврежденных системных баз данных
Процесс регенерации на сервере SQL Server BEGIN COMMIT BEGIN COMMIT BEGIN COMMIT BEGIN COMMIT Завершенные транзакции применяются и записываются в базу данных Завершенные транзакции применяются и записываются в базу данных Незавершенные транзакции отменяются и не записываются в базу данных Незавершенные транзакции отменяются и не записываются в базу данных CHECKPOINT
Действия сервера SQL Server во время восстановления базы данных Контроль безопасности База данных уже существует Другой набор файлов базы данных Неполный набор файлов базы данных Воссоздание базы данных и всех связанных с ней файлов
Подготовка к восстановлению базы данных Проверка резервных копий Некоторые специальные процедуры, выполняемые перед восстановлением
Проверка резервных копий Оператор RESTORE HEADONLY Возвращает содержимое заголовка файла резервной копии или резервного набора Оператор RESTORE FILELISTONLY Возвращает сведения об исходной базе данных или файлах журнала транзакций Оператор RESTORE LABELONLY Возвращает сведения о носителе резервной копии Оператор RESTORE VERIFYONLY Проверяет отдельные файлы на полноту и читаемость
Некоторые специальные процедуры, выполняемые перед восстановлением Установка параметра базы данных dbo use only Устанавливается членом роли sysadmin или db_owner Ограничивает доступ к базе данных Резервное копирование журнала транзакций Гарантирует согласованность базы данных Регистрирует изменения, происходящие между последним резервным копированием журнала транзакций и отключением базы данных
Восстановление резервных копий Использование оператора RESTORE Запуск процесса регенерации Установка параметров восстановления
USE master RESTORE DATABASE northwind FROM nwindbac USE master RESTORE DATABASE northwind FROM nwindbac Использование оператора RESTORE Использование параметров восстановления Восстановление поврежденных баз данных пользователей Сервер SQL Server автоматически воссоздает файлы и объекты базы данных Удалять перед этим поврежденную базу данных не требуется
Запуск процесса регенерации Использование параметра RECOVERY Применяется для последней регенерируемой резервной копии Разрешает доступ к базе данных Использование параметра NORECOVERY Применяется для всех файлов регенерируемых резервных копий, кроме последнего Запрещает доступ к базе данных
Установка параметров восстановления Использование параметра FILE Задает восстановление конкретной резервной копии Необходимо указать номер файла Использование параметра MOVE…TO Задает место, в котором будут восстанавливаться файлы резервных копий Использование параметра REPLACE Задает замещение существующей базы данных Сервер SQL Server не выполняет проверку безопасности
Восстановление баз данных по резервным копиям различных видов Восстановление полной резервной копии базы данных Восстановление разностной резервной копии Восстановление резервной копии журнала транзакций Восстановление резервной копии файла или группы файлов
Восстановление полной резервной копии базы данных Ситуации, требующие восстановления полной резервной копии Физический диск поврежден Вся база данных повреждена, запорчена или удалена Нужно иметь точную копию базы данных на другом сервере SQL Server Использование параметров регенерации Запуск процесса регенерации с помощью параметра RECOVERY Отсрочка процесса регенерации с помощью параметра NORECOVERY USE master RESTORE DATABASE northwind FROM nwindbac WITH FILE = 2, RECOVERY USE master RESTORE DATABASE northwind FROM nwindbac WITH FILE = 2, RECOVERY
Восстановление разностной резервной копии Восстанавливаются только те фрагменты базы данных, которые изменились со времени последней процедуры ее полного резервного копирования База данных возвращается в состояние, в котором она была при выполнении разностного резервного копирования Процесс восстановления разностных копий занимает меньше времени, чем применение последовательности копий журнала транзакций USE master RESTORE DATABASE northwind FROM nwindbacdiff WITH NORECOVERY USE master RESTORE DATABASE northwind FROM nwindbacdiff WITH NORECOVERY Задайте файл, содержащий разностную резервную копию Задайте файл, содержащий разностную резервную копию Используется тот же синтаксис, что и при восстановлении полной резервной копии базы данных Используется тот же синтаксис, что и при восстановлении полной резервной копии базы данных
Восстановление резервной копии журнала транзакций Восстановление базы данных northwind Полная Разностная USE master RESTORE LOG northwind FROM nwindbaclog WITH FILE = 2, RECOVERY USE master RESTORE LOG northwind FROM nwindbaclog WITH FILE = 2, RECOVERY Резервные копии базы данных northwind Полная Разностная База данных повреждена Данные Журнал Данные Журнал
Задание момента времени Резервные копии базы данных northwind Восстановление базы данных northwind Полная Разностная Журнал Журнал Резервные копии базы данных northwind Полная Разностная База данных повреждена Данные Журнал USE master RESTORE LOG northwind FROM nwindbaclog WITH FILE = 2, RECOVERY, STOPAT = 'January 3, :00 AM' USE master RESTORE LOG northwind FROM nwindbaclog WITH FILE = 2, RECOVERY, STOPAT = 'January 3, :00 AM' Данные Журнал
USE master RESTORE DATABASE northwind FILE = nwind2 FROM nwind2bac WITH NORECOVERY USE master RESTORE DATABASE northwind FILE = nwind2 FROM nwind2bac WITH NORECOVERY Восстановление резервной копии файла или группы файлов Применить все резервные копии журнала транзакций, созданные после резервного копирования файла Восстановить одной операцией резервные копии группы файлов, содержащие индексы и таблицы
Использование резервного сервера SQL Server Установка резервного сервера SQL Server Использование резервного сервера SQL Server в качестве сервера, доступного только для чтения Использование параметра STANDBY Замена основного сервера резервным сервером SQL Server
Установка резервного сервера SQL Server Назначение Замена основного сервера Использование в качестве копии основного сервера, доступной только для чтения Создание Полное резервное копирование базы данных основного сервера Восстановление резервной копии базы данных на резервный сервер SQL Server Сопровождение Резервное копирование журнала транзакций основного сервера Восстановление резервных копий журнала транзакций на резервный сервер SQL Server
Использование резервного сервера SQL Server в качестве сервера, доступного только для чтения Уменьшение нагрузки на основной сервер Доступ к данным для обслуживания запросов, связанных с принятием решений Выполнение операторов средства DBCC Устранение неполадок, связанных с повреждением данных Определение момента повреждения базы данных Использование параметра STANDBY
Разрешает пользователям доступ для чтения содержимого резервного сервера SQL Server Разрешает восстанавливать дополнительные журналы транзакций Создает файл, используемый при отмене изменений USE MASTER RESTORE DATABASE nwcopy FROM nwfullbackup WITH STANDBY = 'C:\Nwundo.ldf' RESTORE LOG nwcopy FROM nwlogbackup WITH STANDBY = 'C:\Nwundo.ldf' USE MASTER RESTORE DATABASE nwcopy FROM nwfullbackup WITH STANDBY = 'C:\Nwundo.ldf' RESTORE LOG nwcopy FROM nwlogbackup WITH STANDBY = 'C:\Nwundo.ldf'
Замена основного сервера резервным сервером SQL Server ОСНОВНОЙ СЕРВЕР ОСНОВНОЙ СЕРВЕР РЕЗЕРВНЫЙ СЕРВЕР SQL SERVER Измените имя сервера 33 Восстановите резервную копию журнала транзакций Восстановите резервную копию журнала транзакций44 Выполните резервное копирование всех журналов транзакций базы данных Выполните резервное копирование всех журналов транзакций базы данных11 Отключите 22 Восстановите резервные копии с резервного сервера SQL Server Восстановите резервные копии с резервного сервера SQL Server33 Активизируйте 44 Выполните полное резервное копирование базы данных Выполните полное резервное копирование базы данных55 Восстановите резервные копии с основного сервера Не регенерировать Восстановите резервные копии с основного сервера Не регенерировать66 Повторная установка резервного сервера SQL Server Повторная установка резервного сервера SQL Server АктивизацияАктивизация Восстановление основного сервера Восстановление Выполните резервное ко- пирование базы данных и всех журналов транзакций 11 Отключите 22
Восстановление поврежденных системных баз данных Восстановление системных баз данных по резервной копии Перестройка системных баз данных Присоединение или восстановление баз данных пользователей Восстановление по резервной копии Присоединение с помощью системной хранимой процедуры sp_attach_db или sp_attach_single_file_db
Предлагаемое решение Перед восстановлением получите подробную информацию о резервных копиях Перед восстановлением получите подробную информацию о резервных копиях Задавайте параметр NORECOVERY для всех резервных копий, кроме последней Задавайте параметр NORECOVERY для всех резервных копий, кроме последней Используйте параметр RECOVERY для последней резервной копии, чтобы восстановить регенерируемость содержимого базы данных Используйте параметр RECOVERY для последней резервной копии, чтобы восстановить регенерируемость содержимого базы данных Используйте параметр STANDBY, чтобы разрешить доступ к резервному серверу SQL Server и восстанавливать на нем другие копии журнала транзакций Используйте параметр STANDBY, чтобы разрешить доступ к резервному серверу SQL Server и восстанавливать на нем другие копии журнала транзакций
Практическая работа 6.1. Восстановление баз данных
Вопросы для повторения Процесс регенерации на сервере SQL Server Подготовка к восстановлению базы данных Восстановление резервных копий Восстановление баз данных по резервным копиям различных видов Использование резервного сервера SQL Server Восстановление поврежденных системных баз данных