2017-04-19 1 views
1

Kürzlich hatte ich ein Problem in einem Remote-Server, der einen kleinen SQL-Server enthält, auf dem ausgeführt wird.Open SQL Server .mdf und .ldf Dateien von Wiederherstellung

Ich benutzte PhotoRec 7.0 für die Wiederherstellung aller Dateien einschließlich der Dateien MDF und LDF, aber jetzt habe ich keine Beziehung zwischen Namen und Dateien. Siehe Beispiel unten angehängt:

example files

ich nicht mdf Dateien auf SQL Server Studio anhängen könnte, da es keine LDF-Dateien mit dem gleichen Namen im selben Ordner befinden.

Ich habe eine Drittanbieter-Tool zum Öffnen von MDF-Dateien verwendet, und ich kann den Inhalt dieser Dateien sehen, aber es gab kein Glück für die Inspektion von LDF.

Irgendwelche Ideen für Relation MDF-Dateien mit ihren jeweiligen LDF? Oder eine Möglichkeit zum Auslassen der LDF-Datei, um MDF-Datei in SQL Server Studio zu importieren?

+1

Sie sollten eine Sicherungskopie der Datenbank erstellen und diese Sicherungskopien speichern. Berühren Sie keine .mdf- und .ldf-Dateien. Versuchen Sie, hier zu starten: https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/backup-overview-sql-server –

+2

Nächster Schritt nach dieser Disaster Recovery ist ein echtes Backup-Szenario einzurichten. Sicherungskopien sind möglicherweise inkonsistent. – Hybris95

+0

@MichailLobanov Sie sind in Ordnung. Ich habe mir gesagt, dass Backups bereits eingerichtet wurden. –

Antwort

2

Im Folgenden die Reihenfolge der Schritte, und Sie müssen sich bewusst sein, dass, this database may not be transactionally consistent.

Im Folgenden sind Schritte auf, wie Ihr db wieder online

1.Erstellen eine Datenbank mit dem gleichen Namen zu erhalten (sagen wir, newdb)
2.Shut Sie den Server
3.Replace newdb MDF-, lDF-Dateien mit Ihrem oldones (olddb) und versuchen, sQL Server
4.Your newdb startet nicht zu starten und * gehen kann in verdächtigen Zustand
5. Wenn dies der Fall ist, versuchen, die Datenbank Notfall Einstellung und wie versuchen DBCC CHECKDB unter

alter database dbname set SET EMERGENCY; 
alter database dbname SET SINGLE_USER 

6.now auf Einzelplatz gesetzt

DBCC CHECKDB (N'dbname', REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS, NO_INFOMSGS; 

99% der Ausgaben durch festgesetzt wird DBCC und wenn ja, sind Sie im Glück ..

nun die DB online und Multi-User versuchen

Einstellung

* Es könnte eine Chance sein, dass Ihre Datenbank sauber ist shutdo wn (keine aktiven Transaktionen), wenn dies der Fall ist, können Sie versuchen, unter Befehl ausgeführt wird, vor dem oben steps.SQL wird eine neue Protokolldatei für Sie

Create database dbname 
    On 
    ( 
    Filename= 'path where you copied files' 
    ) 
    For attach; 

Referenzen erstellen:
http://www.sqlskills.com/blogs/paul/checkdb-from-every-angle-emergency-mode-repair-the-very-very-last-resort/
http://www.sqlskills.com/blogs/paul/corruption-last-resorts-that-people-try-first/

+1

Danke !! Datenbank wurde fast 100% nach Ihrer Referenz –

+0

@AlexDeiWre gerettet: mit welcher Option 1 oder 2 – TheGameiswar

+1

in meinem Fall war der erste. @TheGameiswar –

Verwandte Themen