boot4life Asked: 2015-10-21 06:37:31 +0800 CST2015-10-21 06:37:31 +0800 CST 2015-10-21 06:37:31 +0800 CST 数据库快照在哪里存储哪些页面已复制到快照文件的信息? 772 数据库快照文件是稀疏文件。只有当页面被修改时,才会写入稀疏文件。读取快照必须能够知道稀疏文件是否包含复制页面。SQL Server 如何知道从哪里读取?这些信息存储在哪里? sql-server snapshot 3 个回答 Voted Best Answer Hannah Vernon 2015-10-21T07:00:24+08:002015-10-21T07:00:24+08:00 来自Microsoft SQL Server 2012 Internals书: 快照文件仅包含从源更改的数据。对于每个文件,SQL Server 都会创建一个保存在缓存中的位图,文件的每一页都有一个位,指示该页是否已复制到快照中。每次更新源中的页面时,SQL Server 都会检查文件的位图以查看该页面是否已被复制,如果当时还没有被复制。此操作称为写时复制操作。 位图存储在缓存中,而不是文件本身,因此它总是随时可用。当 SQL Server 关闭或数据库关闭时,位图会丢失,需要在数据库启动时重建。 执行读取时,SQL Server 检查快照位图以确定从何处读取。 Josip Ivic 2015-10-21T06:55:39+08:002015-10-21T06:55:39+08:00 文档背景: 源数据库 对于数据库快照,创建快照的数据库。数据库快照依赖于源数据库。数据库的快照必须与数据库位于同一服务器实例上。此外,如果该数据库因任何原因变得不可用,则其所有数据库快照也将变得不可用。 稀疏文件 由 NTFS 文件系统提供的文件,它需要的磁盘空间比其他方式少得多。稀疏文件用于存储复制到数据库快照的页面。首次创建时,稀疏文件占用的磁盘空间很小。随着数据写入数据库快照,NTFS 逐渐将磁盘空间分配给相应的稀疏文件。 地点 在配置分发向导的快照文件夹页面上指定默认快照位置。如果您在未配置为分发服务器的服务器上创建发布,请在新建发布向导的快照文件夹页面上指定默认快照位置。 修改默认快照位置 在 Distributor Properties - 对话框的 Publishers 页面上,单击要更改其默认快照位置的 Publisher 的属性按钮 (...)。 在 Publisher Properties - 对话框中,输入 Default Snapshot Folder 属性的值。 ShakyKnees 2019-10-18T15:26:13+08:002019-10-18T15:26:13+08:00 关于发布者和分发者屏幕的这些信息似乎非常错误,好像您必须复制数据库才能使用数据库快照。看起来此条目将复制快照文件与数据库快照混为一谈。
来自Microsoft SQL Server 2012 Internals书:
执行读取时,SQL Server 检查快照位图以确定从何处读取。
文档背景:
地点
在配置分发向导的快照文件夹页面上指定默认快照位置。如果您在未配置为分发服务器的服务器上创建发布,请在新建发布向导的快照文件夹页面上指定默认快照位置。
修改默认快照位置
关于发布者和分发者屏幕的这些信息似乎非常错误,好像您必须复制数据库才能使用数据库快照。看起来此条目将复制快照文件与数据库快照混为一谈。