Mdf не является файлом базы данных источника
SQL Server использует MDF для файлов данных и LDF для файлов журналов, но что такое файлы NDF?
в чем преимущества этих файлов?
с архитектура файлов и файловых групп
вторичные файлы данных
вторичные файлы данных составляют все файлы данных, кроме первичного файла данных. Некоторые базы данных могут не иметь дополнительных файлов данных, в то время как другие имеют несколько дополнительных файлов данных. рекомендуемое расширение имени файла для вторичных файлов данных .НДФЛ.
и с расширение файла NDF-Microsoft SQL Server secondary файл данных
посмотреть понимание файлов и файловых групп
дополнительные файлы данных являются необязательными, определяемые пользователем, и сохранять пользовательские данные. Вторичные файлы могут быть использованы для распространения данные на несколько дисков, каждый файл на другом диске. Кроме того, если база данных превышает максимальный размер для одного окна файл, вы можете использовать вторичные файлы данных таким образом, база данных может продолжать расти.
в рекомендуемое расширение имени файла для вторичных файлов данных .НДФЛ.
например, три файла, Data1.ndf, Данных2.ndf, и Data3.НДФ, может быть создано на трех дисках, соответственно, и присваивается файловая fgroup1. Таблица может тогда быть создан специально для файловой группы fgroup1. Запросы на получение данных из стол будет разбросан по всей тройке диски; это позволит повысить производительность. Такое же улучшение производительности мочь быть выполнено с помощью одного файла созданный на RAID (избыточный массив независимые диски) набор полосок. Однако, файлы и файловые группы позволяют легко добавлять новые файлы на новые диски.
вторичные файлы данных являются необязательными, определяются пользователем и хранят пользовательские данные. Вторичные файлы можно использовать для распространения данных по нескольким дискам, помещая каждый файл на другой диск. Кроме того, если база данных превышает максимальный размер для одного файла Windows, можно использовать вторичные файлы данных, чтобы база данных могла продолжать расти.
рекомендуемое имя файла расширение для вторичных файлов данных .ndf , но это не является обязательным.
файл NDF-это определяемый пользователем файл базы данных-получателя Microsoft SQL Server с расширением .ndf, которые хранят пользовательские данные. Кроме того, когда размер файла базы данных растет автоматически от его указанного размера, вы можете использовать .файл ndf для дополнительного хранения и т. д.файл ndf может храниться на отдельном диске. Каждый файл NDF использует то же имя файла, что и соответствующий файл MDF. Мы не можем открыть .файл ndf в SQL Server без прикрепления его связанного .файл МДФ.
My database Drive got crashed and eventually I have to recover the MDF's, LDF's from 3rd party recovery software. I dont have the backup of these databases.
When trying to attach these DB's in SQL Server 2008. I am getting this error
TITLE: Microsoft SQL Server Management Studio
------------------------------
Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc)
------------------------------
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
E:\Data\Database.mdf is not a primary database file. (Microsoft SQL Server, Error: 5171)
Original Database is of SQL Server 2008 and restoring on the same version
Что является причиной повреждения файла MDF?
Существует несколько возможных причин, по которым файл SQL MDF поврежден. Здесь мы обсудим некоторые из причин:
- Повреждение хранилища, на котором хранятся все файлы MDF.
- Если пользователь сохранил базу данных SQL в сжатой папке, существует вероятность, что файл MDF будет поврежден.
- Любые изменения будут внесены в учетную запись SQL Server.
- Пользователь может случайно удалить данные.
- Если заголовок файла поврежден, он повредит файл MDF.
- Использование базы данных SQL с сетевой ошибкой приведет к повреждению файла MDF.
- Сбой жесткого диска, вирусная атака, внезапный сбой питания, внезапное отключение системы
Метод 2: Восстановление MDF файла с помощью Инструмент восстановления SQL
В случае сбоя ручного метода вы можете выбрать программное обеспечение Восстановление SQL. Это 100% безопасное и полезное приложение для восстановления и восстановления файла MDF. Это помогает пользователям восстановить все элементы данных, такие как таблицы, правила, триггеры, функции и многое другое. Инструмент прост в использовании и предоставляет различные расширенные функции, которые даже полезны для непрофессиональных пользователей.
Выполните следующие простые шаги для восстановить поврежденный файл MDF в SQL Server 2019, 2017, 2016, 2014, 2012:
Шаг 1. Загрузите и запустите программное обеспечение
Шаг 2. Нажмите «Открыть» и выберите файл MDF для восстановления.
Шаг 3. Выберите параметр сканирования, а затем вручную или автоматически выберите версию .mdf файла SQL Server.
Шаг 4. После завершения процесса сканирования вы можете легко увидеть предварительный просмотр восстановленных данных. Удаленные записи базы данных SQL будут показаны красным цветом. Теперь нажмите на опцию экспорта сверху.
Шаг 5. Выберите «Параметры экспорта» из «Экспорт в базу данных SQL Server» и «Совместимые сценарии SQL Server». После заполните необходимые данные.
Шаг 6. Выберите базу данных назначения из «создать новую базу данных» и «экспортировать в существующую базу данных» в соответствии с необходимостью.
Шаг 7. Выберите опцию Экспорт только со схемой и Со схемой и данными. После этого нажмите кнопку «Экспорт».
Все ответы
Sadly I'm not sure there's anything you can do. It sounds like the data file has corrupted when the drive failed. If that is the case then I don't think there's any way you can get it running.
However, you will get a lecture about not having backups. and quite rightly.
On a first view I would guess your database file is damaged, but it will be difficult to validate this.
You could may try the following: Create a new database with the same database .mdf file name. Shutdown SQL Server and replace the .mdf with the recovered mdf file (save the new created mdf!) and then start SQL Server again. May you have luck and SQL Server could repair the file; but I won't bet on it.
Check the ErrorLog of SQL Server after you have started the service to see which error occur.
I have already tried to do it but unfortunately, this method is not working either.
I am also trying to contact paul
Scott, good point.
srsiddiqui, can you confirm if you are connected to a SQL Server 2008 or SQL Server 2008R2? You can select it with
If you try to attach a 2008 database to a 2008R2 server, then the server will first migrate the database to the new version, which is not possible if the database file is damaged.
You have better chance to get the database file repaired, if you attach it to a SQL Server of the same version.
when trying to run
CREATE DATABASE RecipesDb ON
(FILENAME = N'C:\DATA\Softwares - Temp\Database.mdf')
FOR ATTACH_REBUILD_LOG;
but getting below error
Msg 824, Level 24, State 6, Line 1
SQL Server detected a logical consistency-based I/O error: restore pending. It occurred during a read of page (0:0) in database ID 0 at offset 0000000000000000 in file 'C:\DATA\Softwares - Temp\Database.mdf'. Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
However the Database is not attached in Management Studio. Do i need to run dbcc checkdb and HOW
From the first error message:
E:\Data\Database.mdf is not a primary database file.
This issue can occur if we tried to create a database based on a MDF file which is not primary database file. The primary data file is the starting point of the database and points to the other files in the database. Every database has one primary data file. The recommended file name extension for primary data files is .mdf. With this error message, we need to find the primary data file of database.
From the second error message:
SQL Server detected a logical consistency-based I/O error: restore pending. It occurred during a read of page (0:0) in database ID 0 at offset 0000000000000000 in file 'C:\DATA\Softwares - Temp\Database.mdf'.
This issue can occur if 'C:\DATA\Softwares - Temp\Database.mdf' was corrupted, under this situation, we need to use a valid backup file to restore the database, otherwise, I think we will lose the data in this database file.
At the time of using SQL Server, there are chances that you may come across a SQL Server login failure issue or stick in a situation where you are not able to restore the Microsoft SQL Server database files. There could be another issue where you cannot create ‘tempdb’ database or unable to attach MDF file in your database. These all problems are associated with the SQL Server error 5171 that states:
“database.mdf is not a primary database file. (Microsoft SQL Server, Error: 5171)”
It is a very common issue that occurs during the corruption of SQL file. Because SQL database corruption can affect the MDF files and its performance. As a result, SQL Server encounters an error message that is shown below.
Дополнительные функции программного обеспечения восстановление MDF файла
- Восстановление поврежденный файл базы данных SQL со всеми объектами, такими как таблицы, триггеры, функции, правила и т. Д.
- Расширенная опция для предварительного просмотра удаленных записей базы данных SQL в красном цвете.
- Нет проблем с размером файла, номером файла и потерей данных при восстановлении поврежденного файла MDF.
- Поддерживает SQL Server 2017, 2016, 2014, 2012, 2008 и все другие версии.
- Восстановить поврежденный файл MDF и восстановить данные непосредственно в действующей базе данных SQL Server, используя только учетные данные вашей учетной записи SQL Server.
- Восстановить файл базы данных SQL в новую базу данных или существующую базу данных без каких-либо изменений.
- Работает со всеми последними и более ранними версиями ОС Microsoft Windows, включая Windows 10, 8, 7 и т. Д.
Последние строки
Данные всегда важны для всех нас, и повреждение файла базы данных SQL MDF может вызвать проблемы у пользователей. Чтобы преодолеть и решить проблему повреждения, здесь мы объяснили руководство и автоматизированное решение восстановить поврежденный файл базы данных SQL. Может быть трудно выполнить восстановление MDF файла вручную, потому что это требует сильных технических знаний, а иногда и не устраняет повреждение. По этой причине рекомендуется выбрать автоматическое решение для быстрого и безопасного результата.
в основном я следовал учебник и решил удалить .mdf файл после этого.
моя строка подключения выглядит следующим образом:
Я пробовал смотреть на Обозреватель объектов SQL Server, но он выглядит следующим образом:
кроме того, в Обозревателе серверов я не см. любые подключения к данным.
и когда я пытаюсь добавить новое подключение в Обозревателе серверов я не вижу никаких баз данных с именем OdeToFoodDb .
извините за этот широкий вопрос, но я новичок в Entity Framework и не совсем понимаю, что здесь не так.
Edit Этот ответ был принят потому что это подтверждает ошибка и обходной путь, используемый OP (переименование базы данных может помогите). Я полностью согласен с тем, что переименование базы данных на самом деле не является приемлемым способом, и не полностью решает проблему. К сожалению, я не проверил другие способы действительно решить ее в SSMS.
Я думаю, что для локальной БД SQL Server вы не должны использовать Initial Catalog собственность. Я предлагаю использовать:
Я думаю, что локальная БД не поддерживает несколько баз данных в одном файле mdf, поэтому укажите, что исходный каталог не поддерживается (или не поддерживается, и у меня есть некоторые странные ошибки).
из консоли диспетчера пакетов запустите:
sqllocaldb.exe stop v11.0
sqllocaldb.exe delete v11.0
запуск проекта
- регистрация пользователя
удалите эту строку из строки подключения, которая должна это сделать ;) "Ключевое слово attachdbfilename=|параметр datadirectory|whateverurdatabasenameis-ХХХХХХХХХХ.МДФ"
- в Обозревателе серверов добавить новое подключение к базе данных
- Выберите файл базы данных Microsoft SQL Server в качестве источника данных
- выбрать имя базы данных, как это должно быть в соответствии с строку подключения в web.конфигурации
- был создан новый файл базы данных, и в Обозревателе серверов появились два подключения к базе данных: "MyDatabaseName" и " MyDatabaseName (Имя_моего_проекта)"
- удалить одно соединение (я удалил "MyDatabaseName")
У вас уже есть старая копия базы данных, установленные в Обозревателе серверов. Таким образом, это простое столкновение имен в Обозревателе объектов сервера / SQL server. Вероятно, вы уже создали то же имя каталога базы данных, прежде чем решили переместить его в папку Apps_Data. Так что имя базы данных уже существует и просто должно быть удалено.
просто зайдите в Visual Studio > View > SQL Server Object Explorer и удалите старое имя базы данных и ее соединение. Повторите попытку приложения еще раз и он должен установить .mdf-файл в App_Data и снова создайте ту же самую точную базу данных в Проводнике сервера.
согласно @davide-icardi, удалите "Initial Catalog=xxx;" из интернета.config, но также проверьте, чтобы ваш файл профиля публикации azure также удалил его отсюда:
[Youraspnetproject path]\Properties\PublishProfiles[YourAspNetProjectName].pubxml
выше cmd показывает имена экземпляров, включая 'v11. 0'
Если экземпляр уже запущен, введите в подскажите
Если состояние не запущено или остановлено, запустите экземпляр с помощью
и извлечения же информация, что и выше.
в диалоговом окне SS Management Studio 'Connect' введите
после подключения найдите фантомную БД, которую вы удалили (например, YourDB.mdf должен был создать БД с именем YourDB), и действительно удалить его.
готово! Как только он исчезнет, VS У EF не должно быть проблем с его воссозданием.
Я обнаружил, что комментирование раздела контекста, используемого для инициализации базы данных, решило проблему. У меня не было времени, чтобы узнать, что было не так с заявлениями о посеве, но удаление посева решило проблему.
У меня была та же ошибка при выполнении учебника по "начало работы с ASP.NET MVC 5 / Microsoft Docs". Я был на Visual Studio 2015. Я открыл View - > SQL Server Object Explorer и удалил базу данных, названную в честь учебника, тогда она могла бы работать. смотрите удалить .mdf файл из app_data вызывает исключение не удается прикрепить файл в качестве базы данных
восстановить базу данных. Не удалять его и ваше приложение должно продолжать работать.
странно, по той же проблеме, что помогло мне был изменения в версии 11.0 в следующем разделе конфигурации.
недавно я столкнулся с той же проблемой. Вот одна вещь, чтобы проверить. в visual studio есть три места, которые мы должны проверить и удалить базу данных.
когда я удаляю базу данных из первых двух точек, ошибка все равно возникает. Итак, мне также нужно было удалить базу данных из Обозревателя объектов SQL Server. Тогда я мог бы легко запустить команду "update-database" без ошибок. Надеюсь, это поможет.
просто измените имя базы данных от web.уровень проекта конфигурации файл, а затем обновить базу данных.
connectionString = источник данных =(LocalDb)\MSSQLLocalDB;AttachDbFilename=| / DataDirectory / \aspnet-имя проекта-20180413070506.mdf"; Initial Catalog ;интегрированное
измените жирную цифру на какое-то другое число:
connectionString = данные Источник==(на localdb)\MSSQLLocalDB;ключевое слово attachdbfilename ; Initial Catalog ;интегрированное
столкнулся с аналогичной проблемой не совсем то же самое, случай базы данных уже существовала проблема была решена с помощью следующего кода.
Все ответы
Sadly I'm not sure there's anything you can do. It sounds like the data file has corrupted when the drive failed. If that is the case then I don't think there's any way you can get it running.
However, you will get a lecture about not having backups. and quite rightly.
On a first view I would guess your database file is damaged, but it will be difficult to validate this.
You could may try the following: Create a new database with the same database .mdf file name. Shutdown SQL Server and replace the .mdf with the recovered mdf file (save the new created mdf!) and then start SQL Server again. May you have luck and SQL Server could repair the file; but I won't bet on it.
Check the ErrorLog of SQL Server after you have started the service to see which error occur.
I have already tried to do it but unfortunately, this method is not working either.
I am also trying to contact paul
Scott, good point.
srsiddiqui, can you confirm if you are connected to a SQL Server 2008 or SQL Server 2008R2? You can select it with
If you try to attach a 2008 database to a 2008R2 server, then the server will first migrate the database to the new version, which is not possible if the database file is damaged.
You have better chance to get the database file repaired, if you attach it to a SQL Server of the same version.
when trying to run
CREATE DATABASE RecipesDb ON
(FILENAME = N'C:\DATA\Softwares - Temp\Database.mdf')
FOR ATTACH_REBUILD_LOG;
but getting below error
Msg 824, Level 24, State 6, Line 1
SQL Server detected a logical consistency-based I/O error: restore pending. It occurred during a read of page (0:0) in database ID 0 at offset 0000000000000000 in file 'C:\DATA\Softwares - Temp\Database.mdf'. Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
However the Database is not attached in Management Studio. Do i need to run dbcc checkdb and HOW
From the first error message:
E:\Data\Database.mdf is not a primary database file.
This issue can occur if we tried to create a database based on a MDF file which is not primary database file. The primary data file is the starting point of the database and points to the other files in the database. Every database has one primary data file. The recommended file name extension for primary data files is .mdf. With this error message, we need to find the primary data file of database.
From the second error message:
SQL Server detected a logical consistency-based I/O error: restore pending. It occurred during a read of page (0:0) in database ID 0 at offset 0000000000000000 in file 'C:\DATA\Softwares - Temp\Database.mdf'.
This issue can occur if 'C:\DATA\Softwares - Temp\Database.mdf' was corrupted, under this situation, we need to use a valid backup file to restore the database, otherwise, I think we will lose the data in this database file.
At the time of using SQL Server, there are chances that you may come across a SQL Server login failure issue or stick in a situation where you are not able to restore the Microsoft SQL Server database files. There could be another issue where you cannot create ‘tempdb’ database or unable to attach MDF file in your database. These all problems are associated with the SQL Server error 5171 that states:
“database.mdf is not a primary database file. (Microsoft SQL Server, Error: 5171)”
It is a very common issue that occurs during the corruption of SQL file. Because SQL database corruption can affect the MDF files and its performance. As a result, SQL Server encounters an error message that is shown below.
Fix SQL Server Error 5171 Using Professional SQL Recovery Tool
With the help of above mentioned resolution techniques, you can easily fix the error message “database.mdf is not a primary database file”. In case, if you are still facing the SQL error code 5171, then you need to opt a trouble-free professional tool to Repair Corrupt MDF File. Because, it is a very beneficial application that can repair the MDF file and fix this error message. This utility can also scan and recover all SQL data items like triggers, rules, functions, tables, stored procedures, etc. You can also download its free version from this link:-
Conclusion
Here, it is discussed that the SQL database can be corrupted because of database mirroring and during the attachment of MDF file in an upgraded SQL Server. We also knew the situation where SQL Server error 5171 occurs and learned the solution to fix it. Also, with the help of SQL Recovery tool, this problem can be resolved easily. Because working with this utility is quite easy and it also saves a lot of time.
Frequently Asked Questions:-
If you are getting the error from the MDF file corruption, then tool will certainly fix it.
I am getting “.mdf is not a primary database file. (microsoft sql server error 5171)” while attaching the database. How to fix this?
Try the methods written in this technical guide to resolve the error messages 5171 in Microsoft SQL Server.
Yes, the utility easily repair MDF file of Microsoft SQL Server 2019 or all below editions.
Exclusive Offers & Deals, Grab it Now!
By Ashwani Tiwari
Being a Chief Technical Analyst, I am aware of the technicalities faced by the user while working with multiple technologies. So, through my blogs and articles, I love to help all the users who face various challenges while dealing with technology.
Файл MDF является основным файлом базы данных в SQL Server. Как все мы знаем, Microsoft SQL Server является наиболее предпочтительной системой реляционных баз данных, хранящей миллионы записей каждый день. В такой ситуации повреждение файла SQL MDF может представлять высокий риск для организаций. Если файл MDF поврежден, SQL Server не сможет получить доступ к файлу данных. Поэтому необходимо восстановить поврежденный файл MDF. Этот блог расскажет вам, как выполнить восстановление MDF файла? Прежде чем перейти к процессу, мы должны сначала знать причины коррупции.
Solution to Fix Error 5171
Step 1. At first, set principal database.
Step 2. Then, modify MDF file information by using “ALTER DATABASE MODIFY FILE” command.
Step 3. Now, stop the currently running SQL server instance by clicking on the Stop option.
Step 4. After that, copy the MDF and LDF files to a different directory.
Step 5. Finally, restart the SQL Server and attach MDF and LDF files.
Why Does SQL Error Code 5171 Encounter?
Data stored in MDF file saves as pages and the size of each page is only 8 KB. The first page of the MDF file is known as the name of header page and contains crucial database information such as file signature, file size, compatibility, etc. and the actual data is stored in the rest of the pages. If either the header page or other page is not recognized by the SQL Server, then MDF file is not considered as a valid primary database file. This situation becomes the cause of SQL database error 5171 in SQL Server 2008 / 2008 R2 / 2000 / 2005 / 2012 / 2014 / 2016 / 2017. Also, this problem in SQL Server can occur due to invalid registry entries, virus infections, power failure, damaged drivers, etc.
Способ 1: Восстановить поврежденный файл MDF с помощью DBCC CHECKDB
Шаг 1. Сначала запустите DBCC CHECKDB в поврежденной базе данных SQL, используя следующую команду:
DBCC CHECKDB (Name of the corrupt Database)
Шаг 2. Теперь проверьте идентификатор индекса и рассмотрите следующие два случая соответственно
- Случай 1: Если ID индекса> 1, удалите его и создайте заново.
- Случай 2: Если ID индекса равен 0 или 1, снова запустите DBCC CHECKDB и используйте параметры восстановления, такие как
DBCC CHECK (name_of_corrupt_database, repair_fast)
DBCC CHECK (name_of_corrupt_database, repair_rebuild)
DBCC CHECK (name_of_corrupt_database, repair_allow_data_loss)
Case 1: The Database Corruption in Mirrored Databases
If you are running SQL Server on your system and you have some mirrored databases, then you need to set it online at the time of using one of the mirrored databases. To do so, you can run the following commands:
ALTER DATABASE mydb SET online
But, instead of setting the mirrored database, “Microsoft SQL Server error 5171” occurs. Hence, the solution is discussed here to help you.
Как выполнить восстановление MDF файла? – Быстрое решение
MDF – это основной файл базы данных в SQL Server, который содержит схему и данные, а также файлы LDF (файл журнала). Для восстановления файла MDF и восстановить файл базы данных SQL существует два метода. Во-первых, мы будем восстановить поврежденный файл базы данных SQL через DBCC CHECKDB, а во-вторых, восстанавливать через сторонние приложения. Просто следуйте приведенным ниже инструкциям и выберите наиболее подходящее для вас решение.
How to Know About SQL Server Error 5171?
Whenever you get this error message “MDF is not a primary database file”, you should read the additional information that pops up with the error message. It helps you to understand the problem in a more clear way. It says:
It states when the SQL error 5171 occurs.
“ABC.mdf is not a primary database file. (Microsoft SQL Server, Error: 5171)”
It states the reason behind the SQL error. If MDF file is corrupted, then SQL identifies it is an invalid file.
Case 2: Improper Upgradation of SQL Server
Another case, if you are using SQL Server 2014 and want to upgrade to the SQL Server 2016. And, after the completion of successful installation of new version, you try to attach the MDF file again and again. Then, it turns out to be MS SQL Server Error 5171.
Solution:
This situation can be removed by running “sp_attach_db” command. It will help you to resolve the SQL error “MDF is not a primary database file”.
How to Eradicate SQL Error “MDF is Not a Primary Database File”?
In order to resolve the database.mdf is not a primary database file, first, you need to know the different scenarios. Because the process of SQL Server error 5171 recovery totally depends upon the situations you are in. Here, we will discuss two circumstances where SQL error 5171 occurs and different alternatives to solve this problem.
Читайте также: