数据库存储:原理、配置与协同优化
1. 数据库预编译过程与备份策略
数据库中的预编译过程有着显著的优势。它允许逐行遍历表格,并且可以嵌入到像 C 这样的标准语言中。以这种方式编写的过程会被编译并存储在数据库本身,当客户端发出请求时可直接执行。与通过查询完成相同任务相比,预编译过程效率极高。
数据库备份是另一个重要特性。最简单的备份技术是停止数据库并复制所有内容,即全量备份。但仅靠全量备份是不够的,因为后续对数据库的更改无法被跟踪。为了在数据丢失时能将数据库恢复到已知的正确状态,需要能够持续跟踪和备份。由于数据库系统会为应用于数据库的所有更改生成事务日志,所以最简单的方案是保留这些日志。在进行检查点操作时,不删除活动日志,而是将其转移到归档日志中。
不过,归档日志本身并不能完全解决问题。随着它们不断增长,在恢复时重放这些日志会花费越来越多的时间。为了限制归档日志的长度,需要偶尔进行一次全量备份,然后重新开始。
底层的卷管理器或文件系统可以帮助减少数据库进行全量备份时的离线时间。文件系统可以在几秒钟内进行快照或存储检查点,关键是同时对事务日志进行快照。这样,在将快照复制到另一个系统时,数据库可以继续在服务器上运行。这个快照捕获了所有文件在数据库服务器崩溃时的相同状态,通过在另一个系统上重放日志,数据库可以恢复到一致状态,从而实现合成全量备份。卷管理器也可以使用镜像分离来实现类似文件系统快照的功能。
2. 数据库存储配置
数据库最终将表、索引、日志和其他对象存储在数据库文件中,但不能简单地认为一个数据库表对应一个文件。数据库文件更像是一块存储的句柄,它可以是文件系统文件、卷管理器存储卷或原始磁盘。数据库系统会利用多个数据库
超级会员免费看
订阅专栏 解锁全文
1120

被折叠的 条评论
为什么被折叠?



