ApexSQL Log für SQL Server 2000 und 2005 Der Industriestandard für SQL Datenbanklog-Betrachtung und Wiederherstellung Datenblatt Wiederherstellungs-Assistent bietet 5 Arten der Wiederherstellung an: 1. Wiederherstellung von gelöschten Daten: Alles was mit dem DELETE Befehl gelöscht wurde Diese Art der Wiederherstellung kann von den traditionellen Transaktionsprotokolldateiquellen (Online, Backup, Detached) oder von Online-Datenbank-Dateien. Die erste Option ist seit Anfang 2004 in der Form von UNDO-Skripte verfügbar. Jetzt wurde es in den Wiederherstellungsassistenten eingebaut. Es ist aber immer noch als Generator der UNDO-Skripte für eine individuelle und präzisere Wiederherstellung vorhanden. Die zweite Option ist neu in Log 2005 und ermöglicht eine Wiederherstellung, auch wenn die Datenbank nicht im FULLRECOVERY-Modus läuft und keine relevanten Transaktionsprotokolldateien Verfügung stehen. Diese Option durchsucht die Datenseiten nach jedem Bit gelöschter Information und versucht, gelöschte Zeilen und sogar ihre BLOB-Daten von hier aus wiederherzustellen. Wie bei allen anderen Datenseiten-Wiederherstellungstools hängt die Qualität und Vollständigkeit der wiederhergestellten Daten von den nachfolgenden Ereignissen (in diesem Fall DELETE) und der Aktivität, welche auf der Datenbank stattfindet. 2. Wiederherstellung von abgeschnittenen Daten: Alles was mit dem TRUNCATE TABLE Befehl gelöscht wurde Wir haben diese Art der Wiederherstellung in ApexSQL Log 1.85 eingeführt und ist heute im Wiederherstellungsassistenten integriert. Diese Art der Wiederherstellung kann nur auf Online-Datenbank Datenfiles angewendet werden und nicht für durch die Transaktions-Protokollquelle da ein TRUNCATE keine Daten in die Logdateien schreibt (deshalb ist es auch schneller als DELETE). Wiederherstellung erfolgt durch eine Analyse der freien Seiten in der MDF-Datei und der Erfolg, wiederhergestellten Daten hängt davon ab, wie gross die nachfolgende Aktivität auf der Datenbank ist. "P.S. Was ich bis jetzt gesehen habe kann ich so bestätigen. Es ist ehrlich gesagt ein grossartiges Tool und das User Interface ist exzellent. Oft verwende ich ein Programm nicht, weil es verwirrend, chaotisch oder einfach schrecklich zum anschauen ist, sogar wenn es das Beste Programm ist. Mit ApexSQL Log gibt es solche Probleme nicht! :)" M. Holman Computer Programmer Black Stump Group Perth, West. Australia 3. Wiederherstellung von gedroppten Daten: Alles was mit dem DROP TABLE Befehl gelöscht wurde Diese Art der Wiederherstellung kann durch traditionelle Transaktionsprotokolldateiquellen plus Online-Datenbankdateien oder nur von Online-Datenbankdateien erfolgen. Wir haben diese erste Option in der Version 1.85 eingeführt und wir nutzen darin Transaktionsprotokolldateien um Tabellenstrukturen und Online-Datenbankfiles um Daten wiederherzustellen. Die zweite Option ist neu in ApexSQL Log 2005 und ermöglicht eine komplette Wiederherstellung der Daten sogar dann, wenn die DB nicht im FULL RECOVERY Modus betrieben wird und keine relevanten Transaktionsprotokolldateien zur Verfügung stehen. Tabellenstruktur und Daten werden hier aus gefundenen freien Seiten in den Datenbankdateien wiederhergestellt. 4. Wiederherstellung von verlorenen Daten: Stellen Sie Daten von abgehängten Datenfiles (MDF) wieder her Dies ist eine neue Option in ApexSQL Log 2005. Es erlaubt Ihnen gelöschte Daten (DELETE, DROP, TRUNCATE) von einer losgelösten Datei oder Dateien (Detached) wiederherzustellen. Aber noch wichtiger ist es erlaubt volle Datenrettung von Dateien, die sich nicht wieder in die SQL-Server anfügen lassen(Attached) Bei dieser Option können zurzeit nur Daten oder Tabellenstrukturen wiederhergestellt werden. Es erlaubt keine anderen Datenbankobjekte wie Sichten, gespeicherte Prozeduren usw. wiederherzustellen. 5. Wiederherstellung von verlorenen Datenbankobjekten Diese Art der Wiederherstellung kann durch traditionelle Transaktionsprotokolldateiquellen oder durch Daten DatenbankDateien erfolgen. Erste Option ist die gleiche wie DDL REDO, die zum ersten Mal in ApexSQL Log 1.50 eingeführt wurde. DDL REDO als auch sein Pendant DDL UNDO stehen weiterhin zur Verfügung. ApexSQL LLC 50101 Governors Dr., Suite 200 Chapel Hill, NC 27517 USA 1-866-665-5500 1-919-968-8444 [email protected] www.apexsql.com "...Ihr Produkt hat tolle Arbeit geleistet und die Jungs in der Revisionsabteilung sind glücklich." David O'Keefe Analyst/Programmer Fimat Australia ApexSQL Log für SQL Server 2000 und 2005 Der Industriestandard für SQL Datenbanklog-Betrachtung und Wiederherstellung 1. Wir sehen mehr und mehr Fälle, in denen Benutzer mit Enttäuschung von Ihrer Erfahrung im Zusammenhang mit Recovery-Tools und in Bezug auf Erfolg in Sachen Wiederherstellung berichten. Zum Beispiel, was mache ich, wenn ich eine Tabelle abschneide und das Logfile automatisch am Checkpoint abgeschnitten wurde (das ist die Standardeinstellung mit SQL Server)? Das Problem mit Disaster Recovery ist in den meisten Fällen, dass Sie sich zu Beginn in einer suboptimalen Situation befinden. Mit Tools, die davon ausgehen, perfekte Bedingungen vorzufinden, wie eine unbeschädigte Transaktions Logdatei, gültige Datenbank-Backups und / oder bestehende ungelöschte Objekte, unveränderte Schemas, usw. scheitern in den meisten alltäglichen und realen Situationen. Bis anhin (mit Versionen von ApexSQL Log bis zu Version 2005 und mit allen anderen Logbetrachter- / Wiederherstellungs-Tools) - wenn dies in Ihren Fall zutreffend war hatten Sie praktisch kein Glück bei einer Wiederherstellung und Ihre einzige Möglichkeit war, eine Rücksicherung eines Backups. Doch mit der neuen Technologie, die in ApexSQL Log 2005 implementiert ist, können Sie versuchen, gelöschte Daten wiederherzustellen. Es gibt keine Garantie dafür, dass Sie jederzeit in der Lage sind die Daten wiederherzustellen. Aber wenn Sie schnell genug handeln, sind Ihre Chancen sehr gross, dass Sie erfolgreich Daten wiederherstellen können. ApexSQL Log 2005 bietet ein hohes Mass an Redundanz an und stellt sicher, dass eine sehr viel höhere Erfolgsquote im Vergleich zu anderen Produkten, was die Wiederherstellung anbelangt, erreicht wird. Dies sogar in Situationen mit einer schlechteren Ausgangslage. 2. Weshalb kann dieses Tool nicht immer alles wiederherstellen? In den meisten Fällen können sie nur wieder angehängt werden. In diesen Fällen erstellt der SQL Server automatisch eine neue Transaktions-Log-Datei und führt die Arbeit weiter. Aber manchmal schlägt dies fehl, und die Datenbank wird als verdächtig markiert, was diese Datei unbrauchbar macht, in Bezug auf die Wiederherstellung. In diesem Fall wird auch die bestehende Datenbank zerstört. Die neue Version von ApexSQL Log löst dies auf eine klare und einfache Art und Weise auch wenn MDF-Datei nicht angefügt werden kann, wenn sie nur teilweise vollständig ist und so weiter. Wir durchkämmen die Datei bis zum letzten möglichen Bit nach Daten ab. Dies hängt nicht unbedingt von der Log-Technologie selbst ab, sondern vielmehr von den Datenbanktätigkeiten, die nach der Löschung stattgefunden haben. Tabellen abzuschneiden (Truncate-Befehl) ist ein schneller Vorgang, da die Daten nicht wirklich gelöscht werden, was normalerweise eine Protokollierung aller gelöschten Daten in den Transaktionsprotokolldateien mit sich bringen und das Ganze verlangsamen würde. Stattdessen werden beim Truncate-Befehl die Teilbereiche der Datenfiles als frei gekennzeichnet und können wiederverwendet werden. Wenn Sie eine Tabelle abgeschnitten haben, ist das Beste was Sie tun können, dass Sie die gesamte DBAktivität stoppen. Damit minimieren Sie die Menge der wiederverwendeten Bereiche, was wiederum die Chance auf eine Wiederherstellung vergrössert. Wir können nicht immer wieder alles wiederherstellen können. Die Mehrheit der aktuellen Log-Betrachter- / Wiederherstellungs-Tools kann in einer solchen Situation gar nichts wiederherstellen. Wenn das Transaction Log keine Daten enthält- das ist der Fall bei einem Truncate – sind diese Tools einfach nutzlos. 3. Was ist mit der Tabelle die ich gelöscht habe und vorher abgeschnitten wurde? Praktisch wie im vorhergehenden Fall, aber in zwei Phasen: ApexSQL Log stellt zuerst die gelöschten Metadaten wieder her und erstellt ein DDL-Skript für die gelöschte Tabelle und erst danach werden die Daten wiederhergestellt. 5. Das klingt super! Aber was ist mit der Wiederherstellung von abgehängten MDF Dateien? Können diese Dateien wider an den SQL Server mittels sp_attach_single_file_db angehängt werden? 6. Ist das alles, was die Wiederherstellung anbelangt? Aktuell haben wir alle Log-Recovery-Optionen in ApexSQL Log 2005 mittels einzelnen Recovery Assistenten vereinfacht (was das Wiederherstellen von gelöschten Daten anbelangt). Benutzer können immer noch auf alte Art und Weise (wie REDO Skript Generation) Daten wiederherstellen. Wir bieten aber gleichzeitig eine einzigartige Schnittstelle für alle Wiederherstellungsaufgaben an. Obwohl wir Ihnen in der Schnittstelle keine Wiederherstellungsoption anbieten, wissen wir, wie man die Daten wiederherstellen kann. Also, wenn Sie Zweifel haben - fragen Sie uns. Wir hatten noch nie einen Fall, wo wir die Daten nicht wiederherstellen konnten, solange sie noch vorhanden waren. 4. Wie handhaben andere Wiederherstellungstools die Situation in der die betroffenen Daten in einer Tabelle immer wieder konsequent gelöscht wurden? Die meisten Tools, die in diesem Szenario versuchen Daten wiederherzustellen, verlassen sich auf Meta-Daten im Transaktionsprotokoll, um eine abgeschnittene Tabelle (Truncate) zu rekonstruieren. Aber diese Meta-Daten sind oft nicht vorhanden (es kann selber durch einen Checkpoint abgeschnitten worden sein, was eine SQL-ServerStandardeinstellung ist). Es ist gibt sogar ein Tool das nur Wiederherstellen kann, wenn ein Backup vorhanden ist und die Struktur der Tabelle sich nicht verändert hat, bevor Daten gelöscht wurden. Die Herausforderung besteht darin, Daten ohne diese unrealistischen Vorgaben wiederherzustellen, was oft einfach nicht den Szenarien im Alltag entspricht. In diesem Fall, wo die anderen Instrumente versagen, gelingt dies ApexSQL Log durch einen redundanten Ansatz und durch die Suche nach Metadaten in verschiedenen Quellen. Wann immer nützliche Metadaten gefunden werden, wird die Tabelle erstellt und danach beginnt die Wiederherstellung der gelöschten Daten. ApexSQL LLC 50101 Governors Dr., Suite 200 Chapel Hill, NC 27517 USA 1-866-665-5500 1-919-968-8444 [email protected] www.apexsql.com