Einige meiner Kollegen waren überrascht, als ich ihnen sagte, dass ich eine SQL Server-Datenbank sichern kann, während sie noch ausgeführt wird, und fragten sich, wie dies möglich ist. Ich weiß, dass SQL Server in der Lage ist, eine Datenbank zu sichern, solange diese noch online ist, aber ich weiß nicht genau, warum dies möglich ist. Meine Frage ist, welche Auswirkung dies auf die Datenbank hat.
Wenn Daten geändert werden (durch Einfügen, Aktualisieren oder Löschen), während die Sicherung ausgeführt wird, enthält die Sicherung diese Änderungen oder wird sie anschließend zur Datenbank hinzugefügt?
Ich gehe davon aus, dass die Protokolldatei hier eine wichtige Rolle spielt, bin mir aber nicht ganz sicher, wie.
Bearbeiten: In meinem Fall geht es lediglich um das Sichern der Datenbanken mithilfe des SQL Server-Agenten und die Auswirkungen von Datenbankänderungen während dieses Vorgangs.
quelle
Während der Sicherung wird ein Snapshot für die Datenbank erstellt und die Daten werden für die Sicherung aus diesem Snapshot gelesen. Die tatsächlichen Live-DB-Vorgänge wirken sich nicht auf den Sicherungsvorgang aus.
quelle
Sie können es nicht einfach kopieren, da es während der Kopie Änderungen an der Datenbank geben kann, auf die Sie in der Frage hingewiesen haben.
Dies muss mit Agenten geschehen, die die Datenbankfunktionalität kennen und dann einen "Schnappschuss" über Betriebssystemfunktionen erstellen oder ein Dienstprogramm verwenden, um die Datenbank in einem sicheren Zustand zu sichern (wie mysqldump, wenn mysql verwendet wird).
Andernfalls erhalten Sie ein Backup, das möglicherweise beschädigt ist, und Sie werden es erst kennen, wenn Sie es wiederherstellen. Ich glaube, Joel und Jeff haben kürzlich in einem StackOverflow-Podcast ein wenig darüber gesprochen.
Und Sie haben Recht, dass die Protokolldatei wichtig ist. Wenn die Journal- / Protokolldatei nicht mit den tatsächlichen Daten synchron ist, führt die Wiederherstellung der Dateien zu Beschädigungen.
Es läuft auf ein Backup hinaus, das mit einem sicheren Status der Datenbank erstellt wurde, entweder über einen datenbankfähigen Agenten oder eine Snapshot-Anwendung oder eine Anwendung, die weiß, wie die Datenbank ordnungsgemäß in das Löschen von Daten eingebunden wird, ohne dass Aktualisierungen während des Daten-Dumps und des Backups beeinträchtigt werden die resultierende Datei.
quelle
Es gibt so viele Möglichkeiten (im Allgemeinen keine Ahnung, wie MSSQL dies normalerweise tut), wie einfach die Datenbank in eine Datei zu sichern, während Änderungen an eine Protokolldatei angehängt werden, die nach Abschluss der Sicherung festgeschrieben wird - um einen dateisystemspezifischen Snapshot zu verwenden Funktionen wie VSS unter Windows.
quelle
Sie können so etwas wie ein Nur-Kopie-Backup erstellen. Wirkt sich nicht auf die Datenbank aus, solange diese online ist
quelle