Перед тем, как производить восстановление базы данных master, подумайте об альтернативных возможностях. Если пострадала не только эта база данных, но и пользовательские базы данных, то возможно легче и надежнее будет просто переустановить весь сервер, а затем восстановить пользовательские базы данных с резервных копий. Если повреждена база данных master, а пользовательские базы данных не пострадали, то можно думать о том, чтобы переустановить сервер или перестроить базу данных master, а пользовательские базы данных присоединить. Такой вариант будет наиболее надежным.
Восстановление базы данных master отличается от восстановления обычных баз данных некоторыми особенностями:
· производить восстановление базы данных master можно только после перезапуска сервера в однопользовательском режиме. Проще всего сделать это, запустив SQLServer из командной строки. Для этого нужно перейти в каталог, в котором находится файл sqlservr.exe (по умолчанию это C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Binn), а затем выполнить команду: sqlservr.exe -m
· если база данных master повреждена, то сервер вполне может не запуститься. В этом случае, чтобы все-таки можно было запустить сервер и произвести процедуру восстановления, нужно перестроить базу данных master. При перестроении база данных master возвращается к своему исходному состоянию (когда сервер был только что установлен). В предыдущих версиях SQLServer для перестроения базы данных master использовалась специальная утилита rebuildm. В SQLServer 2005 для этой цели используется программа установки SQLServer;
· для базы данных master доступен только один тип резервного копирования — полное резервное копирование всей базы данных. Поэтому восстановить вы можете только всю базу данных master целиком. Резервное копирование и восстановление журналов транзакций, а также любые другие операции восстановления (файлов, файловых групп, отдельных страниц и т. п.) для этой базы данных не предусмотрены;
· после восстановления базы данных master сервер автоматически перезагрузится.
После того, как восстановление базы данных master завершится, очень рекомендуется проверить, не возникло ли каких-то проблем на SQLServer. Могут обнаружится проблемы:
· с логинами. Для проверки можно использовать хранимую процедуру sp_validatelogins;
· с пользователями баз данных. Проверку можно произвести при помощи команды: sp_change_users_login @Action = 'Report';
· со списком баз данных на сервере. Если какой-то базы данных в списке нет, но файлы ее остались на диске, эту базу данных можно заново присоединить к серверу.
Если вы произвели перестроение базы данных master, то после завершения восстановления этой базы данных обязательно нужно произвести восстановление баз данных model и msdb. В остальном, резервное копирование и восстановление этих баз производится так же, как и пользовательских.
Произвести резервное копирование базы данных tempdb невозможно. Поскольку эта база данных создается заново при каждом запуске SQLServer, то восстанавливать ее не нужно.
Процесс восстановления данных - важнейшая операции в SQL Server. Восстановить данные не так сложно, как представлялось раньше, особенно с помощью графического интерфейса утилиты Enterprise Manager. Затруднение вызывает только восстановление поврежденной базы данных master.
Делая резервные копии и тестируя каждую создаваемую резервную копию и восстановленную базу данных, мы избегаем частых потерь данных и сбоев.
Резервное копирование необходимо для возможности быстрого и недорогого восстановления информации в случае поломки рабочей копии базы по какой-либо причине.
В заключении своей работы хочется привести первый закон Чизхолма, который доказывает актуальность данной работы:
Все, что может испортиться, портится.
Все, что не может испортиться, портится тоже.
1. Ковязин А.Н., Востриков С.М. "Мир Interbase", М.: Кудиц-Образ, 2002г.
2. Крис Касперски «Восстановление данных. Практическое руководство» Спб.: БХВ-Петербург, 2007г.
3. Леонов Василий. «Восстановление данных». М.: Эксмо, 2009 г.
4. Михеев Ростислав «MS SQL Server 2005 для администраторов». Спб.: БХВ-Петербург, 2007г.
5. Уильям Р. Станек «Microsoft SQL Server 2005. Справочник администратора». М.: Русская Редакция, 2008 г.