Asynchrone Replikation für MSSQL Datenbank innerhab der gleichen Instanz
Guten Tag zusammen,
das sollte für die richtigen SQL Experten überhaupt kein Problem darstellen!
Ein Kunde hat eine riesige SQL Datenbank ca. 1TB groß.
Diese Datenbank wird nächtlich gesichert und zusätzlich tägl. alle 10 Minuten über LogBackups.
Nun ist es so das der Kunde immer wieder mal Tabellen wiederherstellen muss. Im Moment stellt der Kunde das letzte Backup der Datenbank wieder her
und exportiert / importiert dann entsprechende Daten. Problem an dieser Vorgehensweise ist die Wiederherstellungsdauer!
Ich würde nun gerne eine Art Spiegelung der Datenbank durchführen wollen in eine zusätzliche Datenbank in der gleichen Instanz.
Spiegelung fällt aber weg da diese wohl nur Instanz übergreifend konfiguriert werden kann.
Zeitplan gesteuerte Datenbankkopierauftrag erscheint mir doch sehr ineffizient da ja hierbei immer wieder komplett alles geschrieben würde.
Zudem kommt das das System 24/7 läuft und somit in dieser Zeit bisl. mit Performance Problemen zu kämpfen hätte
Ich hätte nun gerne einfach zusätzlich zur bisherigen Sicherung einen Replikationsauftrag in eine Richtung. ProduktivDB -> KopieDB (asynchron) auf der gleichen Standardinstanz "MSSQLSERVER"
SQL Server Version und Betriebssystem:
Microsoft SQL Server 2014 (SP2-GDR) (KB4019093) - 12.0.5207.0 (X64)
Jul 3 2017 02:25:44
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
Ich bin schon total gespannt auf eure Antwort
Liebe Grüße und vielen Dank.
das sollte für die richtigen SQL Experten überhaupt kein Problem darstellen!
Ein Kunde hat eine riesige SQL Datenbank ca. 1TB groß.
Diese Datenbank wird nächtlich gesichert und zusätzlich tägl. alle 10 Minuten über LogBackups.
Nun ist es so das der Kunde immer wieder mal Tabellen wiederherstellen muss. Im Moment stellt der Kunde das letzte Backup der Datenbank wieder her
und exportiert / importiert dann entsprechende Daten. Problem an dieser Vorgehensweise ist die Wiederherstellungsdauer!
Ich würde nun gerne eine Art Spiegelung der Datenbank durchführen wollen in eine zusätzliche Datenbank in der gleichen Instanz.
Spiegelung fällt aber weg da diese wohl nur Instanz übergreifend konfiguriert werden kann.
Zeitplan gesteuerte Datenbankkopierauftrag erscheint mir doch sehr ineffizient da ja hierbei immer wieder komplett alles geschrieben würde.
Zudem kommt das das System 24/7 läuft und somit in dieser Zeit bisl. mit Performance Problemen zu kämpfen hätte
Ich hätte nun gerne einfach zusätzlich zur bisherigen Sicherung einen Replikationsauftrag in eine Richtung. ProduktivDB -> KopieDB (asynchron) auf der gleichen Standardinstanz "MSSQLSERVER"
SQL Server Version und Betriebssystem:
Microsoft SQL Server 2014 (SP2-GDR) (KB4019093) - 12.0.5207.0 (X64)
Jul 3 2017 02:25:44
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
Ich bin schon total gespannt auf eure Antwort
Liebe Grüße und vielen Dank.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 352813
Url: https://administrator.de/contentid/352813
Ausgedruckt am: 22.11.2024 um 07:11 Uhr
18 Kommentare
Neuester Kommentar
Wie soll dir denn eine Spiegelung bei dem Problem helfen?
Die Spiegelung schreibt auch alle Fehler in die gespiegelte Datenbank, du hast dann also den selben Stand da drin wie in der ursprünglichen DB.
Eine Wiederherstellung einzelner Tabellen sollte eigentlich nicht so lange dauern, es muss nicht die ganze Datenbank wiederhergestellt werden.
Nutzt ihr fürs Backup einen Wartungsplan?
Die Spiegelung schreibt auch alle Fehler in die gespiegelte Datenbank, du hast dann also den selben Stand da drin wie in der ursprünglichen DB.
Eine Wiederherstellung einzelner Tabellen sollte eigentlich nicht so lange dauern, es muss nicht die ganze Datenbank wiederhergestellt werden.
Nutzt ihr fürs Backup einen Wartungsplan?
Moin,
so wie ich das sehe, würde es doch reichen die gesicherte DB bspw. nachts immer wieder einzuhängen.
Damit verkürzt sich diese Zeitspanne ja schon mal.
Nach wie vor behebt das ja nicht die Ursache, welche Anwender können denn bei einer ordentlichen Programmierung Tabellen verhuntzen? Und wenn's immer die selben Tabellen sind, würde ich eher diese per Trigger in eine weitere DB wegschreiben.
Sinds immer die selben User, ist wohl klar was zu tun ist.
Daneben gibt es u.U. auch Backupsysteme bei denen nur eine Tabelle extrahiert werden kann, da kenne ich mich aber nicht gut aus.
Eventuell kann damit auf die Zeitspanne verkürzt und der Aufwand reduziert werden.
Gruss
so wie ich das sehe, würde es doch reichen die gesicherte DB bspw. nachts immer wieder einzuhängen.
Damit verkürzt sich diese Zeitspanne ja schon mal.
Nach wie vor behebt das ja nicht die Ursache, welche Anwender können denn bei einer ordentlichen Programmierung Tabellen verhuntzen? Und wenn's immer die selben Tabellen sind, würde ich eher diese per Trigger in eine weitere DB wegschreiben.
Sinds immer die selben User, ist wohl klar was zu tun ist.
Daneben gibt es u.U. auch Backupsysteme bei denen nur eine Tabelle extrahiert werden kann, da kenne ich mich aber nicht gut aus.
Eventuell kann damit auf die Zeitspanne verkürzt und der Aufwand reduziert werden.
Gruss
Moin,
lass Dir das von Deinem Dienstleister oder dem Hersteller einrichten.
Grundsätzliche SQL Befehl zum Einhängen der Test DB findest Du hier:
https://docs.microsoft.com/de-de/sql/t-sql/statements/restore-statements ...
lass Dir das von Deinem Dienstleister oder dem Hersteller einrichten.
Grundsätzliche SQL Befehl zum Einhängen der Test DB findest Du hier:
https://docs.microsoft.com/de-de/sql/t-sql/statements/restore-statements ...
Zitat von @ioioio:
2. Ich will auf keinen Fall einen kompletten Restore einer BAK Datei ausführen.
Er will einfach jeden Morgen eine Kopie der produktiven Datenbank mit dem Stand vom Vortag im Management Studio vorfinden ohne das Dabei unnötig viel geschrieben wird.
2. Ich will auf keinen Fall einen kompletten Restore einer BAK Datei ausführen.
Er will einfach jeden Morgen eine Kopie der produktiven Datenbank mit dem Stand vom Vortag im Management Studio vorfinden ohne das Dabei unnötig viel geschrieben wird.
Das widerspricht sich, vielleicht überlegst Du nochmal was Du willst.
Und eine Kopie der Datenbank wird immer über SQL Anweisungen oder die GIU neu angehängt.
Daran führt kein Weg vorbei und das kann bequem automatisiert werden.
Mir scheint, dass weder Du noch Dein Kunde auch nur rudimentäre Kenntnisse von SQL hat, was nicht schlimm ist.
In diesem Fall sollte sich jedoch jemand damit beschäftigen, der sich damit auskennt. Oder willst Du haften, wenn was schief läuft.
Alles weitere gerne gegen Berechnung und PN
Zitat von @ioioio:
Also ja das ist ja schön und gut aber ich befürchte das wird mein Problem nicht lösen.
1. Ich weiß im Vorfeld nicht welche Tabellen / Zeilen / Daten benötigt werden.
2. Ich will auf keinen Fall einen kompletten Restore einer BAK Datei ausführen.
3. Der Kunde will nicht mit SQL Anweisungen arbeiten sondern bequem über Export / Import
Er will einfach jeden Morgen eine Kopie der produktiven Datenbank mit dem Stand vom Vortag im Management Studio vorfinden ohne das Dabei unnötig viel geschrieben wird.
Also ja das ist ja schön und gut aber ich befürchte das wird mein Problem nicht lösen.
1. Ich weiß im Vorfeld nicht welche Tabellen / Zeilen / Daten benötigt werden.
2. Ich will auf keinen Fall einen kompletten Restore einer BAK Datei ausführen.
3. Der Kunde will nicht mit SQL Anweisungen arbeiten sondern bequem über Export / Import
Er will einfach jeden Morgen eine Kopie der produktiven Datenbank mit dem Stand vom Vortag im Management Studio vorfinden ohne das Dabei unnötig viel geschrieben wird.
Was du brauchst ist eine ordentliche Backup Software die Granular Restore beherrscht.
Mit dem Veeam SQL Explorer kann man sowas z.B. machen.
https://www.veeam.com/de/microsoft-sql-server-explorer.html
Solche Lösungen gibt es von fast jedem Hersteller. Die stellen dann aus dem Index einzelne Tabellen wieder her.
Zitat von @ioioio:
Es kommt ja auch nicht täglich vor. nur eben immer wieder mal. Und Veeam Backup macht ja auch noch Sicherung
der gesamten Maschine inkl. Application Aware processing. D.H. die Datenbank des SQL Servers wieder hierbei auch konsistent gesichert. Aber auch hierbei dauert die Wiederherstellung bzw. das Mounten der Datenbank einfach zu lange.
Es kommt ja auch nicht täglich vor. nur eben immer wieder mal. Und Veeam Backup macht ja auch noch Sicherung
der gesamten Maschine inkl. Application Aware processing. D.H. die Datenbank des SQL Servers wieder hierbei auch konsistent gesichert. Aber auch hierbei dauert die Wiederherstellung bzw. das Mounten der Datenbank einfach zu lange.
Sorry aber dann macht ihr es einfach falsch.
Bist du sicher das die Datenbank wirklich so groß ist, oder ist da nur Müll drin der eigentlich gar nicht reingehört?
Wenn die kompletten 1 TB in einer einzigen oder wenigen relational verbundenen Tabellen liegen, bringt dir eine teilweise Wiederherstellung dann auch keine Zeitersparnis. Dann hilft nur noch ein Hardware Upgrade, z.B. Kiste mit PCIe SSDs.
Zitat von @ioioio:
Der Softwarehersteller soll nicht involviert werden was diese Lösung betrifft.
Der Kunde selbst stellt Daten wieder her. Wie erwähnt mittels Export / Import Funktion.
Und ja die Datenbank ist tatsächlich 1 TB groß.
Spielt das alles überhaupt eine Rolle?
Der Softwarehersteller soll nicht involviert werden was diese Lösung betrifft.
Der Kunde selbst stellt Daten wieder her. Wie erwähnt mittels Export / Import Funktion.
Und ja die Datenbank ist tatsächlich 1 TB groß.
Spielt das alles überhaupt eine Rolle?
Ja das spielt eine Rolle. Wenn die Software so mies programmiert ist das alle Daten in einer Tabelle sind, kannst du schlichtweg nicht schneller zurücksichern, auch wenn du dich auf den Kopf stellst. Eine Replikation repliziert in Echtzeit, also auch alle Fehler. Eine Sicherung sichert eben, muss aber auch wieder zurückgespielt werden, was man mit Commandline Befehlen automatisieren kann, das scheint dir aber auch nicht zu gefallen, oder du bist schlichtweg nicht interessiert dich mit T-SQL zu beschäftigen. Wenn du doch in diese Richtung gehen willst,
https://www.mssqltips.com/sqlservertip/2842/how-to-automate-sql-server-r ...
Eine Klickibunti Lösung die genau auf die Datenbank passt die dein Softwarehersteller hat, wird es nicht geben.
Ich möchte doch lediglich die erbetene Lösung.
Das meint die Kollegin mit BWLer. Ich möchte haben, Kosten darf es nichts, und Zeit investieren mag ich auch nicht.Wenn dir jemand die Lösung komplett erstellt könnte er sie auch gleich selber an deinen Kunden verkaufen.
Mach doch einfach einen Snapshot der Datenbank, das ist genau für sowas gedacht...
Funktioniert ähnlich wie mit Schattenkopien on the fly ohne Beeinträchtigung der Nutzer im Hintergund und Speichersparend:
https://docs.microsoft.com/de-de/sql/relational-databases/databases/crea ...
Und die DB lässt sich dann bei Bedarf ganz einfach auf diesen Status zurückrollen.
Funktioniert ähnlich wie mit Schattenkopien on the fly ohne Beeinträchtigung der Nutzer im Hintergund und Speichersparend:
https://docs.microsoft.com/de-de/sql/relational-databases/databases/crea ...
Und die DB lässt sich dann bei Bedarf ganz einfach auf diesen Status zurückrollen.