1. Разбиране на повредата на MDF файл
MDF файловете са в основата на SQL Serverмеханизмът за съхранение на данни на . Тези критични компоненти се нуждаят от бързо откриване и подходящи методи за възстановяване, когато се повредят, за да се сведе до минимум загубата на данни. Нека научим за MDF файловете и как да поправим повредени MDF файлове.
1.1 В какво е MDF файл SQL Server?
MDF (Master Database File) служи като основен файл с данни в SQL Server който съдържа всички потребителски данни като таблици, индекси, съхранени процедури, изгледи и други обекти на база данни. Този файл съдържа както схемата, така и действителните данни, което го прави most важна част от всеки SQL Server база данни. Разширението .mdf идентифицира този основен файл, който работи заедно с регистрационните файлове (.ldf). Тези регистрационни файлове проследяват информацията за транзакциите, необходима за операции по възстановяване.
1.2 Често срещани причини за повреда на MDF файл
Вашите MDF файлове могат да се повредят поради няколко причини:
- Прекъсвания на захранването или неправилно SQL Server спирания
- Хардуерни повреди, особено проблеми с подсистемата за съхранение
- Лоши сектори на устройството за съхранение
- Зловреден софтуер или вирусни атаки срещу незащитени системи
- Грешки във файловата система, които засягат съхранението на базата данни
- Софтуерни грешки в SQL Server себе си
Системните сривове по време на активни операции с бази данни могат да увеличат много риска от повреда, тъй като могат да спрат важни операции за запис.
1.3 Полезни съвети за предотвратяване на повреда на MDF файлове
Ето как можете да защитите вашите MDF файлове от повреда:
- Създавайте редовни резервни копия и автоматично проверявайте тяхната цялост
- Използвайте CHECKSUM като опция за проверка на страницата за всички бази данни
- Стартирайте команди BACKUP DATABASE с CHECKSUM
- Вземете UPS, за да избегнете внезапни изключвания
- Проверявайте дисковото пространство често, за да предотвратите проблеми със съхранението
- Актуализация SQL Server и операционната система с пачове за сигурност
- Изпълнявайте редовно DBCC CHECKDB на всички бази данни
1.4 Често срещани признаци за повреден MDF файл
Бързото откриване на повреден MDF файл може да ви спести много време за възстановяване. По-долу са някои от често срещаните признаци на повреда на MDF файл:
- Съобщения за грешка при опит за прикачване или достъп до базата данни
- Базата данни се показва в режим SUSPECT или RECOVERY_PENDING
- I/O грешки в SQL Server регистрационни файлове, особено грешки 823, 824 или 825
- Грешки при разпределение на страниците GAM/SGAM/IAM/PFS.
- Грешки в последователността по време на операции с база данни
- Внезапни проблеми с производителността
По-долу са някои от често срещаните съобщения за грешки, когато MDF файлът е повреден:
Неуспешно извличане на данни за тази заявка. (Microsoft.SqlServer.Management.Sdk.Sfc) xxx.mdf не е основен файл на базата данни. (Microsoft SQL Server, Грешка: 5171)
Прикачването на база данни не бе успешно за сървър „xxx“. (Microsoft.SqlServer.Smo) Заглавката на файла „xxx.mdf“ не е валидна заглавка на файл на базата данни. Свойството FILE SIZE е неправилно. (Micosoft) SQL ServerГрешка: 5172)
SQL Server Открита е грешка при входно/изходни операции, базирана на логическа консистентност: неправилна контролна сума (очаквана: 0x2abc3894; действителна: 0x2ebe208e). Възникнала е по време на четене на страница (1:1) в база данни с идентификатор 12 при отместване 0x00000000002000 във файл „xxx.mdf“. Допълнителни съобщения в SQL Server Регистрационният файл за грешки или регистрационният файл за системни събития може да предостави повече подробности. Това е сериозна грешка, която заплашва целостта на базата данни и трябва да бъде коригирана незабавно. Извършете пълна проверка за съгласуваност на базата данни (DBCC CHECKDB). Тази грешка може да бъде причинена от много фактори; за повече информация вижте SQL Server Книги онлайн. (Microsoft SQL Server, Грешка:824)
SQL Server открита е грешка при входно/изходни операции, базирана на логическа консистентност: скъсана страница (очаквана сигнатура: 0x########; действителна сигнатура: 0x#######).
2. Безплатни ръчни методи за поправка на MDF файл
SQL ServerНативните методи на предоставят безплатни методи за поправяне на повредени MDF файлове. Тези ръчни подходи могат да спасят бази данни, до които нямате достъп, но изискват внимателно изпълнение.
2.1 Възстановяване от скорошен архив
Мost надежден метод за възстановяване starts с възстановяване от скорошен архив. Този подход заобикаля корупцията, като се връща към здраво състояние. Можете да използвате командата RESTORE DATABASE с подходящи параметри FROM DISK, за да върнете вашата база данни в състоянието й преди повреда. Целостта на вашите данни остава непокътната, без да компрометира връзките между обектите на базата данни.
2.2 Използвайте DBCC CHECKDB с опции за REPAIR
DBCC CHECKDB ви дава вградени възможности за поправка, ако възстановяването на резервно копие не е опция:
DBCC CHECKDB (database_name, REPAIR_ALLOW_DATA_LOSS)
WITH ALL_ERRORMSGS, NO_INFOMSGS;
Командата има три нива на ремонт:
- REPAIR_FAST: Запазва синтаксиса само за обратна съвместимост; не прави ремонти
- РЕМОНТ_РЕГУЛИНД: Извършва ремонти без загуба на данни
- REPAIR_ALLOW_DATA_LOSS: Коригира всички докладвани грешки, но може да пожертва някои данни
Ние имаме изчерпателно ръководство за DBCC CHECKDB която обхваща всички опции и сценарии (официалната документация на Microsoft също е налична тук).
2.3 Рискове от използването на REPAIR_ALLOW_DATA_LOSS
Опциите за поправка идват с рискове. REPAIR_ALLOW_DATA_LOSS може да премахне напълно повредените страници, което води до трайна загуба на данни. Също така игнорира ограниченията на външния ключ, което може да наруши релационната цялост между таблиците. Така че,
- Преди ремонта, трябва ръчно да архивирате повредения MDF файл.
- След поправката трябва да проверите ограниченията, използвайки DBCC CHECKCONSTRAINTS, за да откриете недостатъци в бизнес логиката.
2.4 Използвайте DBCC CHECKTABLE
DBCC CHECKTABLE ви дава a tarполучен подход за корупция в конкретни таблици:
DBCC CHECKTABLE (table_name, REPAIR_ALLOW_DATA_LOSS);
Тази команда разглежда една таблица вместо цялата база данни. Той работи по-бързо и има по-малко рискове, след като разберете кои таблици имат проблеми.
2.5 Задаване на базата данни в режим EMERGENCY и SINGLE_USER
Силно повредените бази данни може да се нуждаят от СПЕШЕН режим като последна опция:
ALTER DATABASE [DatabaseName] SET EMERGENCY;
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB ([DatabaseName], REPAIR_ALLOW_DATA_LOSS);
Администраторите на бази данни получават достъп само за четене чрез авариен режим, ако нормалният достъп е неуспешен. Процесът възстановява регистъра на транзакциите, но вие губите последователност на транзакциите и прекъсвате веригата RESTORE. Архивирайте файловете на вашата база данни, преди да опитате спешни ремонти, за да запазите опциите си за възстановяване отворени.
2.6 Метод „Hack Attach“
Ако не можете да прикачите повреден MDF файл в SQL Server, можете да опитате метода „hack attach“:
- Създайте фиктивна база данни със същото име като вашата повредена база данни
- Вземете фиктивната база данни офлайн
- Изтрийте фиктивните файлове на базата данни
- Копирайте вашия повреден MDF файл в местоположението на фиктивния файл
- Пуснете базата данни онлайн
Този метод няма да коригира корупцията, но помага SQL Server разпознава файла и разрешава команди за поправка.
2.7 Поправяне на повредена главна база данни
Повредата на основната база данни изисква следните стъпки:
- Копирайте повредения master.mdf файл като потребителска база данни на друг сървър.
- Използвайте ръчните методи или DataNumen SQL Recovery възстановете обекти от него.
- Експортирайте възстановените обекти в скрипт.
- Възстановете главната база данни
на оригиналния сървър.
- Изпълнете скрипта, генериран в стъпка 3, за да пресъздадете потребители и обекти.
3. Използвайки DataNumen SQL Recovery за поправка на повреден MDF файл
Ако горните ръчни методи не успеят, можете да опитате професионални инструменти, като например DataNumen SQL Recovery, което ви помага да поправите повредени MDF файлове, които SQL Serverвградените инструменти на не могат да се справят. Софтуерът използва усъвършенствани алгоритми, за да получи most данни са възможни от повредени файлове и ви дава много опции за възстановяване.
3.1 Поправка на един файл
Процесът на поправка на един файл е ясен и лесен за следване:
- Затворете всички програми, които могат да променят MDF файла.
- Start DataNumen SQL Recovery.
- Изберете повредения MDF файл, като напишете името му или щракнете върху бутона за преглед.
- Включете всички свързани NDF файлове, ако имате нужда от тях.
- Изберете формата на изходната база данни или оставете системата да го открие:
- Изберете къде искате да запишете възстановения файл.
- Щракнете върху „Start Възстановяване”, софтуерът ще се свърже с вашия SQL Server екземпляр с името на вашия сървър и данните за вход.
- След това софтуерът ще поправи вашия файл със своите усъвършенствани алгоритми за възстановяване.
Ще видите лента за напредъка, която показва как върви ремонтът. След като приключите, можете да прегледате вашата възстановена база данни SQL Server Студио за управление.
3.2 Поправяне на пакет от файлове
Компаниите с няколко повредени бази данни ще спестят време с пакетен ремонт. Можете да добавите всички ваши повредени MDF файлове към опашка, да зададете вашите предпочитания за изход и start възстановяването. Тази функция работи чудесно в бизнес среди, които трябва да коригират системни проблеми с базата данни.
Подробни стъпки:
- Отидете в раздела „Възстановяване на партиди“.
- Щракнете върху „Добавяне на файлове“, за да добавите няколко SQL Server MDF файлове за ремонт.
- Можете също да щракнете върху „Търсене на файлове“, за да намерите файлове за поправка на локалния компютър.
- Щракнете върху „Start Бутон Възстановяване”.
- Всички PST файлове в списъка ще бъдат поправени един по един.
3.3 Възстановяване от твърд диск, дисково изображение или архивни файлове
DataNumen SQL Recovery прави повече от стандартното възстановяване. Може да получава SQL данни от:
- Дискови файлове на виртуална машина VMWare VMDK
- Virtual PC VHD файлове
- ISO файлове с изображения
- Windows NTBackup файлове (.bkf)
- Acronis True Image файлове (.tib)
- Norton Ghost файлове (.gho, .v2i)
Тази гъвкавост е чудесен начин да си върнете данните при различни сценарии, като например:
- Изтривате базата данни в SQL Server.
- Форматираш твърдия диск.
- Повреда на твърдия диск.
- Виртуалният диск във VMWare или Virtual PC е корумпиран или повреден и вие съхранявате база данни на него.
- Архивният файл на архивния носител е корумпиран или повреден и не можете да възстановите файла на базата данни от него.
- Файлът с изображение на диска е повреден или повреден и не можете да възстановите своя MDF файл от него.
В горните случаи все пак може да успеете да се възстановите SQL Server данни от твърдия диск, дисково изображение или архивни файлове директно.
Ако имате дисково изображение или архивни файлове под ръка, можете да направите следното:
- Щракнете върху бутона „…“, за да изберете изходния файл.
- В диалоговия прозорец „Отваряне на файл“ изберете „Всички файлове (*.*)“ като филтър.
- Изберете изображението на диска или архивния файл като изходен файл, който да бъде поправен.
- Задайте името на изходния фиксиран файл на базата данни, като например E_Drive_fixed.mdf.
Ако искате да възстановите директно от твърд диск, можете да използвате DataNumen Disk Image за да създадете файл с изображение на твърдия диск като изходен файл в DataNumen SQL Recovery:
- Изберете твърдия диск или диск.
- Задайте името на изходния файл с изображение.
- Щракнете върху „Start Cloning”, за да създадете файл с изображение на диск от твърдия диск/диск.
3.4 Възстановяване на изтрити записи и таблици
Ако изтриете някои записи в таблица или изтриете някои таблици в база данни по погрешка, можете да ги възстановите чрез DataNumen SQL Recovery.
За неделими записи, те може да не се появят в същия ред, както преди да бъдат изтрити, така че след възстановяването, може да се наложи да използвате SQL команди, за да намерите тези неделими записи.
За неделетираните таблици, ако имената им не могат да бъдат възстановени, тогава те ще бъдат преименувани като „Възстановена_Таблица1“, „Възстановена_Таблица2“ и така нататък ...
3.5 Възстановяване от рансъмуер или вирус
Стандартните методи обикновено не успяват да поправят бази данни, криптирани от зловреден софтуер. DataNumen SQL Recovery използва специални алгоритми за получаване на данни от криптирани с ransomware MDF файлове, без да плаща на нападателите. Софтуерът може да възстанови файлове дори след като криптирането е повредило техните заглавки или вътрешни структури.
3.6 Поправяне на възстановен файл
Ако MDF файловете са възстановени от DataNumen Data Recovery (или други инструменти за възстановяване на данни) не могат да бъдат прикачени SQL Server, тези файлове все още може да имат известна повреда. В такъв случай използвайте DataNumen SQL Recovery за да ги поправим отново, за да гарантираме, че техните данни са достъпни в SQL Server.
3.7 Възстановяване от tempdb.mdf
Кога SQL Server работи, той ще запази цялото темпоrary данни, включително всички темпоrary таблици и процедури за съхранение, в темпоrary база данни, наречена tempdb.mdf. Когато възникне катастрофа с данните, ако не можете да възстановите желаните данни от съществуващия mdf и свързаните ndf файлове, все пак може да успеете да възстановите данните си от tempdb.mdf, като използвате DataNumen SQL Recovery, както следва:
- Спрете услугата за двигател на данни на SQL Server.
- Използвайте функцията за търсене на Windows, за да търсите файла tempdb.mdf на компютъра, на който е инсталирана инстанцията на SQL Server.
- След като намерите tempdb.mdf, можете да го изберете като изходен файл за възстановяване и да го използвате DataNumen SQL Recovery за да го възстановите.
3.8 Примерни файлове
Версия на SQL Server | Повреден MDF файл | MDF файл, фиксиран от DataNumen SQL Recovery |
SQL Server 2014 | Грешка1_4.mdf | Грешка1_4_fixed.mdf |
SQL Server 2014 | Грешка2_4.mdf | Грешка2_4_fixed.mdf |
SQL Server 2014 | Грешка4_4.mdf | Грешка4_4_fixed.mdf |
SQL Server 2014 | Грешка5_4.mdf | Грешка5_4_fixed.mdf |
4. Онлайн услуги за възстановяване
Онлайн услугите ви предоставят различен начин за поправяне на SQL бази данни, когато изтеглянето и инсталирането на софтуер за възстановяване не е възможно или удобно. Тези онлайн услуги помагат за поправяне на повредени MDF файлове, без да са необходими задълбочени технически познания.
4.1 Лесни процедури за възстановяване
Онлайн услугите за възстановяване на SQL следват лесен за използване процес:
- Качете повредения файл – Вашият повреден MDF файл се прехвърля сигурно към сървъра на доставчика на услуги чрез криптирана връзка
- Обработка и анализ – Услугата сканира вашия файл със специализирани алгоритми и идентифицира възстановими данни
- Преглед на резултатите от възстановяването – Можете да прегледате възстановими обекти на база данни, преди да се ангажирате с пълно възстановяване
- Изтеглете поправен файл – Поправеният файл на база данни или SQL скриптове стават достъпни след обработка
Тези облачни услуги работят с SQL Server файлове на база данни като .mdf, .ndf и .ldf. Размерът на файла и тежестта на повредата определят времето за обработка, което варира от секунди до минути.
4.2 Плюсове и минуси
Предимства на онлайн възстановяването:
- Не е необходимо да инсталирате софтуер – идеално за ограничени среди или потребители без права на администратор
- Работи на всяка операционна система, включително macOS и Linux
- Готов за използване без изтегляне на големи софтуерни пакети
- Удобният за потребителя интерфейс е подходящ за хора с основни технически умения
- Можете да видите възстановими данни, преди да купите
Ограничения, за които да помислите:
- Качването на чувствителна информация от база данни на сървъри на трети страни поражда опасения за поверителността
- Максималният размер на базата данни има ограничения
- По-малко опции за персонализиране от офлайн инструментите
- Скоростта на възстановяване зависи от производителността и натоварването на сървъра
- Демо версиите показват само някои възстановими данни до покупката
Инструментите за офлайн възстановяване ви дават повече контрол и поверителност, но се нуждаят от повече технически познания. Мost онлайн услугите ви позволяват да тествате тяхната ефективност с безплатни демонстрации. Тези демонстрации възстановяват примерни данни и маркират други възстановими елементи с контейнери.
Най-добрият избор между онлайн и офлайн възстановяване се свежда до вашите нужди. Времевият натиск, техническите умения, чувствителността на данните и типът повреда на MDF файла играят важна роля в това решение.
5. Още решения
Докато методите, разгледани в предишните раздели, обработват most сценарии за повреда на MDF файлове, ландшафтът за възстановяване на бази данни предлага допълнителни специализирани решения. Оценихме множество подходи и съставихме този изчерпателен списък на most ефективни алтернативни методи които допълват основните стратегии за ремонт.
6. След ремонт: Валидирайте и защитете базата си данни
Поправянето на вашия повреден MDF файл решава само половината от проблема. Вашата база данни се нуждае от доказване на правилността и защита след успешно възстановяване, за да се поддържа целостта на данните и да се спрат бъдещи проблеми.
6.1 Проверка на целостта на възстановените данни
Подробната проверка за валидиране гарантира, че всички данни остават непокътнати след ремонт. Командата DBCC CHECKDB с DATA_PURITY сканира за невалидни стойности:
DBCC CHECKDB (database_name) WITH DATA_PURITY, NO_INFOMSGS;
Тази команда открива стойности на колони, които може да са невалидни или извън диапазона за техните типове данни. Имайте предвид, че трябва да коригирате всички открити грешки ръчно, тъй като опциите за поправка не могат да ги коригират автоматично.
DBCC CHECKCONSTRAINTS помага да се провери дали бизнес логиката остава непокътната, тъй като операциите за поправка не проверяват или поддържат ограниченията на външния ключ.
6.2 Преизграждане на индекси и ограничения
Оптимизирането на производителността става следващата стъпка, след като се провери целостта на данните. Ремонтните операции често оставят индексите фрагментирани, което изисква бързо внимание:
ALTER INDEX ALL ON table_name REBUILD;
Основният екип трябва първо да възстанови специфични индекси с висока употреба, за да възстанови бързо производителността на критични системи. Това създава нови, правилно hostизд индекси, които боost времена за отговор на заявката.
6.3 Архивиране на поправената база данни
Създайте незабавно пълно архивиране на вашата току-що ремонтирана база данни:
BACKUP DATABASE database_name
TO DISK = 'path\backup_file.bak'
WITH CHECKSUM, FORMAT;
Опцията CHECKSUM проверява целостта на архива по време на операцията. Тествайте резервното копие на тестов сървър след това, за да се уверите, че работи правилно, преди да го използвате за производствено възстановяване.
6.4 Настройване на мониторинг и предупреждения
Проактивното наблюдение помага за откриване на потенциални проблеми, преди те да повредят данните. Настройте сигнали за ключови показатели, включително:
- Процент на процесора (праг: 90%)
- Процент на използвано пространство за данни (праг: 95%)
- Използване на работник (праг: 60%)
- Блокировки (всяко събитие)
- Системни грешки при опити за свързване
Azure Monitor или SQL Server Management Studio може да конфигурира тези сигнали. Сигналите за състояние остават задействани, докато не бъдат решени, което предотвратява бури от известия по време на текущи проблеми.
Седмичните проверки на целостта с помощта на DBCC CHECKDB трябва да се изпълняват на критични бази данни, за да се уловят проблемите на ранен етап.
7. Често задавани въпроси
Повредата в базата данни създава много въпроси от потребителите. Нека да разгледаме някои често срещани въпроси относно поправката на MDF файлове в SQL Server.
7.1 Мога ли да възстановя MDF файла без LDF файла?
Отговор: Да, с професионални инструменти като например DataNumen SQL Recovery, можете да възстановите MDF файл без LDF файла.
7.2 Трябва ли да използвам инструменти за поправка на трети страни или вградени методи?
Отговор: Вградените методи заслужават първия опит, тъй като имат официална поддръжка. Въпреки това, инструментите на трети страни могат да възстановят повече данни в случаи на тежка корупция. Най-добрият избор зависи от:
- Критичност на данните
- Наличност на резервно копие
- Срокове
- Бюджетни ограничения
- Толерантност към риск за загуба на данни
8. заключение
SQL Server повредата в базата данни се нуждае от бързо откриване и подходящи методи за възстановяване, за да се сведе до минимум загубата на данни. Признаците за повреда на MDF файлове ви помагат да действате бързо, когато възникнат проблеми. Имате множество опции за възстановяване, от вградените SQL Server инструменти за специализирани решения на трети страни, като например DataNumen SQL Recovery инструментПо-долу е дадено резюме на тази статия:
Превенцията работи по-добре от лечението. Редовната поддръжка на базата данни, правилните процедури за архивиране и наблюдението на здравето на диска значително намаляват рисковете от корупция. Системата също така трябва да докаже възстановените бази данни направо чрез проверки на целостта и индекси за повторно изграждане, за да запази данните надеждни след ремонти.