Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

MSSQL - Datensatz wiederherstellen

Frage Entwicklung Datenbanken

Mitglied: FiVS

FiVS (Level 1) - Jetzt verbinden

08.10.2010 um 12:34 Uhr, 9192 Aufrufe, 7 Kommentare

Welche Möglichkeiten gibt es bei einem Microsoft SQL Server 2005,
einen bestimmten gelöschten Datensatz wiederherzustellen?

Hallo an alle,

ich nutze einen Microsoft SQL Server 2005 auf dem mehrer Datenbanken laufen.
Leider kommt es immer wieder vor das jemand über eine Anwendung versehentlich
einen Datensatz löscht. Die Datenbank wird täglich Abends gesichert.
Um den Datensatz wiederherzustellen gehe ich momentan immer einen
sehr Umständlichen und lang andauernden Weg, da ich es auch nicht besser weiß.

Die Letzte Sicherung als Temporäre Datenbank zurückspielen.
Anhand der Logs den gelöschten Datensatz raussuchen und in die Livedatenbank
überspielen.

Gibt es hier nicht eine einfachere Methode dies durchzuführen?

Ich habe im Netz schon über Transaktionprotokoll und Snapshots gelesen.
Soweit ich das aber verstehe kann man damit nur zu einem bestimmten Zeitpunkt
zurückkehren, nicht aber einen bestimmten Datensatz zurückholen.

Eine richtige Alternative zu meinem Vorgehen konnte ich noch nicht wirklich finden oder
ich gehe die Sache irgendwie falsch an.

Ich bin für jede Anregung, jeden Link und Lektüre zu diesem Problem dankbar.
Mitglied: SlainteMhath
08.10.2010 um 12:56 Uhr
Moin,

eine Möglichkeit wäre es einen Trigger ON DELETE anzulegen, der den Datensatz in eine andere Tabelle wegkopiert, bevor er gelöscht wird. Das erfordert allerdings schon ein bischgen Ahnung von T-SQL und vorallem von der Anwendung.

Transaktionslogs bringen, wie du schon selbst festgestellt hast, nichts da man nicht gezielt einzelne Datensätze zurückholen kann.

Ansonsten: Den Anwendern anständig auf die Finger klopfen (lassen) - wie kann man mehrmals (!) aus versehen einen Datensatz löschen? *kopfschüttel*

lg,
Slainte
Bitte warten ..
Mitglied: maretz
08.10.2010 um 13:31 Uhr
Moin,

das Transaktions-Log bringt nichts. Es ist ja lediglich dafür da das eine unterbrochene Aktion rückgängig gemacht werden kann... Dein Löschen wurde aber ja vermutlich dann erfolgreich abgeschlossen ;)

Habt ihr selbst die Anwendung erstellt? In dem Fall würde ich das so machen das man einfach die Anwendung abändert. Ein "Deleted-Flag" einbauen, das auf 1 setzen wenn es gelöscht wurde und gut ist... Das kann sogar der Anwender selbst machen wenn man das entsprechend in die Anwendung einbaut
Bitte warten ..
Mitglied: Biber
08.10.2010 um 13:50 Uhr
Moin vschmidt,

ich würde dir ein noch radikaleres Vorgehen als meine beiden geschätzten Vorposter empfehlen.

Wenn denn so ein Aus-Versehen-Löscher um die Ecke biegt mit "Ich habe gestern, als ich angeregt mit meiner Frau telefoniert habe, den Datensatz XY weggebratzt.."
-> "Kein Problem" , sagst du dann, "ich stelle eben eben mal kurz den Datenbankzustand von vorgestern 02:30h wieder her, da war das letzte Full Backup. Und da war der Satz doch bestimmt noch vorhanden, oder?"

Und die anderen 157.000 Anwender, die daraufhin die Dateneingaben von heute und gestern nacharbeiten müssen, denen gibst du seine Telefonnummer.

Nochmal etwas abstrakter:
a) es gibt keine vorgesehene Möglichkeit, einzelne/bestimmte Datensätze wiederherzustellen
b) und zwar ist es nicht implementiert weil die Datenbank insgesamt konsistent sein muss. Was ist denn, wenn du die Rechnung eines Kunden "wiederherstellst", aber dieser Kunde inzwischen aus dem Kundenstamm entfernt wurde? Oder zwischenzeitlich die Außenstände dieses Kunden in die Quartalberichtserstellung eingeflossen sind?
c) und außerdem: für die Änderung der Dateninhalte hat der oben erwähnte DAU die Rechte und die Verantwortung. Nicht du. Du darfst es gar nicht manipulieren.

Und lass dich nicht von irgendwelchen Flurbekanntschaften zu so etwas überreden. Du manipulierst produktive Daten (weil du zufällig DBA bist).
Das ist weder revisionssicher noch professionell.

Grüße
Biber
Bitte warten ..
Mitglied: kaiand1
08.10.2010 um 15:35 Uhr
Am besten ist dabei wenn du vom Löscher einen Antrag hast der beinhaltet das du den Datensatz xyz wiederherstellen sollst.
Das auch mit Unterschrfiten versehen ist vom Vorgesetzten ect...
So gibt es immer nen Nachweis wer was wann gelöscht hat und wiso die Datenbank "manipuliert" wurde.
Bei uns gabs wegen sowas schonmal etwas Ärger da ein Datensatz "abhanden" gekommen ist der offene Überweisungen enthielt.
Und einige Leute waren dann später etwas sauer da die kein Geld bekommen haben...
Bitte warten ..
Mitglied: wiesi200
08.10.2010 um 20:14 Uhr
Ich muss auch sagen dein Problem darf es eigentlich nicht geben.

Du musst da wirklich unterscheiden
Manchne Daten darf einfach keiner löschen können.
Andere dürfen nicht alle löschen können.

Und wenn wiklich jemand was löscht muss er sie einfach wieder selbst eintippen.

Auf Datenbank Ebene eine Anwendung zu manipulieren ist wirklich keine gute Idee.
Bitte warten ..
Mitglied: FiVS
11.10.2010 um 11:45 Uhr
Vielen Dank für eure Antworten und Anregungen.

Eure Antworten bestätigen meine Vermutung, das die Rücksicherung in der Art nicht vorgesehen ist.

Die Anwendung ist nicht von uns, somit können wir hier von der Anwendung aus nicht vorbeugend eingreifen.
Was die Datenbankstruktur angeht, würde ich behaupten dass wir uns hier gut auskennen.

Was die Löschrechte angeht, grenzen wir diese soweit es geht ein, somit haben meist nur zwei Personen
die Möglichkeiten dazu. Und leider schaft es auch der kleine Personenkreis es immer wieder was zu löschen.
Wobei in einigen Fällen, verleiht die die Anwendung vielleicht auch ein wenig zur Fehlbedienung, was den Benutzer natürlich
nicht von seiner Verantwortung entbindet.

Ich bin bei euch, dass meine momentane Vorgehensweise nicht unbedingt der Richtlinie zur Einhaltung der Datenbaknkonsistenz
bzw. der Revisionssicherheit entspricht.

In den bisherigen Fällen, handelte es sich um nicht so kritische Daten, die in eine Verechnung oder so fallen.

Die Frage ist natürlich wie geht man mit sowas um, wenn der Kunde wirklich darauf besteht die Daten zurück zu bekommen.
"Argumentationen wie dafür haben wir doch die Sicherung will jetzt nicht kommentieren"

Einige Vorschläge sind ja schon gefallen..
- Trigger, wäre eine Überlegung wert, zumindest würde dies Zeit einsparen.
- Kunden in die Verantwortung ziehen, ist vermutlich die beste Lösung

Gibt es hier eventuell Rechtliche Grundlagen (Manipulation verboten) auf die man sich berufen kann?
Bitte warten ..
Mitglied: Biber
11.10.2010 um 16:32 Uhr
Moin vschmidt

Die Frage ist natürlich wie geht man mit sowas um, wenn der Kunde wirklich darauf besteht die Daten zurück zu bekommen.
....
Gibt es hier eventuell Rechtliche Grundlagen (Manipulation verboten) auf die man sich berufen kann?
Die zweite Teilfrage kann ich als Nicht-Jurist nicht abschliessend beantworten.
Meiner Meinung nach wird es dafür auch Rechtsverbindliches geben, denn dieses Problem hat mit Sicherheit auch schon bei Anderen zu Konflikten und auch zu Prozessen geführt.
--> Ist aber nur eine sbjektive Überzeugung.

Ansonsten kann ich dir da kein Muster-verhalten empfehlen.
Sagen wir so - wenn du mit deinen Kenntnissen der Tabellenstrukturen und -abhängigkeiten felsenfest davonüberzeugt bist, dass dieser eine anstößige Datendsatz keinerlei Seiteneffekte auf andere Datensätze/Tabellen hat, egal, ob er nun "gelöscht" oder "wiedergestellt" ist und du eine schriftliche Anweisung zu dieser Manipulation seitens des Kundens hast... dann mach es (wenn du willst).
Wenn eines von beiden fehlt, dann lass es auf jeden Fall.

Allerdings... wenn dieser eine Datensatz keine Seiteneffekte auf andere Datensätze hat, egal ob vorhanden oder nicht vorhanden - WTF hat ihn der Aus-Versehen-Löscher nicht einfach wieder neu eingetippselt?

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Visual Studio
MSSQL Server Management Studio 2014: Datensätze direkt editieren bei verknüpften Tabellen
Frage von rupnikVisual Studio1 Kommentar

Ich möchte quick & dirty händisch direkt im MSSQL Server Management Studio in einer bestehenden Datenbank Datensätze editieren. Das ...

Datenbanken
MSSQL quenquery
gelöst Frage von petereDatenbanken6 Kommentare

Hallo, ich stoße leider an die Grenzen meiner MSSQL-Kenntnisse. Ich muss diesen, eigentlich einfachen, UPDATE-Ausdruck via zwei Verbindungsserver-Verbindungen realisieren. ...

Datenbanken
MSSQL-Zugriffsproblem
Frage von petereDatenbanken3 Kommentare

Hallo, ich habe eine 32bit VB6-Anwendung, mit der ich auf MSSQL 2012 Server Instanzen zugreifen möchte, die einen Spielserver ...

Datenbanken
MsSQL 2005 zu MsSQL 2014 Servernamen ändern?
gelöst Frage von SPSmanDatenbanken21 Kommentare

Hallo, ich habe folgendes Problem: ein Kollege von mir ist mit meinem "alten System" mit MSSQL Server 2005 nach ...

Neue Wissensbeiträge
Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 18 StundenMicrosoft Office8 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 20 StundenDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 21 StundenSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Microsoft Office

Outlook 2016 - Beim Weiterleiten keine PDF Anhänge mehr - KB4011626 entfernen

Erfahrungsbericht von Deepsys vor 1 TagMicrosoft Office3 Kommentare

Wenn ihr feststellt das ihr beim Weiterleiten von E-Mails keine PDF Anhänge mehr versendent, dann dankt Microsoft. Diese tolle ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke14 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...

Server-Hardware
Veeam Backup Server stürzt alle paar Tage ab
Frage von Leo-leServer-Hardware12 Kommentare

Hallo Forum, ich habe momentan folgendes Problem. Veeam Backup and Replication 9.5 u2 auf voll gepatchten DL 380 G7 ...

Windows 10
Windows10-Schnellzugriff per Kommandozeile bearbeiten
Frage von SarekHLWindows 1010 Kommentare

Hallo zusammen, weiß jemand, wie ich per Kommandozeile (in einem Logon-Script) den persönlichen Dokumentenordner aus dem Schnellzugriff entferne den ...