yan2021
Goto Top

Defekte SQL-Datenbank reparieren

Hallo,

wir nutzen einen Microsoft SQL-Server 14.0.2052.1.

Dort gibt es 2 aktive Datenbanken.
Nachdem ich eine der beiden Datenbanken manuall sichern wollte, bevor ich ein Update für die entsprechende Software installiere, brach die Sicherung immer wieder bei 70% ab.

Wir haben einen IT-Dienstleister, dem aber bis dahin auch noch nicht aufgefallen war, dass auch die tägliche Sicherung dieser Datenbank über eine Backup-Software schon seit längerer Zeit nicht mehr funktioniert hatte. OK... das ist jedoch jetzt nicht das Hauptthema face-wink

Jedenfalls wurden schon sämtliche Methoden ausprobiert, die offensichtlich defekte SQL-Datenbank zu reparieren.
Bisher leider ohne Erfolg.
Auch das Klonen des entspr. virtuellen Servers (auf dem die DB liegt) funktioniert nicht und bricht ab... offenbar ebenfalls aufgrund der defekten Datenbank.

Unser IT-Dienstleister hat nun schon den Microsoft-Support zur Hilfe genommen und mit deren Hilfe verschiedene Reparaturversuche für die SQL-Datenbank durchgeführt.

Wenn ich dann mal wieder eine Email erhalte mit "versuchen Sie jetzt nochmal, die entspr. Datenbank zu sichern", geht es bisher immer so aus, dass diese Sicherung bei 70% abbricht. Das war auch gestern wieder so.

Offenbar sind unser IT-Dienstleister... aber wohl auch der Microsoft-Support... derzeit mit ihrem Latein am Ende.

Daher dachte ich, dass ich diesen Thread mal hier reinstelle, in der Hoffnung, dass vielleicht jemand von Euch noch eine Idee hat, was man machen könnte.

Das Problem ist, dass die letzte Sicherung, die funktioniert hat, von Anfang 2024 ist... und das könnte u.U. katastrophal sein.

Grüße von
Yan face-wink

Content-Key: 82382636888

Url: https://administrator.de/contentid/82382636888

Printed on: July 19, 2024 at 08:07 o'clock

Member: ukulele-7
ukulele-7 Jul 11, 2024 at 10:33:58 (UTC)
Goto Top
Kannst du denn auf die Datenbank noch zugreifen? Also zumindest auf bestimmte Inhalte? Du sagst nur das Backup geht nicht und die VM lässt sich nicht Klonen (online?), was eigentlich gar nicht sein kann. Eine defekte Datei kann ich ja auch immer kopieren, macht sie nur nicht heile. Sollte aber natürlich unbedingt VORHER passierten, um nicht am lebenden Patienten zu operieren.
Member: Crusher79
Crusher79 Jul 11, 2024 at 10:44:18 (UTC)
Goto Top
Hallo, was ist mit der Software die die nutzt?

Wie Komplext ist die DB? Hersteller der Software noch verfügbar?

Du kannst auch alles via T-SQL in eine neue DB kopieren. Ist aber nur der Inhalt. Trigger, Views etc. vorhanden? Tabellen Rationen bekannt?

Wenn die Relationen einfach nachzuvollziehen sind und einige Tabellen sogar für sich allein stehen können, dann könnte es mit T-SQL eine Option sein.

Wobei man auch Views, Trigger exportieren und nachbauen kann.

SQL Server ist für Entwickler kostenlos. Man könnte die DB mal in eine gleiche SQL Standard Version hängen oder in eine neuere SQL Version.

Wird wirklich beim Backup abgebrochen oder sind das verbundene Task für Index Neuaufbau u.ä.?

MS zu fragen ist so eine Sache. Was läuft auf der DB? Im Zweifel kann der Author der SQL Snippets bzw. Software, die die DB nutzt, mehr sagen!


Je nach Umfang kann man auch Backup durch einfaches Kopieren von A nach B erzielen. Dazu muss man die DB kennen! Besonders wie gesagt Trigger, Views und Stored Procedures.

Erst dann kann man sagen wie groß der Schaden ist und was genau betroffen ist.

Es gibt auch Authoren die Temp Tabellen anlegen. Oder Tabellen, deren Inhalt diurch Prozeduren oder Programme von Extern wieder gefüllt werden kann.

Hängt von so vielen Dingen ab.

Wichtig ist ggf. dann erstmal mit den Programmieren zu sprechen. Oder erstmal zu klären, was da überhaupt drauf läuft!
Member: ThePinky777
ThePinky777 Jul 11, 2024 updated at 10:55:51 (UTC)
Goto Top
Backup....

wie genau macht ihr das Backup, per software oder per SQL Server Task oder hast schon mal manuellen dump gemacht?

Per SQL Command:
BACKUP DATABASE datenbankname TO DISK='c:\datenbank.bak'  

Datenbankname anpassen und pfad nach belieben.

Und die entscheidenede Frage was für einen Fehler wirft der Server den, Eventlog, SQL Server Log oder sonst wo muss ja im Detail was stehen was sein problem ist.
Das herausfinden und hier posten oder googeln.

und ne andere Frage - läuft die Datenbank so wie sie ist aktuell noch?

dann wie sind die settings z.b. fürs datenbank fiule und log file der datenbank.
eventuell ist das log file begrenzt von der grösse und kann nicht auf die grösse anschwellen was es eigentlich braucht.
Member: max
max Jul 11, 2024 at 11:11:23 (UTC)
Goto Top
Sollte noch Zugriff auf die DB bestehen, würde ich ein gleichwertiges System aufbauen und dann anfangen, jede Db, Tabelle, Trigger und Functions einzeln von der alten auf die neue DB zu synchronisieren. Tools wie Navicat for SQL Server können das auch automatisiert. Erstens kann man damit den defekten Teil recht einfach finden und zweites weiß man dann, welche Daten verloren sind und welche nicht.

Auch das Klonen des entspr. virtuellen Servers (auf dem die DB liegt) funktioniert nicht und bricht ab.

Das hört sich eher nach einem Defekt der gesamten VM an, als ein Fehler der Datenbank. Das Klonen sollte unabhängig von der DB funktionieren.

Gruß
max
Member: ukulele-7
ukulele-7 Jul 11, 2024 at 11:17:39 (UTC)
Goto Top
Erstmal posten ob auf die DB noch zugegriffen werden kann und ob z.B. der Datenbank-Dienst schon mal angehalten und neu gestartet wurde. Wenn das mit Sicherheit geht, kann man den Dienst anhalten und die mdb und ldf weg sichern und mit dem Klon spielen.

Wenn du nicht weißt, ob die Datenbank wieder startet, aktuell aber Zugriff möglich ist, dann würde ich alles händisch klonen, meist sind diese Datenbanken nicht so wahnsinnig komplex. Oder mal mit dem Hersteller der Software brain stormen.
Member: Yan2021
Yan2021 Jul 11, 2024 updated at 11:47:18 (UTC)
Goto Top
Puuuuuuuuh, da hab ich ja was losgetreten face-wink

Seid mir nicht böse, aber die meisten Fragen (vor allem die sehr spezifischen von @Crusher79) kann ich selbst überhaupt nicht beantworten. Aber ich versuche mal, all die zu beantworten, die ich kann...

Es gibt ja 2 Datenbanken auf diesem SQL-Server.
Man kann mit beiden Programmen arbeiten und es gibt dort auch keine Probleme.

Eine der beiden Datenbanken kann ich auch manuell sichern. Das funktioniert einwandfrei. Das mache ich direkt über das "MS SQL Server Management Studio".

Warum das Klonen dieses virt. Servers nicht funktioniert, kann ich so nicht sagen. Hat mich aber auch gewundert. Hier bekomme ich halt nur die Infos per Email od. Telefon durch unseren IT-Dienstleister.

Der Hersteller der Software, dessen DB nicht gesichert werden kann, war schon in das Procedere eingebunden. Auch die konnten wohl bisher nicht helfen.

Solche Dinge, wie z.B. "via T-SQL in eine neue DB kopieren..." etc. könnte ich selbst nicht durchführen, da ich mich mit SQL-Servern od. -Datenbanken so gut wie nicht auskenne.

Ich werde gleich den Vorschlag von @ThePinky777 mal testen. Also das

BACKUP DATABASE datenbankname TO DISK='c:\datenbank.bak'    

...natürlich mit den passenden Einträgen.

Hier mal die übliche Fehlermeldung, die bei der Sicherung der DB auftritt:

fehler sicherung ohdas

Mein eher persönliches Problem:
Vielleicht könnt Ihr verstehen, dass mein pers. Problem im Moment natürlich ist, dass wir ja einen IT-Dienstleister haben, den wir natürlich auch bezahlen (Wartungs-/Servicevertrag).
Da wir aber nicht weiterkommen, war mir heute Morgen eingefallen, einfach mal hier im Forum nachzufragen.
Da ich die meisten Fragen ja nun nicht beantworten kann, müsste ich diese ja eigentlich an den IT-Dienstleister weitergeben... Das ist ja irgendwie auch ein bisschen peinlich (für den, aber für mich auch ein bisschen).

Wie seht Ihr das und wie würdet Ihr da jetzt vorgehen?

Grüße von
Yan face-wink
Member: DerGenervteITler
DerGenervteITler Jul 11, 2024 updated at 11:54:23 (UTC)
Goto Top
Zitat von @Yan2021:
Mein eher persönliches Problem:
Vielleicht könnt Ihr verstehen, dass mein pers. Problem im Moment natürlich ist, dass wir ja einen IT-Dienstleister haben, den wir natürlich auch bezahlen (Wartungs-/Servicevertrag).
Da wir aber nicht weiterkommen, war mir heute Morgen eingefallen, einfach mal hier im Forum nachzufragen.
Da ich die meisten Fragen ja nun nicht beantworten kann, müsste ich diese ja eigentlich an den IT-Dienstleister weitergeben... Das ist ja irgendwie auch ein bisschen peinlich (für den, aber für mich auch ein bisschen).

Wie seht Ihr das und wie würdet Ihr da jetzt vorgehen?

Grüße von
Yan face-wink

Moin,

ich sehe es eigentlich ganz unkritisch. Ja klar man bezahlt einen IT Dienstleister damit dieser einen unterstützt. Aber auch das sind am Ende nur Menschen, die sich nicht mit allen Problemen auskennen.

Jedoch sollte man sich als Dienstleister schon irgendwo wissen wie man sich weiterhilft durch andere Personen etc.
Denke mal du solltest deinem Dienstleister die Fragen zukommen lassen. Kann dieser als eine Art Weiterbildung sehen ;)

Letzten Endes soll das Problem gelöst werden und wie ist nicht so entscheidend. Meiner ist auch nicht allwissend, jedoch arbeiten wir dann zusammen an einer Lösung und weiter gehts...

Gruß,

DGI
Member: Yan2021
Yan2021 Jul 11, 2024 updated at 11:51:59 (UTC)
Goto Top
Hier das Ergebnis der Abfrage über SQL-Command:

fehler sicherung ohdas über sql-command

Ist ebenso gescheitert. Könnte in diesem Fall aber auch daran liegen, dass MA gerade im Programm arbeiten.

Grüße von
Yan face-wink
Member: ukulele-7
ukulele-7 Jul 11, 2024 updated at 12:01:49 (UTC)
Goto Top
Wie seht Ihr das und wie würdet Ihr da jetzt vorgehen?

Wurde der Server schon mal erfolgreich neu gestartet in der Zeit, wo die DB den CRC Fehler gemacht hat?

Wenn ja: Anwender aus der Anwendung raus, Datenbank-Dienst anhalten, mdf + ldf Datei kopieren, Server neu starten, Zugriff testen.
(Wenn nein bitte nicht weiter machen ohne vorher das Risiko zu bewerten!)

Wenn das klappt kannst du mit den kopierten Dateien testen. Dazu eine VM mit SQL Express (ruhig auch die neueste Version) aufsetzen und die Kopie der mdf im SQL Management Studio dort "anhängen". Dann als erstes mal testen ob sich die Datenbank dort sichern lässt.
Member: Yan2021
Yan2021 Jul 11, 2024 at 12:00:44 (UTC)
Goto Top
...jetzt sind alle MA aus dem Programm ausgestiegen.
Aber die Fehlermeldung bleibt die Gleiche. Hat also nicht funktioniert.

Grüße von
Yan face-wink
Member: Yan2021
Yan2021 Jul 11, 2024 updated at 12:06:09 (UTC)
Goto Top
Ja, der Server wurde durch den IT-Dienstleister schon neugestartet. Das war so ziemlich das Erste, was getan wurde.
DB-Dienst anhalten und die mdf + ldf Datei kopieren wurde ganz am Anfang schon gemacht, soweit ich mich erinnere (die Problemsuche läuft schon seit Wochen...).

Ich kann das aber nochmal testen. Wie halte ich den DB-Dienst an?
Und wie kopiere ich die beiden Dateien dann?

Grüße von,
Yan face-wink
Member: Tommy70
Tommy70 Jul 11, 2024 at 12:05:11 (UTC)
Goto Top
Hallo

Da die Datenbank sonst noch normal funktioniert und der CRC Fehler nur beim Backup auftritt tippe ich auf defekte Sektoren auf der Platte in einem sonst ungenutzten Datenbereich.
Ich würde so wie oben schon mehrfach erwähnt schnellstens die Tabellen, Trigger, Views, Stored Procedures, usw. manuell in eine neue DB übernehmen.
Denn ich vermute, dass das Problem noch größer werden wird wenn es sich wirklich um defekte Sektoren handelt.

Tom
Member: Yan2021
Yan2021 Jul 11, 2024 updated at 12:10:24 (UTC)
Goto Top
...ich nehme an, dass mit "DB-Dienst anhalten" entspr. Dienste gemeint sind, die beendet werden müssen.
Welche denn von denen hier?

sql-dienste

Grüße von
Yan face-wink
Member: ukulele-7
ukulele-7 Jul 11, 2024 at 12:41:43 (UTC)
Goto Top
Einfach alle SQL Dienste. Theoretisch reicht auch die (MSSQLSERVER) Instanz oder SFIRM, je nachdem, was kaputt ist.

Die kopierte mdf/ldf in einem ansonsten neu installierten Server einhängen sollte gehen. Wenn die Datei dann wirklich noch eine Macke hat, müsste ja auch hier das Backup scheitern. Wenn das Backup gehen sollte dann könnte man sich das mit Tabellen und Triggern sparen.
Member: Yan2021
Yan2021 Jul 11, 2024 updated at 12:56:47 (UTC)
Goto Top
OK und danke.

Wenn ich die SQL Server-Instanz (ich vermute der im obigen Screenshot markierte Eintrag) anhalte, dann ist ja auch die zweite DB nicht mehr nutzbar... richtig?

Dann müsste ich die entspr. Kollegen dann auch zuvor bitten, aus dem entspr. Programm auszusteigen.

Und... wie genau kopiere ich dann die mdf + ldf Datei?
Geht das in SQL über "Tasks >> Datenbank kopieren"?

Grüße von
Yan face-wink
Member: Crusher79
Crusher79 Jul 11, 2024 at 13:11:11 (UTC)
Goto Top
Instanz hält alles an was darunter läuft.

MDF und LDF kann man normal wie DOC oder andere Dateien kopieren und auf neuen System einhängen.

Ohne laufende Instanz sind SQL Werkzeuge still gelegt. Explorer.
Member: ukulele-7
ukulele-7 Jul 11, 2024 at 13:30:17 (UTC)
Goto Top
Die andere Instanz müsste weiter laufen. Aber schaden wird es nicht, muss ja nicht sofort gemacht werden. mdf und lfd liegen auf dem Dateisystem, wo kannst du vorher im Management Studio nachgucken.
Member: Crusher79
Crusher79 Jul 11, 2024 at 13:31:52 (UTC)
Goto Top
Wenn man die umebennnen kann, ist die Instanz unten.

Um sie mit den "kaputten" Server oder auch später wieder zu verwenden, muss man den Namen zurück ändern.

Sonst muss man den explzit beim verbinden in den erweiterten Eigeschaft ggf. korrigieren.

Munter ein "x" davor geschrieben und nix hält die DB momentan fest....
Member: Yan2021
Yan2021 Jul 11, 2024 updated at 13:38:06 (UTC)
Goto Top
Hmmm... habe es jetzt versucht.
Die im obigen Screenshot markierte Instanz (wenn es denn die Instanz ist) angehalten.
Die darunter sind somit wohl autom. angehalten.

Dann habe ich den Speicherplatz der mdf-Datei ermittelt.
Dann wollte ich die mdf-Datei kopieren, aber erhalte dann die folgende Fehlermeldung, die ich überhaupt nicht verstehe:

datei geöffnet

Das MS SQL-Management Studio ist definitiv geschlossen.

Und... eine "ldf"-Datei gibt es von der Problem-DB garnicht...

Grüße von
Yan face-wink
Member: max
max Jul 11, 2024 updated at 13:54:30 (UTC)
Goto Top
Hast du denn schon mal die Platte oder SSD auf Schreib/Lesefehler überprüft? Sieht für mich eher nach einem Hardware defekt der Platte/SSD aus als ein DB Problem (das ist nur die Auswirkung des Defekts).

Das steht letztendlich auch in der Fehlermeldung: "Fehler beim Lesen auf …". Das würde gleichzeitig das Problem mit dem Klonen der VM erklären.
Member: Yan2021
Yan2021 Jul 11, 2024 at 13:57:30 (UTC)
Goto Top
...ok und danke für den Tipp.
Werde das mal weitergeben an unseren IT-Dienstleister... ob der darauf auch schon gekommen ist face-wink

Grüße von
Yan face-wink
Member: MadMax
MadMax Jul 11, 2024 at 14:24:32 (UTC)
Goto Top
Hallo Yan,

mich wundert gerade ein bisschen, daß beim Stichwort "Defekte Datenbank" noch keiner den Befehl dbcc erwähnt hat. Damit kann man eine Datenbank prüfen und auch reparieren, je nach Schweregrad mit oder ohne Datenverlust.

Um die Datenbank zu prüfen gib mal im Management Studio "dbcc checkdb" ein, das prüft Deine Datenbank auf Schäden hin.

Um die Datenbank zu reparieren gibt es die Befehle
dbcc checkdb (<Datenbank>, repair_rebuild)
und
dbcc checkdb (<Datenbank>, repair_allow_data_loss)

repair_rebuild funktioniert ohne Datenverlust, repair_allow_data_loss kann Datenverlust nach sich ziehen. Ich vermute mal, ohne Datenverlust wirst Du nicht rauskommen.

Vor der DB-Reparatur mußt Du die DB auf Einzelbenutzermodus setzen, wie das geht, kannst Du da nachlesen: SQL DBCC Repair repariert nicht?

Gruß, Mad Max
Member: MadMax
MadMax Jul 11, 2024 at 14:52:03 (UTC)
Goto Top
Und noch ein Nachtrag zur Sicherung der Datenbank:
Wenn ich davon ausgehe, daß Ihr das Wiederherstellungsmodell "Vollständig" eingestellt habt, dann solltet Ihr auch das Transaktionsprotokoll regelmäßig sichern. Du kannst dann nochmal das letzte Transaktionslog sichern, damit Du den letzten Stand von der Datenbank hast, und dann mit der Datenbanksicherung vom Januar und allen Transaktionslogs danach die Datenbank wiederherstellen.

Das wäre dann sogar ohne Datenverlust.

Gruß, Mad Max
Member: maretz
maretz Jul 11, 2024 at 15:36:35 (UTC)
Goto Top
Wie funktioniert denn deine Software? Denn wenn es (was ich mal vermute) ne Client/Server-Software ist dann sollte die Anwendung auf den Clients ja nicht zwingend direkt auf die DB gehen... Daher würde ich mal _ALLE_ Software beenden (also alle Clients und auch den Serverteil der Software) und die Sicherung dann versuchen. Es kann ja durchaus sein das die im Hintergrund irgendwelche Aktionen macht und du damit Datenbestände hast die sich permanent ändern...

Wobei ich bei der Fehlermeldung auch eher auf nen Hardware-Problem bei den Festplatten tippen würde -> aber wäre ja auch nich die erste Software die Fehlermeldungen wirft die einfach mal völlig sinnlos sind...
Member: em-pie
em-pie Jul 11, 2024 at 16:55:06 (UTC)
Goto Top
Moin,


Zitat von @Yan2021:
Dann wollte ich die mdf-Datei kopieren, aber erhalte dann die folgende Fehlermeldung, die ich überhaupt nicht verstehe:

datei geöffnet

Das MS SQL-Management Studio ist definitiv geschlossen.
Das studio ist nur eine GUI zum verwalten. Du musst die SQL-Dienste beenden (findest du unter Dienste)
Und... eine "ldf"-Datei gibt es von der Problem-DB garnicht...


Mein Gedanke beim Lesen des Ausgangspost war im übrigen: „da wird die Festplatte ein Prblem haben“ das bitte unbedingt checken.
Member: ukulele-7
ukulele-7 Jul 11, 2024 at 17:41:20 (UTC)
Goto Top
Ich bin immer erst für eine Kopie der Dateien. Danach kann man alles versuchen, je nach Server Hardware würde ich eventuell die Hardware + OS + DB Installation komplett neu machen und mich gar nicht mit dem alten ### belasten. Zumindest nicht um eine DB Sicherung zu testen oder die DB zu prüfen.

Die Datei wird nicht als unlesbar gemeldet sondern als geöffnet. Sogar als geöffnet durch "SQL Server (MSSQLSERVER)". Das kann nur ein SQL Dienst sein, auch eine Serveranwendung / Dienst greift nicht direkt auf die mdf zu. MSSQL ist schließlich ein DBMS und nicht nur eine DB.

Zur Not alle Dienste mit SQL auf Deaktiviert setzen und neu starten. Im Anschluss sollte keine Meldung zu geöffnet mehr kommen. Gibt es eventuell einen Task der die Datenbank-Instanz neu startet? Klingt alles nicht unbedingt nach einer Software, die sich groß um ihre Datenbank kümmert. Die haben bestimmt sowas "sinnvolles" eingebaut.
Member: wiesi200
wiesi200 Jul 11, 2024 at 18:53:57 (UTC)
Goto Top
Hallo, da es ja einfach sein soll probier mal den SQL Server Migration Assistant von Microsoft ob der den Inhalt der DB auf einen anderen SQL Server kopieren kann.

Reperaturversuche direkt an der Datenbank wie von @MadMax beschrieben würde ich erst machen wenn ich eine Kopie der Datenbanken habe.
Hier erst wie schon geschrieben den Dienst des SQL Servers stoppen, danach kann man normalerweise die Dateien kopieren, ich befürchte hier aber wieder den CRC Fehler
Member: Yan2021
Yan2021 Jul 12, 2024 updated at 09:01:42 (UTC)
Goto Top
Hallo und danke für die weiteren Infos und Tipps.

Bei meinen Versuchen gestern hatte ich die Dienste ja beendet (siehe meine entspr. Nachrichten dazu). Und ich hatte auch gecheckt, ob wirklich alle Dienste deaktiviert sind... das war so.

Das mit dem Transaktionsprotokoll ( @MadMax: ) habe ich noch nicht so ganz verstanden. Vielleicht kannst Du mir nochmal genauer erklären, was Du meinst und wie ich das mache.
Bezüglich der DB-Prüfung (Check) bin ich natürlich sicher, dass unser IT-Dienstleister das bereits gemacht hat... und selbst wenn nicht, hätte der Microsoft-Support diesen Vorschlag ganz sicher auch gemacht.
Und es wurden ja bereits mehrere Versuche gemacht, die DB zu reparieren. Daher ist ja dann eigentlich auch klar, dass sie vorher gecheckt wurde.

@maretz:
Die Software war definitiv beendet und nicht mehr aktiv. Ich hatte auch im IIS-Manager die entspr. Webseite angehalten, was ich auch immer mache, bevor ich ein Update installiere, damit wirklich Niemand mehr auf das Programm zugreifen kann.

Ich habe den IT-Dienstleister gestern per Email plus entsp. Screenshots über meine gescheiterten Versuche informiert und dabei auch das Thema "defekte Festplatte..." angesprochen. Bisher kam noch keine Reaktion.
Sobald hier was kommt, würde ich nochmal hier antworten.

Grüße,
Werker
Member: scout71
scout71 Jul 12, 2024 at 09:58:14 (UTC)
Goto Top
Hallo Yan,

eine Empfehlung von mir:

- Was steht im Log vom SQL-Server bei der fehlerhaften Sicherung ?

- Hat das Datenbankfile / Log-File der Datenbank noch freien Festplattenplatz zur Verfügung ? (Ist die max. Größe
erreicht ?)

- Ist eine Voll-Sicherung der Datenbank mit der Datensicherungssoftware möglich ? -> So kann das Log-File der
Datenbank verkleinert werden.

Nette Grüße
Scout71
Member: em-pie
em-pie Jul 12, 2024 updated at 10:18:53 (UTC)
Goto Top
Bei meinen Versuchen gestern hatte ich die Dienste ja beendet (siehe meine entspr. Nachrichten dazu). Und ich hatte auch gecheckt, ob wirklich alle Dienste deaktiviert sind... das war so.
In welcher Instanz (MSSQLServer oder SFIRM) hängt die oh.mdf?
Zudem spricht das Bild deines Screenshots was anderes. Irgendwas hat noch auf die mdf zugegriffen. Du musst folgende Dienste checken:
  • SQL Server
  • SQL Server Agent
  • SQL Server Browser
ggf. noch
  • SQL Server Reporting Services
  • SQL Server VSS Writer

Und dabei auch prüfen, ob die Prozesse wirklich beendet sind.
Am sichersten, wie bereits weiter oben (von @ukulele-7 ?) vorgeschlagen: Dienste alle auf "deaktiviert" setzen und den Server rebooten.

Fernab dessen:
versuch mal, die Sicherung nicht nach D:\MSSQLDaten\BACKUP anlegen zu lassen, sondern (ich weiss gar nicht, ob das geht) auf ein Netzwerkshare (vorher per Net-Use mounten) oder ein anderes Volume.
Schlimmstenfalls eine SSD per USB anschließen und darauf sichern.

Habt ihr eigentlich mal probiert, die mdf per LiveLinux o. ä. wegzukopieren?
Also Server herunterfahren, Knoppix oder was auch immer auf einen Stick packen und dann davon booten...
Member: Yan2021
Yan2021 Jul 12, 2024 updated at 10:53:45 (UTC)
Goto Top
Hallo,

ich habe jetzt wirklich alle SQL-Dienste DEAKTIVIERT!!
Über den IIS-Manager auch die Webseite (für das eigentliche Programm) beendet.

Dann die "oh.mdf" kopieren wollen und erhielt wieder die gleiche Fehlermeldung, wie weiter oben schon. Also dass die "Datei in SQL-Server (MSSQLSERVER) geöffnet" sei. Siehe hier:

sql alle dienste deaktiviert2

Und natürlich sind alle User aus dem Programm ausgestiegen und können auch nicht damit arbeiten, da die Webseite beendet ist.

Bei 70% kam dann diese Fehlermeldung:

oh.mdf - kann nicht gelesen werden

Danach habe ich dann mal "überspringen" ausgewählt. Aber da wurde dann überhaupt nichts kopiert.

Was nun? face-smile

Grüße von
Yan face-wink
Member: em-pie
em-pie Jul 12, 2024 updated at 10:47:23 (UTC)
Goto Top
ich habe jetzt wirklich alle SQL-Dienste DEAKTIVIERT!!
Deaktiviert heißt nicht, dass die Dienste beendet sind. Laufen die Dienste also noch (Status = ausgeführt)?
Die musst du dann noch beenden!
Member: Yan2021
Yan2021 Jul 12, 2024 at 10:54:16 (UTC)
Goto Top
siehe Screenshot. Alle Dienste sind beendet und deaktiviert.

Grüße von
Yan face-wink
Member: Yan2021
Yan2021 Jul 12, 2024 updated at 11:01:22 (UTC)
Goto Top
...ich würde in ein paar Minuten aber die Dienste wieder starten wollen, damit die Kollegen weiterarbeiten können.

Vielleicht hat aber noch jemand einen Tipp vorher...

Der IT-Dienstleister hat übrigens noch immer nicht auf meine Email von gestern geantwortet mit den Screenshots sowie dem Hinweis auf die evtl. defekte Festplatte face-sad

Grüße von
Yan face-wink
Member: em-pie
em-pie Jul 12, 2024 at 12:21:45 (UTC)
Goto Top
Zitat von @Yan2021:

siehe Screenshot. Alle Dienste sind beendet und deaktiviert.

Grüße von
Yan face-wink

der ist zum Zeitpunkt meines Posts noch nicht dagewesen.
Irgendwas greift da noch drauf zu. Hast du, nachdem die Dienste deaktiviert und beendet wurden, den Server einmal neugestartet?
Member: wiesi200
wiesi200 Jul 12, 2024 at 12:23:49 (UTC)
Goto Top
Wenn der schreibt kann nicht gelesen werden, kann der CRC Fehler auch der Grund sein. Im Schlimmsten Fall ne kopie mit Linux DD. Aber probier doch wirklich mal den Migrations Assistent nlvon Microsoft. Wenn du mit der DB arbeiten kannst, vielleicht hast du Glück.
Member: MadMax
MadMax Jul 12, 2024 at 12:56:19 (UTC)
Goto Top
Hallo Yan,

ein Backup ist nur eine Momentaufnahme Deiner Datenbank. Was auf der DB passiert, wird aber ständig mitprotokolliert. Wenn das Wiederherstellungsmodell "Vollständig" ist (DB-Eigenschaften, Seite "Optionen"), dann wird dieses Protokoll erst gelöscht, wenn es gesichert wurde, ansonsten wächst es immer weiter. Dein IT-Dienstleister sollte Dir die Frage beantworten können, wie oft es gesichert wird und ob Eure Protokollsicherungen bis zur letzten Vollsicherung zurückreichen.

Wenn Ihr die Protokollsicherungen alle habt, dann mußt Du nur noch den letzten Teil, der noch nicht gesichert wurde, sichern und kannst dann erst die Vollsicherung und anschließend alle nachfolgenden Protokolle einspielen und hast den aktuellen Stand der DB.

Was die Prüfung angeht: im Prinzip hast Du recht, da sollten sowohl Dein Dienstleister, als auch der MS-Support dran gedacht haben. Aber auch hier hat niemand was dazu gesagt vor mir und hier sind einige fähige Leute versammelt. Und vielleicht hat auch der MS-Support gedacht, daß man einem erfahrenen Admin sowas nicht erzählen muß face-smile

Ich muß aber sagen: Die Prüfung dauert ein paar Minuten. Wenn Du einem Admin, der ein halbes Jahr lang nicht bemerkt, daß die Sicherung nicht läuft, so vertraust, daß Du es nicht nochmal selber prüfen willst, dann ok.

Gruß, Mad Max
Member: ukulele-7
ukulele-7 Jul 12, 2024 at 13:31:29 (UTC)
Goto Top
Also es macht tatsächlich den Eindruck, das die Meldung "ist noch geöffnet" nicht aufgrund einer geöffneten DB-Datei kommt, vor allem, wenn das erst bei 70% Kopiervorgang erscheint - sonderbar. Du kannst du prüfen, ob die Datei eventuell über das Netzwerk geöffnet wurde

Computerverwaltung \ Freigegebene Ordner \ Geöffnete Dateien

das sollte natürlich bei einer mdf ldf nicht der Fall sein! Ansonsten macht ein Versuch unter Live Linux Sinn.

An einem gewissen Punkt musst du eventuell entscheiden, wie wichtig dir die Daten sind. Wenn sich das nicht kopieren lässt und dein Systemhaus auch nur probiert und du mit unserer Hilfe auch nur probierst kommt vielleicht irgendwann der Moment, wo man etwas verschlimmert. Du könntest die Serverfestplatten (ist das eine VM oder direkt bare metal?) auch z.B. bei Ontrack einschicken und eine Datenrettung machen lassen. Die Kosten dürften sich eventuell im Rahmen halten und eine Cyberversicherung würde das vermutlich bezahlen. Derzeit arbeitest du quasi ohne "Sicherheitsnetz" an der einzigen Kopie, da sollte man schon mal in sich gehen.

Natürlich wäre es nach wie vor eine gute Option, alle Tabellen etc. von einem Verbundenen SQL Server aus händisch zu kopieren oder mit irgendeinem Migrationstool, wie bereits vorgeschlagen, zu versuchen, die Daten umzuziehen oder zu klonen. Das ist aber mit Sicherheit auch viel Aufwand, vor allem, wenn der Software-Hersteller so toll mit wirkt.
Member: Crusher79
Crusher79 Jul 13, 2024 at 21:57:40 (UTC)
Goto Top
Weiterarbeiten mit der DB ist semi-optimal.

So oder so muss rasch eine Lösung her, damit der Schade nicht zu groß wird.

https://www.stellarinfo.com/blog/de/sql-datenbank-fehler-bei-der-zyklisc ...

Da nochmal Infos zu CRC Fehlern und möglichen Lösungsansätzen.
Member: Yan2021
Yan2021 Jul 15, 2024 updated at 06:45:29 (UTC)
Goto Top
Hallo und ich hoffe, Ihr hattet ein schönes WE... face-wink

Ich habe mir eben mal die Eigenschaften / Optionen der Datenbank angeschaut.
Das Wiederherstellungsmodell steht nur auf "Einfach" und unten bei Seitenüberprüfung steht "CHECKSUM".

Eben habe ich mal eine Abfrage ausgeführt mit "dbcc checkdb", wie ja vorgeschlagen wurde.
Auch da kam eine Fehlermeldung mit weiterem Text. Siehe hier:

DBCC-Ergebnis für "ohdas".  
Meldung 8921, Ebene 16, Status 1, Zeile 1
Die CHECK-Anweisung wurde beendet. Fehler beim Sammeln von Fakten. Möglicherweise ist kein freier Speicherplatz mehr in "tempdb" vorhanden, oder eine Systemtabelle ist inkonsistent. Überprüfen Sie die vorherigen Fehler.  

DBCC-Ergebnis für "sys.sysrscols".  
Es sind 10713 Zeilen auf 170 Seiten für das sys.sysrscols-Objekt vorhanden.
DBCC-Ergebnis für "sys.sysrowsets".  
Es sind 2133 Zeilen auf 20 Seiten für das sys.sysrowsets-Objekt vorhanden.
...
...
...

Es sind 522652 Zeilen auf 43035 Seiten für das payment-Objekt vorhanden.
Von CHECKDB wurden 0 Zuordnungsfehler und 0 Konsistenzfehler in der ohdas-Datenbank gefunden.

Ich habe nur die beiden ersten Ergebnis-Zeilen hier einkopiert. Davon gibt es noch eine riesige Menge weiterer Einträge. Ganz unten das ist die letzte Zeile mit einer Art Gesamtergebnis.

Der IT-Dienstleister hat mir auf meine Fragen auch bis jetzt noch nicht geantwortet.... hmmm... ist vielleicht auch ein gewisses Zeichen face-smile

Den Link von @Crusher79 gebe ich nun auch mal an unseren IT-Dienstleister weiter.

Ich hoffe, Ihr versteht mich.
Ich tue mich etwas schwer damit, manche der von Euch vorgeschlagenen Prüfungen / Arbeiten an der DB durchzuführen. Falls da etwas schief läuft und die DB dann wirklich im Eimer ist, dann habe ich natürlich den "Schwarzen Peter" und der IT-Dienstleister ist dann fein raus...

Ich werde Eure Tipps aber Stück für Stück an den IT-Dienstleister weitergeben, wenn er mir denn endlich mal antwortet. Falls bis heute Mittag nix gekommen ist, werde ich ihn mal anrufen und fragen.

Also bitte nicht böse sein, dass ich Eure guten Vorschläge nicht gleich umsetze...

Danke jedenfalls für die super Unterstützung bis dahin.

Grüße von
Yan face-wink
Member: Yan2021
Yan2021 Jul 15, 2024 updated at 07:28:39 (UTC)
Goto Top
UPDATE:

Soeben habe ich eine Antwort des IT-Dienstleisters erhalten.
Er schreibt, dass ich richtig lag mit meiner Vermutung (womit er unwissenderweise natürlich EUCH meint face-smile ). Durch den Ausfall der 3 physischen Festplatten, welche kürzlich bei uns gewechselt wurden, ist die „virtuelle“ Festplatte des entspr. Servers beschädigt. Dadurch auch die Abbrüche beim Kopieren der mdf-Datei, dem Klonen des Servers oder dem Erstellen eines Backups mit dem Programm "Altaro".

Er schreibt weiterhin, dass er erst dadurch ja ursprünglich darauf aufmerksam geworden sei, dass die physischen Festplatten beschädigt waren.

Aus diesem Grund fährt er aktuell auch zweigleisig:
- zum einen versucht er, die virtuelle Festplatte bzw. das Dateisystem zu reparieren, und zum anderen
- die Datenbank selbst zu reparieren.

Er schreibt noch, dass er nun auch nochmal Rückmeldung von Microsoft erhalten hat mit weiteren Möglichkeiten, welche er heute Vormittag umsetzen will.

Das als Zwischeninfo...

Grüße von
Yan face-wink
Member: Huhtala
Huhtala Jul 15, 2024 at 08:21:53 (UTC)
Goto Top
Wenn das Backup gehen sollte dann könnte man sich das mit Tabellen und Triggern sparen.


_______________________________________________________________________________________________
Skysmotor verkauft die folgenden Produkte online: Nema 17-Schrittmotor, Nema 23-Schrittmotor, Hybrid-Schrittmotor, Schrittmotor und kann bei Bedarf online gekauft werden.
Member: Roland567
Roland567 Jul 15, 2024 at 08:43:47 (UTC)
Goto Top
Hallo Yan,

wir hatten mal einen ähnlichen Fall.
Wir hatten ein Problem im SQL-Cluster, dass sich nicht mehr lösen lies.
Ich kann nur soviel sagen. Von Seiten Microsoft kam nichts, WIRKLICH gar nichts. Also richtig uncool.
Sie konnten unsere DB NICHT mehr zum Laufen bringen.
Unser sehr guter Dienstleister, der ausschließlich DB's macht, war ebenfalls an seine Grenzen gekommen.

Wir mussten letztendlich auf einen neuen SQL Server wechseln und das letzte Backup zurück spielen.
War ganz uncool und logischerweise mit Datenverlust verbunden.

Die Datenbank Sicherung sollte UNBEDINGT bei euch überwacht werden, was ein guter SLA Partner eigentlich machen MUSS. Selbst wenn ihr mit Boardmiteln, wie wir, eure Backup's fahrt, ist hier ein Alerting per eMail problemlos einzurichten. Damit erhaltet ihr sofort eMails, wenn das Backup NICHT 100% lief.

Ich wünsche euch viel Glück und unbedingt daraus lernen.
Gruss Roland
Member: Yan2021
Yan2021 Jul 19, 2024 at 07:59:13 (UTC)
Goto Top
Hallo nochmal...

Ich wollte nur nochmal kurz mitteilen, dass heute ein weiterer Reparaturversuch durchgeführt wird, wozu auch ein vorheriger Server-Neustart nötig ist. Dieser Versuch wird durch unseren IT-Dienstleister durchgeführt und der Tipp kam erneut vom Microsoft-Support. Ich hoffe, dass er diesmal Erfolg hat face-wink

Das nur als Zwischen-Info. Werde weiter berichten...

Grüße von
Yan face-wink