none
BACKUP / RESTORE Bestandteil von SQL Engine? RRS feed

  • Frage

  • allo Zusammen,

    nachdem Olaf mich im amerikanischen Forum gerügt hat, werde ich jetzt erst mal meine Frage hier stellen :D.

    Ich habe ein "Beweisproblem" in der Bank zu führen, dem folgender Diskussionspunkt zu Grunde liegt:

    Ein Vendor aus "Weit Weit Weg" hat eine Software installiert, die keine DR-Lösung unterstützt (Mirroring). Also hat dieser Vendor einen Agent Task erstellt, der folgende Schritte (vereinfacht) ausführt:

    1. Erstelle ein Backup auf lokaler Platte (1 TB)
    2. Kopiere die Files von PROD auf DR
    3. RECOVER von copied Files in DR

    Da der Kopiervorgang natürlich in einer Nacht nicht durchgeführt werden kann, ist dieses Konstrukt absoluter Schwachsinn (wie auch aus vielen anderen Gründen). Wir haben uns also entschieden (SQL 2005 Enterprise), Litespeed als Backup-System zu verwenden, da dadurch zwei Vorteile gewährt sind:

    - Kleinere Backups (Compression)
    - schnellere Backups

    Nun behauptet der Vendor doch glatt, daß er seine Scripte nicht anpassen muß, da ja Litespeed nun die Hoheit über die Befehle BACKUP / RESTORE hat und somit automatisch die Backups mit Litespeed durchgeführt werden.

    Ich halte das  nicht nur für ausgemachten Blödsinn sondern habe auch entsprechende Tests gemacht:

    BACKUP/ RESTORE (SQLEngine) : 1 TB; 45 Min
    xp_backup_database / xp_restore_database (LiteSpeed) 200 MB; 22 Mn

    Somit ist ja wohl erst mal klar, daß die einen geballten Schwachsinn verbreiten. Nichts desto trotz muß ich das ganze jetzt auch fundiert gegenüber unserem Global Head of Databases argumentieren.

    Meine Aussage basiert darauf, daß BACKUP / RESTORE Bestandteil der SQL Engine sind und somit auch nicht von Litespeed durch eigene DLL erstetzt werden.

    Meine Frage nun (nachdem ich mich ein wenig abgeregt habe :) )
    Kann man irgendwo belegen, daß die "Backupengine" ein Bestandteil der SQL Engine ist?

    Danke für Eure Unterstützung...


    Uwe Ricken

    MCITP Database Administrator 2005
    MCITP Database Administrator 2008
    MCITP Microsoft SQL Server 2008, Database Development

    db Berater GmbH
    http://www-db-berater.de
    Donnerstag, 3. November 2011 14:42

Antworten

  • nachdem Olaf mich im amerikanischen Forum gerügt hat, werde ich jetzt erst mal meine Frage hier stellen :D.

    Hallo Uwe,

    nun nimm mich bitte nicht so erst, ist mir schon klar, das im en-US Forum mehr los und mehr Leute aktiv sind.
    Übrigens, eine Gelegenheit zum Bier könnte sich bald mal ergeben: Die erste Deutsche SQL Server Konferenz + Launch des SQL Server 2012 in Köln.

    Also, Third-Party Produkte können sich nicht in den SQL Server direkt einbinden, um z.B. Backups auszuführen oder um Teile der SQL Server Engine zu ersetzen. Es gibt zwar eine .NET Integration für eigene Assemblies, aber die stellen einen "passiven" Teil dar.

    Externe Applikationen können nur über die vom SQL Server bereitgestellten Schnittstellen zugreifen. Im Falle von Backuplösungen ist das die VDI = Virtual Backup Device Interface, das auch vollständig dokumentiert ist: SQL Server 2005 Virtual Backup Device Interface (VDI) Specification.
    Über dieses Interface kann ein Programm ein Backup anstossen und erhält dann vom SQL Server die Backupdaten als Stream zurückgeliefert; damit kann das Programm dann machen was es will; Restore funktioniert genauso.

    Aber: Das kann eben nur von dem Backup Programm selbst angestossen werden, es ist nicht möglich z.B. aus dem Management Studio heraus zu sagen, sichere nun über die VDI mit dem Third-Party Programm die Datenbank. Man könnte ja durchaus mehrere Backup Programme installiert haben, die müssten alle namentlich registriert sein um sie ansprechen zu können; gibt es aber nicht.
    Native werden nur Band- und Festplattensicherungen vom SQL Server unterstützt.

    Wir haben IBM TSM als Enterprise Backup Solution und auch die gehen über VDI, um die Datenbanken zu sichern. Es gibt extra einen lokalen Agent, der das Scheduling vornimmt, die Sicherungsjobs ausführt und die Backups in die Tape Library überträgt. Um manuell eine Sicherung auszuführen, muss ich das TSM Tool verwenden, ich habe keine Möglichkeit, dies per SSMS oder T-SQL vorzunehmen; dito fürs Restore.

    Von der muss Euer Vendor eigentlich nicht die SQL Scripte anpassen; er kann sie wegwerfen, weil sie so oder so nicht mit Litespeed als ext. App funktionieren.

    Den logischen Backup-Vorgang kann nur die SQL Server Engine durchführen und auch nur die weiß ja, was überhaupt gesichert werden kann.

    Siehe auch: A Guide for SQL Server Backup Application Vendors, dort kann man bereits in den Graphiken sehen, dass ein Backup Programm via VDI nicht einmal direkt mit der SQL Engine kommuniziert, der SQL Writer ist noch zwischen geschaltet.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Donnerstag, 3. November 2011 15:38

Alle Antworten

  • nachdem Olaf mich im amerikanischen Forum gerügt hat, werde ich jetzt erst mal meine Frage hier stellen :D.

    Hallo Uwe,

    nun nimm mich bitte nicht so erst, ist mir schon klar, das im en-US Forum mehr los und mehr Leute aktiv sind.
    Übrigens, eine Gelegenheit zum Bier könnte sich bald mal ergeben: Die erste Deutsche SQL Server Konferenz + Launch des SQL Server 2012 in Köln.

    Also, Third-Party Produkte können sich nicht in den SQL Server direkt einbinden, um z.B. Backups auszuführen oder um Teile der SQL Server Engine zu ersetzen. Es gibt zwar eine .NET Integration für eigene Assemblies, aber die stellen einen "passiven" Teil dar.

    Externe Applikationen können nur über die vom SQL Server bereitgestellten Schnittstellen zugreifen. Im Falle von Backuplösungen ist das die VDI = Virtual Backup Device Interface, das auch vollständig dokumentiert ist: SQL Server 2005 Virtual Backup Device Interface (VDI) Specification.
    Über dieses Interface kann ein Programm ein Backup anstossen und erhält dann vom SQL Server die Backupdaten als Stream zurückgeliefert; damit kann das Programm dann machen was es will; Restore funktioniert genauso.

    Aber: Das kann eben nur von dem Backup Programm selbst angestossen werden, es ist nicht möglich z.B. aus dem Management Studio heraus zu sagen, sichere nun über die VDI mit dem Third-Party Programm die Datenbank. Man könnte ja durchaus mehrere Backup Programme installiert haben, die müssten alle namentlich registriert sein um sie ansprechen zu können; gibt es aber nicht.
    Native werden nur Band- und Festplattensicherungen vom SQL Server unterstützt.

    Wir haben IBM TSM als Enterprise Backup Solution und auch die gehen über VDI, um die Datenbanken zu sichern. Es gibt extra einen lokalen Agent, der das Scheduling vornimmt, die Sicherungsjobs ausführt und die Backups in die Tape Library überträgt. Um manuell eine Sicherung auszuführen, muss ich das TSM Tool verwenden, ich habe keine Möglichkeit, dies per SSMS oder T-SQL vorzunehmen; dito fürs Restore.

    Von der muss Euer Vendor eigentlich nicht die SQL Scripte anpassen; er kann sie wegwerfen, weil sie so oder so nicht mit Litespeed als ext. App funktionieren.

    Den logischen Backup-Vorgang kann nur die SQL Server Engine durchführen und auch nur die weiß ja, was überhaupt gesichert werden kann.

    Siehe auch: A Guide for SQL Server Backup Application Vendors, dort kann man bereits in den Graphiken sehen, dass ein Backup Programm via VDI nicht einmal direkt mit der SQL Engine kommuniziert, der SQL Writer ist noch zwischen geschaltet.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Donnerstag, 3. November 2011 15:38
  • Hallo Olaf,

    nun nimm mich bitte nicht so erst, ist mir schon klar, das im en-US Forum mehr los und mehr Leute aktiv sind.

    Hehehehe - Du weißt doch hoffentlich, daß ich das mehr aus Spaß erwähnt habe, gell ;)

    danke für den Hinweis KÖLN. Ich werde mal schauen, ob ich das nicht irgendwie hinbekomme. Würde mich wirklich sehr freuen, Dich dann auch mal persönlich kennenzulernen.

    BTT: Die von Dir beschriebene Funktionsweise habe ich ebenfalls so "im Kopf". Das Problem, daß ich hier gerade habe, ist das folgende:

    der Vendor aus Bangalore behauptet steif und fest, daß seine Scripte (verwenden BACKUP DATABASE ...) nicht geändert werden müßten, da der Befehl gleich bliebe; aber bei korrekter Installation von LiteSpeed / oder auch TSM eben "umleiten" auf die Engine des Vendors (in diesem Fall Litespeed).

    Das ist aber Blödsinn - BACKUP ist ein Bestandteil der SQL Engine und entsprechend verwenden die Backup-Vendors halt ihre eigenen DLL.

    Das Problem mit dem Vendor ist halt, daß er selbst SQL for Dummies nicht wirklich versteht.
    Unser MD möchte nun halt eine plausibel und nachweisbare Erklärung dafür haben.

    Akt. Status: Eine Antwort von Quest habe ich nun erhalten und sie bestätigt Deine und meine Vermutung.

    Ciao, Uwe

     


    Uwe Ricken

    MCITP Database Administrator 2005
    MCITP Database Administrator 2008
    MCITP Microsoft SQL Server 2008, Database Development

    db Berater GmbH
    http://www-db-berater.de
    Donnerstag, 3. November 2011 16:32