Wie man den Fehler in der Microsoft SQL Server-Datenbank behebt 5171
SQL-Datenbank-Korruption ist in der Regel mit mehreren Problemen verbunden. Diese Probleme beeinträchtigen die Verfügbarkeit und Leistung der Datenbank in hohem Maße. Der Grad der Korruption in der Datenbank entscheidet über die tatsächlichen Wiederherstellungschancen und wie Sie das Problem effektiv lösen können, um jedes Risiko eines möglichen Datenverlustes abzuwenden.
In einem bestimmten Fall kann es zu einem Fehler bei der Anmeldung am SQL Server kommen oder zu einer Situation, in der Sie MS SQL-Datenbankdateien nicht wiederherstellen können. Ein weiteres Problem könnte sein, dass Sie keine “tempdb”-Datenbank erstellen können oder dass Sie jedes Mal, wenn Sie versuchen, Ihre Datenbank anzuhängen, dies nicht tun können.
Diese Probleme sind mit dem SQL-Fehler 5171 verbunden, der besagt:
“database.mdf is not a primary database file. (Microsoft SQL Server, Error: 5171)”
Dieser Fehler tritt vor allem aufgrund ungültiger Registrierungseinträge, Stromprobleme, Virusinfektionen oder beschädigter Treiber auf. Die im Folgenden beschriebenen Szenarien verursachen mit hoher Wahrscheinlichkeit den SQL-Fehler 5171.
Wenn Sie kein Backup haben oder wenn das Backup beschädigt ist, müssen Sie möglicherweise verschiedene Schritte ausführen, um Ihre Daten wiederherzustellen.
Wir werden in diesem Artikel 2 verschiedene Korruptionsszenarien erklären.
Fall I: Die Beschädigung der Datenbank in gespiegelten Datenbanken
Stellen Sie sich vor, Sie haben gespiegelte Datenbanken.
Angenommen, Sie haben MS SQL Server 2016 in Ihrem System installiert. Während Sie eine gespiegelte Datenbank verwenden, versuchen Sie, Ihre Datenbank online einzustellen, indem Sie den folgenden Befehl ausführen und den Fehler 5171 erhalten.
ALTER DATABASE mydb SET online
In diesem Fall können Sie das untenstehende Verfahren verwenden, um das Problem zu beheben:
- Einstellen des Datenbankprinzips
- Ändern Sie die Dateiinformationen mit dem Befehl ‘ALTER DATABASE MODIFY FILE’.
- Stoppt die aktuell laufende Instanz von MS SQL Server.
- Kopieren Sie Ihre MDF- und LDF-Datenbankdateien in ein anderes Verzeichnis. Sie können den Pfad der MDF- und LDF-Dateien überprüfen, indem Sie mit der rechten Maustaste auf die Datenbank klicken und Eigenschaften in SSMS auf der Dateiseite auswählen:
- Starten Sie den SQL Server neu und hängen Sie dann die Datenbankdateien an
Leider werden Sie nach dem Prozess sicherlich die Datenbankspiegelung verlieren. Sie müssen die Datenbankspiegelung erneut konfigurieren.
Fall II
Angenommen Sie verwenden MS SQL Server 2014. Jetzt trennen Sie Ihre Datenbank und aktualisieren auf MS SQL Server 2016. Nach Abschluss der Installation versuchen Sie, die Datenbank erneut anzuhängen, indem Sie die primären und sekundären Datendateien hinzufügen. In diesem Prozess kann es vorkommen, dass Sie auf die untenstehende Fehlermeldung stoßen:
“M:\folder\file_1.mdf is not a primary database file. (Microsoft SQL Server, Error: 5171)”
Als Lösung für das oben genannte Problem können Sie ‘sp_attach_db’ für das Anhängen der Datenbank verwenden.
sp_attach_db @dbname = N'mydb',
@filename1 =
N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\mydb_Data.mdf',
@filename2 =
N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\ mydb_log.ldf';
Sie können die Benutzeroberfläche auch verwenden, um eine Datenbank anzuhängen:
Diese Methode funktioniert jedoch nicht, wenn Sie ‘sp_detach_db’ nicht zum Trennen der gleichen Datenbank verwenden.
Der folgende T-SQL-Satz zeigt, wie man die Systemprozedur sp_detach_db verwendet:
EXEC sp_detach_db 'mydb', 'true';
Diese Prozedur trennt die Datenbank mydb.
Eine weitere mögliche Abhilfe ist die Verwendung des Befehls ‘CREATE DATABASE’ mit der Klausel ‘FOR ATTACH’.
Der verwendete Satz ist ähnlich wie dieser:
CREATE DATABASE N'mydb'
ON (FILENAME = N'C:\MySQLServer\AdventureWorks_Data.mdf'),
(FILENAME = N'C:\MySQLServer\AdventureWorks_Log.ldf')
FOR ATTACH;
Wir erstellen eine Datenbank namens mydb und ich spezifiziere die Datendatei und die Protokolldatei einschließlich des Pfades. Schließlich verwenden wir die Option FOR ATTACH.
Wenn die Probleme weiterhin bestehen, können Sie mit SQL Datenbank Reparieren Software den SQL-Fehler 5171 beheben und beheben.
Stellar Lösung
Stellar Repair for MS SQL ist ein umfassendes Werkzeug, das eine Vielzahl von leistungsstarken Reparaturmechanismen umfasst, um jedes verlorene, gelöschte oder nicht zugängliche Objekt aus der beschädigten SQL-Datenbank effektiv wiederherzustellen. Die Software ermöglicht eine präzise Wiederherstellung von Tabellen, Ansichten, Abfragen, Stored Procedures, Indizes, benutzerdefinierten Funktionen, eindeutigen Schlüsseln, Fremdschlüsseln, Identitäten, Vorgaben, Standardbeschränkungen und benutzerdefinierten Datentypen. Darüber hinaus unterstützt es die neuesten SQL Server-Versionen, einschließlich MS SQL Server 2019 BETA, 2017, 2016, 2014, 2012, 2008, 2005, 2000 und 7.0 sowie gemischte Formate.
Es kann Fehler mit hohem Schweregrad und kleinere Probleme aus MDF-, ndf- und LDF-Dateien beheben. Diese Software erfordert ein Installationsprogramm von weniger als 5 MB.
Die Software erfordert, dass Sie MS SQL Server stoppen und die MDF- und LDF-Dateien an einen anderen Ort verschieben, und dann können Sie den Server neu starten und die Kopie der Datenbank reparieren: