×
Показано с 1 по 3 из 3
  1. #1
    Статья
    Гость

    Статья Статья: Восстановление базы 1С под SQL-Server

    <p align="left"><em>Иногда приходится столкнуться с ситуацией, когда плоды многолетней работы, находящиеся в SQL-базе данных оказываются под угрозой. Эта статья о том, как не допустить потерю данных, а в случае, если это всё-таки произошло, как восстановить данные из того, что осталось от некогда нормальной базы. </em></p>
    <p align="left">Итак, приступим. Ситуация следующая: имеется сервер с запущенной на нем 1С+SQL. Во время работы SQL базы рубанули питание. Результат плачевный: база находится в состоянии suspect, и когда 1с пытается к ней зацепиться, выдается ошибка, что мол соединиться невозможно т.к. база помечена suspect for recovery. Этот режим в принципе означает, что MSSQL Server попытается восстановить базу своими средствами. Я не стал ни чего трогать и оставил все на ночь, в надежде, что к утру база восстановится, но и утром было то же самое, и к базе, стало быть, ни как не подобраться. Backup по закону подлости имеется, но он трехдневной давности, плюс имеется куча документов которые проводятся лишь по базе, а по бумажным документам их нет, т.е. возможности вручную восстановить документы нет. Потратив кучу сил, и нервов, (которые, как известно не восстанавливаются :)), я пришел к следующей последовательности действий, необходимых для восстановления базы. </p>
    <p align="left">1) Основной принцип поначалу – не навреди. Глушим SQL server и копируем *.mdf и *.ldf файлы от базы в сторону.
    2) В принципе, бывает, что состояние suspect возникает из-за того, что поменялись пути к файлам с базой (например, добавился новый диск в системе, который потом убрали, переименовали папку с базой и т.д.). Затем, конечно же, пути восстановили, но база все равно остается помеченной как suspect. Вот что мы делаем:
    3) Запускаем SQL Server.
    4) Пробуем подключить базу через Enterprise Manager:
    Правой кнопкой по Databases, в появившемся меню выбираем All tasks-&gt;Attach database, затем в появившемся диалогов окне выбираем файл с базой (*.mdf) и устанавливаем необходимые параметры.
    5) или через Query Analyser примерно такой командой:
    a. sp_attach_db @dbname = 'DemoXMB',
    b. @filename1 = 'E:\Data\DemoXMB_Data.MDF',
    c. @filename2 = 'E:\Data\DemoXMB_Log.LDF'
    6) Пути к базе, естественно нужно заменить на свои. Если база подключилась, то, можно сказать, отделались легким испугом, если же нет, то продолжим.
    7) Если log-файл не поврежден (*.ldf), а поврежден *.mdf (например, при подключении базы sql ругается на ошибки в mdf-файле), и режим сохранения backup'а стоит full, то восстанавливаем базу без восстановления лога транзакций, почти 100%, что все мучения на этом могут закончиться.
    8) Если же наоборот, поврежден ldf-файл, но остался *.mdf файл, при подключении база ругается на отсутствие/повреждение лога транзакций.

    Читать всю статью: http://www.klerk.ru/soft/1c?15077
    Поделиться с друзьями

  2. #2
    Фырчун Аватар для Dracosha Andrew
    Регистрация
    07.02.2002
    Адрес
    Санкт-Петербург
    Сообщений
    2,259
    А автор не пробывал защищать сервер UPS'ом?

    Кстати, в статье явно покривил душой - за 5 лет эксплуатации не разу не сталкивался с ситуацией, когда база повреждалась из-за неожиданного отключения питания!!!

    Иначе говоря - используйте "правильное" железо, бесперебойный блок питания, своевременный BACKUP базы и не надо восстанавливать базу. А если пришлось этим занятся - почитайте BOL.
    Последний раз редактировалось Dracosha Andrew; 10.11.2004 в 17:03.

  3. #3
    Клерк
    Регистрация
    11.04.2005
    Сообщений
    1
    Мной эта статья была опубликована в ежемесячнике "1С для Профессионалов" за август месяц 2003 года. Зачем было ее так перевирать, хотя соглашусь основная мысль и контрольные точки соответствуют один в один ... ?

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)