Страницы

среда, 2 октября 2013 г.

Быстрое восстановление SQL сервера после падения БД model

После очередного отключения электричества в офисе (UPS наше все, но он сломался еще два года назад) один из SQL серверов (MS SQL 2008 R2) отказался подниматься, при этом в системном журнале ошибок (Application Events) появлялось следующее сообщение:
Error: 9003, Severity: 20, State: 1.
The log scan number (23:456:1) passed to log scan in database 'model' is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup.


Естественно backup отсутствовал, поиски в интернете приводили к советам восстановить model.mdf и modellog.ldf из backup. Эти варианты были отвергнуты с негодованием, как неподходящие.

Еще порыскав в интернете, увидел информацию, что в установке SQL сервера присутствуют шаблонные файлы model.mdf и modellog.ldf находящиеся в каталоге "C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Templates\"

Т.к. выбор был небольшой, то скопировав текущие файлы model.mdf и modellog.ldf ("C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\") в сторонку, заменил их на соответствующие файлы, из каталога Templates.

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

11 комментариев :

  1. Well to resolve such issues you must go with backup, restore it and get access it. In such cases the MDF file got trapped in suspect mode then you can use SQL recovery tool to recover SQL database. http://www.sqlrecoverysoftware.net/blog/sql-error-9003.html

    ОтветитьУдалить
  2. Анонимный11 ноября, 2015 00:08

    Спасибо! Премного благодарен.

    ОтветитьУдалить
  3. Спасибо большое.
    Гуглил много вариантов, но подошёл именно ваш.
    Добавил страницу в закладки.

    ОтветитьУдалить
  4. Добрый день. У меня была подобная ситуация с базойmaster. Копирование из шаблона не помогло. В сети рекомендуют восстановить базу master через частичную установку SQL
    start /wait \server\setup.exe /qn MSSQLSERVER reinstall=sql_engine rebuilddatabase=1 sapwd=mypassword
    Я решил по другому. У меня было несколько серверов, поднятых с одного образа. На каждом сервере по 2-3 базы. Я скопировал master and masterlog с другого сервера.
    Сервер стартанул корректно. В списке баз появились названия баз с другого сервера. Удалил. Нужные локальные базы пришлось присоединить. Все регламентные задания остались рабочие.

    ОтветитьУдалить
  5. Добрый день. У меня была подобная ситуация с базойmaster. Копирование из шаблона не помогло. В сети рекомендуют восстановить базу master через частичную установку SQL
    start /wait \server\setup.exe /qn MSSQLSERVER reinstall=sql_engine rebuilddatabase=1 sapwd=mypassword
    Я решил по другому. У меня было несколько серверов, поднятых с одного образа. На каждом сервере по 2-3 базы. Я скопировал master and masterlog с другого сервера.
    Сервер стартанул корректно. В списке баз появились названия баз с другого сервера. Удалил. Нужные локальные базы пришлось присоединить. Все регламентные задания остались рабочие.

    ОтветитьУдалить
  6. Ответы
    1. Выше вроде ответ есть, сам не сталкивался

      Удалить
  7. О великий и мудрый человек, больше 5-ти лет прошло, а всё еще актуально это. Спасибо! Думал снова уже качать SQL Server 2014, но теперь не нужно, ура!)

    ОтветитьУдалить