What is the difference between crash-consistent and application-consistent backups of virtual servers?
A crash-consistent backup set means the backup captured all of the virtual machine's data at exactly the same time. This is how essentially all modern backup software functions. Crash-consistent backups are fine and work well for the most part for nondatabase applications. When a crash-consistent backup is recovered and restored, the data is in the identical state it was in at the time of the backup.
Crash-consistent backups don't work nearly as well for database applications because they do not capture data in memory or any pending I/O operations. As such, restoring from a crash-consistent backup requires extra work, such as journaling forward, before an application can be brought back online.
In addition to providing a crash-consistent backup, application-consistent backups also capture all data in memory and all transactions in process. This is performed by using some type of client software co-resident with the database application or, in the case of Microsoft Windows and Hyper-V, the VSS API, to quiesce the database application, flush its memory cache, complete all its writes in order and then perform the backup.
When the backup or snapshot is complete, the software notifies the database application to resume. A restoration of an application-consistent backup requires no additional work to restore the database application.
Dig Deeper on Data backup and recovery software
Related Q&A from Marc Staimer
Network File System and Common Internet File System/Server Message Block were designed to work with any operating system, but NFS remains dominant in... Continue Reading
Latency in object stores that stems from a large amount of metadata means the technology is better suited to non-transactional data. Continue Reading
Eventual consistency in object stores can be an issue because object storage is spread over many nodes and up-to-date data may not always be ... Continue Reading