Einleitung
Ich hatte einen Kollegen, der Probleme hatte, eine SQL Server-Datenbank mit dem angezeigten SQL-Fehler 5173 anzuhängen:
Fehler 5173: Dateien können nicht mit verschiedenen Datenbanken verknüpft werden.
Attach-Datenbank für Server fehlgeschlagen Serv4567′. (Microsoft.SqlServer.Smo)
Zusätzliche Information:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
One or more files do not match the primary file of the database. If you are attempting to attach a database, retry the operation with the correct files. If this is an existing database, the file may be corrupted and should be restored from a backup.
CREATE DATABASE failed. Some file names listed could not be created. Check related errors. (Microsoft SQL Server, Error: 5173)
Diese fehleranfällige Datenbankdatei war eigentlich eine wichtige Marketingdatenbank, und die Kunden beschwerten sich, weil sie keinen Zugriff auf die Datenbank hatten, die mein Kollege auf einen neuen Server mit mehr Arbeitsspeicher, einem schönen Cluster-Server und leistungsfähigen Festplatten zu migrieren versuchte. Dies ist ein berühmter Fehler beim Anhängen, der in einer Datenbank auftreten kann. In diesem Artikel werden wir zeigen, wie das Problem im Zusammenhang mit dem Fehler 5173 in SQL Server gelöst werden kann.
Anforderungen
Die folgenden Anforderungen werden Ihnen helfen, diesem Artikel zu folgen:
- In diesem Artikel wird SQL Server in jeder Version verwendet.
- Schließlich benötigen Sie SQL Server Management Studio.
Loslegen
Hier werden wir die verschiedenen verfügbaren Lösungen prüfen —
In Datenbanken haben wir 3 verschiedene Arten von Dateien für SQL Server:
- Die Primärdatendatei mit der Erweiterung .MDF ist die Hauptdatei und enthält die Daten.
- Die sekundäre Datendatei (.NDF) wird nicht standardmäßig erstellt, kann aber erstellt werden, wenn Sie die Daten aus Sicherheits- und Leistungsgründen auf verschiedenen Festplatten trennen möchten.
- In der Protokolldatei (.LDF) werden die Protokollinformationen gespeichert. Sie wird zur Wiederherstellung der Datenbank verwendet. Es ist möglich, die Daten bis zu einem bestimmten Zeitpunkt wiederherzustellen.
Die gespeicherte Prozedur sp_helpfile system zeigt alle Dateien in einer bestimmten Datenbank an. Sie zeigt die Größe, den Pfad, die Dateigruppe und die ID an.
Das Problem ist normalerweise, dass die mdf-Datei nicht das gleiche Datum wie die .LDF-Datei hat. Zum Beispiel, wenn eine mdf-Datei vom June 2 versucht, mit der ldf-Datei vom June 3 wiederhergestellt zu werden.
Eine mögliche Lösung
Wenn Ihre Primärdatendatei nicht mit der Protokolldatei übereinstimmt und Ihre Primärdatendatei korrupt ist, können Sie Folgendes tun:
- Überprüfen Sie, ob die Primärdatei zur Protokolldatei gehört. Manchmal hängen Sie die falsche Protokolldatei an die Primärdatei an.
- Stellen Sie die beschädigte primäre Datendatei mit Stellar Repair for MS SQL wieder her, um die primäre und sekundäre Datei der beschädigten SQL-Datenbank zu reparieren.
Sie können die Software hier herunterladen:
Stellar Repair for MS SQL Software stellt Ihre .MDF-Datei wieder her, erkennt Ihre SQL Server-Datenbankobjekte und Sie können die Daten nach SQL Server (MDF), Excel, CSV, HTML exportieren.
Die Software erfordert, dass der MS SQL-Dienst gestoppt wird, bevor der SQL-Datenbank-Wiederherstellungsprozess gestartet wird. Sie können die .MDF-Datei auf jedem Rechner mit oder ohne MS SQL Server wiederherstellen.
Log-Datei erneut erstellen
Wenn Sie nach der Wiederherstellung den Fehler 5173 haben und die richtige Protokolldatei (.LDF) nicht finden können, ist es möglich, eine .LDF-Datei für die wiederhergestellte .MDF-Datei neu zu erstellen. Der folgende T-SQL-Code hilft Ihnen, die Protokolldatei für die .MDF-Datei wiederherzustellen:
CREATE DATABASE yourdatabase
ON (FILENAME = 'c:\yourPrimaryFile_Data.mdf')
FOR ATTACH_REBUILD_LOG ;
Der Code erstellt eine Datenbank auf der Grundlage der mdf-Datei und erzeugt eine neue Protokolldatei für die mdf-Datei. Bei attach_rebuild_log wird ein neues Protokoll für Sie erstellt.
Schlussfoglerung
Der Fehler 5173 in Microsoft SQL Server hängt mit einem Problem mit der primären Datendatei und der Protokolldatei zusammen. Aufgrund eines Unfalls stimmen die Dateien nicht überein, und die SQL-Datenbank geht davon aus, dass die Dateien zu verschiedenen Datenbanken gehören.
Wenn die Primärdatendatei beschädigt ist, können Sie Stellar Repair for MS SQL verwenden. Diese Software kann eine beschädigte Datenbank mit einfacher Software reparieren. Nach der Reparatur (falls erforderlich) können Sie die Protokolldatei mit dem Satz create database neu aufbauen und für attach_rebuild_log verwenden. Diese Option erzeugt ein neues Protokoll für Sie.