gelöst Asynchrone Replikation für MSSQL Datenbank innerhab der gleichen Instanz

Mitglied: ioioio

ioioio (Level 1) - Jetzt verbinden

25.10.2017 um 11:42 Uhr, 1216 Aufrufe, 18 Kommentare

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.
Mitglied: sabines
25.10.2017 um 12:41 Uhr
Moin,

ich würde eher an der Ursache als an den Symptomen ansetzen.
Warum müssen immer mal wieder Tabellen wiederhergestellt werden?

Gruss
Bitte warten ..
Mitglied: rzlbrnft
25.10.2017 um 14:06 Uhr
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?
Bitte warten ..
Mitglied: ioioio
26.10.2017 um 09:40 Uhr
...

Danke für eure Antwort.

Also die Tabellen müssen manchmal wiederhergestellt werden wenn etwas schiefgegangen ist. Anwenderseitig!
Der Administrator vor Ort wünscht einfach das Backup des Vortags angebunden zu haben.
Für den Fall das etwas gelöscht wird. Das System läuft ja dann unter umständen Stunden weiter bevor das erkannt wird. Das heißt er kann unmöglich alles wiederherstellen.
Die Datenbank des Vortags würde dann helfen. Diese allerdings wiederherzustellen dauert lange.

Klar werden Wartungspläne genutzt. Einmal Vollbackup in der Nacht und dann in kürzeren Abständen über Transaktionsprotokoll Sicherung.
Aber diese Backups helfen ja hier nicht wirklich weiter.
Bitte warten ..
Mitglied: sabines
26.10.2017 um 10:41 Uhr
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
Bitte warten ..
Mitglied: ioioio
26.10.2017 um 11:13 Uhr
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.

Wie soll ich die gesicherten DBs Nachts einhängen. Ich habe lediglich eine BAK Datei.
Ja Tabellen auslagern ist eine super Idee. Aber das muss dann bitte der Softwarehersteller tun!


Ich will einfach einen asynchronen. Von mir aus mit Log Shipping. Kennt sich jemand gut aus mit SQL Server und Log Transfer an eine andere Datenbank. Das wäre das effizienteste. Den Transfer und die Wiederherstellung würde ich dann nur einmal um 1 Uhr machen.
Bitte warten ..
Mitglied: sabines
26.10.2017 um 11:50 Uhr
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 ...
Bitte warten ..
Mitglied: ioioio
26.10.2017 um 12:02 Uhr
Das geht leider nicht. Der Kunde will das wir das machen. Der Hersteller ist im da zu unzuverlässig / Überlastet und der Kunde will die Kompetenz bei sich haben.

ich schaue mir aber mal an was hinter deinem Link steckt



-> Weiterhin wäre der Ansatz Log Shipping für mich sehr interessant. Also wenn hier jemand was zu diesem Thema weiß :D
Bitte warten ..
Mitglied: ioioio
26.10.2017 um 12:10 Uhr
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.
Bitte warten ..
Mitglied: sabines
26.10.2017, aktualisiert um 12:52 Uhr
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.

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
Bitte warten ..
Mitglied: rzlbrnft
26.10.2017, aktualisiert um 16:42 Uhr
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.

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.

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.
Bitte warten ..
Mitglied: ioioio
27.10.2017 um 10:04 Uhr
Ich bin wirklich dankbar über eure Teilnahme an der ganzen Sache.

... ABER (das böse Wort)


Ich habe mit der Datenbank nichts zu tun!
Wir stellen nur die IT-Infrastruktur und kümmern uns um die Backups aller VMs

Wir verwenden für das Backup der VMs Veeam Backup und zusätzlich an den SQL Server noch
den SQL Agent also die Wartungsverträge für VollBackups 1xtägl. und LogBackups alle 15 Minuten.

Das ganze wird über einen separaten Backupserver in anderem Brandschutzbereich gesichert.
Dort dann auch nochmal via Veeam BackupCopyJob auf exteren Festplatten für die Mitnahme außer Haus!

Ich empfinde das als solide und ausreichend!

Es sind hier 3 Seiten involviert:
Wir der Dienstleister für alles vor Ort und zuständig für die Hardware
Kunde
Softwarehersteller

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? Ich möchte doch lediglich die erbetene Lösung.
Der Hintergrund der ganzen Anforderung darf ignoriert werden!

Ich bin mir darüber im Klaren das die Datenbank und die gesamte Software optimiert werden sollte.
Aber wer bin ich. Das wurde dem Kunden vorgeschlagen und er hat abgelehnt diesen Weg zu gehen.

Meine Argumente waren die Gleichen. Zusätzlich warnte ich vor Konsistenzproblemen in der Datenbank
die ja durchaus vorkommen könnten bei diesem Import / Export Spielchen.
Aber Kunde will was Kunde will. Mir doch dann egal solange ich Ihn aufgeklärt und über möglich Risiken aufgeklärt habe.
Die Entscheidung trifft er!

<- Hintergrund

Mein Anliegen ->

Bitte lasst uns bitte den Hintergrund soweit vergessen. Ich benötige einfach eine asynchrone Replikation der Datenbank mit
Stand des Vortags um 22Uhr ohne das jedes mal ein kompletter Restore stattfindet!
Das ganz in der selben SQL Server Instanz.
Bitte warten ..
Mitglied: sabines
27.10.2017 um 10:23 Uhr
Bist Du BWLer?
Bitte warten ..
Mitglied: ioioio
27.10.2017 um 10:35 Uhr
Nein. Ich bin Fachinformatiker für Systemintegration in einem kleinen IT Systemhaus.

Wieso? :D
Bitte warten ..
Mitglied: rzlbrnft
27.10.2017, aktualisiert um 13:02 Uhr
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?

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.
Bitte warten ..
Mitglied: ioioio
30.10.2017 um 09:00 Uhr
Das stimmt dock überhaupt nicht. Replikationen lassen sich in vielen anderen Anwendungen Zeitlich steuern. Wenn ich diese 1x tägl durchführe
habe ich da überhaupt keine Fehler mit repliziert.

z.B.

1.1 - 22.00Uhr, Replikation

2.1 - 9.00 Uhr, Wird etwas vom Anwender gelöscht verändert verhauen

So nun habe ich zwei Datenbanken vorliegen. Die von gestern 22.00 Uhr und die produktiv befindliche Datenbank mit den vom Anwender
gelöschten Daten ...

?

Ich habe nie nach einer Echtzeit Replikation gefragt! Ich möchte eine täglich einmalige Replikation.
Das beschriebene Szenario kann ich auch mit eine Datenbankkopie erreichen aber ich möchte schlichtweg vermeiden das jeden Abend die gesamten 1000GB als Kopie geschrieben werden sondern nur Änderungen.

Soll ich dem Kunden jetzt sagen. Nein ich mach das nicht ist mir zu blöd such dir jemanden anderen?


Ich möchte doch nur wissen (bitte ohne die Vorgeschichte zu beachten):
Ist es möglich täglich 1 Replikation durchzuführen, dies aysnchron und innerhalb einer Instanz.


Und wer hat den gesagt das es nichts kosten darf? So wenig wie nötig und das gilt immer. Du und deine Kollegin arbeitet wohl aufm Amt da spielt Zeit und Geld natürlich keine Rolle! Oder in einer riesen Firma wo deine Ressourcenverschwendung von fleißigen Kollegen abgefangen wird!
Ich bin mit meinen Kenntnissen einfach am Ende und deshalb suchte ich hier Hilfe.
Ich will keine Abstimmung über die Software oder Optimalvorstellungen führen!

Und wer sagt ich will keine Zeit investieren? Nur so viel wie nötig!
Wer hat gesagt das ALLE Daten in einer Tabelle sind? Es sind ganz unterschiedliche Tabellen und manchmal auch nur einzelne Datensätze.

Ihr könnt mir ja gern mal sagen wie ich vorgehen soll als Dienstleister.
Soll ich dem Kunden sagen. Ne mach ich nicht weil die Software ist so beschießen damit will ich nix zu tun haben.
Oder soll ich einfach sagen ok wir machen eine teure Lösung und wenn er fragt, würde das auch günstiger gehen antworte ich einfach mit
nein!
Was natürlich blöd ist wenn sich dann irgendwann andere Fakten zeigen sollten.


Also eine Datenbankreplikation innerhalb einer Instanz ist eurer Meinung nach unmöglich?


Mfg
Bitte warten ..
Mitglied: 134464
LÖSUNG 30.10.2017, aktualisiert um 09:34 Uhr
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.
Bitte warten ..
Mitglied: ioioio
02.11.2017 um 09:37 Uhr
Hallo Specht,

das hört sich doch nach genau der Lösung an die ich / mein Kunde gebrauchen kann.


Ich probiere das aus und teile anschließend meine Ergebnisse mit euch.




lg
Bitte warten ..
Mitglied: ioioio
07.11.2017 um 09:44 Uhr
Hallo Specht und Co,

also ich habe das mit den Momentaufnahmen nun ausgiebig getestet. Super geile Sache und erfüllt zu 100% meine Wünsche.
Also kann ich an dieser Stelle sagen. Mir wurde zu 100% geholfen und ich bin total froh über die die Hilfe!


SQL Server Standard bietet diese Funktion erst ab 2016 inkl. SP1. Mit welchen Edition das vorher bereits funktioniert kann ich
an dieser Stelle nicht sagen da hierfür kein Grund zur Recherche bestand.
Der Kunde hatte nämlich bereits das Update von 2014 auf 2016 geplant!


Danke Specht!
Bitte warten ..
Heiß diskutierte Inhalte
LAN, WAN, Wireless
Wlan Messgerät
gelöst fizlibuzliFrageLAN, WAN, Wireless23 Kommentare

Hallo, gibt es erschwingliche Messgeräte um vorhanden W-Lan ausleuchtungen in ihrer Signalstärke und Bandbreite zu messen. Es sollen einfache ...

Microsoft
Failover Cluster Network
samreinFrageMicrosoft22 Kommentare

Hallo zusammen, toller Freitag heute vielleicht kann mir jemand unter die Arme greifen. Ich habe einen Failover Cluster gebaut. ...

Router & Routing
Kaufempfehlung WLAN Router mit VLAN Unterstützung
ccreccFrageRouter & Routing20 Kommentare

Hallo zusammen, ich wollte mal nach einer Kaufempfehlung für einen WLAN Access Point mit halbwegs vernünftiger VLAN Unterstützung fragen. ...

Switche und Hubs
LAN Kabel, Lasche bricht
NebellichtFrageSwitche und Hubs14 Kommentare

Hallo Freunde, leider kommt es doch schon mal vor, dass die Lasche am LAN-Kabel abbricht und der Stecker nicht ...

Batch & Shell
Internet-Seite als Grafik statt als Druck im Hintergrund
spinnifexFrageBatch & Shell7 Kommentare

Hallo allerseits, vor einigen Tagen wurde mir hier mit folgendem PS Skript geholfen, um eine Internetseite im Hintergund auszudrucken. ...

Windows Server
WSUS internal DB Verbindung mit SQL Management Studio funktioniert nicht
joe2017FrageWindows Server7 Kommentare

Schönen guten Morgen, ich habe einen Windows Server 2012 R2 mit einem WSUS und möchte mich zu der internen ...

Ähnliche Inhalte
Datenbanken

MSSQL Datenbank in eine MYSQL Datenbank mehrmals Täglich synchronisieren

gelöst ThomasKernFrageDatenbanken10 Kommentare

Hallo zusammen, evtl. kann mir wer weiterhelfen. Ich stehe vor folgender Herausforderung. Ich müsste unsere 150GB große WAWI Datenbank ...

Windows Server

Datenbank von phpMyAdmin nach MSSQL Studio

gelöst Milchmann89FrageWindows Server17 Kommentare

Guten Tag, wir versuchen eine vorhandene Datenbank sauber in das MSSQL Studio zu bekommen. Grund dafür ist eine bevorstehende ...

Datenbanken

MSSQL Server - gesamte Struktur einer Datenbank "exportieren"

mymomoFrageDatenbanken2 Kommentare

Hallo zusammen! Meine Firma hat da ein Problem mit einem Kunden. Wir benötigen für Entwicklungszwecke einer Software die genaue ...

Datenbanken

Datenimport Powershell in MsSql Datenbank aus AD

gelöst hdreiseFrageDatenbanken2 Kommentare

Guten Morge, ich hab ein kleines Problem wo ich leider nicht so weiterkomme. Ich hab mit SQL Datenbanken sehr ...

Datenbanken

MSSQL - ein Datensatz aus jeder Tabelle einer Datenbank

mymomoFrageDatenbanken5 Kommentare

Moin! Ist es möglich aus jeder vorhandenen Tabelle einer Datenbank einen (oder bestenfalls sagen wir mal 5) Datensatz auszulesen? ...

Datenbanken

Oracle 11 Datenbank exportieren und in MSSQL 2008 importieren?

mymomoFrageDatenbanken4 Kommentare

Moin! Ich kenne mich rudimentär mit MSSQL Datenbanken aus, weiß diese zu installieren und für meine Zwecke (bzw die ...

Berechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid CloudSmall Business ITSmall Business IT