Необходимо восстановить БД SQL.
Вот что пишет SQL.
Не удалось получить данные по этому запросу. (Microsoft.SqlServer.Management.Sdk.Sfc)
Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&LinkId=20476
При выполнении инструкции или пакета Transact-SQL возникло исключение. (Microsoft.SqlServer.ConnectionInfo)
G:bt1.mdf не является файлом базы данных-источника. (Microsoft SQL Server, ошибка: 5171)
Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=11.00.2100&EvtSrc=MSSQLServer&EvtID=5171&LinkId=20476
**********************************
а если подменить файлы на созданую базу и попытаться что то делать с ней
ЗАГОЛОВОК: Microsoft SQL Server Management Studio
——————————
Не удается вывести требуемое диалоговое окно.
Не удается вывести требуемое диалоговое окно. (SqlMgmt)
При выполнении инструкции или пакета Transact-SQL возникло исключение. (Microsoft.SqlServer.ConnectionInfo)
Не удалось открыть базу данных "bt1" вследствие недоступности файлов, нехватки памяти или места на диске. Подробности см. в журнале ошибок SQL Server. (Microsoft SQL Server, ошибка: 945)
In this article, we will talk about different scenarios to repair the SQL Server when the error 5171 occurs and different alternatives to solve these problems.
SQL database corruption is generally coming with several problems. These problems affect database availability and performance on a high scale. The level of corruption in the database decides upon the actual chances of recovery and how you can effectively resolve the issue averting every risk of potential data loss.
Taking a particular case, you may encounter an SQL Server login failure or may run into a situation wherein you are unable to restore MS SQL database files. Another issue could be that you cannot create ‘tempdb’ database or every time you try to attach your database, you are unable to do so.
These problems are associated with SQL Error 5171 that states:
“database.mdf is not a primary database file. (Microsoft SQL Server, Error: 5171)”
This error primarily occurs due to invalid registry entries, power problems, virus infections or damaged drivers. The scenarios discussed below are very likely to cause SQL error 5171.
If you do not have a backup, or if the backup is corrupt, you may need to follow different steps to recover your data.
We will explain 2 different corruption scenarios in this article.
Case I: The database corruption in mirrored databases
Imagine that you have mirrored databases.
Suppose you have MS SQL Server 2016 installed in your system. While using a mirrored database, you attempt to set your database online by executing the following command and receive error 5171.
“ALTER DATABASE mydb SET online”
In this case, you may use the procedure given below to fix the issue:
- Set the database principal
- Modify the file information using ‘ALTER DATABASE MODIFY FILE’ command
- Stop the currently running instance of MS SQL Server
- Copy your MDF and LDF database files to another directory. You can check the path of the MDF and LDF files right-clicking the database and selecting properties in SSMS in the files page:
- Restart the SQL Server and then attach the database files.
Unfortunately, you will surely lose database mirroring after the process. You will need to configure the database mirroring again.
Case II
Suppose now, that you use MS SQL Server 2014. Now, you detach your database and upgrade to MS SQL Server 2016. After completing the installation, you try to attach the database again by adding the primary and secondary data files. In this process, you may encounter the below-given error message:
“M:folderfile_1.mdf is not a primary database file. (Microsoft SQL Server, Error: 5171)”
As a resolution to the above problem, you can use ‘sp_attach_db’ for attaching the database.
You can also use the UI to attach a database:
However, this method won’t work, if you do not use ‘sp_detach_db’ for detaching the same database.
The following T-SQL sentence shows how to use the system procedure sp_detach_db:
This procedure detaches the database mydb.
Another possible remedy is to use ‘CREATE DATABASE’ command with the ‘FOR ATTACH’ clause.
The sentence used will be similar to this one:
We create a database named mydb and me specify the data file and log file including the path. Finally, we use the FOR ATTACH option.
If problems still persist, you can use Stellar Repair for MS SQL to resolve and repair SQL error 5171.
Stellar Solution
Stellar Repair for MS SQL is a comprehensive tool that embraces a multitude of powerful repair mechanisms to effectively recover every lost, deleted or inaccessible object from the damaged SQL database. The software allows performing a precise recovery of tables, views, queries, stored procedures, indexes, user-defined functions, unique keys, foreign keys, Identities, Defaults, default constraints and User Defined Data Types. Moreover, it supports the latest SQL Server versions, including MS SQL Server 2019, 2017, 2016, 2014, 2012, 2008, 2005, 2000 and 7.0 and mixed formats.
It can recover errors of high severity and minor problems from MDF, ndf and LDF files. This software requires an installer of less than 5 MB
The software requires you to stop MS SQL Server and move the MDF and LDF files to a different location and then you can restart the server and repair the copy of the database:
If you do not know the path of your database, you can use the search in Folder button of the software:
Daniel Calbimonte (Microsoft MVP) has shared his experience with the software:
Conclusion
In this article, we learned that the database can be corrupted in a database mirroring and when we attach a database in an upgraded SQL Server. We learned how to repair the database using SQL Server and using Stellar Repair for MS SQL.
This software is easy to learn and saves a lot of time.
В этой статье мы рассмотрим наиболее частые ошибки SQL-сервера, какие проблемы могут возникнуть в работе с ним, как их устранить и на что стоит обратить внимание.
Содержание статьи:
- SQL-сервер не найден или недоступен, ошибки соединения с SQL-сервером
- Ошибка SQL-сервера 26
- Ошибка SQL-сервера 18456
- Не удалось запустить SQL-server – код ошибки 3417
SQL-сервер не найден или недоступен, ошибки соединения с SQL-сервером
- Если SQL-сервер не найден, убедитесь, что ваш экземпляр SQL-сервера действительно установлен и запущен. Для этого зайдите на компьютер, где он установлен, запустите диспетчер конфигурации SQL и проверьте, есть ли там тот экземпляр, к которому вы пытаетесь подключиться и запущен ли он. Нелишним будет также получить отчет об обнаружении компонентов SQL-серверов.
- Если вы проделали п1. и не обнаружили источник проблемы, возможно, неверно указан IP-адрес компьютера или номер порта TCP. Перепроверьте их настройки.
- Причиной того, что невозможно подключиться к SQL-серверу, также может быть сеть, убедитесь, что компьютер с SQL-сервером доступен по сети.
- Проверьте, может ли клиентское приложение, установленное на том же компьютере, что и сервер, подключиться к SQL-серверу. Запустите SQL Server Management Studio(SSMS), в диалоговом окне “Подключиться к серверу” выберите тип сервера Database Engine, укажите способ аутентификации “Аутентификация Windows”, введите имя компьютера и экземпляра SQL-сервера. Проверьте подключение.
Обратите внимание, что многие сообщения об ошибках могут быть не показаны или не содержат достаточной информации для устранения проблемы. Это сделано из соображений безопасности, чтобы при попытке взлома злоумышленники не могли получить информацию об SQL-сервере. Полные сведения содержатся в логе ошибок, который обычно хранится по адресу C:Program FilesMicrosoft SQL ServerMSSQL13.MSSQLSERVERMSSQLLogERRORLOG, или там, куда его поместил администратор системы.
Ошибка SQL-сервера 26
Одна из наиболее часто встречающихся ошибок подключения к SQL-серверу, обычно связана с тем, что в настройках SQL-сервера не разрешены или ограничены удаленные соединения. Чтобы это исправить, попробуйте:
- в SSMS в настройках SQL-сервера включите аутентификацию Windows
- для брандмауэра Windows создайте новое правило, которое разрешает подключение для всех программ и протоколов с указанного IP-адреса
- убедитесь, что запущена служба SQL Server Browser
Ошибка SQL-сервера 18456
Эта ошибка означает, что попытка подключиться к серверу не успешна из-за проблем с именем пользователя или паролем. По коду ошибки в журнале ошибок можно узнать более точную причину, чтобы устранить ее.
Не удалось запустить SQL-server – код ошибки 3417
Возникает в случае, если были изменены настройки Windows или перемещена папка с файлами MSSQL.
- зайдите в C:Program FilesMicrosoft SQLServerMSSQL.1MSSqLData – БезопасностьНастройки доступа – Учетная запись сетевой службы – добавьте учетную запись сетевой службы
- проверьте, что MDF-файл не сжимается. Если это не так, отключите “Сжимать содержимое для экономии места на диске” в свойствах файла
Иногда ни один из этих способов не помогает, это значит, что файлы БД повреждены и ее придется восстанавливать из резервной копии.
Повреждена база данных
Код ошибки SQL-сервера 945
Ошибка 945 возникает, когда БД SQL-сервера помечена как IsShutdown. Проверьте, достаточно ли места на диске, достаточно ли прав у учетной записи для операций с БД, файлы MDF и LDF не должны быть помечены “Только для чтения”.
Код ошибки SQL-сервера 5172
SQL-сервер хранит свою физическую БД в первичном файле, в котором информация разбита постранично. Первая страница содержит информацию о заголовке mdf-файла и называется страницей заголовка. Она состоит из разнообразной информации о БД, такой как размер файла, подпись и т.д. В процессе прикрепления MDF на SQL-сервере часто возникает ошибка 5172. Это в основном происходит, если MDF-файл поврежден, информация в его заголовке тоже и соответственно сложно добраться до данных. Причиной может быть вирус, аварийное выключение системы, ошибка оборудования.
Ошибка SQL-сервера 823
SQL использует API Windows для операций ввода-вывода, но кроме завершения этих операций SQL проверяет все ошибки обращений к API. Если эти обращения несовместимы с ОС, появляется ошибка 823. Сообщение об ошибке 823 означает, что существует проблема с базовым оборудованием для хранения данных или с драйвером, который находится на пути запроса ввода-вывода. Пользователи могут столкнуться с этой ошибкой, если в файловой системе есть противоречия или поврежден файл базы данных.
Ошибка SQL-сервера 8946
Основной причиной ошибки 8946 так же, как и для 5172, является повреждение заголовков страниц БД SQL вследствие сбоя питания, вирусной атаки, отказа оборудования – SQL-сервер больше не может прочесть эти страницы.
- если у вас есть свежая резервная копия базы – восстановить базу из этой копии
- можно попробовать использовать специализированное ПО, такое как SQL Recovery Tool, чтобы восстановить поврежденные файлы
Желательно определить, что именно привело к возникновению ошибок и принять меры, чтобы это не повторялось – заменить плохо работающее оборудование, повысить информационную безопасность.
Другие ошибки SQL
Код ошибки SQL-сервера 1814
SQL-сервер не может создать базу данных tempdb. Убедитесь, что на выделенном под нее диске достаточно места и что у учетной записи хватает прав для записи в указанную директорию.
Код ошибки SQL-сервера 1067
Эта ошибка может возникать по разным причинам. Наиболее часто оказывается, что повреждены или отсутствуют конфигурационные файлы, SQL-сервер обращается к поврежденным системным файлам, ошибочные данные пользователя, нет информации про лицензию. В самых тяжелых случаях придется переустанавливать SQL-сервер. Но иногда помогает восстановление поврежденных файлов или изменение настроек SQL-сервера – вы можете создать новую учетную запись в домене и использовать ее для службы MSSQL.
SQL-сервер запускается, но работает слишком медленно
Проанализируйте журнал сервера, индексы (фрагментацию), запросы, задания, возможность взаимных блокировок. Причин может быть масса.
Мы работаем с разными версиями SQL-сервера уже много лет, знакомы со всевозможными инструкциями SQL-сервера, видели самые разные варианты его настройки и использования на проектах у своих клиентов. В целом мы можем выделить четыре основных источника неполадок:
- Индексы – причина проблем номер один. Неправильные индексы, отсутствующие индексы, слишком много индексов и подобное. Чаще всего при проблеме с индексами пользователи или администраторы базы данных не получают сообщения об ошибке, они просто видят, что база работает очень медленно и докопаться до причин бывает очень нелегко
- изначально плохая архитектура сервера баз данных – ошибка, которую очень сложно и дорого исправлять на этапе, когда база уже используется
- плохой код, в котором возможны блокировки и тупиковые места
- использование конфигурации по умолчанию,
Если у вас не получается устранить ошибки сервера SQL-server самостоятельно, если они появляются снова и снова, то скорее всего в основе лежит одна из этих причин. В таком случае – если у вас произошла ошибка с SQL сервером, ваше ПО не видит SQL-сервер, либо нужно развернуть кластер SQL-серверов – вы всегда можете обратиться за консультацией и технической поддержкой к специалистам Интегруса, отправив заявку с сайта, написав на e-mail, либо позвонив в колл-центр нашей компании.