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