Для обеспечения сохранности данных информационного массива требуется наличие по крайней одной резервной копии данных. Для обеспечения сохранности данных информационного массива требуется наличие по крайней одной резервной копии данных. В различные периоды жизненного цикла база данных требует восстановления данных. Администратор БД должен: минимизировать число операций по восстановлению данных, предупреждать проблемы до их возникновения, максимально ускорить восстановление при возникновении неполадок, в минимальный срок выполнить проверку успешности восстановления данных.
Для обеспечения отказоустойчивости рекомендуется: Для обеспечения отказоустойчивости рекомендуется: использование RAID-массив, обеспечивающий отказоустойчивость дисковой подсистемы; использование аппаратуры, обеспечивающей защиту от скачков сетевого напряжения; регулярное резервное копирование данных.
Одна из задач администратора БД – предупреждение неисправностей и разработка схемы их устранения. Одна из задач администратора БД – предупреждение неисправностей и разработка схемы их устранения. К числе неисправностей, возникающих в системе БД: потеря информации на диске с файлами данных; потеря информации на диске с журналом транзакций; потеря информации на системном диске; отказ сервера; стихийные бедствия; кража данных, кража информации; кража носителя резервных данных; неисправный носитель резервных данных; неисправное устройство восстановления данных; непреднамеренная ошибка пользователя; злонамеренные действия сотрудников.
При планировании процедур резервного копирования и восстановления данных необходимо определить следующие параметры: При планировании процедур резервного копирования и восстановления данных необходимо определить следующие параметры: Какова стоимость простоя БД? Необходимость использования RAID-массивов? Каково время на восстановление данных с резервной копии БД? Поможет ли частое резервное копирование значительно сократить время на восстановление данных? Имеются ли в организации дополнительные устройства восстановления данных с резервных копий?
Для обеспечения безопасности данных SQL Server 2005 поддерживает режимы автоматического и ручного восстановления данных на основе файлов данных, журналов транзакций и их резервных копий. Для обеспечения безопасности данных SQL Server 2005 поддерживает режимы автоматического и ручного восстановления данных на основе файлов данных, журналов транзакций и их резервных копий.
В SQL Server 2005 поддерживаются три модели восстановления: В SQL Server 2005 поддерживаются три модели восстановления: Модель полного восстановления (full); Простая модель восстановления (simple); Модель с неполным протоколированием (bulk-logged). Модели определяют принципы работы с журналом транзакций, регистрацию транзакций и процесс усечения журнала.
Модель полного восстановления означает, что ядро БД регистрирует в журнале транзакций все операции и никогда не выполняет усечение журнала транзакций. Модель полного восстановления означает, что ядро БД регистрирует в журнале транзакций все операции и никогда не выполняет усечение журнала транзакций. Модель позволяет восстанавливать БД до ее состояния на момент сбоя.
Простая модель восстановления регистрирует минимум данных о большинстве транзакций и выполняет усечение журнала транзакций после каждой контрольной точки. Простая модель восстановления регистрирует минимум данных о большинстве транзакций и выполняет усечение журнала транзакций после каждой контрольной точки. Эта модель не поддерживает резервное копирование и восстановление журнала транзакций. Простая модель восстановления не подходит для БД, не допускающих потери последних изменений.
Модель с неполным протоколированием означает, что ядро БД ведет минимальную регистрацию массовых операций, таких как SELECT INTO и BULK INSERT. Модель с неполным протоколированием означает, что ядро БД ведет минимальную регистрацию массовых операций, таких как SELECT INTO и BULK INSERT. Если в резервной копии содержатся какие-либо массовые операции, БД можно восстановить до состояния, соответствующего концу резервной копии журнала транзакций.
Установленную модель восстановления БД можно посмотреть на странице Свойства базы данных или воспользоваться запросом Установленную модель восстановления БД можно посмотреть на странице Свойства базы данных или воспользоваться запросом SELECT name, recovery_model_desc FROM sys.databases
Для изменения модели восстановления БД можно воспользоваться запросом ALTER DATABASE Для изменения модели восстановления БД можно воспользоваться запросом ALTER DATABASE ALTER DATABASE db01 SET RECOVERY FULL | SIMPLE | BULK-LOGGED
SQL Server 2005 обеспечивает следующие способы резервного копирования БД SQL Server 2005 обеспечивает следующие способы резервного копирования БД
При полном резервном копировании БД копируются все экстенты БД, в том числе изменения внесенные во время ее последнего резервного копирования. При полном резервном копировании БД копируются все экстенты БД, в том числе изменения внесенные во время ее последнего резервного копирования. Копируются все пользовательские данные и объекты БД, системные таблицы, индексы и пользовательские БД. Полное резервное копирование применимо для любой модели восстановления данных Первое полное резервное копирование рекомендуется выполнять после первоначального заполнения БД. Впоследствии полное копирование выполняется при вводе большого объема данных. Базовая команда выполнения резервного копирования: BACKUP DATABASE database_name TO DISK = ‘disk\directory\file’ WITH INIT
При дифференциальном копировании БД копируются все экстенты, измененные с последнего полного резервного копирования. Этот процесс включает в себя копирование БД отражает только самые последние изменения данных. При дифференциальном копировании БД копируются все экстенты, измененные с последнего полного резервного копирования. Этот процесс включает в себя копирование БД отражает только самые последние изменения данных. Основная цель дифференциального резервного копирования – уменьшение числа резервных копий журнала транзакций необходимых для восстановления данных. Дифференциальное копирование требует меньше времени и места на носителе. Для увеличения скорости дифференциального копирования SQL Server прослеживает все изменения в экстентах, которые произошли с момента последнего резервного копирования БД. Такие изменения отражаются на странице карты изменений (DCM). Базовая команда выполнения копирования: BACKUP DATABASE database_name TO DISK = ‘disk\directory\file’ WITH DIFFERENTIAL
Резервное копирование заключается в последовательной записи всех зарегистрированных транзакций с момента последнего резервного копирования журнала. Резервное копирование заключается в последовательной записи всех зарегистрированных транзакций с момента последнего резервного копирования журнала. Использование резервных копий журнала позволяет восстановить данные до состояния на определенный момент времени. Резервные копии журнала транзакций могут быть использованы только в полной модели восстановления и в модели с неполным протоколированием. Скорость выполнения резервного копирования журнала зависит от скорости транзакций, используемой модели восстановления и от объема операций. Резервное копирование журнала транзакций относится к активной части журнала. После завершения резервного копирования журнала транзакций SQL Server 2005 удаляет все виртуальные файлы журнала, которые не содержат активную часть журнала. Базовая команда выполнения резервного копирования журнала транзакций: BACKUP LOG database_name TO DISK = ‘disk\directory\file’ WITH INIT
Резервное копирование группы файлов – альтернативный метод полному резервному копированию. Резервное копирование группы файлов – альтернативный метод полному резервному копированию. При резервном копировании файла или группы файлов создается резервная копия отдельного файла данных или группы файла. При такой копировании требуется меньше времени и объема на носителе. Используется для больших БД. Как правило, данные в БД разделяются на две категории – часто изменяемые данные и данные, изменения которых редки или отсутствуют. При такой структуре данных резервное копирование чаще выполняется для файлов или групп файлов с часто изменяемой информацией. Базовая команда выполнения резервного копирования группы файлов: BACKUP DATABASE database_name FILEGROUP=filegroup_name TO DISK = ‘disk\directory\file’
SQL Server 2005 поддерживает два типа восстановления данных: SQL Server 2005 поддерживает два типа восстановления данных: автоматический процесс, который запускается при каждом запуске SQL Server; процесс ручного восстановления данных, инициируемый пользователем.
Задача автоматического процесса восстановления данных – гарантированность логической целостности данных в каждой БД после запуска сервера. Задача автоматического процесса восстановления данных – гарантированность логической целостности данных в каждой БД после запуска сервера. В автоматическом процессе используются информация из активной части журнала транзакций каждой БД. Анализируются транзакции, зарегистрированные с момента последней проверки целостности БД. SQL Server определяет все подтвержденные транзакции и выполняет их повторно, затем выделяет все неподтвержденные транзакции и от меняет их. В процессе проверки SQL Server проверяет системные базы данных в следующей последовательности: master, model, msdb, а также БД публикуемые для репликации, затем все пользовательские БД. В конце процесса удаляется и вновь создается БД tempbd.
При восстановлении БД вручную используются одна или более резервные копии БД и выполняется процедура полного или частичного восстановления данных. При восстановлении БД вручную используются одна или более резервные копии БД и выполняется процедура полного или частичного восстановления данных. При восстановлении базы данных до состояния, в котором она находилась к моменту завершения последнего резервного копирования журнала транзакций, то начинают с последней полной резервной копии БД. Полная копия может быть восстановлена на любом сервере БД.
При использовании дифференциального копирования, необходимо восстановить последнюю дифференциальную резервную копию. При использовании дифференциального копирования, необходимо восстановить последнюю дифференциальную резервную копию. Затем восстанавливаются все резервные копии журнала транзакций. В процессе восстановления последней резервной копии журнала транзакций SQL Server позволяет выполнить восстановление данных вручную и в процессе восстановления выполняется повтор подтвержденных транзакций и отмена неподтвержденных.
Если требуется восстановление данных на определенный момент времени, то возможны следующие варианты: Если требуется восстановление данных на определенный момент времени, то возможны следующие варианты: восстановление БД до состояния на определенный момент времени; восстановление БД до определенного места в журнале транзакций. Для восстановления данных по состоянию на определенный момент времени следует использовать полную резервную копию БД. Затем необходимо восстанавливать резервные копии журнала транзакций к выбранному моменту времени. При восстановлении последней резервной копии устанавливается срок восстановления внутри данной резервной копии и выбирается режим восстановления до указанного срока. Для восстановления данных до определенного состояния, необходимо размещать в журнале транзакций специальные метки. При добавлении такой метки в таблицу БД msdb вносятся соответствующая запись. В процессе восстановления можно восстанавливать данные до определенной отметки.
При планировании процедур резервного копирования рекомендуется выполнять архивирование всех БД, которые требуют полного восстановления после любых сбоев. При планировании процедур резервного копирования рекомендуется выполнять архивирование всех БД, которые требуют полного восстановления после любых сбоев. Обязательно необходимо полное резервное копирование БД master. Другая системная БД – msdb содержит информацию о работе агента SQL Server, репозитарий службы Meta Data Services, а также архив всех выполненных операций резервного копирования БД.
План резервного копирования и восстановления данных требует: План резервного копирования и восстановления данных требует: Описания каждого установленного экземпляра SQL Server 2005, указав: версию ОС, установленных пакетов обновления, версию SQL Server, имена файлов журнала транзакций и данных, имена серверов, сетевые библиотеки, имя учетной записи, используемой службами; Описание БД, частоту архивирования, указание причины выбора способа архивирования; Степень автоматизации восстановления данных (расписание восстановления данных из резервных копий); Определение лица, ответственного за резервное копирование; Определение каким образом выполняется проверка качества выполнения операций восстановления данных; Выбор места для хранения носителя резервной копии данных; Определение сроков хранения носителей резервных копий данных; Документирование процессов создания копий и аппаратного обеспечения сервера.
При описании процессов резервного копирования и восстановления данных используются следующие термины: При описании процессов резервного копирования и восстановления данных используются следующие термины: резервная копия - полная или частичная копия БД, журнала транзакций, файла или группы файлов; устройство резервного копирования – физический файл или ленточный накопитель, используемый для записи резервной копии файл резервной копии – файл с набором резервных копий; носитель резервной копии – физический носитель, на которой сохраняют набор резервных копий с использованием файла резервной копии; набор резервных копий – резервная копия, созданная за одну операцию резервного копирования; семейство носителей – все носители в наборе носителей, записанные одним устройством для одного набора резервных копий; заголовок носителя – предоставляет информацию о содержимом носителя; набор носителей – все носители, задействованные в операциях резервного копирования.
Носителем резервной копии может быть:. Носителем резервной копии может быть:. Ленточные носители (стримеры) – традиционное средство выполнения резервного копирования. Основной недостаток – медленное выполнение операций резервного копирования. Диск – более удобное средство резервного копирования, однако стоимость хранения данных больше, чем при использовании стримера.
В процессе работы с SQL Server 2005 можно создать одно или несколько постоянных устройств резервного копирования. В процессе работы с SQL Server 2005 можно создать одно или несколько постоянных устройств резервного копирования. Для создания устройства резервного копирования средствами SQL Server Management Studio используется контейнер Server Objects и далее Backup Device. С помощью контекстного меню выбирается пункт – New Backup Device. Определяется логическое имя устройства и имя ленточного накопителя или файла.
Создание устройство резервного копирования с помощью системной хранимой процедуры sp_addumpdevice: Создание устройство резервного копирования с помощью системной хранимой процедуры sp_addumpdevice: sp_addumpdevice ‘disk’, ‘FULLBackupDevice’, ‘C:\DB\MyBackup.bak’ – для использования файла на диске; sp_addumpdevice ‘tape’, ‘TLogTapeBackupDevice’, ‘\\.\Tape0’ – для использования ленточного накопителя с номером 0;
Для просмотра списка устройств резервного копирования используют системную хранимую процедуру sp_helpdevice. Для просмотра списка устройств резервного копирования используют системную хранимую процедуру sp_helpdevice. Удаление устройство резервного копирования осуществляется с помощью системной хранимой процедуры sp_dropdevice. sp_dropdevice ‘FullBackupDevice’ – удаляет устройство, но сохраняет файл с резервной копией; sp_dropdevice ‘FullBackupDevice’, ‘DELETE’ – удаляет устройство и файл резервной копии с ним связанный.
Резервное копирование может быть выполнено средствами SQL Server Management Studio с помощью команды BackUP контекстного меню базы данных. Резервное копирование может быть выполнено средствами SQL Server Management Studio с помощью команды BackUP контекстного меню базы данных.
Для создания резервных копий могут быть использованы команды BACKUP DATABASE и BACKUP LOG. Для создания резервных копий могут быть использованы команды BACKUP DATABASE и BACKUP LOG. Полное резервное копирование БД осуществляется с помощью следующей команды: BACKUP DATABASE Northwind TO DISK = ‘C:\DB\Northwind.bak’ Следующий оператор создает резервную копию на устройстве NWFullBackup и проверяет ее: BACKUP DATABASE Northwind TO NWFullBackup RESTORE VERIFYONLY FROM NWFullBackup
Следующая команда создает резервную копию на устройстве NWFullBackup, инициализируется носитель, создается набор носителей NWBackups с описание Media for Northwind Database и создается набор резервных копий FullNWDatabaseBackup#1. При этом выводится сообщение о выполнении каждых 25% операций: Следующая команда создает резервную копию на устройстве NWFullBackup, инициализируется носитель, создается набор носителей NWBackups с описание Media for Northwind Database и создается набор резервных копий FullNWDatabaseBackup#1. При этом выводится сообщение о выполнении каждых 25% операций: BACKUP DATABASE Northwind to NWFullBackup WITH FORMAT MEDIANAME=‘NWBackups’ , MEDIADESCRIPTION=‘Media for Northwind Database’, NAME=‘ FullNWDatabaseBackup#1’, DESCRIPTION=‘..’, STATS=25
Следующий пример создает резервную копию на двух устройствах NWDevice1 и NWDevice2. При выполнении резервного копирование проверяется наличие метки Media set for Northwind Database Backups: Следующий пример создает резервную копию на двух устройствах NWDevice1 и NWDevice2. При выполнении резервного копирование проверяется наличие метки Media set for Northwind Database Backups: BACKUP DATABASE Northwind TO NWDevice1, NWDevice1 WITH MEDIANAME=‘Media set for Northwind Database Backups’
Для выполнения дифференциального резервного копирования используется аргумент WITH DIFFERENTIAL: Для выполнения дифференциального резервного копирования используется аргумент WITH DIFFERENTIAL: BACKUP DATABASE Northwind TO NWDiffBackup WITH DIFFERENTIAL Для выполнения копирования файлов или группы файлов используется аргумент FILE=имя_файла или FILEGROUP=имя_группы_файлов BACKUP DATABASE Northwind FILEGROUP=‘SECOND_FG’ TO NWFGBackup Для выполнения резервного копирования журнала транзакций используется команда BACKUP LOG: BACKUP LOG Northwind TO NWLogBackup Аргумент WITH NO_TRUNCATE не усекает файл транзакций при выполнении резервного копирования.
При восстановлении данных необходимо определить последовательность использования резервных копий файлов данных и журналов транзакций. При восстановлении данных необходимо определить последовательность использования резервных копий файлов данных и журналов транзакций. При выполнении резервного копирования или восстановления данных SQL Server 2005 записывает все детали истории таких операций в базу данных msdb. При восстановлении данных средствами SQL Server Management Studio система обращается к записям БД msdb и сообщает какие файлы необходимы для восстановления данных пользовательской БД. Если msdb повреждена необходимо восстановить данную БД до выполнения восстановления пользовательских БД.
Если отсутствует актуальная резервная копия БД msdb или БД восстанавливается на другом экземпляре SQL Server, необходимо использовать резервные копии пользовательских БД для восстановления истории резервного копирования в базы данных msdb. Если отсутствует актуальная резервная копия БД msdb или БД восстанавливается на другом экземпляре SQL Server, необходимо использовать резервные копии пользовательских БД для восстановления истории резервного копирования в базы данных msdb. После выполнения данных операций восстановления msdb, можно определить оптимальную последовательность восстановления.
Для просмотра содержимого устройства резервного копирования средствами SQL Server Management Studio, необходимо раскрыть открыть контейнер Server Object\Backup и выбрать необходимо устройство. С помощью контекстного меню вызвать Свойства устройства. Для просмотра содержимого устройства резервного копирования средствами SQL Server Management Studio, необходимо раскрыть открыть контейнер Server Object\Backup и выбрать необходимо устройство. С помощью контекстного меню вызвать Свойства устройства. С помощью указателя Media Contents, можно просмотреть содержимое данного устройства.
При повреждении диска с файлами данных, связанная с этими данными БД будет обозначена в SQL Server Management Studio как подозрительная (suspect). При повреждении диска с файлами данных, связанная с этими данными БД будет обозначена в SQL Server Management Studio как подозрительная (suspect). При обнаружении подозрительной БД необходимо немедленно сделать резервную копию журнала транзакций без усечения и лишь потом начать восстановление данных. Если будет создана резервная копия журнала транзакций с использованием режима Without Truncation возможно восстановление данных до момента повреждения диска.
После создания резервной копии журнала транзакций необходимо заменить поврежденный диск. После создания резервной копии журнала транзакций необходимо заменить поврежденный диск. Для выполнения восстановления в контейнере Databases выбирается необходимая БД и с помощью контекстного меню запускается команда Restore Database.
При изменении расположения файла резервной копии, необходимо использовать раздел Specify the source and location of backup sets и указать новый путь месторасположения файла с резервной копией. При изменении расположения файла резервной копии, необходимо использовать раздел Specify the source and location of backup sets и указать новый путь месторасположения файла с резервной копией.
В окне SQL Server Management Studio, на вкладке Options используя поле Restore options таблицы со списком восстанавливаемых файлов имеется возможность изменить физическое размещение восстанавливаемых файлов. В окне SQL Server Management Studio, на вкладке Options используя поле Restore options таблицы со списком восстанавливаемых файлов имеется возможность изменить физическое размещение восстанавливаемых файлов.
По умолчанию SQL Server 2005 восстанавливает каждый выбранный набор и после обращения к последнему набору восстанавливает всю БД. По умолчанию SQL Server 2005 восстанавливает каждый выбранный набор и после обращения к последнему набору восстанавливает всю БД. Отдельная БД может находится в нерабочем состоянии (nonoperational), но готовой к восстановлению дополнительных журналов транзакций. БД может находится в состоянии «только для чтений» (read-only) и готовой к восстановлению дополнительных файлов журналов транзакций. При выборе данного режима необходимо указать файл отмены восстановления. По умолчанию данный файл называется UNDO_имя_БД.DAT в папке Backups. После выполнения всех установок с помощью кнопки ОК запускается процесс восстановления данных.
При восстановлении БД на другом экземпляре SQL Server необходимо создать БД, в которую будет выполняться восстановление из резервной копии. При восстановлении БД на другом экземпляре SQL Server необходимо создать БД, в которую будет выполняться восстановление из резервной копии. Как правило, имя восстанавливаемой БД и месторасположение файлов остаются прежними. При изменении имени необходимо установить флажок Force Restore Over Existing Database на вкладке Options окна Restore Database. После создания БД, необходимо воспользоваться информацией о каждом наборе резервных копий исходной БД.