我想备份我的 SQL Server 数据库,以便将其发送给我的供应商以帮助诊断。但是,我不想将表格中的数据包含在客户信息中。
这是我尝试过的:复制数据库,删除所有包含客户信息的表,然后备份结果。
但是,当我在文本编辑器中查看备份时,我看到备份文件中有大量私人数据。知道为什么吗?
我想备份我的 SQL Server 数据库,以便将其发送给我的供应商以帮助诊断。但是,我不想将表格中的数据包含在客户信息中。
这是我尝试过的:复制数据库,删除所有包含客户信息的表,然后备份结果。
但是,当我在文本编辑器中查看备份时,我看到备份文件中有大量私人数据。知道为什么吗?
当您删除 SQL Server 数据库中的数据时,SQL Server 只是将页面标记为空闲,但不会覆盖数据。就像任何现代文件系统实际上并没有删除文件一样,只是将磁盘块标记为空闲。
要清理您的数据库,我会尝试以下操作:
DBCC CHECKDB
以确保您没有破坏任何东西现在这是一个非常具有破坏性的过程,因此请确保永远不要对您想要继续使用自己的数据库执行此操作,但它应该删除所有已删除的数据。
重建索引是必要的,因为否则单个删除的行可能会在页面内的未删除行中保留下来。重组和缩小会删除未使用的页面。但是有时它不会完全清理,因此您需要重复步骤 2 和 3。4、5 和 6 确保日志文件中没有留下任何数据痕迹,否则根据您的恢复模式,仍然包含已删除的数据,可能是多次。
这里可能是一个很好的答案:
请记住,表(应该)是聚集索引。