DBMS - 数据备份
易失性存储丢失
像 RAM 这样的易失性存储保存所有活动日志、磁盘缓冲区和相关数据。此外,它还存储当前正在执行的所有事务。如果这种易失性存储突然崩溃,会发生什么?显然,它会带走所有日志和数据库的活动副本。这使得恢复几乎不可能,因为恢复数据所需的一切都丢失了。
在易失性存储丢失的情况下,可以采用以下技术 —
我们可以在多个阶段设置checkpoints,以定期保存数据库的内容。
可以将易失性内存中活动数据库的状态定期dump到稳定的存储上,该存储还可能包含日志、活动事务和缓冲块。
每当数据库内容从非易失性内存 dump 到稳定存储时,都可以在日志文件中标记 <dump>。
恢复
系统从故障中恢复时,可以还原最新的 dump。
它可以将 checkpoints 作为 redo-list 和 undo-list 来维护。
它可以通过查阅 undo-redo 列表来恢复系统,将所有事务的状态恢复到最后一个 checkpoint。
灾难性故障的数据库备份与恢复
灾难性故障是指稳定的二级存储设备损坏。随着存储设备的损坏,存储在其中的所有宝贵数据都会丢失。我们有两种不同的策略来从这种灾难性故障中恢复数据 —
远程备份 &minu; 在这里,数据库的备份副本存储在远程位置,在发生灾难时可以从中恢复。
或者,可以将数据库备份存储在磁带上,并保存在更安全的地方。此备份随后可以传输到新安装的数据库上,将其恢复到备份点。
大型数据库过于庞大,无法频繁备份。在这种情况下,我们有技术可以通过查看其日志来恢复数据库。因此,这里需要做的就是定期备份所有日志。数据库可以每周备份一次,而日志体积很小,可以每天或尽可能频繁地备份。
远程备份
远程备份在数据库所在的主要位置被破坏时提供安全保障。远程备份可以是离线、实时或在线的。如果是离线,则手动维护。
在线备份系统更实时,是数据库管理员和投资者的救星。在线备份系统是一种机制,其中实时数据的每一位都同时备份到两个遥远的地方。其中一个直接连接到系统,另一个作为备份保存在远程位置。
一旦主数据库存储失败,备份系统就会感知故障并将用户系统切换到远程存储。有时切换如此迅速,用户甚至意识不到故障。