{"id":92367,"date":"2020-08-26T07:42:09","date_gmt":"2020-08-26T05:42:09","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/putevoditel-po-rezervnomu-kopirovaniyu-baz-dannyh"},"modified":"2020-08-26T07:42:09","modified_gmt":"2020-08-26T05:42:09","slug":"putevoditel-po-rezervnomu-kopirovaniyu-baz-dannyh","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/putevoditel-po-rezervnomu-kopirovaniyu-baz-dannyh","title":{"rendered":"Leitfaden zur Sicherung von Datenbanken","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<blockquote><p>\u2013 Oh, kein Schutzraum h\u00e4lt einem Meteoriten-Einschlag stand. Aber wie jeder haben Sie auch eine Reserve, sodass Sie sich keine Sorgen machen m\u00fcssen.<\/p>\n<p><i>Stanislaw Lem, \u201eDie Star Diaries von Ijon Tichy\u201c<\/i><\/p><\/blockquote>\n<p>\nVon einer Datensicherung spricht man, wenn eine Kopie von Daten an einem anderen Ort als dem Hauptspeicherort gespeichert wird.<\/p>\n<p><img decoding=\"async\" alt=\"Leitfaden zur Sicherung von Datenbanken\" src=\"\/wp-content\/uploads\/2020\/08\/c1dba0d8999cab69315560dfc57546e0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas Hauptziel der Datensicherung ist die Wiederherstellung von Daten nach einem Verlust. In diesem Zusammenhang h\u00f6rt man oft, dass bei Vorhandensein eines Replikats der Datenbank die Daten immer wiederhergestellt werden k\u00f6nnen, und Datensicherung somit unn\u00f6tig sei. Tats\u00e4chlich erm\u00f6glicht die Datensicherung jedoch die L\u00f6sung von mindestens drei Aufgaben, die mit einem Replikat nicht gel\u00f6st werden k\u00f6nnen, und ein Replikat kann ohne eine Datensicherung nicht initialisiert werden.<\/p>\n<p>Erstens erm\u00f6glicht eine Sicherung die Wiederherstellung von Daten nach einem logischen Fehler. Zum Beispiel hat der Buchhalter eine Gruppe von Buchungen gel\u00f6scht oder der DB-Administrator hat den Tablespace verworfen. Beide Vorg\u00e4nge sind aus Sicht der Datenbank absolut legitim und der Replikationsprozess wird diese in der Replikatsdatenbank wiederherstellen.<\/p>\n<p>Zweitens sind moderne DBMSs sehr zuverl\u00e4ssige Softwarepakete, jedoch kommt es gelegentlich zu Besch\u00e4digungen der internen Strukturen der Datenbank, nach denen der Zugang zu den Daten verloren geht. Besonders \u00e4rgerlich ist, dass solche St\u00f6rungen gew\u00f6hnlich unter hoher Last oder bei der Installation eines Updates auftreten. Sowohl hohe Last als auch regelm\u00e4\u00dfige Updates deuten darauf hin, dass die Datenbank keineswegs eine Testdatenbank ist und die darin gespeicherten Daten wertvoll sind.<\/p>\n<p>Schlie\u00dflich ist die dritte Aufgabe, deren L\u00f6sung eine Datensicherung erfordert, die Klonierung einer Datenbank, beispielsweise zu Testzwecken.<\/p>\n<p>Die Datensicherung von Datenbanken basiert auf einem der zwei Prinzipien:<\/p>\n<ul>\n<li>Datenextraktion mit anschlie\u00dfender Speicherung in einem beliebigen Format;<\/li>\n<li>Snapshot des Zustands der DB-Dateien und Speicherung von Logs.<\/li>\n<\/ul>\n<p>\nLassen Sie uns diese Prinzipien und die Werkzeuge, die sie umsetzen, n\u00e4her betrachten.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Datenexport<\/h3>\n<p>\nIn der Sammlung von Tools, die jeder DBMS beigef\u00fcgt sind, gibt es unbedingt Werkzeuge f\u00fcr den Datenexport und -import. Die Daten werden entweder im Textformat oder in einem bin\u00e4ren Format, das speziell f\u00fcr das jeweilige DBMS geeignet ist, gespeichert. In der folgenden Tabelle finden Sie eine Liste solcher Werkzeuge:<\/p>\n<p>Bin\u00e4res Format<br \/>\nTextformat<\/p>\n<p>Oracle<br \/>\nDataPump Export\/DataPump Import<br \/>\nExport\/Import<br \/>\nSQL*Plus\/SQL*Loader<\/p>\n<p>PostgreSQL<br \/>\npg_dump, pg_dumpall\/pg_restore<br \/>\npg_dump, pg_dumpall\/psql<\/p>\n<p>Microsoft SQL Server<br \/>\nbcp<br \/>\nbcp<\/p>\n<p>DB2<br \/>\nentladen\/laden<br \/>\nentladen\/laden<\/p>\n<p>MySQL<\/p>\n<p>mysqldump, mysqlpump\/mysql, mysqlimport<\/p>\n<p>MongoDB<br \/>\nmongodump\/mongorestore<br \/>\nmongoexport\/mongoimport<\/p>\n<p>Cassandra<br \/>\nnodetool snapshot\/sstableloader<br \/>\ncqlsh<\/p>\n<p>\nDas Textformat hat den Vorteil, dass es mit externen Programmen bearbeitet oder sogar erstellt werden kann, w\u00e4hrend das Bin\u00e4rformat schneller Daten auslagern und laden kann, da es bei der Formatumwandlung Ressourcen einspart.<\/p>\n<p>Trotz der Einfachheit und Selbstverst\u00e4ndlichkeit der Idee des Datenexports wird dieses Verfahren zur Sicherung stark belasteter Produktionsdatenbanken nur selten angewandt. Hier sind die Gr\u00fcnde, warum ein Export nicht f\u00fcr eine vollst\u00e4ndige Datensicherung geeignet ist:<\/p>\n<ul>\n<li>der Auslagerungsprozess erzeugt eine erhebliche Belastung f\u00fcr das Quellsystem;<\/li>\n<li>der Export dauert lange \u2013 zum Zeitpunkt des Abschlusses ist er nicht mehr aktuell;<\/li>\n<li>eine konsistente Auslagerung der gesamten Datenbank bei hoher Last ist nahezu unm\u00f6glich, da das DBMS gezwungen ist, einen Snapshot seines Zustands zum Zeitpunkt des Beginns des Exports zu behalten. Je mehr Transaktionen seit Beginn des Exports durchgef\u00fchrt wurden, desto gr\u00f6\u00dfer ist das Volumen des Snapshots (nicht aktuelle Datenkopien in PostgreSQL, Undo-R\u00e4ume in Oracle, tempdb in Microsoft SQL Server usw.);<\/li>\n<li>der Export bewahrt die logische Struktur der Daten, jedoch nicht die physische Struktur \u2013 Parameter der physischen Speicherung von Tabellen, Indizes usw.<\/li>\n<\/ul>\n<p>\nDennoch hat der Export auch Vorteile:<\/p>\n<ul>\n<li>hohe Selektivit\u00e4t: Es k\u00f6nnen einzelne Tabellen, einzelne Felder und sogar einzelne Zeilen exportiert werden;<\/li>\n<li>exportierte Daten k\u00f6nnen in eine Datenbank anderer Versionen geladen werden, und wenn der Export im Textformat durchgef\u00fchrt wurde, sogar in eine andere Datenbank.<\/li>\n<\/ul>\n<p>\nSomit wird der Export haupts\u00e4chlich f\u00fcr Aufgaben wie die Sicherung kleiner Tabellen (z. B. Verzeichnisse) oder die Verteilung von Datens\u00e4tzen mit der n\u00e4chsten Anwendungsrevision verwendet. <\/p>\n<p>Die am h\u00e4ufigsten verwendete Methode zur Datensicherung von Datenbanken ist das Kopieren der Datenbankdateien.<\/p>\n<h3>\u201eKaltes\u201c Sichern von DB-Dateien<\/h3>\n<p>\nDie naheliegende Idee ist, die Datenbank anzuhalten und alle ihre Dateien zu kopieren. Diese Art der Sicherung wird als \u201ekalte\u201c Sicherung bezeichnet. Die Methode ist \u00e4u\u00dferst zuverl\u00e4ssig und einfach, hat jedoch zwei offensichtliche Nachteile:<\/p>\n<ul>\n<li>Aus einer \"kalten\" Sicherungskopie kann nur der Zustand der Datenbank wiederhergestellt werden, der zum Zeitpunkt des Stopps existierte; Transaktionen, die nach dem Neustart der Datenbank durchgef\u00fchrt wurden, gelangen nicht in die \"kalte\" Sicherungskopie;<\/li>\n<li>Nicht jede Datenbank verf\u00fcgt \u00fcber ein technologisches Fenster, in dem die Datenbank gestoppt werden kann.<\/li>\n<\/ul>\n<p>\nWenn Sie jedoch mit der \"kalten\" Datensicherung zufrieden sind, sollten Sie daran denken, dass<\/p>\n<ul>\n<li>\"kalte\" Kopien manchmal auch Protokolle enthalten m\u00fcssen. Die Methoden zur Bestimmung der Protokolle, die in die \"kalte\" Kopie aufgenommen werden sollten, sind f\u00fcr jedes DBMS unterschiedlich. Zum Beispiel muss in Oracle die sogenannte online redo kopiert werden, also eine feste Anzahl von Protokolldateien in einem speziellen Verzeichnis, und das sogar dann, wenn die Datenbank ordnungsgem\u00e4\u00df gestoppt wurde. In PostgreSQL m\u00fcssen alle Protokolle ab dem Protokoll, das den letzten Kontrollpunkt enth\u00e4lt, der in der Steuerdatei aufgezeichnet ist, aufbewahrt werden.<\/li>\n<li>Das Verzeichnis der Datenbank kann ziemlich gro\u00dfe Dateien tempor\u00e4rer Tabellenr\u00e4ume enthalten, die nicht unbedingt in die Sicherungskopie aufgenommen werden m\u00fcssen. \u00dcbrigens gilt dieser Hinweis auch f\u00fcr \"hei\u00dfe\" Sicherungen.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\"Hei\u00dfe\" Dateisicherung<\/h3>\n<p>\nDie meisten Sicherungen moderner Datenbanken werden durchgef\u00fchrt, indem die Datenbankdateien ohne Stopp der Datenbank kopiert werden. Hier gibt es einige Probleme:<\/p>\n<ul>\n<li>Zum Zeitpunkt des Beginns der Kopierung kann der Inhalt der Datenbank nicht mit dem Inhalt der Dateien \u00fcbereinstimmen, da ein Teil der Informationen im Cache ist und noch nicht auf die Festplatte geschrieben wurde.<\/li>\n<li>W\u00e4hrend der Kopierung kann sich der Inhalt der Datenbank \u00e4ndern. Wenn ver\u00e4nderbare Datenstrukturen verwendet werden, \u00e4ndert sich der Inhalt der Dateien; bei Verwendung unver\u00e4nderlicher Strukturen \u00e4ndert sich die Menge der Dateien: neue Dateien erscheinen, w\u00e4hrend alte gel\u00f6scht werden.<\/li>\n<li>Da das Schreiben von Daten in die Datenbank und das Lesen der DB-Dateien nicht synchronisiert sind, kann das Sicherungsprogramm eine fehlerhafte Seite lesen, bei der die eine H\u00e4lfte von der alten Version der Seite und die andere H\u00e4lfte von der neuen stammt.<\/li>\n<\/ul>\n<p>\nUm eine konsistente Sicherung zu erhalten, gibt es in jedem DBMS einen Befehl, der mitteilt, dass der Sicherungsvorgang begonnen hat. Syntaxm\u00e4\u00dfig kann dieser Befehl unterschiedlich aussehen: <\/p>\n<ul>\n<li>in Oracle ist es ein separater Befehl ALTER DATABASE\/TABLESPACE BEGIN BACKUP;<\/li>\n<li>in PostgreSQL \u2013 die Funktion pg_start_backup();<\/li>\n<li>In Microsoft SQL Server und DB2 erfolgt die Vorbereitung f\u00fcr das Backup implizit w\u00e4hrend der Ausf\u00fchrung des Befehls BACKUP DATABASE;<\/li>\n<li>In MySQL Enterprise, Cassandra und MongoDB wird die Vorbereitung implizit von einem externen Tool durchgef\u00fchrt \u2013 mysqlbackup, OpsCenter und Ops Manager bzw.<\/li>\n<\/ul>\n<p>\nTrotz syntaktischer Unterschiede sieht der Prozess der Vorbereitung f\u00fcr das Backup gleich aus.<\/p>\n<p>So sieht die Vorbereitung f\u00fcr das Backup in Datenbanksystemen mit ver\u00e4nderbaren Speicherstrukturen aus, d.h. in allen traditionellen relationalen Systemen mit Festplattenspeicher:<\/p>\n<ol>\n<li>Der Moment des Beginns des Backups wird festgehalten; das Backup muss die Datenbankprotokolle ab diesem Zeitpunkt enthalten.<\/li>\n<li>Ein Checkpoint wird durchgef\u00fchrt, das hei\u00dft, alle \u00c4nderungen, die bis zu diesem festgehaltenen Moment auf den Datenbl\u00e4ttern erfolgt sind, werden auf die Festplatte \u00fcbertragen. Dadurch wird sichergestellt, dass die Protokolle vor Beginn des Backups beim Wiederherstellen nicht ben\u00f6tigt werden.<\/li>\n<li>Ein spezieller Journalisierungsmodus wird aktiviert: Wenn eine Datenblattseite nach dem ersten Laden von der Festplatte ge\u00e4ndert wird, wird anstelle der Aufzeichnung der \u00c4nderungen an der Seite die gesamte Seite ins Journal geschrieben. Bei der Durchf\u00fchrung des Vorbereitungsprozesses werden alle Seiten auf die Festplatte verdr\u00e4ngt, sodass bei der ersten \u00c4nderung der Block immer vollst\u00e4ndig ins Journal geschrieben wird. Wenn w\u00e4hrend des Backups die Seite erneut auf die Festplatte verdr\u00e4ngt wird, f\u00fchrt die n\u00e4chste \u00c4nderung ebenfalls zu einer vollst\u00e4ndigen Kopie der Seite im Journal. Dies garantiert, dass, falls die Datei mit den Daten w\u00e4hrend des Kopiervorgangs fehlerhaft wird, das Anwenden des Journals sie wieder korrekt macht.<\/li>\n<li>Die \u00c4nderung der Dateikopfzeilen der Daten wird gesperrt, d.h. der Teil, dessen \u00c4nderungen nicht in den Journalen refl ektiert werden. Dies garantiert, dass der Kopf korrekt kopiert wird und anschlie\u00dfend die Protokolle korrekt auf die Datendatei angewendet werden.<\/li>\n<\/ol>\n<p>\nNachdem alle oben genannten Verfahren abgeschlossen sind, k\u00f6nnen die Datenfiles mit den Mitteln des Betriebssystems \u2013 cp, rsync und anderen \u2013 kopiert werden. Die Aktivierung des Backup-Modus reduziert die Leistung der Datenbank: Erstens erh\u00f6ht sich das Volumen der Logs, und zweitens, wenn im Backup-Modus ein Fehler auftritt, wird die Wiederherstellung l\u00e4nger dauern, da die Header der Datenfiles nicht aktualisiert werden. Je schneller das Backup abgeschlossen ist, desto besser f\u00fcr die Datenbank, weshalb hier der Einsatz von Mitteln wie einem Snapshot des Dateisystems oder der BCV der Spiegelung im Speichersystem sinnvoll ist. Einige DBMS (Oracle, PostgreSQL) lassen dem Administrator die Wahl des Kopierverfahrens, andere (Microsoft SQL Server) bieten eine Schnittstelle zur Integration eigener Backup-Tools mit den Mechanismen der Dateisysteme oder des Storage-Systems an.<\/p>\n<p>Nach Abschluss des Backups muss die Datenbank wieder in den normalen Zustand versetzt werden. In Oracle geschieht dies mit dem Befehl ALTER DATABASE\/TABLESPACE END BACKUP, in PostgreSQL wird die Funktion pg_stop_backup() aufgerufen, und in anderen Datenbanken erfolgen dies durch interne Subroutinen der entsprechenden Befehle oder externen Dienste.<\/p>\n<p>So sieht das zeitliche Diagramm des Backup-Prozesses aus:<\/p>\n<p><img decoding=\"async\" alt=\"Leitfaden zur Sicherung von Datenbanken\" src=\"\/wp-content\/uploads\/2020\/08\/4e74f865e9f35acec083b747da4449cf.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<ul>\n<li>Die Vorbereitung des Backups (begin backup) erfordert Zeit, manchmal erheblich. Selbst wenn spiegelnde Volumes oder Dateisysteme mit Snapshot-Funktionalit\u00e4t verwendet werden, wird der Backup-Prozess nicht sofort abgeschlossen sein.<\/li>\n<li>Zusammen mit den Datenfiles m\u00fcssen die Logs ab dem Beginn der Backup-Vorbereitung bis zum Zeitpunkt der R\u00fcckkehr der Datenbank in den normalen Zustand gesichert werden.<\/li>\n<li>Die Wiederherstellung aus diesem Backup ist m\u00f6glich <b>zum Zeitpunkt der R\u00fcckkehr der Datenbank in den normalen Zustand<\/b>. Eine Wiederherstellung auf einen fr\u00fcheren Zeitpunkt ist nicht m\u00f6glich.<\/li>\n<\/ul>\n<p>\nBei Datenbanken, die unver\u00e4nderliche Datenstrukturen (Speichersnapshots, LSM-B\u00e4ume) verwenden, ist die Situation einfacher. Die Vorbereitung zum Backup umfasst die folgenden Schritte:<\/p>\n<ol>\n<li>Die Daten aus dem Speicher werden auf die Festplatte geschrieben.<\/li>\n<li>Es wird eine Liste der Dateien erstellt, die in das Backup eingehen. Bis der Backup-Prozess abgeschlossen ist, ist es der Datenbank verboten, diese Dateien zu l\u00f6schen, selbst wenn sie nicht mehr ben\u00f6tigt werden.<\/li>\n<\/ol>\n<p>\nNach dem Signal zum Ende der Sicherung kann die Datenbank mit unver\u00e4nderlichen Strukturen erneut unn\u00f6tige Dateien l\u00f6schen.<\/p>\n<h3>Wiederherstellung zum Punkt<\/h3>\n<p>\nDie Sicherung erm\u00f6glicht es, den Zustand der Datenbank zu dem Zeitpunkt wiederherzustellen, an dem der Befehl zum Verlassen des Sicherungsmodus abgeschlossen wurde. Ein Unfall, nach dem eine Wiederherstellung erforderlich ist, kann jedoch jederzeit auftreten. Die Aufgabe, den Zustand der Datenbank zu einem beliebigen Zeitpunkt wiederherzustellen, wird als \"Wiederherstellung zum Punkt\" (point-in-time recovery) bezeichnet.<\/p>\n<p>Um diese M\u00f6glichkeit zu gew\u00e4hrleisten, sollten die Datenbankprotokolle ab dem Zeitpunkt des Endes der Sicherung gespeichert werden, und w\u00e4hrend des Wiederherstellungsprozesses sollten die Protokolle auf die wiederhergestellte Kopie angewendet werden. Nachdem die Datenbank aus der Sicherung zum Zeitpunkt des Endes der Sicherung wiederhergestellt wurde, ist der Zustand der Datenbank (Dateien und zwischengespeicherte Seiten) garantiert korrekt, daher wird kein spezieller Protokollierungsmodus ben\u00f6tigt. Durch die Anwendung der Protokolle bis zu dem gew\u00fcnschten Zeitpunkt kann der Zustand der Datenbank zu jedem Zeitpunkt wiederhergestellt werden.<\/p>\n<p>Wenn die Geschwindigkeit der Wiederherstellung der Sicherung nur durch die Bandbreite der Festplatte begrenzt ist, ist die Geschwindigkeit der Anwendung der Protokolle normalerweise durch die Leistung des Prozessors begrenzt. Wenn in der Hauptdatenbank parallele \u00c4nderungen stattfinden, werden bei der Wiederherstellung alle \u00c4nderungen nacheinander \u2013 in der Reihenfolge der Protokolldaten \u2013 durchgef\u00fchrt. Daher h\u00e4ngt die Wiederherstellungszeit linear davon ab, wie weit der Wiederherstellungspunkt vom Ende der Sicherung entfernt ist. Aus diesem Grund m\u00fcssen vollst\u00e4ndige Sicherungen ziemlich h\u00e4ufig durchgef\u00fchrt werden \u2013 mindestens einmal pro Woche f\u00fcr Datenbanken mit geringem Transaktionsaufkommen und bis zu t\u00e4glichen Sicherungen f\u00fcr stark belastete Datenbanken.<\/p>\n<h3>Inkrementelle Sicherung<\/h3>\n<p>\nUm die Wiederherstellung zu einem bestimmten Punkt zu beschleunigen, w\u00e4re es w\u00fcnschenswert, die Sicherung so h\u00e4ufig wie m\u00f6glich durchf\u00fchren zu k\u00f6nnen, ohne dabei zus\u00e4tzlichen Speicherplatz auf den Festplatten zu beanspruchen oder die Datenbank mit Sicherungsaufgaben zu belasten.<\/p>\n<p>Die L\u00f6sung des Problems ist die inkrementelle Sicherung, d. h. das Kopieren nur der Datenbl\u00e4tter, die sich seit der letzten Sicherung ge\u00e4ndert haben.<br \/>\nInkrementelles Backup ist nur f\u00fcr Datenbanksysteme sinnvoll, die ver\u00e4nderbare Datenstrukturen verwenden.<\/p>\n<p>Ein Inkrement kann entweder von einem vollst\u00e4ndigen Backup (kumulatives Backup) oder von einem beliebigen vorherigen Backup (differenzielles Backup) ausgehen. <\/p>\n<p><img decoding=\"async\" alt=\"Leitfaden zur Sicherung von Datenbanken\" src=\"\/wp-content\/uploads\/2020\/08\/10e3bb87445cb36693c7b5469d62eeaf.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLeider gibt es keine einheitliche Terminologie, und verschiedene Hersteller verwenden unterschiedliche Begriffe:<\/p>\n<p>Differenziell<br \/>\nKumulativ<\/p>\n<p>Oracle<br \/>\nDifferential<br \/>\nKumulative<\/p>\n<p>PostgresPro<br \/>\nInkremental<br \/>\n\u2014<\/p>\n<p>Microsoft SQL Server<br \/>\n\u2014<br \/>\nDifferential<\/p>\n<p>IBM DB2<br \/>\nDelta<br \/>\nInkremental<\/p>\n<p>\nWenn Inkrementale Backups vorhanden sind, sieht der Wiederherstellungsprozess zu einem bestimmten Zeitpunkt folgenderma\u00dfen aus:<\/p>\n<ul>\n<li>Die letzte vollst\u00e4ndige Sicherung, die vor dem Wiederherstellungspunkt erstellt wurde, wird wiederhergestellt;<\/li>\n<li>\u00dcber dem vollst\u00e4ndigen Backup werden die inkrementalen Backups wiederhergestellt;<\/li>\n<li>Die Protokolle von dem Zeitpunkt des Beginns des Backups bis zum Wiederherstellungspunkt werden angewendet.<\/li>\n<\/ul>\n<p>\nDas Vorhandensein eines kumulativen Backups beschleunigt den Wiederherstellungsprozess. Zum Beispiel m\u00fcssen f\u00fcr die Wiederherstellung des Datenbankzustands zu einem Zeitpunkt zwischen T3 und T4 zwei inkrementale Backups wiederhergestellt werden, w\u00e4hrend f\u00fcr die Wiederherstellung nach T4 nur eines erforderlich ist.<br \/>\nOffensichtlich ist das Volumen eines kumulativen Backups geringer als das Volumen mehrerer differenzieller Backups, da sich einige Seiten mehrmals ge\u00e4ndert haben und jedes inkrementale Backup seine eigene Version der Seite enth\u00e4lt.<\/p>\n<p>Es gibt drei M\u00f6glichkeiten, ein inkrementales Backup zu erstellen:<\/p>\n<ol>\n<li>eine vollst\u00e4ndige Kopie zu erstellen und die Differenz zur vorherigen vollst\u00e4ndigen Kopie zu berechnen;<\/li>\n<li>Protokolle zu analysieren, eine Liste der ge\u00e4nderten Seiten zu erstellen und die in der Liste enthaltenen Seiten zu sichern;<\/li>\n<li>ge\u00e4nderte Seiten in der Datenbank abzufragen.<\/li>\n<\/ol>\n<p>\nDer erste Ansatz spart Speicherplatz, l\u00f6st jedoch nicht das Problem der Reduzierung der Last auf die Datenbank. Dar\u00fcber hinaus ist es sinnlos, eine vollst\u00e4ndige Sicherung in eine inkrementale zu verwandeln, wenn wir bereits eine vollst\u00e4ndige Sicherung haben, da die Wiederherstellung einer vollst\u00e4ndigen Sicherung schneller ist als die Wiederherstellung einer fr\u00fcheren vollst\u00e4ndigen Sicherung und eines Inkrements. Um das Ziel der Reduzierung des Speicherplatzes mit diesem Ansatz zu erreichen, sollten spezielle Komponenten mit integrierten Deduplizierungsmechanismen eingesetzt werden. Dies k\u00f6nnen sowohl spezielle Speicherl\u00f6sungen (EMC DataDomain, HPE StorageWorks VLS, die gesamte NetApp-Reihe) als auch Softwareprodukte (ZFS, Veritas NetBackup PureFile, Windows Server Daten-Deduplizierung) sein.<\/p>\n<p>Der zweite und dritte Ansatz unterscheiden sich in der Methode zur Bestimmung der Liste der ge\u00e4nderten Seiten. Die Analyse von Protokollen ist ressourcenintensiver; zus\u00e4tzlich muss die Struktur der Protokolldateien bekannt sein, um sie zu interpretieren. Es ist am einfachsten, direkt bei der Datenbank nachzufragen, welche Seiten sich ge\u00e4ndert haben, jedoch muss dazu das DBMS \u00fcber die Funktionalit\u00e4t zur Verfolgung ge\u00e4nderter Bl\u00f6cke (Block\u00e4nderungsverfolgung) verf\u00fcgen.<\/p>\n<p>Die Funktionalit\u00e4t der inkrementellen Datensicherung wurde erstmals in der Software Oracle Recovery Manager (RMAN) implementiert, die mit Oracle 8i eingef\u00fchrt wurde. Oracle hat sofort die Verfolgung ge\u00e4nderter Bl\u00f6cke realisiert, sodass keine Notwendigkeit besteht, Protokolle zu analysieren.<\/p>\n<p>PostgreSQL verfolgt keine ge\u00e4nderten Bl\u00f6cke, daher bestimmt das Tool pg_probackup, entwickelt von der russischen Firma Postgres Professional, ge\u00e4nderte Seiten durch Analyse des Protokolls. Das Unternehmen bietet auch das DBMS PostgresPro an, das die Erweiterung ptrack enth\u00e4lt, die die \u00c4nderung von Seiten verfolgt. Bei Verwendung von pg_probackup mit dem DBMS PostgresPro fragt das Tool die ge\u00e4nderten Seiten direkt bei der Datenbank an \u2013 genauso wie RMAN.<\/p>\n<p>Microsoft SQL Server verfolgt ebenfalls ge\u00e4nderte Seiten, genau wie Oracle, aber der Befehl BACKUP erlaubt nur vollst\u00e4ndige und kumulative Sicherungen.<\/p>\n<p>In DB2 besteht die M\u00f6glichkeit, ge\u00e4nderte Seiten zu verfolgen, aber standardm\u00e4\u00dfig ist diese Funktion deaktiviert. Nach der Aktivierung erm\u00f6glicht DB2 das Erstellen von vollst\u00e4ndigen, differenziellen und kumulativen Sicherungen.<\/p>\n<p>Ein wichtiger Unterschied zwischen den in diesem Abschnitt beschriebenen Werkzeugen (au\u00dfer pg_probackup) und dateibasierten Sicherungswerkzeugen besteht darin, dass sie die Seitenabbilder von der Datenbank anfordern, anstatt die Daten selbst\u00e4ndig von der Festplatte zu lesen. Der Nachteil dieses Ansatzes ist eine geringe zus\u00e4tzliche Belastung f\u00fcr die Datenbank. Dieser Nachteil wird jedoch mehr als ausgeglichen durch die Tatsache, dass die gelesene Seite immer korrekt ist, was es \u00fcberfl\u00fcssig macht, w\u00e4hrend der Sicherung einen speziellen Protokollierungsmodus zu aktivieren.<\/p>\n<p>Bitte beachten Sie erneut, dass das Vorhandensein inkrementeller Sicherungen keine Anforderungen an das Vorhandensein von Protokollen f\u00fcr die Wiederherstellung zu einem beliebigen Zeitpunkt aufhebt. Daher werden in professionellen Datenbanken die Protokolle kontinuierlich auf ein externes Medium \u00fcberschrieben, w\u00e4hrend vollst\u00e4ndige und\/oder inkrementelle Sicherungen nach einem Zeitplan erstellt werden.<\/p>\n<p>Die beste Umsetzung der Idee des inkrementellen Backup heute ist das software-hardware Komplettsystem (in der Terminologie von Oracle \u2013 engineered system) Zero Data Loss Recovery Appliance \u2013 eine spezialisierte L\u00f6sung von Oracle f\u00fcr das Backup seiner eigenen Datenbank. Das System besteht aus einem Cluster <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/de\/server\/\"   title=\"Server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1521\">Server<\/a> mit einer gro\u00dfen Anzahl von Festplatten, auf denen eine modifizierte Version der Software Recovery Manager installiert ist, und kann sowohl mit anderen Software-Hardware-Systemen von Oracle (Database Appliance, Exadata, SPARC Supercluster) als auch mit Oracle-Datenbanken auf traditioneller Infrastruktur arbeiten. Im Gegensatz zum \u201egew\u00f6hnlichen\u201c RMAN implementiert ZDLRA das Konzept des \u201eewigen Inkrements\u201c (incremental forever). Das System erstellt einmalig eine vollst\u00e4ndige Kopie der Datenbank und erstellt dann nur inkrementelle Kopien. Zus\u00e4tzliche RMAN-Module erm\u00f6glichen es, Kopien zu kombinieren, um neue vollst\u00e4ndige Kopien aus inkrementellen Kopien zu erstellen. <\/p>\n<p>Zur Ehre der russischen Entwickler muss festgestellt werden, dass auch pg_probackup in der Lage ist, inkrementelle Kopien zu kombinieren.<\/p>\n<p><img decoding=\"async\" alt=\"Leitfaden zur Sicherung von Datenbanken\" src=\"\/wp-content\/uploads\/2020\/08\/275b649ce74614c04410618a062dddbd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIm Gegensatz zu vielen \u00e4hnlichen Fragen hat die Frage \u201eWelche Backup-Methode ist die beste?\u201c eine eindeutige Antwort \u2013 am besten ist das native Tool der verwendeten DBMS, das die M\u00f6glichkeit f\u00fcr inkrementelles Backup bietet.<\/p>\n<p>F\u00fcr einen DB-Administrator sind Fragen zur Auswahl einer Backup-Strategie und zur Integration von Datenbanksicherungsl\u00f6sungen in die Unternehmensinfrastruktur weit wichtiger. Aber diese Fragen gehen \u00fcber den Rahmen dieses Artikels hinaus.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/516428\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u2013 \u041e, \u043d\u0438\u043a\u0430\u043a\u043e\u0435 \u0443\u0431\u0435\u0436\u0438\u0449\u0435 \u043d\u0435 \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u0435\u043e\u0440\u0438\u0442\u0430. \u041d\u043e \u0432\u0435\u0434\u044c \u0443 \u0432\u0430\u0441, \u043a\u0430\u043a \u0438 \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e, \u0435\u0441\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0435 \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c\u0441\u044f. \u0421\u0442\u0430\u043d\u0438\u0441\u043b\u0430\u0432 \u041b\u0435\u043c, \u00ab\u0417\u0432\u0451\u0437\u0434\u043d\u044b\u0435 \u0434\u043d\u0435\u0432\u043d\u0438\u043a\u0438 \u0418\u0439\u043e\u043d\u0430 \u0422\u0438\u0445\u043e\u0433\u043e\u00bb \u0420\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u043c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043f\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0433\u0434\u0435-\u0442\u043e \u0432\u043d\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u0438\u0445 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u2013 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u043b\u0435 \u0438\u0445 \u043f\u043e\u0442\u0435\u0440\u0438. \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u044d\u0442\u0438\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":92368,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-92367","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u2013 \u041e, \u043d\u0438\u043a\u0430\u043a\u043e\u0435 \u0443\u0431\u0435\u0436\u0438\u0449\u0435 \u043d\u0435 \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u0435\u043e\u0440\u0438\u0442\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/putevoditel-po-rezervnomu-kopirovaniyu-baz-dannyh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0443\u0442\u0435\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u043c\u0443 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u2013 \u041e, \u043d\u0438\u043a\u0430\u043a\u043e\u0435 \u0443\u0431\u0435\u0436\u0438\u0449\u0435 \u043d\u0435 \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u0435\u043e\u0440\u0438\u0442\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/putevoditel-po-rezervnomu-kopirovaniyu-baz-dannyh\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-08-26T05:42:09+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-26T05:42:09+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Leitfaden f\u00fcr Datenbanksicherungen | ProHoster","description":"\u2013 Oh, kein Zufluchtsort h\u00e4lt einem Meteoriteneinschlag stand.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/putevoditel-po-rezervnomu-kopirovaniyu-baz-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0443\u0442\u0435\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u043c\u0443 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster","og:description":"\u2013 \u041e, \u043d\u0438\u043a\u0430\u043a\u043e\u0435 \u0443\u0431\u0435\u0436\u0438\u0449\u0435 \u043d\u0435 \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u0435\u043e\u0440\u0438\u0442\u0430.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/putevoditel-po-rezervnomu-kopirovaniyu-baz-dannyh","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-08-26T05:42:09+00:00","article:modified_time":"2020-08-26T05:42:09+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"92367","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:09:36","updated":"2026-02-09 16:50:36","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/92367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=92367"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/92367\/revisions"}],"predecessor-version":[{"id":158765,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/92367\/revisions\/158765"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/92368"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=92367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=92367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=92367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}