“清理”在启用即时文件初始化的情况下创建的 SQL Server 数据库文件?

pau*_*ulH 8 sql-server sql-server-2008-r2

我在我们的 SQL Server 上启用了即时文件初始化,因此数据库文件的“空”部分在分配之前不会归零。我的理解是,这意味着该文件可能包含“已删除”的数据。

所以现在我想在公司外部发送一个数据库的副本(可能是一个备份文件)。但是,文件中存在所有潜在的敏感“已删除”数据。现在我想将文件中未使用的部分归零。

那可能吗?我想我可以创建一个新数据库并复制所有内容,或者可能将数据库的副本还原到另一台服务器而不启用即时文件初始化,然后使用 ShrinkFile 命令积极删除数据库文件的大部分或全部未使用部分,但是有没有更省力省时的方法呢?理想情况下是一个命令,告诉 SQL 将文件归零,就像没有启用即时文件初始化一样。

RLF*_*RLF 5

SQL Server备份仅备份范围正在使用保存数据。未使用的范围是由备份留下。当页面用于数据时,它将根据需要进行格式化以供使用,因此该页面将没有旧数据。

因此,您需要做的就是备份数据库并在其他地方恢复它。恢复的文件将与原始数据库的大小相同,但将使用目标服务器的功能创建未使用的扩展区。这可以使用目标服务器上的磁盘块完全初始化或立即初始化。

但是,由于范围是发生备份的级别,因此在另一台服务器上还原时,范围中未使用的页面仍有可能暴露某些数据。没有在源服务器上暴露的那么多,因为未使用的范围不会恢复。