|名词定义|
数据库快照是数据库(源数据库)的只读静态视图。自创建快照那刻起,数据库快照在事务上与源数据库一致。 数据库快照始终与其源数据库位于同一服务器实例上。 虽然数据库快照提供与创建快照时处于相同状态的数据的只读视图,但快照文件的大小随着对源数据库的更改而增大。给定源数据库中可以存在多个快照。在数据库所有者显式删除每个数据库快照之前,该快照将一直保留。
数据库快照在数据页级运行。在第一次修改源数据库页之前,先将原始页从源数据库复制到快照。 快照将存储原始页,保留它们在创建快照时的数据记录。对要进行第一次修改的每一页重复此过程。对于用户而言,数据库快照似乎始终保持不变,因为对数据库快照的读操作始终访问原始数据页,而与页驻留的位置无关。
为了存储复制的原始页,快照使用一个或多个“稀疏文件”。最初,稀疏文件实质上是空文件,不包含用户数据并且未被分配存储用户数据的磁盘空间。随着源数据库中更新的页越来越多,文件的大小也不断增长。
| 发展历程 |
1992年ANSI SQL标准(1992) 提到数据库隔离级别和数据库事务的ACID 原则时提出采用数据库快照(Database Snapshot)实现数据库的隔离
2005年SQLServer首先采用数据库快照技术实现数据库备份。
当前Oracle、Hadoop、Hbase、MySQL等所有主流数据库都支持数据库快照。
| 技术特点 |
数据库快照具有以下优点:
- 快照可用于报告目的。
- 维护历史数据以生成报表。
- 使用为了实现可用性目标而维护的镜像数据库来减轻报表负载。
- 使数据免受管理失误所带来的影响。
- 如果源数据库上出现用户错误,您可将源数据库恢复到创建给定数据库快照时的状态。 丢失的数据仅限于创建快照后数据库更新的数据。
- 使数据免受用户失误所带来的影响。
- 管理测试数据库。
| 相关词 |
Database Snapshots – 数据库快照
RDBMS – 关系数据据库
IDS -集成数据存储(Integrated Data Store),这是世界上第一个NDBMS(网状数据库管理系统,Network Database Management System),也是第一个数据库管理系统
Access - 是由微软发布的关系数据库管理系统
MariaDB - 数据库管理系统是MySQL的一个分支
| 案例展示 |
- Oracle – 是甲骨文公司的一种关系数据库管理系统
- SQLServer – 是微软公司的一种关系数据库管理系统
- MySQL -原本是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,2009年甲骨文公司收购Sun公司,MySQL成为Oracle旗下产品
- PostgreSQL - 是自由的对象-关系型数据库服务器
- DB2 - 是美国IBM公司发展的一套关系型数据库管理系统
- Hive - 是一个建立在Hadoop架构之上的数据仓库
|资料来源|
Database Snapshots https://www.sqlservercentral.com/articles/database-snapshots-1
SQLServer Database Snapshot https://www.dbrnd.com/2017/01/sql-server-what-is-database-snapshot-and-how-it-works-read-only-database/
数据库发展简史 https://www.cnblogs.com/cenliang/p/9916803.html
数据库快照 (SQL Server) https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/database-snapshots-sql-server?view=sql-server-ver15
SQL基础之数据库快照 https://www.cnblogs.com/fangyz/p/5782190.html