天天看點

資料庫必知詞彙:資料庫快照

|名詞定義|

資料庫快照是資料庫(源資料庫)的隻讀靜态視圖。自建立快照那刻起,資料庫快照在事務上與源資料庫一緻。 資料庫快照始終與其源資料庫位于同一伺服器執行個體上。 雖然資料庫快照提供與建立快照時處于相同狀态的資料的隻讀視圖,但快照檔案的大小随着對源資料庫的更改而增大。給定源資料庫中可以存在多個快照。在資料庫所有者顯式删除每個資料庫快照之前,該快照将一直保留。

資料庫快照在資料頁級運作。在第一次修改源資料庫頁之前,先将原始頁從源資料庫複制到快照。 快照将存儲原始頁,保留它們在建立快照時的資料記錄。對要進行第一次修改的每一頁重複此過程。對于使用者而言,資料庫快照似乎始終保持不變,因為對資料庫快照的讀操作始終通路原始資料頁,而與頁駐留的位置無關。

為了存儲複制的原始頁,快照使用一個或多個“稀疏檔案”。最初,稀疏檔案實質上是空檔案,不包含使用者資料并且未被配置設定存儲使用者資料的磁盤空間。随着源資料庫中更新的頁越來越多,檔案的大小也不斷增長。

| 發展曆程 |

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