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

Иногда приходится столкнуться с ситуацией, когда плоды многолетней работы, находящиеся в SQL-базе данных оказываются под угрозой. Эта статья о том, как не допустить потерю данных, а в случае, если это всё-таки произошло, как восстановить данные из того, что осталось от некогда нормальной базы.

Иногда приходится столкнуться с ситуацией, когда плоды многолетней работы, находящиеся в SQL-базе данных оказываются под угрозой. Эта статья о том, как не допустить потерю данных, а в случае, если это всё-таки произошло, как восстановить данные из того, что осталось от некогда нормальной базы.

Итак, приступим. Ситуация следующая: имеется сервер с запущенной на нем 1С+SQL. Во время работы SQL базы рубанули питание. Результат плачевный: база находится в состоянии suspect, и когда 1с пытается к ней зацепиться, выдается ошибка, что мол соединиться невозможно т.к. база помечена suspect for recovery. Этот режим в принципе означает, что MSSQL Server попытается восстановить базу своими средствами. Я не стал ни чего трогать и оставил все на ночь, в надежде, что к утру база восстановится, но и утром было то же самое, и к базе, стало быть, ни как не подобраться. Backup по закону подлости имеется, но он трехдневной давности, плюс имеется куча документов которые проводятся лишь по базе, а по бумажным документам их нет, т.е. возможности вручную восстановить документы нет. Потратив кучу сил, и нервов, (которые, как известно не восстанавливаются :)), я пришел к следующей последовательности действий, необходимых для восстановления базы.

1) Основной принцип поначалу – не навреди. Глушим SQL server и копируем *.mdf и *.ldf файлы от базы в сторону.
2) В принципе, бывает, что состояние suspect возникает из-за того, что поменялись пути к файлам с базой (например, добавился новый диск в системе, который потом убрали, переименовали папку с базой и т.д.). Затем, конечно же, пути восстановили, но база все равно остается помеченной как suspect. Вот что мы делаем:
3) Запускаем SQL Server.
4) Пробуем подключить базу через Enterprise Manager:
Правой кнопкой по Databases, в появившемся меню выбираем All tasks->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 файл, при подключении база ругается на отсутствие/повреждение лога транзакций. В этом случае можно воспользоваться ХП "sp_attach_single_file_db"

Например:
use master
EXEC sp_attach_single_file_db @dbname = 'DemoXMB',
@physname = 'c:\mssql7\data\DemoXMB_Dat.mdf'

При выполнении этих команд, создастся файл DemoXMB_Log.ldf в том же каталоге где и база, размером 1MB и авторасширением.
Если есть *.MDF и *.LDF-файлы, или данные хранятся более чем в одном физическом файле (общее количество подключаемых физических файлов не должно превышать 16-ти), то следует использовать ХП "sp_attach_db"

Например:
use master
EXEC sp_attach_db @dbname = 'DemoXMB',
@filename1 = 'c:\mssql7\data\DemoXMB_Dat.mdf',
@filename1 = 'c:\mssql7\data\DemoXMB_Log.ldf'

Для подключения более 16-ти физических файлов к БД следует использовать команду:
CREATE DATABASE FOR ATTACH

Однако если ничего не помогло, оказались поврежденными оба файла и база всё еще в состоянии suspect, то можно попробовать сбросить состояние базы следующей последовательностью: (перед использованием этой ХП необходимо разрешить прямое изменение системных таблиц)
use master
go
Разрешаем прямое изменение системных таблиц:
sp_configure 'allow updates',1
go
reconfigure with override
go
Для сброса признака suspect выполняем в БД master ХП sp_resetstatus:
sp_resetstatus 'DataBaseName'
go
А теперь запретим прямое изменение системных таблиц:
sp_configure 'allow updates',0
go
reconfigure with override
go

В принципе, когда я выполнил все эти шаги, статус suspect сбросился, НО! при попытке выполнить какие-либо действия SQL начинала ругаться, что база все еще в состоянии suspect. И тогда я сделал так:

Из QA выполняем скрипт:
Use master
go
sp_configure 'allow updates', 1
reconfigure with override
go

Там же выполняем :
update sysdatabases set status= 32768 where name = ''

Перезапускаем SQL Server. В принципе база должна быть видна (в emergency mode).

Из QA выполняем:
USE ''
GO
sp_dboption '', 'single_user', 'true'
go
DBCC CHECKDB('', REPAIR_ALLOW_DATA_LOSS)
go

Если все в порядке, то:
sp_dboption '', 'single_user', 'false'
go
Use master
go
sp_configure 'allow updates', 0
go

После этого стало возможно просмотреть таблицы базы из SQL, а вот работать с ней было невозможно. Теперь необходимо при помощи Data Transformation Services экспортировать данные в новую базу. После этого проводим восстановление/тестирование базы средствами 1С. Внимание! Многие не обращают внимания на этот очень важный пункт. В результате, вы можете в один прекрасный момент обнаружить, что база восстановлена, мягко говоря, не совсем корректно. Т.е. в документе вместо номенклатуры будет стоять нечто вроде 10122/<Объект не найден>, это та проблема, которая возникла у меня, вариантов же может быть уйма. Поэтому лучше потерять время, но проверить базу средствами 1С.

Если уж совсем ничего не помогает, а данные страсть как нужно восстановить, есть еще сторонняя утилита под названием MSSQLRecovery . Утилита платная, но есть возможность воспользоваться демонстрационной версией, которую можно взять здесь: http://www.officerecovery.com/mssql/download_demo.htm . Программа очень простая, и восстановление базы сводится к трем шагам: 1) выбираем файл с базой; 2) выбираем путь куда сохранять; 3) Жмем кнопку recovery; Ждем. Программа разбирает SQL-базу по косточкам и складывает ее в отдельный каталог. Туда же она добавляет и .bat файл для восстановления базы из полученных «кусочков». Я ей так и не воспользовался, т.к. сумел восстановить базу предыдущими шагами.

Но! Здесь следует сделать паузу. Статья не была бы полной, если бы я не описал методы для предотвращения подобных проблем. Итак, самый простой и надежный способ: архивация, архивация и еще раз архивация. В Enterprise Manager заходим в меню Tools->Wizards->Management->Backup Wizard и настраиваем все необходимые параметры. В результате, у меня полный сброс SQL базы на диск происходит ночью, а затем каждые 15 минут backup изменений, внесенных в базу. В принципе, если бы у меня был такой backup, я бы за пару минут сделал откат назад, и продолжил бы попивать Coca-Cola :).

В случае возникновения дополнительных вопросов/комментариев писать сюда: sysad@sysad.ru

Автор: Коноплин Артем
http://www.sysad.ru/

Начать дискуссию

Налоговый терроризм, уплата взносов предпринимателем-пенсионером, налоговая помощь Трампа Байдену в обзоре

События дня. Налоговые события.

Обзоры для бухгалтера

Знакомство с экспертами Клерк.Консультаций: Надежда Камышева

Мы начинаем вести серию заметок о наших экспертах. Сегодня рассказываем о самом опытном эксперте — Надежде Камышевой, которая уже более 20 лет помогает бухгалтерам решать их рабочие вопросы.

Иллюстрация: Вера Ревина / Клерк

На 6 рублей в 6-НДФЛ могут быть отклонения. Богатым инвесторам обещают вернуть больше НДФЛ. 🙏«Ночной бухгалтер» № 1728

Не стоит волноваться, если при умножении дохода на ставку рассчитанный налог в 6-НДФЛ не сойдется с реальным. Чем больше сотрудников, тем больше может быть разбег.

На 6 рублей в 6-НДФЛ могут быть отклонения. Богатым инвесторам обещают вернуть больше НДФЛ. 🙏«Ночной бухгалтер» № 1728

Курсы повышения
квалификации

18
Официальное удостоверение с занесением в госреестр Рособрнадзора
IT-компании

Свыше 18 тысяч IT-компаний продлили аккредитацию. Но это не все

2 тысячи компаний в сфере IT решили не подавать заявление на продление аккредитации. Они перестали соответствовать критериям.

Миграционный учет

Мигрантам предлагают носить цифровые браслеты

Чтобы следить за перемещениями мигрантов внутри РФ, власти хотят надеть на них цифровые браслеты и заставить приезжих проходить дактилоскопическую регистрацию.

Налог на имущество

Долги по налогу на имущество сократились на 31%

19 млн россиян закрыли долги по налогам после введения ЕНС.

Опытом делятся эксперты-практики, без воды
Бесплатно с Уведомление по ЕНП

Какие налоги войдут в уведомление по ЕНП в июле 2024 года

В июльском уведомлении не будет взносов. В него войдет НДФЛ и квартальные авансовые платежи по другим налогам.

Какие налоги войдут в уведомление по ЕНП в июле 2024 года

ФАС признала недобросовестной конкуренцией копирование упаковки бренда «AXE»

Производителю запретили выпускать дезодоранты и гели для душа «EXXE» в упаковке, которая копирует фирменный стиль бренда «AXE».

6-НДФЛ

Как отразить отпускные в форме 6-НДФЛ

В статье расскажем, как отразить отпускные в форме 6-НДФЛ, как правильно заполнить расчет и не допустить ошибок.

Как отразить отпускные в форме 6-НДФЛ
Маркетплейсы

Что такое оборачиваемость товаров и как ее рассчитать

Продавцу важно правильно управлять товарными запасами: вовремя привозить поставки на склад, закупать не слишком большие, но и не маленькие партии. Справиться с этой задачей помогает расчет оборачиваемости товаров. Рассказываем, о чем говорит этот показатель и как его посчитать.

Что такое оборачиваемость товаров и как ее рассчитать

Повышение утильсбора будет поэтапным до 2030 года

Минпромторг сообщил, что продолжает анализировать поступающие предложения по индексации утилизационного сбора.

Ценные бумаги

Что такое депозитарий и какова его роль на рынке ценных бумаг

В этом материале рассказываем, зачем нужен депозитарий, какова его роль в инвестициях и как проверить его надежность.

Что такое депозитарий и какова его роль на рынке ценных бумаг
Лицензирование

На Госуслугах можно будет получить лицензию на дезинфекцию, дезинсекцию и дератизацию

Роспотребнадзор утвердил Административный регламент по предоставлению государственной услуги лицензирования деятельности оказания услуг по дезинфекции, дезинсекции и дератизации.

Кредитные карты

Россияне стали брать больше денег по кредитным картам

Рост ключевой ставки ЦБ не ослабил спрос на кредитные карты. Клиенты стали чаще пользоваться беспроцентным периодом при оформлении таких продуктов.

🥳 Успейте купить онлайн-курсы по 3 290 рублей в честь Дня рождения школы «Клерка»! Акция действует до 22 июля

22 июля нашей школе пять лет! Мы хотим разделить этот праздник с вами, поэтому устраиваем суперакцию на онлайн-курсы. До понедельника, 22 июля, вы можете купить курсы по учету на маркетплейсах, финансовому анализу, ВЭД, работе на УСН и зарплате всего за 3 290 рублей.

Обучение для бухгалтеров

🎂 Суперакция в честь Дня рождения школы «Клерка»! Онлайн-курсы по 3 290 рублей

Какой же праздник без подарков? 22 июля мы отмечаем наш первый юбилей — 5 лет школе «Клерка»! До понедельника, 22 июля, вы можете купить курсы по учету на маркетплейсах, финансовому анализу, ВЭД, работе на УСН и зарплате всего за 3 290 рублей. Успейте воспользоваться выгодным предложением!

🎂 Суперакция в честь Дня рождения школы «Клерка»! Онлайн-курсы по 3 290 рублей
Обзоры новостей

⚡️ Итоги дня: Microsoft допустил глобальный технический сбой, в Москве «оранжевый» уровень из-за грозы, X5 начала доставлять посылки

Подготовили обзор главных событий дня — 19 июля 2024 года. Все самое интересное, что писали и обсуждали в сети, в одной подборке.

КоАП РФ

Решено, кто будет рассматривать жалобы на постановления административных комиссий

Минюстом разработал проект закона с изменениями в КоАП по конкретизации полномочий по пересмотру постановлений по делам об административных правонарушениях.

Бизнес не прошел проверку по 115-ФЗ: возможно ли исправить ситуацию

Многие предприниматели считают, что решение банка не в пользу клиента после запроса документов по 115-ФЗ — это конечная точка бизнеса. Однако, это далеко не так: банки стараются выстраивать отношения по принципам долгосрочного сотрудничества и помогать компаниям. Например, Сбер позволяет продолжить ведение бизнеса после блокировки по 115-ФЗ, если клиент скорректирует свою деятельность. Как получить помощь в Сбере после такого решения рассказываем в статье.

Бизнес не прошел проверку по 115-ФЗ: возможно ли исправить ситуацию

Интересные материалы

Ведение бизнеса

Нюансы успешного делового общения с партнерами из Китая: правила, тонкости, особенности менталитета

Сегодня торговые контакты РФ и КНР вышли на новый уровень и развиваются быстрыми темпами. Поэтому вопрос правильного ведения переговоров с китайцами выходит на первый план. Чтобы найти общий язык, важно уважать своего собеседника, его принципы и привычки — только тогда можно получить положительные результаты и заключить выгодный контракт.

Нюансы успешного делового общения с партнерами из Китая: правила, тонкости, особенности менталитета