Файл MDF SQL server

Сначала о причинах. В моей практике чаще всего база данных SQL в первую очередь вылетает из-за проблем с электричеством. Это скачки напряжения, коротковременные отключения при отсутствующем источнике бесперебойного питания. Кстати, наличие UPS так же спасает не всегда. Во-первых, не все они переносят скачки напряжения. А в наших сетях приходится сталкиваться с этим довольно часто. А во-вторых — срок службы аккумуляторов в них составляет 2-3 года. Вывод простой, менять батареи в УПСах, покупать УПСы с функцией AVR (автоматической регулировки напряжения). На втором месте конечно качество остального железа: блока питания, жестких дисков, материнской платы.
Восстановление…
Начать, как всегда стоит с создания резервной копии базы 1с, в том виде, какая она есть. Если не удается это сделать средствами 1с или SQL, то как минимум скопировать файл базы данных SQL. Бывают разные ситуации, иногда приходится восстанавливать базу из архива и затем «лечить» ее каким-нибудь другим методом.
Попробуем обойтись «малой кровью» и выполним проверку целостности базы средствами 1С. Зайдем в конфигуратор, в меню найдем «Тестирование и исправление ИБ» и в путь! Время ожидания проверки может доходить до нескольких часов. Сказать сколько именно, можно будет только после окончания. Это зависит от размера базы, ее структуры, и конечно от мощности серверов. Следует запастись терпением. Если есть возможность, то тестирование можно перенести на самый мощный компьютер, который есть под руками.
Решение «малая кровь 2» — это описанный миллион раз вариант с выгрузкой и повторной загрузкой базы из конфигуратора 1с. Кажется, что ничего не изменится? Попробуем развеять сомнения. В полной базе 1с хранит не только индексы, которые могли быть испорчены, но и большое количество заранее рассчитанных промежуточных итогов по всем регистрам. При выгрузке эта информация теряется, а при загрузке пересчитывается заново. Если была испорчена именно эта часть, то есть еще один шанс.
Если все предыдущие методы не дали эффективного результата, перейдем к проверке базы из MS SQL. Для этого нам не обходимо зайти в QA (Query Analyzer). В окошке набираем команду, для перевода базы в монопольный однопользовательский режим «single user»:
sp_dboption ‘1CBase’,’single user’,true
В данной и последующих командах 1CBase в одинарных кавычках, это имя вашей базы на сервере (не путать с названием базы 1с). Обычно оно включает только латинские буквы и арабские цифры.
Следующая команда проверяет базу в щадящем режиме. При этом гарантирована сохранность данных.
DBCC CHECKDB (‘1CBase’ , REPAIR_REBUILD)
Иногда этот способ может, так же как и предыдущие варианты, не принести результата. Обычно эта проверка проходит достаточно быстро. После ее выполнения появится список с исправлениями. Если ошибки удалось исправить, то далее выведем базу SQL из монопольного режима.
sp_dboption ‘1CBase’,’single user’,false
Однако не всегда удается обойтись без потери даннях, тога пробуем выполнить:
DBCC CHECKDB (‘1CBase ‘,REPAIR_ALLOW_DATA_LOSS)
После ее завершения все равно не забудем перевести базу из режима single-user.

Ответ мастера:

Среди современных SQL-серверов, которые обслуживают базы данных, СУБД Microsoft SQL Server считается одним из мощных и наиболее гибких решений. Данные в базе Microsoft SQL Server в основном хранятся в файлах, у которых формат mdf (Master Database File). Просмотреть подобные файлы можно, если присоединить их к работающему серверу.

Произведите соединение с SQL сервером. Когда SQL Server Management Studio запустится, выберите пункт в меню File и «Connect Object Explorer…”. Отобразится диалог Connect to Server. Обычно он отражается автоматически при запуске приложения. Выберите пункт Database Engine в списке Server tupe диалога Connect to Server. В поле Server name впишите имя своего компьютера и выберите в списке Authentication тип аутентификации. Если выберите тип SQL Server Authentication, то нужно ввести учетные данные в поле User name и еще Password для доступа к серверу. Кликните кнопку Connect.

Теперь начните присоединение базы данных. Кликните правой кнопкой мыши на панели Object Explorer по элементу Databases и в меню выберите пункт «Attach…”Затем укажите файл базы данных mdf, который нужно посмотреть. В появившемся окне Attach Databases щелкните на кнопке «Add…” и перед вами появится диалог Locate Database Files. В данном диалоге в дереве каталогов Select the file найдите и разверните узел, который соответствует директории, в которой и находится нужный файл. Теперь выделите файл и нажмите ОК.

Базу данных добавьте на сервер. В списке Databases to attach окна Attach Databases выделите элемент, который соответствует файлу mdf, указанному на предыдущем шаге. Вначале просмотрите содержимое Database details и если обнаружите здесь в поле Message элементы, которые содержат текст Not found, то удалите их, выделив его мышью и нажав кнопку Remove. Такие элементы для несуществующих файлов журналов базы данных добавляются. Нажмите ОК.

Теперь можно просмотреть структуру базы данных, которые содержатся в файле mdf. На панели Object Explorer разверните узел Databases. затем разверните узел, который соответствует ранее добавленной базе данных, и просмотрите его дочерние узлы. К примеру, в разделе Tables находятся элементы, которые соответствуют таблицам базы данных, а в разделе Views – отображениям, в разделе Programmability находятся все функции, хранимые процедуры, типы и триггеры базы данных.

Посмотрите содержимое объектов базы данных в mdf файле. Интересующий вас объект (отображение, таблицу) выделите в панели Object Explorer и нажмите на нем правой кнопкой мыши. Теперь в появившемся меню выберите пункт, который начинается со слова Open (к примеру, Open View или Open Table) для просмотра. Также возможно редактирование данных или просмотр и редактирование SQL-кода в пункте Modify.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *